diff --git a/index.html b/index.html index 96ad9aa61..2e245d271 100644 --- a/index.html +++ b/index.html @@ -20,7 +20,7 @@ - + diff --git a/libs/app.bundle.js b/libs/app.bundle.js index f0ff92229..eb67ed262 100644 --- a/libs/app.bundle.js +++ b/libs/app.bundle.js @@ -447,7 +447,7 @@ $(window).bind('beforeunload', function () { module.exports = APP; -},{"./modules/API/API":4,"./modules/DTMF/DTMF":5,"./modules/RTC/RTC":9,"./modules/UI/UI":13,"./modules/config/HttpConfigFetch":44,"./modules/config/URLProcessor":45,"./modules/connectionquality/connectionquality":47,"./modules/desktopsharing/desktopsharing":48,"./modules/keyboardshortcut/keyboardshortcut":49,"./modules/members/MemberList":50,"./modules/settings/Settings":51,"./modules/statistics/statistics":55,"./modules/translation/translation":56,"./modules/xmpp/xmpp":72}],4:[function(require,module,exports){ +},{"./modules/API/API":4,"./modules/DTMF/DTMF":5,"./modules/RTC/RTC":9,"./modules/UI/UI":13,"./modules/config/HttpConfigFetch":44,"./modules/config/URLProcessor":45,"./modules/connectionquality/connectionquality":47,"./modules/desktopsharing/desktopsharing":48,"./modules/keyboardshortcut/keyboardshortcut":49,"./modules/members/MemberList":50,"./modules/settings/Settings":51,"./modules/statistics/statistics":55,"./modules/translation/translation":56,"./modules/xmpp/xmpp":73}],4:[function(require,module,exports){ /* global APP */ /** * Implements API class that communicates with external api class @@ -667,7 +667,7 @@ var API = { }; module.exports = API; -},{"../../service/xmpp/XMPPEvents":176}],5:[function(require,module,exports){ +},{"../../service/xmpp/XMPPEvents":177}],5:[function(require,module,exports){ /* global APP */ /** @@ -909,7 +909,7 @@ function onPinnedEndpointChanged(userResource) { module.exports = DataChannels; -},{"../../service/RTC/RTCEvents":167}],7:[function(require,module,exports){ +},{"../../service/RTC/RTCEvents":168}],7:[function(require,module,exports){ /* global APP */ var StreamEventTypes = require("../../service/RTC/StreamEventTypes.js"); var RTCEvents = require("../../service/RTC/RTCEvents"); @@ -1035,7 +1035,7 @@ LocalStream.prototype.getId = function () { module.exports = LocalStream; -},{"../../service/RTC/RTCEvents":167,"../../service/RTC/StreamEventTypes.js":169,"./RTCBrowserType":10}],8:[function(require,module,exports){ +},{"../../service/RTC/RTCEvents":168,"../../service/RTC/StreamEventTypes.js":170,"./RTCBrowserType":10}],8:[function(require,module,exports){ var MediaStreamType = require("../../service/RTC/MediaStreamTypes"); /** @@ -1084,7 +1084,7 @@ MediaStream.prototype.setMute = function (value) { module.exports = MediaStream; -},{"../../service/RTC/MediaStreamTypes":166}],9:[function(require,module,exports){ +},{"../../service/RTC/MediaStreamTypes":167}],9:[function(require,module,exports){ /* global APP */ var EventEmitter = require("events"); var RTCBrowserType = require("./RTCBrowserType"); @@ -1361,7 +1361,7 @@ var RTC = { module.exports = RTC; -},{"../../service/RTC/MediaStreamTypes":166,"../../service/RTC/RTCEvents.js":167,"../../service/RTC/StreamEventTypes.js":169,"../../service/UI/UIEvents":170,"../../service/desktopsharing/DesktopSharingEventTypes":173,"../../service/xmpp/XMPPEvents":176,"./DataChannels":6,"./LocalStream.js":7,"./MediaStream.js":8,"./RTCBrowserType":10,"./RTCUtils.js":11,"events":1}],10:[function(require,module,exports){ +},{"../../service/RTC/MediaStreamTypes":167,"../../service/RTC/RTCEvents.js":168,"../../service/RTC/StreamEventTypes.js":170,"../../service/UI/UIEvents":171,"../../service/desktopsharing/DesktopSharingEventTypes":174,"../../service/xmpp/XMPPEvents":177,"./DataChannels":6,"./LocalStream.js":7,"./MediaStream.js":8,"./RTCBrowserType":10,"./RTCUtils.js":11,"events":1}],10:[function(require,module,exports){ var currentBrowser; @@ -2095,7 +2095,7 @@ RTCUtils.prototype.createStream = function(stream, isVideo) { module.exports = RTCUtils; -},{"../../service/RTC/Resolutions":168,"../xmpp/SDPUtil":62,"./RTCBrowserType":10,"./adapter.screenshare":12}],12:[function(require,module,exports){ +},{"../../service/RTC/Resolutions":169,"../xmpp/SDPUtil":62,"./RTCBrowserType":10,"./adapter.screenshare":12}],12:[function(require,module,exports){ /*! adapterjs - custom version from - 2015-08-19 */ // Adapter's interface. @@ -4147,7 +4147,7 @@ UI.setVideoMute = setVideoMute; module.exports = UI; -},{"../../service/RTC/RTCEvents":167,"../../service/RTC/StreamEventTypes":169,"../../service/UI/UIEvents":170,"../../service/connectionquality/CQEvents":172,"../../service/desktopsharing/DesktopSharingEventTypes":173,"../../service/members/Events":174,"../../service/xmpp/XMPPEvents":176,"../RTC/RTCBrowserType":10,"./../settings/Settings":51,"./audio_levels/AudioLevels.js":14,"./authentication/Authentication":16,"./avatar/Avatar":18,"./etherpad/Etherpad.js":19,"./prezi/Prezi.js":20,"./side_pannels/SidePanelToggler":22,"./side_pannels/chat/Chat.js":23,"./side_pannels/contactlist/ContactList":27,"./side_pannels/settings/SettingsMenu":28,"./toolbars/BottomToolbar":29,"./toolbars/Toolbar":30,"./toolbars/ToolbarToggler":31,"./util/JitsiPopover":32,"./util/MessageHandler":33,"./util/NicknameHandler":34,"./util/UIUtil":35,"./videolayout/VideoLayout.js":41,"./welcome_page/RoomnameGenerator":42,"./welcome_page/WelcomePage":43,"events":1}],14:[function(require,module,exports){ +},{"../../service/RTC/RTCEvents":168,"../../service/RTC/StreamEventTypes":170,"../../service/UI/UIEvents":171,"../../service/connectionquality/CQEvents":173,"../../service/desktopsharing/DesktopSharingEventTypes":174,"../../service/members/Events":175,"../../service/xmpp/XMPPEvents":177,"../RTC/RTCBrowserType":10,"./../settings/Settings":51,"./audio_levels/AudioLevels.js":14,"./authentication/Authentication":16,"./avatar/Avatar":18,"./etherpad/Etherpad.js":19,"./prezi/Prezi.js":20,"./side_pannels/SidePanelToggler":22,"./side_pannels/chat/Chat.js":23,"./side_pannels/contactlist/ContactList":27,"./side_pannels/settings/SettingsMenu":28,"./toolbars/BottomToolbar":29,"./toolbars/Toolbar":30,"./toolbars/ToolbarToggler":31,"./util/JitsiPopover":32,"./util/MessageHandler":33,"./util/NicknameHandler":34,"./util/UIUtil":35,"./videolayout/VideoLayout.js":41,"./welcome_page/RoomnameGenerator":42,"./welcome_page/WelcomePage":43,"events":1}],14:[function(require,module,exports){ /* global APP, interfaceConfig, $, Strophe */ var CanvasUtil = require("./CanvasUtils"); @@ -4879,7 +4879,7 @@ var LoginDialog = { }; module.exports = LoginDialog; -},{"../../xmpp/moderator":64,"../../xmpp/xmpp":72}],18:[function(require,module,exports){ +},{"../../xmpp/moderator":64,"../../xmpp/xmpp":73}],18:[function(require,module,exports){ var Settings = require("../../settings/Settings"); var users = {}; @@ -6246,7 +6246,7 @@ var Chat = (function (my) { return my; }(Chat || {})); module.exports = Chat; -},{"../../../../service/UI/UIEvents":170,"../../toolbars/ToolbarToggler":31,"../../util/NicknameHandler":34,"../../util/UIUtil":35,"../SidePanelToggler":22,"./Commands":24,"./Replacement":25,"./smileys.json":26}],24:[function(require,module,exports){ +},{"../../../../service/UI/UIEvents":171,"../../toolbars/ToolbarToggler":31,"../../util/NicknameHandler":34,"../../util/UIUtil":35,"../SidePanelToggler":22,"./Commands":24,"./Replacement":25,"./smileys.json":26}],24:[function(require,module,exports){ /* global APP, require */ var UIUtil = require("../../util/UIUtil"); @@ -6751,7 +6751,7 @@ var SettingsMenu = { module.exports = SettingsMenu; -},{"../../../../service/translation/languages":175,"../../avatar/Avatar":18,"../../util/UIUtil":35,"./../../../settings/Settings":51}],29:[function(require,module,exports){ +},{"../../../../service/translation/languages":176,"../../avatar/Avatar":18,"../../util/UIUtil":35,"./../../../settings/Settings":51}],29:[function(require,module,exports){ /* global $ */ var PanelToggler = require("../side_pannels/SidePanelToggler"); @@ -7476,7 +7476,7 @@ var Toolbar = (function (my) { }(Toolbar || {})); module.exports = Toolbar; -},{"../../../service/authentication/AuthenticationEvents":171,"../authentication/Authentication":16,"../etherpad/Etherpad":19,"../prezi/Prezi":20,"../side_pannels/SidePanelToggler":22,"../util/MessageHandler":33,"../util/UIUtil":35,"./BottomToolbar":29}],31:[function(require,module,exports){ +},{"../../../service/authentication/AuthenticationEvents":172,"../authentication/Authentication":16,"../etherpad/Etherpad":19,"../prezi/Prezi":20,"../side_pannels/SidePanelToggler":22,"../util/MessageHandler":33,"../util/UIUtil":35,"./BottomToolbar":29}],31:[function(require,module,exports){ /* global APP, config, $, interfaceConfig, Moderator, DesktopStreaming.showDesktopSharingButton */ @@ -8001,7 +8001,7 @@ var NicknameHandler = { }; module.exports = NicknameHandler; -},{"../../../service/UI/UIEvents":170}],35:[function(require,module,exports){ +},{"../../../service/UI/UIEvents":171}],35:[function(require,module,exports){ /* global $ */ /** * Created by hristo on 12/22/14. @@ -9166,7 +9166,7 @@ var LargeVideo = { }; module.exports = LargeVideo; -},{"../../../service/UI/UIEvents":170,"../../RTC/RTCBrowserType":10,"../../xmpp/xmpp":72,"../avatar/Avatar":18,"../toolbars/ToolbarToggler":31,"../util/UIUtil":35}],38:[function(require,module,exports){ +},{"../../../service/UI/UIEvents":171,"../../RTC/RTCBrowserType":10,"../../xmpp/xmpp":73,"../avatar/Avatar":18,"../toolbars/ToolbarToggler":31,"../util/UIUtil":35}],38:[function(require,module,exports){ /* global $, interfaceConfig, APP */ var SmallVideo = require("./SmallVideo"); var ConnectionIndicator = require("./ConnectionIndicator"); @@ -11210,7 +11210,7 @@ var VideoLayout = (function (my) { }(VideoLayout || {})); module.exports = VideoLayout; -},{"../../../service/RTC/MediaStreamTypes":166,"../../../service/UI/UIEvents":170,"../../RTC/RTC":9,"../../RTC/RTCBrowserType":10,"../audio_levels/AudioLevels":14,"../prezi/Prezi":20,"../side_pannels/contactlist/ContactList":27,"../util/UIUtil":35,"./LargeVideo":37,"./LocalVideo":38,"./RemoteVideo":39}],42:[function(require,module,exports){ +},{"../../../service/RTC/MediaStreamTypes":167,"../../../service/UI/UIEvents":171,"../../RTC/RTC":9,"../../RTC/RTCBrowserType":10,"../audio_levels/AudioLevels":14,"../prezi/Prezi":20,"../side_pannels/contactlist/ContactList":27,"../util/UIUtil":35,"./LargeVideo":37,"./LocalVideo":38,"./RemoteVideo":39}],42:[function(require,module,exports){ //var nouns = [ //]; var pluralNouns = [ @@ -11795,7 +11795,7 @@ var ConnectionQuality = { }; module.exports = ConnectionQuality; -},{"../../service/connectionquality/CQEvents":172,"../../service/xmpp/XMPPEvents":176,"events":1}],48:[function(require,module,exports){ +},{"../../service/connectionquality/CQEvents":173,"../../service/xmpp/XMPPEvents":177,"events":1}],48:[function(require,module,exports){ /* global $, alert, APP, changeLocalVideo, chrome, config, getConferenceHandler, getUserMediaWithConstraints */ /** @@ -12184,7 +12184,7 @@ module.exports = { }; -},{"../../service/RTC/RTCEvents":167,"../../service/desktopsharing/DesktopSharingEventTypes":173,"../RTC/RTCBrowserType":10,"../RTC/adapter.screenshare":12,"events":1}],49:[function(require,module,exports){ +},{"../../service/RTC/RTCEvents":168,"../../service/desktopsharing/DesktopSharingEventTypes":174,"../RTC/RTCBrowserType":10,"../RTC/adapter.screenshare":12,"events":1}],49:[function(require,module,exports){ /* global APP, $ */ //maps keycode to character, id of popover for given function and function var shortcuts = {}; @@ -12412,7 +12412,7 @@ var Members = { module.exports = Members; -},{"../../service/members/Events":174,"../../service/xmpp/XMPPEvents":176,"events":1}],51:[function(require,module,exports){ +},{"../../service/members/Events":175,"../../service/xmpp/XMPPEvents":177,"events":1}],51:[function(require,module,exports){ var email = ''; var displayName = ''; var userId; @@ -12556,7 +12556,7 @@ var CallStats = { }; module.exports = CallStats; -},{"jssha":75,"socket.io-client":113}],53:[function(require,module,exports){ +},{"jssha":76,"socket.io-client":114}],53:[function(require,module,exports){ /* global config */ /** * Provides statistics for the local stream. @@ -13561,7 +13561,7 @@ var statistics = { module.exports = statistics; -},{"../../service/RTC/RTCEvents":167,"../../service/RTC/StreamEventTypes.js":169,"../../service/xmpp/XMPPEvents":176,"./CallStats":52,"./LocalStatsCollector.js":53,"./RTPStatsCollector.js":54,"events":1}],56:[function(require,module,exports){ +},{"../../service/RTC/RTCEvents":168,"../../service/RTC/StreamEventTypes.js":170,"../../service/xmpp/XMPPEvents":177,"./CallStats":52,"./LocalStatsCollector.js":53,"./RTPStatsCollector.js":54,"events":1}],56:[function(require,module,exports){ /* global $, require, config, interfaceConfig */ var i18n = require("i18next-client"); var languages = require("../../service/translation/languages"); @@ -13699,7 +13699,7 @@ module.exports = { } }; -},{"../../service/translation/languages":175,"../settings/Settings":51,"i18next-client":74}],57:[function(require,module,exports){ +},{"../../service/translation/languages":176,"../settings/Settings":51,"i18next-client":75}],57:[function(require,module,exports){ /* * JingleSession provides an API to manage a single Jingle session. We will * have different implementations depending on the underlying interface used @@ -13914,7 +13914,10 @@ JingleSessionPC.prototype.doInitialize = function () { this.hadstuncandidate = false; this.hadturncandidate = false; this.lasticecandidate = false; + // True if reconnect is in progress this.isreconnect = false; + // Set to true if the connection was ever stable + this.wasstable = false; this.peerconnection = new TraceablePeerConnection( this.connection.jingle.ice_config, @@ -13943,6 +13946,10 @@ JingleSessionPC.prototype.doInitialize = function () { }; this.peerconnection.onsignalingstatechange = function (event) { if (!(self && self.peerconnection)) return; + console.info("Signaling: " + this.peerconnection.signalingState); + if (self.peerconnection.signalingState === 'stable') { + self.wasstable = true; + } self.updateModifySourcesQueue(); }; /** @@ -13954,6 +13961,7 @@ JingleSessionPC.prototype.doInitialize = function () { */ this.peerconnection.oniceconnectionstatechange = function (event) { if (!(self && self.peerconnection)) return; + console.info("Ice: " + self.peerconnection.iceConnectionState); self.updateModifySourcesQueue(); switch (self.peerconnection.iceConnectionState) { case 'connected': @@ -13967,7 +13975,7 @@ JingleSessionPC.prototype.doInitialize = function () { case 'disconnected': self.isreconnect = true; // Informs interested parties that the connection has been interrupted. - if (self.peerconnection.signalingState === 'stable') + if (self.wasstable) self.eventEmitter.emit(XMPPEvents.CONNECTION_INTERRUPTED); break; case 'failed': @@ -15277,7 +15285,7 @@ JingleSessionPC.prototype.remoteStreamAdded = function (data, times) { module.exports = JingleSessionPC; -},{"../../service/xmpp/XMPPEvents":176,"../RTC/RTCBrowserType":10,"./JingleSession":57,"./LocalSSRCReplacement":59,"./SDP":60,"./SDPDiffer":61,"./SDPUtil":62,"./TraceablePeerConnection":63,"async":73,"sdp-transform":110}],59:[function(require,module,exports){ +},{"../../service/xmpp/XMPPEvents":177,"../RTC/RTCBrowserType":10,"./JingleSession":57,"./LocalSSRCReplacement":59,"./SDP":60,"./SDPDiffer":61,"./SDPUtil":62,"./TraceablePeerConnection":63,"async":74,"sdp-transform":111}],59:[function(require,module,exports){ /* global $ */ /* @@ -17153,7 +17161,7 @@ TraceablePeerConnection.prototype.getStats = function(callback, errback) { module.exports = TraceablePeerConnection; -},{"../../service/xmpp/XMPPEvents":176,"../RTC/RTC":9,"../RTC/RTCBrowserType.js":10,"./LocalSSRCReplacement":59,"sdp-interop":96,"sdp-simulcast":103,"sdp-transform":110}],64:[function(require,module,exports){ +},{"../../service/xmpp/XMPPEvents":177,"../RTC/RTC":9,"../RTC/RTCBrowserType.js":10,"./LocalSSRCReplacement":59,"sdp-interop":97,"sdp-simulcast":104,"sdp-transform":111}],64:[function(require,module,exports){ /* global $, $iq, APP, config, messageHandler, roomName, sessionTerminated, Strophe, Util */ var XMPPEvents = require("../../service/xmpp/XMPPEvents"); @@ -17589,7 +17597,7 @@ module.exports = Moderator; -},{"../../service/authentication/AuthenticationEvents":171,"../../service/xmpp/XMPPEvents":176,"../settings/Settings":51}],65:[function(require,module,exports){ +},{"../../service/authentication/AuthenticationEvents":172,"../../service/xmpp/XMPPEvents":177,"../settings/Settings":51}],65:[function(require,module,exports){ /* global $, $iq, config, connection, focusMucJid, messageHandler, Toolbar, Util */ var Moderator = require("./moderator"); @@ -18406,7 +18414,7 @@ module.exports = function(XMPP, eventEmitter) { }; -},{"../../service/xmpp/XMPPEvents":176,"./moderator":64}],67:[function(require,module,exports){ +},{"../../service/xmpp/XMPPEvents":177,"./moderator":64}],67:[function(require,module,exports){ /* jshint -W117 */ var JingleSession = require("./JingleSessionPC"); @@ -18749,7 +18757,7 @@ module.exports = function(XMPP, eventEmitter) { }; -},{"../../service/xmpp/XMPPEvents":176,"../RTC/RTCBrowserType":10,"./JingleSessionPC":58}],68:[function(require,module,exports){ +},{"../../service/xmpp/XMPPEvents":177,"../RTC/RTCBrowserType":10,"./JingleSessionPC":58}],68:[function(require,module,exports){ /* global Strophe */ module.exports = function () { @@ -18831,7 +18839,110 @@ module.exports = function (XMPP, eventEmitter) { } }); } -},{"../../service/xmpp/XMPPEvents":176}],70:[function(require,module,exports){ +},{"../../service/xmpp/XMPPEvents":177}],70:[function(require,module,exports){ +/* global $, $iq, Strophe */ + +var XMPPEvents = require("../../service/xmpp/XMPPEvents"); + +/** + * Ping every 20 sec + */ +var PING_INTERVAL = 20000; + +/** + * Ping timeout error after 15 sec of waiting. + */ +var PING_TIMEOUT = 15000; + +/** + * Will close the connection after 3 consecutive ping errors. + */ +var PING_THRESHOLD = 3; + +/** + * XEP-0199 ping plugin. + * + * Registers "urn:xmpp:ping" namespace under Strophe.NS.PING. + */ +module.exports = function (XMPP, eventEmitter) { + Strophe.addConnectionPlugin('ping', { + + connection: null, + + failedPings: 0, + + /** + * Initializes the plugin. Method called by Strophe. + * @param connection Strophe connection instance. + */ + init: function (connection) { + this.connection = connection; + Strophe.addNamespace('PING', "urn:xmpp:ping"); + }, + + /** + * Sends "ping" to given jid + * @param jid the JID to which ping request will be sent. + * @param success callback called on success. + * @param error callback called on error. + * @param timeout ms how long are we going to wait for the response. On + * timeout error callback is called with undefined error + * argument. + */ + ping: function (jid, success, error, timeout) { + var iq = $iq({type: 'get', to: jid}); + iq.c('ping', {xmlns: Strophe.NS.PING}); + this.connection.sendIQ(iq, success, error, timeout); + }, + + /** + * Starts to send ping in given interval to specified remote JID. + * This plugin supports only one such task and stopInterval + * must be called before starting a new one. + * @param remoteJid remote JID to which ping requests will be sent to. + * @param interval task interval in ms. + */ + startInterval: function (remoteJid, interval) { + if (this.intervalId) { + console.error("Ping task scheduled already"); + return; + } + if (!interval) + interval = PING_INTERVAL; + var self = this; + this.intervalId = window.setInterval(function () { + self.ping(remoteJid, + function (result) { + // Ping OK + self.failedPings = 0; + }, + function (error) { + self.failedPings += 1; + console.error( + "Ping " + (error ? "error" : "timeout"), error); + if (self.failedPings >= PING_THRESHOLD) { + self.connection.disconnect(); + } + }, PING_TIMEOUT); + }, interval); + console.info("XMPP pings will be sent every " + interval + " ms"); + }, + + /** + * Stops current "ping" interval task. + */ + stopInterval: function () { + if (this.intervalId) { + window.clearInterval(this.intervalId); + this.intervalId = null; + this.failedPings = 0; + console.info("Ping interval cleared"); + } + } + }); +}; + +},{"../../service/xmpp/XMPPEvents":177}],71:[function(require,module,exports){ /* jshint -W117 */ module.exports = function() { Strophe.addConnectionPlugin('rayo', @@ -18928,7 +19039,7 @@ module.exports = function() { ); }; -},{}],71:[function(require,module,exports){ +},{}],72:[function(require,module,exports){ /** * Strophe logger implementation. Logs from level WARN and above. */ @@ -18972,7 +19083,7 @@ module.exports = function () { }; }; -},{}],72:[function(require,module,exports){ +},{}],73:[function(require,module,exports){ /* global $, APP, config, Strophe*/ var Moderator = require("./moderator"); var EventEmitter = require("events"); @@ -19062,6 +19173,8 @@ function connect(jid, password) { console.info("My Jabber ID: " + connection.jid); + connection.ping.startInterval(config.hosts.domain); + if (password) authenticatedUser = true; maybeDoJoin(); @@ -19073,6 +19186,8 @@ function connect(jid, password) { } lastErrorMsg = msg; } else if (status === Strophe.Status.DISCONNECTED) { + // Stop ping interval + connection.ping.stopInterval(); if (anonymousConnectionFailed) { // prompt user for username and password XMPP.promptLogin(); @@ -19142,6 +19257,7 @@ function initStrophePlugins() require("./strophe.jingle")(XMPP, eventEmitter); require("./strophe.moderate")(XMPP, eventEmitter); require("./strophe.util")(); + require("./strophe.ping")(XMPP, eventEmitter); require("./strophe.rayo")(); require("./strophe.logger")(); } @@ -19543,7 +19659,7 @@ var XMPP = { module.exports = XMPP; -},{"../../service/RTC/RTCEvents":167,"../../service/RTC/StreamEventTypes":169,"../../service/xmpp/XMPPEvents":176,"../settings/Settings":51,"./SDP":60,"./moderator":64,"./recording":65,"./strophe.emuc":66,"./strophe.jingle":67,"./strophe.logger":68,"./strophe.moderate":69,"./strophe.rayo":70,"./strophe.util":71,"events":1,"pako":76,"retry":92}],73:[function(require,module,exports){ +},{"../../service/RTC/RTCEvents":168,"../../service/RTC/StreamEventTypes":170,"../../service/xmpp/XMPPEvents":177,"../settings/Settings":51,"./SDP":60,"./moderator":64,"./recording":65,"./strophe.emuc":66,"./strophe.jingle":67,"./strophe.logger":68,"./strophe.moderate":69,"./strophe.ping":70,"./strophe.rayo":71,"./strophe.util":72,"events":1,"pako":77,"retry":93}],74:[function(require,module,exports){ (function (process){ /*! * async @@ -20670,7 +20786,7 @@ module.exports = XMPP; }()); }).call(this,require('_process')) -},{"_process":2}],74:[function(require,module,exports){ +},{"_process":2}],75:[function(require,module,exports){ // i18next, v1.7.7 // Copyright (c)2014 Jan Mühlemann (jamuhl). // Distributed under MIT license @@ -22793,7 +22909,7 @@ module.exports = XMPP; i18n.options = o; })(); -},{"jquery":"jquery"}],75:[function(require,module,exports){ +},{"jquery":"jquery"}],76:[function(require,module,exports){ /* A JavaScript implementation of the SHA family of hashes, as defined in FIPS PUB 180-2 as well as the corresponding HMAC implementation @@ -22829,7 +22945,7 @@ d[2]),new e(355462360,d[3]),new e(1731405415,d[4]),new e(41048885895,d[5]),new e new e(a[m*x+p],a[m*x+p+1]):y(E(A[m-2]),A[m-7],D(A[m-15]),A[m-16]),v=C(u,G(l),H(l,r,t),k[m],A[m]),z=q(F(c),I(c,g,f)),u=t,t=r,r=l,l=q(h,v),h=f,f=g,g=c,c=q(v,z);d[0]=q(c,d[0]);d[1]=q(g,d[1]);d[2]=q(f,d[2]);d[3]=q(h,d[3]);d[4]=q(l,d[4]);d[5]=q(r,d[5]);d[6]=q(t,d[6]);d[7]=q(u,d[7])}if("SHA-224"===b)a=[d[0],d[1],d[2],d[3],d[4],d[5],d[6]];else if("SHA-256"===b)a=d;else if("SHA-384"===b)a=[d[0].a,d[0].b,d[1].a,d[1].b,d[2].a,d[2].b,d[3].a,d[3].b,d[4].a,d[4].b,d[5].a,d[5].b];else if("SHA-512"===b)a=[d[0].a, d[0].b,d[1].a,d[1].b,d[2].a,d[2].b,d[3].a,d[3].b,d[4].a,d[4].b,d[5].a,d[5].b,d[6].a,d[6].b,d[7].a,d[7].b];else throw"Unexpected error in SHA-2 implementation";return a}"function"===typeof define&&typeof define.amd?define(function(){return z}):"undefined"!==typeof exports?"undefined"!==typeof module&&module.exports?module.exports=exports=z:exports=z:T.jsSHA=z})(this); -},{}],76:[function(require,module,exports){ +},{}],77:[function(require,module,exports){ // Top level file is just a mixin of submodules & constants 'use strict'; @@ -22845,7 +22961,7 @@ assign(pako, deflate, inflate, constants); module.exports = pako; -},{"./lib/deflate":77,"./lib/inflate":78,"./lib/utils/common":79,"./lib/zlib/constants":82}],77:[function(require,module,exports){ +},{"./lib/deflate":78,"./lib/inflate":79,"./lib/utils/common":80,"./lib/zlib/constants":83}],78:[function(require,module,exports){ 'use strict'; @@ -23223,7 +23339,7 @@ exports.deflate = deflate; exports.deflateRaw = deflateRaw; exports.gzip = gzip; -},{"./utils/common":79,"./utils/strings":80,"./zlib/deflate.js":84,"./zlib/messages":89,"./zlib/zstream":91}],78:[function(require,module,exports){ +},{"./utils/common":80,"./utils/strings":81,"./zlib/deflate.js":85,"./zlib/messages":90,"./zlib/zstream":92}],79:[function(require,module,exports){ 'use strict'; @@ -23604,7 +23720,7 @@ exports.inflate = inflate; exports.inflateRaw = inflateRaw; exports.ungzip = inflate; -},{"./utils/common":79,"./utils/strings":80,"./zlib/constants":82,"./zlib/gzheader":85,"./zlib/inflate.js":87,"./zlib/messages":89,"./zlib/zstream":91}],79:[function(require,module,exports){ +},{"./utils/common":80,"./utils/strings":81,"./zlib/constants":83,"./zlib/gzheader":86,"./zlib/inflate.js":88,"./zlib/messages":90,"./zlib/zstream":92}],80:[function(require,module,exports){ 'use strict'; @@ -23708,7 +23824,7 @@ exports.setTyped = function (on) { exports.setTyped(TYPED_OK); -},{}],80:[function(require,module,exports){ +},{}],81:[function(require,module,exports){ // String encode/decode helpers 'use strict'; @@ -23895,7 +24011,7 @@ exports.utf8border = function(buf, max) { return (pos + _utf8len[buf[pos]] > max) ? pos : max; }; -},{"./common":79}],81:[function(require,module,exports){ +},{"./common":80}],82:[function(require,module,exports){ 'use strict'; // Note: adler32 takes 12% for level 0 and 2% for level 6. @@ -23929,7 +24045,7 @@ function adler32(adler, buf, len, pos) { module.exports = adler32; -},{}],82:[function(require,module,exports){ +},{}],83:[function(require,module,exports){ module.exports = { /* Allowed flush values; see deflate() and inflate() below for details */ @@ -23978,7 +24094,7 @@ module.exports = { //Z_NULL: null // Use -1 or null inline, depending on var type }; -},{}],83:[function(require,module,exports){ +},{}],84:[function(require,module,exports){ 'use strict'; // Note: we can't get significant speed boost here. @@ -24021,7 +24137,7 @@ function crc32(crc, buf, len, pos) { module.exports = crc32; -},{}],84:[function(require,module,exports){ +},{}],85:[function(require,module,exports){ 'use strict'; var utils = require('../utils/common'); @@ -25788,7 +25904,7 @@ exports.deflatePrime = deflatePrime; exports.deflateTune = deflateTune; */ -},{"../utils/common":79,"./adler32":81,"./crc32":83,"./messages":89,"./trees":90}],85:[function(require,module,exports){ +},{"../utils/common":80,"./adler32":82,"./crc32":84,"./messages":90,"./trees":91}],86:[function(require,module,exports){ 'use strict'; @@ -25830,7 +25946,7 @@ function GZheader() { module.exports = GZheader; -},{}],86:[function(require,module,exports){ +},{}],87:[function(require,module,exports){ 'use strict'; // See state defs from inflate.js @@ -26157,7 +26273,7 @@ module.exports = function inflate_fast(strm, start) { return; }; -},{}],87:[function(require,module,exports){ +},{}],88:[function(require,module,exports){ 'use strict'; @@ -27662,7 +27778,7 @@ exports.inflateSyncPoint = inflateSyncPoint; exports.inflateUndermine = inflateUndermine; */ -},{"../utils/common":79,"./adler32":81,"./crc32":83,"./inffast":86,"./inftrees":88}],88:[function(require,module,exports){ +},{"../utils/common":80,"./adler32":82,"./crc32":84,"./inffast":87,"./inftrees":89}],89:[function(require,module,exports){ 'use strict'; @@ -27991,7 +28107,7 @@ module.exports = function inflate_table(type, lens, lens_index, codes, table, ta return 0; }; -},{"../utils/common":79}],89:[function(require,module,exports){ +},{"../utils/common":80}],90:[function(require,module,exports){ 'use strict'; module.exports = { @@ -28006,7 +28122,7 @@ module.exports = { '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ }; -},{}],90:[function(require,module,exports){ +},{}],91:[function(require,module,exports){ 'use strict'; @@ -29207,7 +29323,7 @@ exports._tr_flush_block = _tr_flush_block; exports._tr_tally = _tr_tally; exports._tr_align = _tr_align; -},{"../utils/common":79}],91:[function(require,module,exports){ +},{"../utils/common":80}],92:[function(require,module,exports){ 'use strict'; @@ -29238,9 +29354,9 @@ function ZStream() { module.exports = ZStream; -},{}],92:[function(require,module,exports){ +},{}],93:[function(require,module,exports){ module.exports = require('./lib/retry'); -},{"./lib/retry":93}],93:[function(require,module,exports){ +},{"./lib/retry":94}],94:[function(require,module,exports){ var RetryOperation = require('./retry_operation'); exports.operation = function(options) { @@ -29291,7 +29407,7 @@ exports._createTimeout = function(attempt, opts) { return timeout; }; -},{"./retry_operation":94}],94:[function(require,module,exports){ +},{"./retry_operation":95}],95:[function(require,module,exports){ function RetryOperation(timeouts) { this._timeouts = timeouts; this._fn = null; @@ -29401,7 +29517,7 @@ RetryOperation.prototype.mainError = function() { return mainError; }; -},{}],95:[function(require,module,exports){ +},{}],96:[function(require,module,exports){ module.exports = function arrayEquals(array) { // if the other array is a falsy value, return if (!array) @@ -29427,10 +29543,10 @@ module.exports = function arrayEquals(array) { } -},{}],96:[function(require,module,exports){ +},{}],97:[function(require,module,exports){ exports.Interop = require('./interop'); -},{"./interop":97}],97:[function(require,module,exports){ +},{"./interop":98}],98:[function(require,module,exports){ "use strict"; var transform = require('./transform'); @@ -30012,7 +30128,7 @@ Interop.prototype.toUnifiedPlan = function(desc) { //#endregion }; -},{"./array-equals":95,"./transform":98}],98:[function(require,module,exports){ +},{"./array-equals":96,"./transform":99}],99:[function(require,module,exports){ var transform = require('sdp-transform'); exports.write = function(session, opts) { @@ -30111,7 +30227,7 @@ exports.parse = function(sdp) { }; -},{"sdp-transform":100}],99:[function(require,module,exports){ +},{"sdp-transform":101}],100:[function(require,module,exports){ var grammar = module.exports = { v: [{ name: 'version', @@ -30360,7 +30476,7 @@ Object.keys(grammar).forEach(function (key) { }); }); -},{}],100:[function(require,module,exports){ +},{}],101:[function(require,module,exports){ var parser = require('./parser'); var writer = require('./writer'); @@ -30370,7 +30486,7 @@ exports.parseFmtpConfig = parser.parseFmtpConfig; exports.parsePayloads = parser.parsePayloads; exports.parseRemoteCandidates = parser.parseRemoteCandidates; -},{"./parser":101,"./writer":102}],101:[function(require,module,exports){ +},{"./parser":102,"./writer":103}],102:[function(require,module,exports){ var toIntIfInt = function (v) { return String(Number(v)) === v ? Number(v) : v; }; @@ -30465,7 +30581,7 @@ exports.parseRemoteCandidates = function (str) { return candidates; }; -},{"./grammar":99}],102:[function(require,module,exports){ +},{"./grammar":100}],103:[function(require,module,exports){ var grammar = require('./grammar'); // customized util.format - discards excess arguments and can void middle ones @@ -30581,7 +30697,7 @@ module.exports = function (session, opts) { return sdp.join('\r\n') + '\r\n'; }; -},{"./grammar":99}],103:[function(require,module,exports){ +},{"./grammar":100}],104:[function(require,module,exports){ var transform = require('sdp-transform'); var transformUtils = require('./transform-utils'); var parseSsrcs = transformUtils.parseSsrcs; @@ -30983,7 +31099,7 @@ Simulcast.prototype.mungeLocalDescription = function (desc) { module.exports = Simulcast; -},{"./transform-utils":104,"sdp-transform":106}],104:[function(require,module,exports){ +},{"./transform-utils":105,"sdp-transform":107}],105:[function(require,module,exports){ exports.writeSsrcs = function(sources, order) { var ssrcs = []; @@ -31034,15 +31150,15 @@ exports.parseSsrcs = function (mLine) { }; -},{}],105:[function(require,module,exports){ -arguments[4][99][0].apply(exports,arguments) -},{"dup":99}],106:[function(require,module,exports){ +},{}],106:[function(require,module,exports){ arguments[4][100][0].apply(exports,arguments) -},{"./parser":107,"./writer":108,"dup":100}],107:[function(require,module,exports){ +},{"dup":100}],107:[function(require,module,exports){ arguments[4][101][0].apply(exports,arguments) -},{"./grammar":105,"dup":101}],108:[function(require,module,exports){ +},{"./parser":108,"./writer":109,"dup":101}],108:[function(require,module,exports){ arguments[4][102][0].apply(exports,arguments) -},{"./grammar":105,"dup":102}],109:[function(require,module,exports){ +},{"./grammar":106,"dup":102}],109:[function(require,module,exports){ +arguments[4][103][0].apply(exports,arguments) +},{"./grammar":106,"dup":103}],110:[function(require,module,exports){ var grammar = module.exports = { v: [{ name: 'version', @@ -31293,9 +31409,9 @@ Object.keys(grammar).forEach(function (key) { }); }); -},{}],110:[function(require,module,exports){ -arguments[4][100][0].apply(exports,arguments) -},{"./parser":111,"./writer":112,"dup":100}],111:[function(require,module,exports){ +},{}],111:[function(require,module,exports){ +arguments[4][101][0].apply(exports,arguments) +},{"./parser":112,"./writer":113,"dup":101}],112:[function(require,module,exports){ var toIntIfInt = function (v) { return String(Number(v)) === v ? Number(v) : v; }; @@ -31390,13 +31506,13 @@ exports.parseRemoteCandidates = function (str) { return candidates; }; -},{"./grammar":109}],112:[function(require,module,exports){ -arguments[4][102][0].apply(exports,arguments) -},{"./grammar":109,"dup":102}],113:[function(require,module,exports){ +},{"./grammar":110}],113:[function(require,module,exports){ +arguments[4][103][0].apply(exports,arguments) +},{"./grammar":110,"dup":103}],114:[function(require,module,exports){ module.exports = require('./lib/'); -},{"./lib/":114}],114:[function(require,module,exports){ +},{"./lib/":115}],115:[function(require,module,exports){ /** * Module dependencies. @@ -31485,7 +31601,7 @@ exports.connect = lookup; exports.Manager = require('./manager'); exports.Socket = require('./socket'); -},{"./manager":115,"./socket":117,"./url":118,"debug":122,"socket.io-parser":159}],115:[function(require,module,exports){ +},{"./manager":116,"./socket":118,"./url":119,"debug":123,"socket.io-parser":160}],116:[function(require,module,exports){ /** * Module dependencies. @@ -31990,7 +32106,7 @@ Manager.prototype.onreconnect = function(){ this.emitAll('reconnect', attempt); }; -},{"./on":116,"./socket":117,"./url":118,"backo2":119,"component-bind":120,"component-emitter":121,"debug":122,"engine.io-client":123,"indexof":155,"object-component":156,"socket.io-parser":159}],116:[function(require,module,exports){ +},{"./on":117,"./socket":118,"./url":119,"backo2":120,"component-bind":121,"component-emitter":122,"debug":123,"engine.io-client":124,"indexof":156,"object-component":157,"socket.io-parser":160}],117:[function(require,module,exports){ /** * Module exports. @@ -32016,7 +32132,7 @@ function on(obj, ev, fn) { }; } -},{}],117:[function(require,module,exports){ +},{}],118:[function(require,module,exports){ /** * Module dependencies. @@ -32403,7 +32519,7 @@ Socket.prototype.disconnect = function(){ return this; }; -},{"./on":116,"component-bind":120,"component-emitter":121,"debug":122,"has-binary":153,"socket.io-parser":159,"to-array":165}],118:[function(require,module,exports){ +},{"./on":117,"component-bind":121,"component-emitter":122,"debug":123,"has-binary":154,"socket.io-parser":160,"to-array":166}],119:[function(require,module,exports){ (function (global){ /** @@ -32480,7 +32596,7 @@ function url(uri, loc){ } }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"debug":122,"parseuri":157}],119:[function(require,module,exports){ +},{"debug":123,"parseuri":158}],120:[function(require,module,exports){ /** * Expose `Backoff`. @@ -32567,7 +32683,7 @@ Backoff.prototype.setJitter = function(jitter){ }; -},{}],120:[function(require,module,exports){ +},{}],121:[function(require,module,exports){ /** * Slice reference. */ @@ -32592,7 +32708,7 @@ module.exports = function(obj, fn){ } }; -},{}],121:[function(require,module,exports){ +},{}],122:[function(require,module,exports){ /** * Expose `Emitter`. @@ -32758,7 +32874,7 @@ Emitter.prototype.hasListeners = function(event){ return !! this.listeners(event).length; }; -},{}],122:[function(require,module,exports){ +},{}],123:[function(require,module,exports){ /** * Expose `debug()` as the module. @@ -32897,11 +33013,11 @@ try { if (window.localStorage) debug.enable(localStorage.debug); } catch(e){} -},{}],123:[function(require,module,exports){ +},{}],124:[function(require,module,exports){ module.exports = require('./lib/'); -},{"./lib/":124}],124:[function(require,module,exports){ +},{"./lib/":125}],125:[function(require,module,exports){ module.exports = require('./socket'); @@ -32913,7 +33029,7 @@ module.exports = require('./socket'); */ module.exports.parser = require('engine.io-parser'); -},{"./socket":125,"engine.io-parser":138}],125:[function(require,module,exports){ +},{"./socket":126,"engine.io-parser":139}],126:[function(require,module,exports){ (function (global){ /** * Module dependencies. @@ -33622,7 +33738,7 @@ Socket.prototype.filterUpgrades = function (upgrades) { }; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./transport":126,"./transports":127,"component-emitter":133,"debug":135,"engine.io-parser":138,"indexof":155,"parsejson":149,"parseqs":150,"parseuri":151}],126:[function(require,module,exports){ +},{"./transport":127,"./transports":128,"component-emitter":134,"debug":136,"engine.io-parser":139,"indexof":156,"parsejson":150,"parseqs":151,"parseuri":152}],127:[function(require,module,exports){ /** * Module dependencies. */ @@ -33783,7 +33899,7 @@ Transport.prototype.onClose = function () { this.emit('close'); }; -},{"component-emitter":133,"engine.io-parser":138}],127:[function(require,module,exports){ +},{"component-emitter":134,"engine.io-parser":139}],128:[function(require,module,exports){ (function (global){ /** * Module dependencies @@ -33840,7 +33956,7 @@ function polling(opts){ } }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./polling-jsonp":128,"./polling-xhr":129,"./websocket":131,"xmlhttprequest":132}],128:[function(require,module,exports){ +},{"./polling-jsonp":129,"./polling-xhr":130,"./websocket":132,"xmlhttprequest":133}],129:[function(require,module,exports){ (function (global){ /** @@ -34077,7 +34193,7 @@ JSONPPolling.prototype.doWrite = function (data, fn) { }; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./polling":130,"component-inherit":134}],129:[function(require,module,exports){ +},{"./polling":131,"component-inherit":135}],130:[function(require,module,exports){ (function (global){ /** * Module requirements. @@ -34465,7 +34581,7 @@ function unloadHandler() { } }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./polling":130,"component-emitter":133,"component-inherit":134,"debug":135,"xmlhttprequest":132}],130:[function(require,module,exports){ +},{"./polling":131,"component-emitter":134,"component-inherit":135,"debug":136,"xmlhttprequest":133}],131:[function(require,module,exports){ /** * Module dependencies. */ @@ -34712,7 +34828,7 @@ Polling.prototype.uri = function(){ return schema + '://' + this.hostname + port + this.path + query; }; -},{"../transport":126,"component-inherit":134,"debug":135,"engine.io-parser":138,"parseqs":150,"xmlhttprequest":132}],131:[function(require,module,exports){ +},{"../transport":127,"component-inherit":135,"debug":136,"engine.io-parser":139,"parseqs":151,"xmlhttprequest":133}],132:[function(require,module,exports){ /** * Module dependencies. */ @@ -34952,7 +35068,7 @@ WS.prototype.check = function(){ return !!WebSocket && !('__initialize' in WebSocket && this.name === WS.prototype.name); }; -},{"../transport":126,"component-inherit":134,"debug":135,"engine.io-parser":138,"parseqs":150,"ws":152}],132:[function(require,module,exports){ +},{"../transport":127,"component-inherit":135,"debug":136,"engine.io-parser":139,"parseqs":151,"ws":153}],133:[function(require,module,exports){ // browser shim for xmlhttprequest module var hasCORS = require('has-cors'); @@ -34990,9 +35106,9 @@ module.exports = function(opts) { } } -},{"has-cors":147}],133:[function(require,module,exports){ -arguments[4][121][0].apply(exports,arguments) -},{"dup":121}],134:[function(require,module,exports){ +},{"has-cors":148}],134:[function(require,module,exports){ +arguments[4][122][0].apply(exports,arguments) +},{"dup":122}],135:[function(require,module,exports){ module.exports = function(a, b){ var fn = function(){}; @@ -35000,7 +35116,7 @@ module.exports = function(a, b){ a.prototype = new fn; a.prototype.constructor = a; }; -},{}],135:[function(require,module,exports){ +},{}],136:[function(require,module,exports){ /** * This is the web browser implementation of `debug()`. @@ -35149,7 +35265,7 @@ function load() { exports.enable(load()); -},{"./debug":136}],136:[function(require,module,exports){ +},{"./debug":137}],137:[function(require,module,exports){ /** * This is the common logic for both the Node.js and web browser @@ -35348,7 +35464,7 @@ function coerce(val) { return val; } -},{"ms":137}],137:[function(require,module,exports){ +},{"ms":138}],138:[function(require,module,exports){ /** * Helpers. */ @@ -35461,7 +35577,7 @@ function plural(ms, n, name) { return Math.ceil(ms / n) + ' ' + name + 's'; } -},{}],138:[function(require,module,exports){ +},{}],139:[function(require,module,exports){ (function (global){ /** * Module dependencies. @@ -36059,7 +36175,7 @@ exports.decodePayloadAsBinary = function (data, binaryType, callback) { }; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./keys":139,"after":140,"arraybuffer.slice":141,"base64-arraybuffer":142,"blob":143,"has-binary":144,"utf8":146}],139:[function(require,module,exports){ +},{"./keys":140,"after":141,"arraybuffer.slice":142,"base64-arraybuffer":143,"blob":144,"has-binary":145,"utf8":147}],140:[function(require,module,exports){ /** * Gets the keys for an object. @@ -36080,7 +36196,7 @@ module.exports = Object.keys || function keys (obj){ return arr; }; -},{}],140:[function(require,module,exports){ +},{}],141:[function(require,module,exports){ module.exports = after function after(count, callback, err_cb) { @@ -36110,7 +36226,7 @@ function after(count, callback, err_cb) { function noop() {} -},{}],141:[function(require,module,exports){ +},{}],142:[function(require,module,exports){ /** * An abstraction for slicing an arraybuffer even when * ArrayBuffer.prototype.slice is not supported @@ -36141,7 +36257,7 @@ module.exports = function(arraybuffer, start, end) { return result.buffer; }; -},{}],142:[function(require,module,exports){ +},{}],143:[function(require,module,exports){ /* * base64-arraybuffer * https://github.com/niklasvh/base64-arraybuffer @@ -36202,7 +36318,7 @@ module.exports = function(arraybuffer, start, end) { }; })("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); -},{}],143:[function(require,module,exports){ +},{}],144:[function(require,module,exports){ (function (global){ /** * Create a blob builder even when vendor prefixes exist @@ -36255,7 +36371,7 @@ module.exports = (function() { })(); }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],144:[function(require,module,exports){ +},{}],145:[function(require,module,exports){ (function (global){ /* @@ -36317,12 +36433,12 @@ function hasBinary(data) { } }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"isarray":145}],145:[function(require,module,exports){ +},{"isarray":146}],146:[function(require,module,exports){ module.exports = Array.isArray || function (arr) { return Object.prototype.toString.call(arr) == '[object Array]'; }; -},{}],146:[function(require,module,exports){ +},{}],147:[function(require,module,exports){ (function (global){ /*! http://mths.be/utf8js v2.0.0 by @mathias */ ;(function(root) { @@ -36565,7 +36681,7 @@ module.exports = Array.isArray || function (arr) { }(this)); }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],147:[function(require,module,exports){ +},{}],148:[function(require,module,exports){ /** * Module dependencies. @@ -36590,7 +36706,7 @@ try { module.exports = false; } -},{"global":148}],148:[function(require,module,exports){ +},{"global":149}],149:[function(require,module,exports){ /** * Returns `this`. Execute this without a "context" (i.e. without it being @@ -36600,7 +36716,7 @@ try { module.exports = (function () { return this; })(); -},{}],149:[function(require,module,exports){ +},{}],150:[function(require,module,exports){ (function (global){ /** * JSON parse. @@ -36635,7 +36751,7 @@ module.exports = function parsejson(data) { } }; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],150:[function(require,module,exports){ +},{}],151:[function(require,module,exports){ /** * Compiles a querystring * Returns string representation of the object @@ -36674,7 +36790,7 @@ exports.decode = function(qs){ return qry; }; -},{}],151:[function(require,module,exports){ +},{}],152:[function(require,module,exports){ /** * Parses an URI * @@ -36715,7 +36831,7 @@ module.exports = function parseuri(str) { return uri; }; -},{}],152:[function(require,module,exports){ +},{}],153:[function(require,module,exports){ /** * Module dependencies. @@ -36760,7 +36876,7 @@ function ws(uri, protocols, opts) { if (WebSocket) ws.prototype = WebSocket.prototype; -},{}],153:[function(require,module,exports){ +},{}],154:[function(require,module,exports){ (function (global){ /* @@ -36822,9 +36938,9 @@ function hasBinary(data) { } }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"isarray":154}],154:[function(require,module,exports){ -arguments[4][145][0].apply(exports,arguments) -},{"dup":145}],155:[function(require,module,exports){ +},{"isarray":155}],155:[function(require,module,exports){ +arguments[4][146][0].apply(exports,arguments) +},{"dup":146}],156:[function(require,module,exports){ var indexOf = [].indexOf; @@ -36835,7 +36951,7 @@ module.exports = function(arr, obj){ } return -1; }; -},{}],156:[function(require,module,exports){ +},{}],157:[function(require,module,exports){ /** * HOP ref. @@ -36920,7 +37036,7 @@ exports.length = function(obj){ exports.isEmpty = function(obj){ return 0 == exports.length(obj); }; -},{}],157:[function(require,module,exports){ +},{}],158:[function(require,module,exports){ /** * Parses an URI * @@ -36947,7 +37063,7 @@ module.exports = function parseuri(str) { return uri; }; -},{}],158:[function(require,module,exports){ +},{}],159:[function(require,module,exports){ (function (global){ /*global Blob,File*/ @@ -37092,7 +37208,7 @@ exports.removeBlobs = function(data, callback) { }; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./is-buffer":160,"isarray":163}],159:[function(require,module,exports){ +},{"./is-buffer":161,"isarray":164}],160:[function(require,module,exports){ /** * Module dependencies. @@ -37494,7 +37610,7 @@ function error(data){ }; } -},{"./binary":158,"./is-buffer":160,"component-emitter":161,"debug":162,"isarray":163,"json3":164}],160:[function(require,module,exports){ +},{"./binary":159,"./is-buffer":161,"component-emitter":162,"debug":163,"isarray":164,"json3":165}],161:[function(require,module,exports){ (function (global){ module.exports = isBuf; @@ -37511,13 +37627,13 @@ function isBuf(obj) { } }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],161:[function(require,module,exports){ -arguments[4][121][0].apply(exports,arguments) -},{"dup":121}],162:[function(require,module,exports){ +},{}],162:[function(require,module,exports){ arguments[4][122][0].apply(exports,arguments) },{"dup":122}],163:[function(require,module,exports){ -arguments[4][145][0].apply(exports,arguments) -},{"dup":145}],164:[function(require,module,exports){ +arguments[4][123][0].apply(exports,arguments) +},{"dup":123}],164:[function(require,module,exports){ +arguments[4][146][0].apply(exports,arguments) +},{"dup":146}],165:[function(require,module,exports){ /*! JSON v3.2.6 | http://bestiejs.github.io/json3 | Copyright 2012-2013, Kit Cambridge | http://kit.mit-license.org */ ;(function (window) { // Convenience aliases. @@ -38380,7 +38496,7 @@ arguments[4][145][0].apply(exports,arguments) } }(this)); -},{}],165:[function(require,module,exports){ +},{}],166:[function(require,module,exports){ module.exports = toArray function toArray(list, index) { @@ -38395,14 +38511,14 @@ function toArray(list, index) { return array } -},{}],166:[function(require,module,exports){ +},{}],167:[function(require,module,exports){ var MediaStreamType = { VIDEO_TYPE: "Video", AUDIO_TYPE: "Audio" }; module.exports = MediaStreamType; -},{}],167:[function(require,module,exports){ +},{}],168:[function(require,module,exports){ var RTCEvents = { RTC_READY: "rtc.ready", DATA_CHANNEL_OPEN: "rtc.data_channel_open", @@ -38415,7 +38531,7 @@ var RTCEvents = { }; module.exports = RTCEvents; -},{}],168:[function(require,module,exports){ +},{}],169:[function(require,module,exports){ var Resolutions = { "1080": { width: 1920, @@ -38469,7 +38585,7 @@ var Resolutions = { } }; module.exports = Resolutions; -},{}],169:[function(require,module,exports){ +},{}],170:[function(require,module,exports){ var StreamEventTypes = { EVENT_TYPE_LOCAL_CREATED: "stream.local_created", @@ -38483,7 +38599,7 @@ var StreamEventTypes = { }; module.exports = StreamEventTypes; -},{}],170:[function(require,module,exports){ +},{}],171:[function(require,module,exports){ var UIEvents = { NICKNAME_CHANGED: "UI.nickname_changed", SELECTED_ENDPOINT: "UI.selected_endpoint", @@ -38491,7 +38607,7 @@ var UIEvents = { LARGEVIDEO_INIT: "UI.largevideo_init" }; module.exports = UIEvents; -},{}],171:[function(require,module,exports){ +},{}],172:[function(require,module,exports){ var AuthenticationEvents = { /** * Event callback arguments: @@ -38505,7 +38621,7 @@ var AuthenticationEvents = { }; module.exports = AuthenticationEvents; -},{}],172:[function(require,module,exports){ +},{}],173:[function(require,module,exports){ var CQEvents = { LOCALSTATS_UPDATED: "cq.localstats_updated", REMOTESTATS_UPDATED: "cq.remotestats_updated", @@ -38513,7 +38629,7 @@ var CQEvents = { }; module.exports = CQEvents; -},{}],173:[function(require,module,exports){ +},{}],174:[function(require,module,exports){ var DesktopSharingEventTypes = { INIT: "ds.init", @@ -38523,14 +38639,14 @@ var DesktopSharingEventTypes = { }; module.exports = DesktopSharingEventTypes; -},{}],174:[function(require,module,exports){ +},{}],175:[function(require,module,exports){ var Events = { DTMF_SUPPORT_CHANGED: "members.dtmf_support_changed" }; module.exports = Events; -},{}],175:[function(require,module,exports){ +},{}],176:[function(require,module,exports){ module.exports = { getLanguages : function () { var languages = []; @@ -38547,7 +38663,7 @@ module.exports = { TR: "tr", FR: "fr" } -},{}],176:[function(require,module,exports){ +},{}],177:[function(require,module,exports){ var XMPPEvents = { // Designates an event indicating that the connection to the XMPP server // failed.