Creating Verto Communicator.

Verto Communicator is a web interface built on top of Verto and AngularJS.

Brought to you by Evolux Sistemas and FreeSWITCH team. :)

FS-7795 - implements fullscreen menu and doubleclick function.
FS-7795 - added chat icon on fullscreen video
FS-7796 - fix missing tooltips in call icons
FS-7796 - fix tooltip position
FS-7798 - implements change login information in modal view
FS-7828 - fix esc key bug when leave fullscren mode. Using css instead of javascript in fullscreen for elements manipulation.
FS-7826 - fix chat sender id with name instead of extension
FS-7831 - remove demo from title
FS-7841 - fix compatibility verification
FS-7842 - 'settings' data persistent
FS-7859 - moved popup down
FS-7827 - added screen share functionality
FS-7857 - default name for source media
FS-7879 - prompt before logout [incall]
FS-7873 - querystring for autocall
FS-7875 - persist login and password password
FS-7877 - phone feature: hold, transfer, incoming, answer, decline, call direction in history
FS-7878 - small devices
FS-7881 - added modal dialog for contributors
This commit is contained in:
Jonatas Oliveira
2015-06-03 09:40:23 -03:00
committed by Italo Rossi
parent 240cfef430
commit d178092c2a
114 changed files with 149382 additions and 0 deletions

View File

@@ -1166,6 +1166,154 @@
var CONFMAN_SERNO = 1;
/*
Conference Manager without jQuery table.
*/
$.verto.conf = function(verto, params) {
var conf = this;
conf.params = $.extend({
dialog: null,
hasVid: false,
laData: null,
onBroadcast: null,
onLaChange: null,
onLaRow: null
}, params);
conf.verto = verto;
conf.serno = CONFMAN_SERNO++;
createMainModeratorMethods();
verto.subscribe(conf.params.laData.modChannel, {
handler: function(v, e) {
if (conf.params.onBroadcast) {
conf.params.onBroadcast(verto, conf, e.data);
}
}
})
};
$.verto.conf.prototype.modCommand = function(cmd, id, value) {
var conf = this;
conf.verto.rpcClient.call("verto.broadcast", {
"eventChannel": conf.params.laData.modChannel,
"data": {
"application": "conf-control",
"command": cmd,
"id": id,
"value": value
}
});
};
$.verto.conf.prototype.destroy = function() {
var conf = this;
conf.destroyed = true;
conf.params.onBroadcast(verto, conf, 'destroy');
if (conf.params.laData.modChannel) {
conf.verto.unsubscribe(conf.params.laData.modChannel);
}
};
function createMainModeratorMethods() {
$.verto.conf.prototype.listVideoLayouts = function() {
this.modCommand("list-videoLayouts", null, null);
};
$.verto.conf.prototype.play = function(file) {
this.modCommand("play", null, file);
};
$.verto.conf.prototype.stop = function() {
this.modCommand("stop", null, "all");
};
$.verto.conf.prototype.record = function(file) {
this.modCommand("recording", null, ["start", file]);
};
$.verto.conf.prototype.stopRecord = function() {
this.modCommand("recording", null, ["stop", "all"]);
};
$.verto.conf.prototype.snapshot = function(file) {
if (!this.params.hasVid) {
throw 'Conference has no video';
}
this.modCommand("vid-write-png", null, file);
};
$.verto.conf.prototype.setVideoLayout = function(layout) {
if (!this.params.hasVid) {
throw 'Conference has no video';
}
this.modCommand("vid-layout", null, layout);
};
$.verto.conf.prototype.kick = function(memberID) {
this.modCommand("kick", parseInt(memberID));
};
$.verto.conf.prototype.muteMic = function(memberID) {
this.modCommand("tmute", parseInt(memberID));
};
$.verto.conf.prototype.muteVideo = function(memberID) {
if (!this.params.hasVid) {
throw 'Conference has no video';
}
this.modCommand("tvmute", parseInt(memberID));
};
$.verto.conf.prototype.presenter = function(memberID) {
if (!this.params.hasVid) {
throw 'Conference has no video';
}
this.modCommand("vid-res-id", parseInt(memberID), "presenter");
};
$.verto.conf.prototype.videoFloor = function(memberID) {
if (!this.params.hasVid) {
throw 'Conference has no video';
}
this.modCommand("vid-floor", parseInt(memberID), "force");
};
$.verto.conf.prototype.banner = function(memberID, text) {
if (!this.params.hasVid) {
throw 'Conference has no video';
}
this.modCommand("vid-banner", parseInt(memberID), escape(text));
};
$.verto.conf.prototype.volumeDown = function(memberID) {
if (!this.params.hasVid) {
throw 'Conference has no video';
}
this.modCommand("volume_in", parseInt(memberID), "down");
};
$.verto.conf.prototype.volumeUp = function(memberID) {
if (!this.params.hasVid) {
throw 'Conference has no video';
}
this.modCommand("volume_in", parseInt(memberID), "up");
};
$.verto.conf.prototype.transfer = function(memberID, exten) {
if (!this.params.hasVid) {
throw 'Conference has no video';
}
this.modCommand("transfer", parseInt(memberID), "exten");
};
}
$.verto.modfuncs = {};
$.verto.confMan = function(verto, params) {