No longer requires focus component and focusUserJid to be configured in config.js(but they can still be overridden there).

This commit is contained in:
paweldomas 2014-12-05 16:43:04 +01:00
parent 1729f7e17e
commit 933a41492e
3 changed files with 29 additions and 4 deletions

View File

@ -5,7 +5,7 @@ var config = {
muc: 'conference.jitsi-meet.example.com', // FIXME: use XEP-0030
bridge: 'jitsi-videobridge.jitsi-meet.example.com', // FIXME: use XEP-0030
//call_control: 'callcontrol.jitsi-meet.example.com',
focus: 'focus.jitsi-meet.example.com'
//focus: 'focus.jitsi-meet.example.com' - defaults to 'focus.jitsi-meet.example.com'
},
// getroomnode: function (path) { return 'someprefixpossiblybasedonpath'; },
// useStunTurn: true, // use XEP-0215 to fetch STUN and TURN server
@ -13,7 +13,7 @@ var config = {
useNicks: false,
bosh: '//jitsi-meet.example.com/http-bind', // FIXME: use xep-0156 for that
clientNode: 'http://jitsi.org/jitsimeet', // The name of client node advertised in XEP-0115 'c' stanza
focusUserJid: 'focus@auth.jitsi-meet.example.com', // The real JID of focus participant
//focusUserJid: 'focus@auth.jitsi-meet.example.com', // The real JID of focus participant - can be overridden here
//defaultSipNumber: '', // Default SIP number
desktopSharing: 'ext', // Desktop sharing method. Can be set to 'ext', 'webrtc' or false to disable.
chromeExtensionId: 'diibjkoicjeejcmhdnailmkgecihlobk', // Id of desktop streamer Chrome extension

View File

@ -6,6 +6,7 @@
*/
var Moderator = (function (my) {
var focusUserJid;
var getNextTimeout = Util.createExpBackoffTimer(1000);
var getNextErrorTimeout = Util.createExpBackoffTimer(1000);
@ -66,8 +67,26 @@ var Moderator = (function (my) {
);
};
my.setFocusUserJid = function (focusJid) {
if (!focusUserJid) {
focusUserJid = focusJid;
console.info("Focus jid set to: " + focusUserJid);
}
};
my.getFocusUserJid = function () {
return focusUserJid;
};
my.createConferenceIq = function () {
var elem = $iq({to: config.hosts.focus, type: 'set'});
// Get focus component address
var focusComponent = config.hosts.focus;
// If not specified use default: 'focus.domain'
if (!focusComponent) {
focusComponent = 'focus.' + config.hosts.domain;
}
// Generate create conference IQ
var elem = $iq({to: focusComponent, type: 'set'});
elem.c('conference', {
xmlns: 'http://jitsi.org/protocol/focus',
room: roomName
@ -114,6 +133,9 @@ var Moderator = (function (my) {
// FIXME: we need to show the fact that we're waiting for the focus
// to the user(or that focus is not available)
my.allocateConferenceFocus = function (roomName, callback) {
// Try to use focus user JID from the config
Moderator.setFocusUserJid(config.focusUserJid);
// Send create conference IQ
var iq = Moderator.createConferenceIq();
connection.sendIQ(
iq,
@ -122,6 +144,8 @@ var Moderator = (function (my) {
// Reset both timers
getNextTimeout(true);
getNextErrorTimeout(true);
Moderator.setFocusUserJid(
$(result).find('conference').attr('focusjid'));
callback();
} else {
var waitMs = getNextTimeout();

3
muc.js
View File

@ -126,7 +126,8 @@ Strophe.addConnectionPlugin('emuc', {
// Focus recognition
member.jid = tmp.attr('jid');
member.isFocus = false;
if (member.jid && member.jid.indexOf(config.focusUserJid + "/") == 0) {
if (member.jid
&& member.jid.indexOf(Moderator.getFocusUserJid() + "/") == 0) {
member.isFocus = true;
}