Skip to content
Snippets Groups Projects
Commit f89e189a authored by gcampes's avatar gcampes
Browse files

fixes listenonly issue

parent fafbba06
No related branches found
No related tags found
No related merge requests found
import VoiceUsers from '/imports/api/2.0/voice-users'; import VoiceUsers from '/imports/api/voice-users';
import { Tracker } from 'meteor/tracker'; import { Tracker } from 'meteor/tracker';
import BaseAudioBridge from './base'; import BaseAudioBridge from './base';
...@@ -120,7 +120,6 @@ export default class SIPBridge extends BaseAudioBridge { ...@@ -120,7 +120,6 @@ export default class SIPBridge extends BaseAudioBridge {
exitAudio() { exitAudio() {
return new Promise((resolve) => { return new Promise((resolve) => {
this.currentSession.on('bye', () => { this.currentSession.on('bye', () => {
this.hangup = true;
resolve(); resolve();
}); });
this.currentSession.bye(); this.currentSession.bye();
...@@ -152,9 +151,9 @@ export default class SIPBridge extends BaseAudioBridge { ...@@ -152,9 +151,9 @@ export default class SIPBridge extends BaseAudioBridge {
this.userAgent = new window.SIP.UA({ this.userAgent = new window.SIP.UA({
uri: `sip:${encodeURIComponent(username)}@${server}`, uri: `sip:${encodeURIComponent(username)}@${server}`,
wsServers: `${(protocol === 'https:' ? 'wss://' : 'ws://')}${server}/ws`, wsServers: `${(protocol === 'https:' ? 'wss://' : 'ws://')}${server}/ws`,
log: { // log: {
builtinEnabled: false, // builtinEnabled: false,
}, // },
displayName: username, displayName: username,
register: false, register: false,
traceSip: true, traceSip: true,
...@@ -190,20 +189,19 @@ export default class SIPBridge extends BaseAudioBridge { ...@@ -190,20 +189,19 @@ export default class SIPBridge extends BaseAudioBridge {
} }
setupEventHandlers(currentSession, callback) { setupEventHandlers(currentSession, callback) {
return new Promise(() => { return new Promise((resolve) => {
currentSession.on('terminated', (message, cause) => this.handleSessionTerminated(message, cause, callback)); currentSession.on('terminated', (message, cause) => this.handleSessionTerminated(message, cause, callback));
currentSession.mediaHandler.on('iceConnectionCompleted', () => this.handleConnectionCompleted(callback)); currentSession.mediaHandler.on('iceConnectionCompleted', () => this.handleConnectionCompleted(resolve));
currentSession.mediaHandler.on('iceConnectionConnected', () => this.handleConnectionCompleted(callback)); currentSession.mediaHandler.on('iceConnectsionConnected', () => this.handleConnectionCompleted(resolve));
this.currentSession = currentSession; this.currentSession = currentSession;
}); });
} }
handleConnectionCompleted(callback) { handleConnectionCompleted(resolve) {
this.hangup = false; this.callback({ status: this.baseCallStates.started });
callback({ status: this.baseCallStates.started }); resolve();
Promise.resolve();
} }
handleSessionTerminated(message, cause, callback) { handleSessionTerminated(message, cause, callback) {
...@@ -214,7 +212,6 @@ export default class SIPBridge extends BaseAudioBridge { ...@@ -214,7 +212,6 @@ export default class SIPBridge extends BaseAudioBridge {
const mappedCause = cause in this.errorCodes ? const mappedCause = cause in this.errorCodes ?
this.errorCodes[cause] : this.errorCodes[cause] :
this.baseErrorCodes.GENERIC_ERROR; this.baseErrorCodes.GENERIC_ERROR;
return callback({ status: this.baseCallStates.failed, error: mappedCause, bridgeError: cause }); return callback({ status: this.baseCallStates.failed, error: mappedCause, bridgeError: cause });
} }
} }
import Users from '/imports/api/users'; import Users from '/imports/api/users';
import Auth from '/imports/ui/services/auth'; 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'; import Meetings from '/imports/api/meetings';
const init = () => { const init = () => {
......
import { Tracker } from 'meteor/tracker'; import { Tracker } from 'meteor/tracker';
import { makeCall } from '/imports/ui/services/api'; import { makeCall } from '/imports/ui/services/api';
import VertoBridge from '/imports/api/2.0/audio/client/bridge/verto'; import VertoBridge from '/imports/api/audio/client/bridge/verto';
import SIPBridge from '/imports/api/2.0/audio/client/bridge/sip'; import SIPBridge from '/imports/api/audio/client/bridge/sip';
const USE_SIP = Meteor.settings.public.media.useSIPAudio; const USE_SIP = Meteor.settings.public.media.useSIPAudio;
const OUTPUT_TAG = Meteor.settings.public.media.mediaTag; const OUTPUT_TAG = Meteor.settings.public.media.mediaTag;
...@@ -74,10 +74,12 @@ class AudioManager { ...@@ -74,10 +74,12 @@ class AudioManager {
this.isConnecting = true; this.isConnecting = true;
this.error = null; this.error = null;
this.isListenOnly = isListenOnly; this.isListenOnly = isListenOnly || false;
this.isEchoTest = isEchoTest || false; this.isEchoTest = isEchoTest || false;
this.callbacks = callbacks; this.callbacks = callbacks;
if (this.isListenOnly) makeCall('listenOnlyToggle', true);
const callOptions = { const callOptions = {
isListenOnly, isListenOnly,
extension: isEchoTest ? '9196' : null, extension: isEchoTest ? '9196' : null,
...@@ -88,6 +90,7 @@ class AudioManager { ...@@ -88,6 +90,7 @@ class AudioManager {
} }
exitAudio() { exitAudio() {
if (this.isListenOnly) makeCall('listenOnlyToggle', false);
return this.bridge.exitAudio(); return this.bridge.exitAudio();
} }
...@@ -107,10 +110,6 @@ class AudioManager { ...@@ -107,10 +110,6 @@ class AudioManager {
} }
this.isConnecting = false; this.isConnecting = false;
if (this.isListenOnly) {
makeCall('listenOnlyToggle', true);
}
} }
onTransferStart() { onTransferStart() {
...@@ -122,9 +121,7 @@ class AudioManager { ...@@ -122,9 +121,7 @@ class AudioManager {
this.isConnected = false; this.isConnected = false;
this.isConnecting = false; this.isConnecting = false;
if (this.isListenOnly) { if (this.isEchoTest) {
makeCall('listenOnlyToggle', false);
} else if (this.isEchoTest) {
this.isEchoTest = false; this.isEchoTest = false;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment