diff --git a/index.html b/index.html index 2e245d271..54d715410 100644 --- a/index.html +++ b/index.html @@ -20,7 +20,7 @@ - + diff --git a/libs/app.bundle.js b/libs/app.bundle.js index eb67ed262..780353540 100644 --- a/libs/app.bundle.js +++ b/libs/app.bundle.js @@ -3577,7 +3577,7 @@ function registerListeners() { APP.xmpp.addListener(XMPPEvents.ROOM_JOIN_ERROR, function (pres) { UI.messageHandler.openReportDialog(null, - "dialog.joinError", pres); + "dialog.connectError", pres); }); APP.xmpp.addListener(XMPPEvents.ROOM_CONNECT_ERROR, function (pres) { UI.messageHandler.openReportDialog(null, @@ -12501,8 +12501,7 @@ var CallStats = { this.userID = APP.xmpp.myResource(); var location = window.location; - this.confID = location.protocol + "//" + - location.hostname + location.pathname; + this.confID = location.hostname + location.pathname; //userID is generated or given by the origin server callStats.initialize(config.callStatsID, @@ -18895,6 +18894,26 @@ module.exports = function (XMPP, eventEmitter) { this.connection.sendIQ(iq, success, error, timeout); }, + /** + * Checks if given jid has XEP-0199 ping support. + * @param jid the JID to be checked for ping support. + * @param callback function with boolean argument which will be + * true if XEP-0199 ping is supported by given jid + */ + hasPingSupport: function (jid, callback) { + this.connection.disco.info( + jid, null, + function (result) { + var ping = $(result).find('>>feature[var="urn:xmpp:ping"]'); + callback(ping.length > 0); + }, + function (error) { + console.error("Ping feature discovery error", error); + callback(false); + } + ); + }, + /** * Starts to send ping in given interval to specified remote JID. * This plugin supports only one such task and stopInterval @@ -19173,7 +19192,17 @@ function connect(jid, password) { console.info("My Jabber ID: " + connection.jid); - connection.ping.startInterval(config.hosts.domain); + // Schedule ping ? + var pingJid = connection.domain; + connection.ping.hasPingSupport( + pingJid, + function (hasPing) { + if (hasPing) + connection.ping.startInterval(pingJid); + else + console.warn("Ping NOT supported by " + pingJid); + } + ); if (password) authenticatedUser = true;