diff --git a/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js b/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js index 3b223e395aff4c47bb95bd0a73eb32d1ce130e14..98a8dc78f49c5ebe649ad79dbbcf33d16085b87c 100755 --- a/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js +++ b/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js @@ -87,6 +87,13 @@ class SIPSession { this._currentSessionState = null; } + get inputStream() { + if (this.currentSession && this.currentSession.sessionDescriptionHandler) { + return this.currentSession.sessionDescriptionHandler.localMediaStream; + } + return null; + } + joinAudio({ isListenOnly, extension, inputDeviceId }, managerCallback) { return new Promise((resolve, reject) => { const callExtension = extension ? `${extension}${this.userData.voiceBridge}` : this.userData.voiceBridge; @@ -1064,6 +1071,10 @@ export default class SIPBridge extends BaseAudioBridge { return this.media.inputDevice ? this.media.inputDevice.inputDeviceId : null; } + get inputStream() { + return this.activeSession ? this.activeSession.inputStream : null; + } + joinAudio({ isListenOnly, extension }, managerCallback) { const hasFallbackDomain = typeof IPV4_FALLBACK_DOMAIN === 'string' && IPV4_FALLBACK_DOMAIN !== ''; diff --git a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js index d7c1a2f425367c64f1ec797a40566743eae3803e..8ff349355f90a92a7a62d0cd9894e457926e18b0 100755 --- a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js +++ b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js @@ -354,7 +354,6 @@ class AudioManager { this.failedMediaElements = []; if (this.inputStream) { - window.defaultInputStream.forEach(track => track.stop()); this.inputStream.getTracks().forEach(track => track.stop()); this.inputDevice = { id: 'default' }; } @@ -510,7 +509,7 @@ class AudioManager { get inputStream() { this._inputDevice.tracker.depend(); - return this._inputDevice.value.stream; + return (this.bridge ? this.bridge.inputStream : null); } get inputDevice() {