use of org.apache.openmeetings.db.entity.basic.IWsClient in project openmeetings by apache.
the class HashPage method onInitialize.
@Override
protected void onInitialize() {
super.onInitialize();
StringValue secure = p.get(HASH);
StringValue invitation = p.get(INVITATION_HASH);
WebSession ws = WebSession.get();
ws.checkHashes(secure, invitation);
String errorMsg = getString("invalid.hash");
recContainer.setVisible(false);
add(new EmptyPanel(PANEL_MAIN).setVisible(false));
if (!invitation.isEmpty()) {
Invitation i = ws.getInvitation();
if (i == null) {
errorMsg = getString("error.hash.invalid");
} else if (!i.isAllowEntry()) {
FastDateFormat sdf = FormatHelper.getDateTimeFormat(i.getInvitee());
errorMsg = Valid.OneTime == i.getValid() ? getString("error.hash.used") : String.format("%s %s - %s, %s", getString("error.hash.period"), sdf.format(i.getValidFrom()), sdf.format(i.getValidTo()), i.getInvitee().getTimeZoneId());
} else {
Recording rec = i.getRecording();
if (rec != null) {
vi.setVisible(!i.isPasswordProtected());
vp.setVisible(!i.isPasswordProtected());
if (!i.isPasswordProtected()) {
vi.update(null, rec);
vp.update(null, rec);
}
recContainer.setVisible(true);
error = false;
}
Room r = i.getRoom();
if (r != null && !r.isDeleted()) {
createRoom(r.getId());
if (i.isPasswordProtected() && rp != null) {
mp.getChat().setVisible(false);
rp.setOutputMarkupPlaceholderTag(true).setVisible(false);
}
}
}
} else if (!secure.isEmpty()) {
Long recId = getRecordingId(), roomId = ws.getRoomId();
if (recId == null && roomId == null) {
errorMsg = getString("1599");
} else if (recId != null) {
recContainer.setVisible(true);
Recording rec = recDao.get(recId);
vi.update(null, rec);
vp.update(null, rec);
error = false;
} else {
createRoom(roomId);
}
}
StringValue swf = p.get(SWF);
StringValue app = swf.isEmpty() ? p.get(APP) : swf;
if (!app.isEmpty()) {
if (APP_TYPE_NETWORK.equals(app.toString())) {
replace(new NetTestPanel(PANEL_MAIN).add(AttributeModifier.append("class", "app")));
error = false;
}
if (APP_TYPE_SETTINGS.equals(app.toString())) {
replace(new VideoSettings(PANEL_MAIN).replace(new OmWebSocketPanel("ws-panel") {
private static final long serialVersionUID = 1L;
private WsClient c = null;
@Override
protected void onConnect(ConnectedMessage message) {
c = new WsClient(message.getSessionId(), message.getKey().hashCode());
}
@Override
protected IWsClient getWsClient() {
return c;
}
}).add(new OmAjaxClientInfoBehavior() {
private static final long serialVersionUID = 1L;
@Override
protected void onClientInfo(AjaxRequestTarget target, WebClientInfo info) {
super.onClientInfo(target, info);
target.appendJavaScript(String.format("VideoSettings.init(%s);VideoSettings.open();", VideoSettings.getInitJson("noclient")));
}
}));
error = false;
}
}
add(recContainer.add(vi.setShowShare(false).setOutputMarkupPlaceholderTag(true), vp.setOutputMarkupPlaceholderTag(true)), new InvitationPasswordDialog("i-pass", this));
remove(urlParametersReceivingBehavior);
add(new MessageDialog("access-denied", getString("invalid.hash"), errorMsg, DialogButtons.OK, DialogIcon.ERROR) {
private static final long serialVersionUID = 1L;
@Override
public void onConfigure(JQueryBehavior behavior) {
super.onConfigure(behavior);
behavior.setOption("autoOpen", error);
behavior.setOption("resizable", false);
}
@Override
public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
// no-op
}
});
}
use of org.apache.openmeetings.db.entity.basic.IWsClient in project openmeetings by apache.
the class KurentoHandler method onMessage.
public void onMessage(IWsClient _c, JSONObject msg) {
if (client == null) {
sendError(_c, "Multimedia server is inaccessible");
return;
}
final String cmdId = msg.getString("id");
if ("test".equals(msg.optString("mode"))) {
KTestUser user = getTestByUid(_c.getUid());
switch(cmdId) {
case "start":
{
// TODO FIXME assert null user ???
user = new KTestUser(_c, msg, client.createMediaPipeline());
testsByUid.put(_c.getUid(), user);
}
break;
case "iceCandidate":
{
JSONObject candidate = msg.getJSONObject("candidate");
if (user != null) {
IceCandidate cand = new IceCandidate(candidate.getString("candidate"), candidate.getString("sdpMid"), candidate.getInt("sdpMLineIndex"));
user.addCandidate(cand);
}
}
break;
case "play":
user.play(_c, msg, client.createMediaPipeline());
break;
}
} else {
final Client c = (Client) _c;
if (c != null) {
log.debug("Incoming message from user with ID '{}': {}", c.getUserId(), msg);
} else {
log.debug("Incoming message from new user: {}", msg);
}
KUser user = getByUid(_c.getUid());
switch(cmdId) {
case "joinRoom":
joinRoom(c);
break;
case "receiveVideoFrom":
final String senderUid = msg.getString("sender");
final KUser sender = getByUid(senderUid);
final String sdpOffer = msg.getString("sdpOffer");
if (user == null) {
KRoom room = getRoom(c.getRoomId());
user = room.addUser(this, _c.getUid());
}
user.receiveVideoFrom(this, sender, sdpOffer);
break;
case "onIceCandidate":
{
JSONObject candidate = msg.getJSONObject("candidate");
if (user == null) {
KRoom room = getRoom(c.getRoomId());
user = room.addUser(this, _c.getUid());
}
IceCandidate cand = new IceCandidate(candidate.getString("candidate"), candidate.getString("sdpMid"), candidate.getInt("sdpMLineIndex"));
user.addCandidate(cand, msg.getString("uid"));
}
break;
}
}
}
Aggregations