diff --git a/bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js b/bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js index c33c2435535ed1773d0142c178c81f71eda72393..2d35a2f25fb965bced41e7b64f9fe7f8517eb337 100755 --- a/bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js +++ b/bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js @@ -140,7 +140,7 @@ function makeWebRTCWebcamRequest(callback) ); } -function createUA(username, server) { +function createUA(username, server, callback) { if (userAgent) { console.log("User agent already created"); return; @@ -148,18 +148,28 @@ function createUA(username, server) { console.log("Creating new user agent"); - // VERY IMPORTANT - You must escape the username because spaces will cause the connection to fail + /* VERY IMPORTANT + * - You must escape the username because spaces will cause the connection to fail + * - We are connecting to the websocket through an nginx redirect instead of directly to 5066 + */ var configuration = { uri: 'sip:' + encodeURIComponent(username) + '@' + server, - wsServers: 'ws://' + server + ':5066', + wsServers: 'ws://' + server + '/ws', displayName: username, register: false, traceSip: false, - userAgentString: "BigBlueButton", - stunServers: "stun:stun.freeswitch.org" + userAgentString: "BigBlueButton", + stunServers: "stun:stun.freeswitch.org" }; userAgent = new SIP.UA(configuration); + userAgent.on('disconnected', function() { + if (userAgent) { + userAgent.stop(); + userAgent = null; + callback({'status':'failed', 'cause': 'Could not make a WebSocket Connection'}); + } + }); userAgent.start(); }; @@ -202,7 +212,7 @@ function webrtc_call(username, voiceBridge, callback) { console.log("user " + username + " calling to " + voiceBridge); if (!userAgent) { - createUA(username, server); + createUA(username, server, callback); } if (userMicMedia !== undefined) {