mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 09:36:46 +00:00
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:
committed by
Italo Rossi
parent
240cfef430
commit
d178092c2a
@@ -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) {
|
||||
|
Reference in New Issue
Block a user