diff --git a/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js b/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js index 329c9bc835e79c6160da074a2a1fa9270b7d9fb3..32c5676f92740b015f3aaf085881f1b7ebad93b9 100644 --- a/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js +++ b/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js @@ -1,4 +1,4 @@ -import VoiceUsers from '/imports/api/2.0/voice-users'; +import VoiceUsers from '/imports/api/voice-users'; import { Tracker } from 'meteor/tracker'; import BaseAudioBridge from './base'; @@ -120,7 +120,6 @@ export default class SIPBridge extends BaseAudioBridge { exitAudio() { return new Promise((resolve) => { this.currentSession.on('bye', () => { - this.hangup = true; resolve(); }); this.currentSession.bye(); @@ -152,9 +151,9 @@ export default class SIPBridge extends BaseAudioBridge { this.userAgent = new window.SIP.UA({ uri: `sip:${encodeURIComponent(username)}@${server}`, wsServers: `${(protocol === 'https:' ? 'wss://' : 'ws://')}${server}/ws`, - log: { - builtinEnabled: false, - }, + // log: { + // builtinEnabled: false, + // }, displayName: username, register: false, traceSip: true, @@ -190,20 +189,19 @@ export default class SIPBridge extends BaseAudioBridge { } setupEventHandlers(currentSession, callback) { - return new Promise(() => { + return new Promise((resolve) => { currentSession.on('terminated', (message, cause) => this.handleSessionTerminated(message, cause, callback)); - currentSession.mediaHandler.on('iceConnectionCompleted', () => this.handleConnectionCompleted(callback)); - currentSession.mediaHandler.on('iceConnectionConnected', () => this.handleConnectionCompleted(callback)); + currentSession.mediaHandler.on('iceConnectionCompleted', () => this.handleConnectionCompleted(resolve)); + currentSession.mediaHandler.on('iceConnectsionConnected', () => this.handleConnectionCompleted(resolve)); this.currentSession = currentSession; }); } - handleConnectionCompleted(callback) { - this.hangup = false; - callback({ status: this.baseCallStates.started }); - Promise.resolve(); + handleConnectionCompleted(resolve) { + this.callback({ status: this.baseCallStates.started }); + resolve(); } handleSessionTerminated(message, cause, callback) { @@ -214,7 +212,6 @@ export default class SIPBridge extends BaseAudioBridge { const mappedCause = cause in this.errorCodes ? this.errorCodes[cause] : this.baseErrorCodes.GENERIC_ERROR; - return callback({ status: this.baseCallStates.failed, error: mappedCause, bridgeError: cause }); } } diff --git a/bigbluebutton-html5/imports/ui/components/audio/service.js b/bigbluebutton-html5/imports/ui/components/audio/service.js index 93e62f128f7b90e7055ef19bf240614eb9faac7c..10a222287fdc3e8b88df27e8f516053c1bae1233 100644 --- a/bigbluebutton-html5/imports/ui/components/audio/service.js +++ b/bigbluebutton-html5/imports/ui/components/audio/service.js @@ -1,6 +1,6 @@ import Users from '/imports/api/users'; import Auth from '/imports/ui/services/auth'; -import AudioManager from '/imports/api/audio/client/manager'; +import AudioManager from '/imports/ui/services/audio-manager'; import Meetings from '/imports/api/meetings'; const init = () => { diff --git a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js index 36df805524e33f9366bc230b18c27eb29bf4ec14..71ced6e959fb028cd71fe89e9430846afc4c53de 100644 --- a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js +++ b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js @@ -1,7 +1,7 @@ import { Tracker } from 'meteor/tracker'; import { makeCall } from '/imports/ui/services/api'; -import VertoBridge from '/imports/api/2.0/audio/client/bridge/verto'; -import SIPBridge from '/imports/api/2.0/audio/client/bridge/sip'; +import VertoBridge from '/imports/api/audio/client/bridge/verto'; +import SIPBridge from '/imports/api/audio/client/bridge/sip'; const USE_SIP = Meteor.settings.public.media.useSIPAudio; const OUTPUT_TAG = Meteor.settings.public.media.mediaTag; @@ -74,10 +74,12 @@ class AudioManager { this.isConnecting = true; this.error = null; - this.isListenOnly = isListenOnly; + this.isListenOnly = isListenOnly || false; this.isEchoTest = isEchoTest || false; this.callbacks = callbacks; + if (this.isListenOnly) makeCall('listenOnlyToggle', true); + const callOptions = { isListenOnly, extension: isEchoTest ? '9196' : null, @@ -88,6 +90,7 @@ class AudioManager { } exitAudio() { + if (this.isListenOnly) makeCall('listenOnlyToggle', false); return this.bridge.exitAudio(); } @@ -107,10 +110,6 @@ class AudioManager { } this.isConnecting = false; - - if (this.isListenOnly) { - makeCall('listenOnlyToggle', true); - } } onTransferStart() { @@ -122,9 +121,7 @@ class AudioManager { this.isConnected = false; this.isConnecting = false; - if (this.isListenOnly) { - makeCall('listenOnlyToggle', false); - } else if (this.isEchoTest) { + if (this.isEchoTest) { this.isEchoTest = false; } }