@exotel-npm-dev/webrtc-client-sdk 1.0.24 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Changelog +15 -0
- package/Makefile +2 -11
- package/dist/exotelsdk.js +285 -160
- package/dist/exotelsdk.js.map +1 -1
- package/package.json +3 -3
- package/src/api/LogManager.js +40 -0
- package/src/api/callAPI/Call.js +17 -10
- package/src/listeners/ExWebClient.js +46 -24
package/dist/exotelsdk.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
*
|
|
3
|
-
* WebRTC CLient SIP version
|
|
3
|
+
* WebRTC CLient SIP version 2.0.2
|
|
4
4
|
*
|
|
5
5
|
*/
|
|
6
6
|
(function webpackUniversalModuleDefinition(root, factory) {
|
|
@@ -48,6 +48,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
const logger = _coreSDKLogger__WEBPACK_IMPORTED_MODULE_0__["default"];
|
|
51
|
+
let enableAutoAudioDeviceChangeHandling = false;
|
|
51
52
|
const audioDeviceManager = {
|
|
52
53
|
resetInputDevice: false,
|
|
53
54
|
resetOutputDevice: false,
|
|
@@ -65,21 +66,23 @@ const audioDeviceManager = {
|
|
|
65
66
|
this.resetOutputDevice = value;
|
|
66
67
|
},
|
|
67
68
|
|
|
68
|
-
async changeAudioInputDevice(deviceId, onSuccess, onError) {
|
|
69
|
+
async changeAudioInputDevice(deviceId, onSuccess, onError, forceDeviceChange) {
|
|
69
70
|
logger.log(`SIPJSPhone:changeAudioInputDevice entry`);
|
|
70
71
|
try {
|
|
71
|
-
if (
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
72
|
+
if (enableAutoAudioDeviceChangeHandling && !forceDeviceChange) {
|
|
73
|
+
if (deviceId == audioDeviceManager.currentAudioInputDeviceId) {
|
|
74
|
+
logger.log(`SIPJSPhone:changeAudioInputDevice current input device is same as ${deviceId} hence not changing`);
|
|
75
|
+
if (onError) onError("current input device is same as " + deviceId + " hence not changing");
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const inputDevice = audioDeviceManager.mediaDevices.find(device => device.deviceId === deviceId && device.kind === 'audioinput');
|
|
79
|
+
if (!inputDevice) {
|
|
80
|
+
logger.error("input device id " + deviceId + "not found");
|
|
81
|
+
if (onError) onError("deviceIdNotFound");
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
logger.log(`SIPJSPhone:changeAudioInputDevice acquiring input device ${deviceId} : ${inputDevice.label}`);
|
|
81
85
|
}
|
|
82
|
-
logger.log(`SIPJSPhone:changeAudioInputDevice acquiring input device ${deviceId} : ${inputDevice.label}`);
|
|
83
86
|
const stream = await navigator.mediaDevices.getUserMedia({
|
|
84
87
|
audio: { deviceId: { exact: deviceId } }
|
|
85
88
|
});
|
|
@@ -90,30 +93,31 @@ const audioDeviceManager = {
|
|
|
90
93
|
}
|
|
91
94
|
},
|
|
92
95
|
|
|
93
|
-
async changeAudioOutputDevice(audioRemote, deviceId, onSuccess, onError) {
|
|
94
|
-
logger.log(`audioDeviceManager:changeAudioOutputDevice : entry`);
|
|
95
|
-
if (deviceId == audioDeviceManager.currentAudioOutputDeviceId) {
|
|
96
|
-
logger.log(`SIPJSPhone:changeAudioOutputDevice current output device is same as ${deviceId}`);
|
|
97
|
-
if (onError) onError("current output device is same as " + deviceId);
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
96
|
+
async changeAudioOutputDevice(audioRemote, deviceId, onSuccess, onError, forceDeviceChange) {
|
|
97
|
+
logger.log(`audioDeviceManager:changeAudioOutputDevice : entry`);
|
|
100
98
|
const audioElement = audioRemote;
|
|
101
99
|
if (typeof audioElement.sinkId !== 'undefined') {
|
|
102
100
|
try {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
101
|
+
if (enableAutoAudioDeviceChangeHandling && !forceDeviceChange) {
|
|
102
|
+
if (deviceId == audioDeviceManager.currentAudioOutputDeviceId) {
|
|
103
|
+
logger.log(`SIPJSPhone:changeAudioOutputDevice current output device is same as ${deviceId}`);
|
|
104
|
+
if (onError) onError("current output device is same as " + deviceId);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (!audioDeviceManager.mediaDevices || audioDeviceManager.mediaDevices.length == 0) {
|
|
108
|
+
logger.error("audioDeviceManager:changeAudioOutputDevice mediaDeviceList is empty ");
|
|
109
|
+
if (onError) onError(deviceId + "not found in mediaDeviceList in audioManager");
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const outputDevice = audioDeviceManager.mediaDevices.find(device => device.deviceId === deviceId && device.kind === 'audiooutput');
|
|
113
|
+
if (!outputDevice) {
|
|
114
|
+
logger.error("audioDeviceManager:changeAudioOutputDevice output device id " + deviceId + "not found");
|
|
115
|
+
if (onError) onError("deviceIdNotFound");
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
logger.log(`audioDeviceManager:changeAudioOutputDevice acquiring output device ${deviceId} : ${outputDevice.label}`);
|
|
119
|
+
// audioElement.load();
|
|
114
120
|
}
|
|
115
|
-
logger.log(`audioDeviceManager:changeAudioOutputDevice acquiring output device ${deviceId} : ${outputDevice.label}`);
|
|
116
|
-
// audioElement.load();
|
|
117
121
|
await audioElement.setSinkId(deviceId);
|
|
118
122
|
audioDeviceManager.currentAudioOutputDeviceId = deviceId;
|
|
119
123
|
logger.log(`audioDeviceManager:changeAudioOutputDevice Output device changed to: ${deviceId}`);
|
|
@@ -178,6 +182,10 @@ const audioDeviceManager = {
|
|
|
178
182
|
if (callback) callback();
|
|
179
183
|
},
|
|
180
184
|
|
|
185
|
+
setEnableAutoAudioDeviceChangeHandling(flag) {
|
|
186
|
+
enableAutoAudioDeviceChangeHandling = flag;
|
|
187
|
+
},
|
|
188
|
+
|
|
181
189
|
};
|
|
182
190
|
|
|
183
191
|
audioDeviceManager.enumerateDevices();
|
|
@@ -20843,6 +20851,7 @@ var SIP = __webpack_require__(/*! ./sip-0.20.0.js */ "./node_modules/@exotel-npm
|
|
|
20843
20851
|
|
|
20844
20852
|
|
|
20845
20853
|
|
|
20854
|
+
let enableAutoAudioDeviceChangeHandling = false;
|
|
20846
20855
|
var lastTransportState = "";
|
|
20847
20856
|
var lastRegistererState = "";
|
|
20848
20857
|
var initializeComplete = false;
|
|
@@ -20885,7 +20894,7 @@ function getLogger() {
|
|
|
20885
20894
|
uaLogger = userAgent.getLogger("sip.WebrtcLib")
|
|
20886
20895
|
//let loggerFactory = userAgent.getLoggerFactory()
|
|
20887
20896
|
} catch (e) {
|
|
20888
|
-
logger.log("No userAgent.getLogger
|
|
20897
|
+
logger.log("sipjsphone: getLogger: No userAgent.getLogger, Using console log")
|
|
20889
20898
|
return console;
|
|
20890
20899
|
}
|
|
20891
20900
|
|
|
@@ -20893,7 +20902,7 @@ function getLogger() {
|
|
|
20893
20902
|
return uaLogger;
|
|
20894
20903
|
}
|
|
20895
20904
|
else {
|
|
20896
|
-
logger.log("No Logger
|
|
20905
|
+
logger.log("sipjsphone: getLogger: No Logger, Using console log")
|
|
20897
20906
|
return logger;
|
|
20898
20907
|
}
|
|
20899
20908
|
}
|
|
@@ -20928,10 +20937,10 @@ function postInit(onInitDoneCallback) {
|
|
|
20928
20937
|
ctxSip.ringtone.play()
|
|
20929
20938
|
.then(() => {
|
|
20930
20939
|
// Audio is playing.
|
|
20931
|
-
logger.log("startRingTone: Audio is playing: count=" + count + " ctxSip.ringToneIntervalID=" + ctxSip.ringToneIntervalID + " ctxSip.ringtoneCount=" + ctxSip.ringtoneCount);
|
|
20940
|
+
logger.log("sipjsphone: startRingTone: Audio is playing: count=" + count + " ctxSip.ringToneIntervalID=" + ctxSip.ringToneIntervalID + " ctxSip.ringtoneCount=" + ctxSip.ringtoneCount);
|
|
20932
20941
|
})
|
|
20933
20942
|
.catch(e => {
|
|
20934
|
-
logger.log("startRingTone: Exception:", e);
|
|
20943
|
+
logger.log("sipjsphone: startRingTone: Exception:", e);
|
|
20935
20944
|
});
|
|
20936
20945
|
count++;
|
|
20937
20946
|
if (count > ctxSip.ringtoneCount) {
|
|
@@ -20941,7 +20950,7 @@ function postInit(onInitDoneCallback) {
|
|
|
20941
20950
|
|
|
20942
20951
|
|
|
20943
20952
|
|
|
20944
|
-
} catch (e) { logger.log("startRingTone: Exception:", e); }
|
|
20953
|
+
} catch (e) { logger.log("sipjsphone: startRingTone: Exception:", e); }
|
|
20945
20954
|
},
|
|
20946
20955
|
|
|
20947
20956
|
stopRingTone: function () {
|
|
@@ -20951,9 +20960,9 @@ function postInit(onInitDoneCallback) {
|
|
|
20951
20960
|
ctxSip.ringtone = ringtone;
|
|
20952
20961
|
}
|
|
20953
20962
|
ctxSip.ringtone.pause();
|
|
20954
|
-
logger.log("stopRingTone: intervalID:", ctxSip.ringToneIntervalID);
|
|
20963
|
+
logger.log("sipjsphone: stopRingTone: intervalID:", ctxSip.ringToneIntervalID);
|
|
20955
20964
|
clearInterval(ctxSip.ringToneIntervalID)
|
|
20956
|
-
} catch (e) { logger.log("stopRingTone: Exception:", e); }
|
|
20965
|
+
} catch (e) { logger.log("sipjsphone: stopRingTone: Exception:", e); }
|
|
20957
20966
|
},
|
|
20958
20967
|
|
|
20959
20968
|
startRingbackTone: function () {
|
|
@@ -20963,19 +20972,19 @@ function postInit(onInitDoneCallback) {
|
|
|
20963
20972
|
try {
|
|
20964
20973
|
ctxSip.ringbacktone.play().then(() => {
|
|
20965
20974
|
// Audio is playing.
|
|
20966
|
-
logger.log("startRingbackTone: Audio is playing:");
|
|
20975
|
+
logger.log("sipjsphone: startRingbackTone: Audio is playing:");
|
|
20967
20976
|
})
|
|
20968
20977
|
.catch(e => {
|
|
20969
|
-
logger.log("startRingbackTone: Exception:", e);
|
|
20978
|
+
logger.log("sipjsphone: startRingbackTone: Exception:", e);
|
|
20970
20979
|
});
|
|
20971
|
-
} catch (e) { logger.log("startRingbackTone: Exception:", e); }
|
|
20980
|
+
} catch (e) { logger.log("sipjsphone: startRingbackTone: Exception:", e); }
|
|
20972
20981
|
},
|
|
20973
20982
|
|
|
20974
20983
|
stopRingbackTone: function () {
|
|
20975
20984
|
if (!ctxSip.ringbacktone) {
|
|
20976
20985
|
ctxSip.ringbacktone = ringbacktone;
|
|
20977
20986
|
}
|
|
20978
|
-
try { ctxSip.ringbacktone.pause(); } catch (e) { logger.log("stopRingbackTone: Exception:", e); }
|
|
20987
|
+
try { ctxSip.ringbacktone.pause(); } catch (e) { logger.log("sipjsphone: stopRingbackTone: Exception:", e); }
|
|
20979
20988
|
},
|
|
20980
20989
|
|
|
20981
20990
|
// Genereates a rendom string to ID a call
|
|
@@ -21020,7 +21029,7 @@ function postInit(onInitDoneCallback) {
|
|
|
21020
21029
|
let pc = sdh._peerConnection;
|
|
21021
21030
|
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].initGetStats(pc, callId, username);
|
|
21022
21031
|
} catch (e) {
|
|
21023
|
-
logger.log("something went wrong while initing getstats");
|
|
21032
|
+
logger.log("sipjsphone: newSession: something went wrong while initing getstats");
|
|
21024
21033
|
logger.log(e);
|
|
21025
21034
|
}
|
|
21026
21035
|
|
|
@@ -21125,7 +21134,7 @@ function postInit(onInitDoneCallback) {
|
|
|
21125
21134
|
|
|
21126
21135
|
sipSendDTMF: function (digit) {
|
|
21127
21136
|
|
|
21128
|
-
try { ctxSip.dtmfTone.play(); } catch (e) { logger.log("sipSendDTMF: Exception:", e); }
|
|
21137
|
+
try { ctxSip.dtmfTone.play(); } catch (e) { logger.log("sipjsphone: sipSendDTMF: Exception:", e); }
|
|
21129
21138
|
|
|
21130
21139
|
var a = ctxSip.callActiveID;
|
|
21131
21140
|
if (a) {
|
|
@@ -21159,7 +21168,7 @@ function postInit(onInitDoneCallback) {
|
|
|
21159
21168
|
|
|
21160
21169
|
|
|
21161
21170
|
phoneMuteButtonPressed: function (sessionid) {
|
|
21162
|
-
|
|
21171
|
+
logger.log(" sipjsphone: phoneMuteButtonPressed: bMicEnable, sessionid", bMicEnable, sessionid);
|
|
21163
21172
|
var s = ctxSip.Sessions[sessionid];
|
|
21164
21173
|
|
|
21165
21174
|
if (bMicEnable) {
|
|
@@ -21175,16 +21184,20 @@ function postInit(onInitDoneCallback) {
|
|
|
21175
21184
|
phoneMute: function (sessionid, bMute) {
|
|
21176
21185
|
if (sessionid) {
|
|
21177
21186
|
var s = ctxSip.Sessions[sessionid];
|
|
21178
|
-
logger.log("phoneMute: bMute", bMute)
|
|
21187
|
+
logger.log(" sipjsphone: phoneMute: bMute", bMute)
|
|
21179
21188
|
toggleMute(s, bMute);
|
|
21180
21189
|
bMicEnable = !bMute;
|
|
21181
21190
|
}
|
|
21191
|
+
else{
|
|
21192
|
+
logger.log(" sipjsphone: phoneMute: doing nothing as sessionid not found")
|
|
21193
|
+
|
|
21194
|
+
}
|
|
21182
21195
|
},
|
|
21183
21196
|
|
|
21184
21197
|
phoneHold: function (sessionid, bHold) {
|
|
21185
21198
|
if (sessionid) {
|
|
21186
21199
|
var s = ctxSip.Sessions[sessionid];
|
|
21187
|
-
logger.log("phoneHold: bHold", bHold)
|
|
21200
|
+
logger.log("sipjsphone: phoneHold: bHold", bHold)
|
|
21188
21201
|
toggleHold(s, bHold);
|
|
21189
21202
|
bHoldEnable = bHold;
|
|
21190
21203
|
}
|
|
@@ -21230,7 +21243,7 @@ function postInit(onInitDoneCallback) {
|
|
|
21230
21243
|
alert('Your browser don\'t support WebRTC.\naudio/video calls will be disabled.');
|
|
21231
21244
|
}
|
|
21232
21245
|
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].setWebRTCFSMMapper("sipjs");
|
|
21233
|
-
logger.log("init: Initialization complete...")
|
|
21246
|
+
logger.log("sipjsphone: init: Initialization complete...")
|
|
21234
21247
|
initializeComplete = true;
|
|
21235
21248
|
onInitDoneCallback();
|
|
21236
21249
|
}
|
|
@@ -21353,7 +21366,7 @@ function sipRegister() {
|
|
|
21353
21366
|
},
|
|
21354
21367
|
stunServers: ["stun:stun.l.google.com:19302"],
|
|
21355
21368
|
registerOptions: {
|
|
21356
|
-
expires:
|
|
21369
|
+
expires: 300
|
|
21357
21370
|
}
|
|
21358
21371
|
|
|
21359
21372
|
};
|
|
@@ -21444,7 +21457,7 @@ function registerPhoneEventListeners() {
|
|
|
21444
21457
|
|
|
21445
21458
|
ctxSip.phone.transport.stateChange.addListener(transportStateChangeListener);
|
|
21446
21459
|
|
|
21447
|
-
registerer = new SIP.Registerer(ctxSip.phone, { expires:
|
|
21460
|
+
registerer = new SIP.Registerer(ctxSip.phone, { expires: 300, refreshFrequency: 80 });
|
|
21448
21461
|
|
|
21449
21462
|
|
|
21450
21463
|
ctxSip.phone.delegate.onInvite = (incomingSession) => {
|
|
@@ -21495,7 +21508,7 @@ function destroySocketConnection() {
|
|
|
21495
21508
|
ctxSip.phone.transport.disconnect();
|
|
21496
21509
|
}
|
|
21497
21510
|
} catch (e) {
|
|
21498
|
-
logger.log("ERROR", e);
|
|
21511
|
+
logger.log("sipjsphone: destroySocketConnection: ERROR", e);
|
|
21499
21512
|
}
|
|
21500
21513
|
}
|
|
21501
21514
|
|
|
@@ -21516,7 +21529,7 @@ function uiCallTerminated(s_description) {
|
|
|
21516
21529
|
|
|
21517
21530
|
|
|
21518
21531
|
function sipCall() {
|
|
21519
|
-
logger.log("testing emit accept_reject");
|
|
21532
|
+
logger.log("sipjsphone: sipCall: testing emit accept_reject");
|
|
21520
21533
|
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("accept_reject", "CALL");
|
|
21521
21534
|
}
|
|
21522
21535
|
|
|
@@ -21531,7 +21544,7 @@ function sipPhoneLogger(level, category, label, content) {
|
|
|
21531
21544
|
} else if (content.startsWith("Received WebSocket text message")) {
|
|
21532
21545
|
handleWebSocketMessageContent(content, "recv");
|
|
21533
21546
|
}
|
|
21534
|
-
logger.log(level + " sipjslog: " + category + ": " + content);
|
|
21547
|
+
logger.log("sipjsphone: sipPhoneLogger:" + level + " sipjslog: " + category + ": " + content);
|
|
21535
21548
|
}
|
|
21536
21549
|
} catch (e) {
|
|
21537
21550
|
logger.error("sipjsphone:sipPhoneLogger ERROR", e);
|
|
@@ -21653,7 +21666,7 @@ function cleanupRegistererTimer() {
|
|
|
21653
21666
|
|
|
21654
21667
|
|
|
21655
21668
|
} catch (e) {
|
|
21656
|
-
logger.log("ERROR", e);
|
|
21669
|
+
logger.log("sipjsphone: cleanupRegistererTimer: ERROR", e);
|
|
21657
21670
|
|
|
21658
21671
|
}
|
|
21659
21672
|
registerer = null;
|
|
@@ -21720,8 +21733,8 @@ function handleWebSocketMessageContent(content, direction) {
|
|
|
21720
21733
|
switch (direction) {
|
|
21721
21734
|
case "sent":
|
|
21722
21735
|
|
|
21723
|
-
if (sipMessage.method == "
|
|
21724
|
-
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("sent_request",
|
|
21736
|
+
if (sipMessage.method == "REGISTER")
|
|
21737
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("sent_request", "CONNECTION");
|
|
21725
21738
|
|
|
21726
21739
|
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipSendCallback(newtext, "sipjs");
|
|
21727
21740
|
|
|
@@ -21809,13 +21822,13 @@ function enableReceiverTracks(s, enable) {
|
|
|
21809
21822
|
throw new Error("Peer connection closed.");
|
|
21810
21823
|
}
|
|
21811
21824
|
peerConnection.getReceivers().forEach((receiver) => {
|
|
21812
|
-
logger.log("Receiver ", receiver)
|
|
21825
|
+
logger.log("sipjsphone: enableReceiverTracks: Receiver ", receiver)
|
|
21813
21826
|
if (receiver.track) {
|
|
21814
21827
|
receiver.track.enabled = enable;
|
|
21815
21828
|
}
|
|
21816
21829
|
});
|
|
21817
21830
|
} catch (e) {
|
|
21818
|
-
logger.log("enableReceiverTracks: Error in updating receiver tracks ", e)
|
|
21831
|
+
logger.log("sipjsphone: enableReceiverTracks: Error in updating receiver tracks ", e)
|
|
21819
21832
|
|
|
21820
21833
|
}
|
|
21821
21834
|
}
|
|
@@ -21834,7 +21847,7 @@ function enableSenderTracks(s, enable) {
|
|
|
21834
21847
|
}
|
|
21835
21848
|
});
|
|
21836
21849
|
} catch (e) {
|
|
21837
|
-
logger.log("enableSenderTracks: Error in updating sender tracks ", e)
|
|
21850
|
+
logger.log("sipjsphone: enableSenderTracks: Error in updating sender tracks ", e)
|
|
21838
21851
|
}
|
|
21839
21852
|
}
|
|
21840
21853
|
|
|
@@ -21900,7 +21913,7 @@ function onUserSessionAcceptFailed(e) {
|
|
|
21900
21913
|
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipJsSessionEvent('userMediaFailed');
|
|
21901
21914
|
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onGetUserMediaErrorCallstatCallback();
|
|
21902
21915
|
} else {
|
|
21903
|
-
logger.log("user media failed due to error ", e);
|
|
21916
|
+
logger.log("sipjsphone: onUserSessionAcceptFailed: user media failed due to error ", e);
|
|
21904
21917
|
}
|
|
21905
21918
|
uiCallTerminated('Media stream permission denied');
|
|
21906
21919
|
}
|
|
@@ -21910,13 +21923,13 @@ const SIPJSPhone = {
|
|
|
21910
21923
|
init: (onInitDoneCallback) => {
|
|
21911
21924
|
|
|
21912
21925
|
var preInit = function () {
|
|
21913
|
-
logger.log("init:readyState, calling postInit")
|
|
21926
|
+
logger.log("sipjsphone: init:readyState, calling postInit")
|
|
21914
21927
|
postInit(onInitDoneCallback);
|
|
21915
21928
|
}
|
|
21916
21929
|
var oReadyStateTimer = setInterval(function () {
|
|
21917
21930
|
if (document.readyState === "complete") {
|
|
21918
21931
|
clearInterval(oReadyStateTimer);
|
|
21919
|
-
logger.log("init:readyState, calling preinit")
|
|
21932
|
+
logger.log("sipjsphone: init:readyState, calling preinit")
|
|
21920
21933
|
preInit();
|
|
21921
21934
|
}
|
|
21922
21935
|
}, 100);
|
|
@@ -22007,11 +22020,11 @@ const SIPJSPhone = {
|
|
|
22007
22020
|
},
|
|
22008
22021
|
|
|
22009
22022
|
reRegister: () => {
|
|
22010
|
-
logger.log("
|
|
22023
|
+
logger.log("sipjsphone: reRegister: registering in case of relogin");
|
|
22011
22024
|
if (ctxSip.phone && registerer) {
|
|
22012
22025
|
registerer.register({});
|
|
22013
22026
|
} else {
|
|
22014
|
-
logger.log("
|
|
22027
|
+
logger.log("sipjsphone: reRegister: SIP Session does not exist for re registration");
|
|
22015
22028
|
}
|
|
22016
22029
|
|
|
22017
22030
|
},
|
|
@@ -22059,7 +22072,7 @@ const SIPJSPhone = {
|
|
|
22059
22072
|
|
|
22060
22073
|
pickPhoneCall: () => {
|
|
22061
22074
|
var newSess = ctxSip.Sessions[ctxSip.callActiveID];
|
|
22062
|
-
logger.log("pickphonecall ", ctxSip.callActiveID);
|
|
22075
|
+
logger.log("sipjsphone: pickphonecall: ", ctxSip.callActiveID);
|
|
22063
22076
|
if (newSess) {
|
|
22064
22077
|
if (_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId != "default") {
|
|
22065
22078
|
newSess.accept({
|
|
@@ -22092,7 +22105,7 @@ const SIPJSPhone = {
|
|
|
22092
22105
|
try {
|
|
22093
22106
|
ctxSip.beeptone.play();
|
|
22094
22107
|
} catch (e) {
|
|
22095
|
-
logger.log("playBeep: Exception:", e);
|
|
22108
|
+
logger.log("sipjsphone: playBeep: Exception:", e);
|
|
22096
22109
|
}
|
|
22097
22110
|
},
|
|
22098
22111
|
|
|
@@ -22128,38 +22141,39 @@ const SIPJSPhone = {
|
|
|
22128
22141
|
},
|
|
22129
22142
|
/* NL Additions - Start */
|
|
22130
22143
|
getSpeakerTestTone: () => {
|
|
22131
|
-
logger.log("Returning speaker test tone:", ringtone);
|
|
22144
|
+
logger.log("sipjsphone: getSpeakerTestTone: Returning speaker test tone:", ringtone);
|
|
22132
22145
|
return ringtone;
|
|
22133
22146
|
},
|
|
22134
22147
|
|
|
22135
22148
|
|
|
22136
22149
|
getWSSUrl: () => {
|
|
22137
|
-
logger.log("Returning txtWebsocketURL:", txtWebsocketURL);
|
|
22150
|
+
logger.log("sipjsphone: getWSSUrl: Returning txtWebsocketURL:", txtWebsocketURL);
|
|
22138
22151
|
return txtWebsocketURL;
|
|
22139
22152
|
},
|
|
22140
22153
|
/* NL Additions - End */
|
|
22141
22154
|
getTransportState: () => {
|
|
22142
|
-
logger.log("Returning Transport State : ", lastTransportState);
|
|
22155
|
+
logger.log("sipjsphone: getTransportState: Returning Transport State : ", lastTransportState);
|
|
22143
22156
|
return lastTransportState;
|
|
22144
22157
|
},
|
|
22145
22158
|
getRegistrationState: () => {
|
|
22146
|
-
logger.log("Returning Registration State : ", lastRegistererState);
|
|
22159
|
+
logger.log("sipjsphone: getRegistrationState: Returning Registration State : ", lastRegistererState);
|
|
22147
22160
|
return lastRegistererState;
|
|
22148
22161
|
},
|
|
22149
22162
|
|
|
22150
|
-
changeAudioInputDevice(deviceId, onSuccess, onError) {
|
|
22163
|
+
changeAudioInputDevice(deviceId, onSuccess, onError, forceDeviceChange) {
|
|
22164
|
+
logger.log(`SIPJSPhone: changeAudioInputDevice called with deviceId=${deviceId}, forceDeviceChange=${forceDeviceChange}, enableAutoAudioDeviceChangeHandling=${enableAutoAudioDeviceChangeHandling}`);
|
|
22151
22165
|
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.changeAudioInputDevice(deviceId, function (stream) {
|
|
22152
22166
|
const trackChanged = SIPJSPhone.replaceSenderTrack(stream, deviceId);
|
|
22153
22167
|
if (trackChanged) {
|
|
22154
22168
|
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId = deviceId;
|
|
22155
|
-
logger.log(`
|
|
22169
|
+
logger.log(`sipjsphone: changeAudioInputDevice: Input device changed to: ${deviceId}`);
|
|
22156
22170
|
|
|
22157
22171
|
onSuccess();
|
|
22158
22172
|
} else {
|
|
22159
|
-
logger.error("
|
|
22173
|
+
logger.error("sipjsphone: changeAudioInputDevice: failed");
|
|
22160
22174
|
onError("replaceSenderTrack failed for webrtc");
|
|
22161
22175
|
}
|
|
22162
|
-
}, onError);
|
|
22176
|
+
}, onError, forceDeviceChange);
|
|
22163
22177
|
},
|
|
22164
22178
|
changeAudioOutputDeviceForAdditionalAudioElement(deviceId) {
|
|
22165
22179
|
const additionalAudioElements = [ringtone, beeptone, ringbacktone, dtmftone];
|
|
@@ -22175,14 +22189,15 @@ const SIPJSPhone = {
|
|
|
22175
22189
|
logger.error("sipjsphone:changeAudioOutputDeviceForAdditionalAudioElement failed to setSink for additonal AudioElements", e);
|
|
22176
22190
|
}
|
|
22177
22191
|
},
|
|
22178
|
-
changeAudioOutputDevice(deviceId, onSuccess, onError) {
|
|
22192
|
+
changeAudioOutputDevice(deviceId, onSuccess, onError, forceDeviceChange) {
|
|
22193
|
+
logger.log(`SIPJSPhone: changeAudioOutputDevice called with deviceId=${deviceId}, forceDeviceChange=${forceDeviceChange}, enableAutoAudioDeviceChangeHandling=${enableAutoAudioDeviceChangeHandling}`);
|
|
22179
22194
|
if (!ctxSip.callActiveID) {
|
|
22180
22195
|
audioRemote = document.createElement("audio");
|
|
22181
22196
|
}
|
|
22182
22197
|
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.changeAudioOutputDevice(audioRemote, deviceId, function () {
|
|
22183
22198
|
SIPJSPhone.changeAudioOutputDeviceForAdditionalAudioElement(deviceId);
|
|
22184
22199
|
onSuccess();
|
|
22185
|
-
}, onError);
|
|
22200
|
+
}, onError, forceDeviceChange);
|
|
22186
22201
|
},
|
|
22187
22202
|
|
|
22188
22203
|
stopStreamTracks(stream) {
|
|
@@ -22234,49 +22249,56 @@ const SIPJSPhone = {
|
|
|
22234
22249
|
audioOutputDeviceChangeCallback: null,
|
|
22235
22250
|
onDeviceChangeCallback: null,
|
|
22236
22251
|
registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback) {
|
|
22237
|
-
logger.log(`
|
|
22252
|
+
logger.log(`sipjsphone: registerAudioDeviceChangeCallback: entry`);
|
|
22238
22253
|
SIPJSPhone.audioInputDeviceChangeCallback = audioInputDeviceChangeCallback;
|
|
22239
22254
|
SIPJSPhone.audioOutputDeviceChangeCallback = audioOutputDeviceChangeCallback;
|
|
22240
22255
|
SIPJSPhone.onDeviceChangeCallback = onDeviceChangeCallback;
|
|
22241
|
-
}
|
|
22242
|
-
|
|
22243
|
-
|
|
22244
|
-
|
|
22245
|
-
|
|
22246
|
-
|
|
22247
|
-
|
|
22248
|
-
|
|
22249
|
-
|
|
22250
|
-
|
|
22251
|
-
|
|
22252
|
-
|
|
22253
|
-
if (SIPJSPhone.onDeviceChangeCallback) {
|
|
22254
|
-
logger.info("SIPJSPhone:ondevicechange relaying event to callback");
|
|
22255
|
-
SIPJSPhone.onDeviceChangeCallback(event);
|
|
22256
|
-
return;
|
|
22257
|
-
}
|
|
22258
|
-
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.onAudioDeviceChange(audioRemote,
|
|
22259
|
-
function (stream, deviceId) {
|
|
22260
|
-
const trackChanged = SIPJSPhone.replaceSenderTrack(stream, deviceId);
|
|
22261
|
-
if (trackChanged) {
|
|
22262
|
-
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId = deviceId;
|
|
22263
|
-
if (SIPJSPhone.audioInputDeviceChangeCallback) {
|
|
22264
|
-
SIPJSPhone.audioInputDeviceChangeCallback(deviceId);
|
|
22265
|
-
}
|
|
22266
|
-
}
|
|
22267
|
-
}, function (deviceId) {
|
|
22268
|
-
SIPJSPhone.changeAudioOutputDeviceForAdditionalAudioElement(deviceId);
|
|
22269
|
-
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioOutputDeviceId = deviceId;
|
|
22270
|
-
if (SIPJSPhone.audioOutputDeviceChangeCallback) {
|
|
22271
|
-
SIPJSPhone.audioOutputDeviceChangeCallback(deviceId);
|
|
22256
|
+
},
|
|
22257
|
+
attachGlobalDeviceChangeListener() {
|
|
22258
|
+
logger.log("SIPJSPhone: Attaching global devicechange event listener (enableAutoAudioDeviceChangeHandling is true)");
|
|
22259
|
+
navigator.mediaDevices.addEventListener('devicechange', (event) => {
|
|
22260
|
+
try {
|
|
22261
|
+
if (!ctxSip.callActiveID) {
|
|
22262
|
+
audioRemote = document.createElement("audio");
|
|
22263
|
+
}
|
|
22264
|
+
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.enumerateDevices(() => {
|
|
22265
|
+
if (SIPJSPhone.onDeviceChangeCallback) {
|
|
22266
|
+
logger.info("SIPJSPhone:ondevicechange relaying event to callback");
|
|
22267
|
+
SIPJSPhone.onDeviceChangeCallback(event);
|
|
22272
22268
|
}
|
|
22269
|
+
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.onAudioDeviceChange(
|
|
22270
|
+
audioRemote,
|
|
22271
|
+
(stream, deviceId) => {
|
|
22272
|
+
const trackChanged = SIPJSPhone.replaceSenderTrack(stream, deviceId);
|
|
22273
|
+
if (trackChanged) {
|
|
22274
|
+
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId = deviceId;
|
|
22275
|
+
if (SIPJSPhone.audioInputDeviceChangeCallback) {
|
|
22276
|
+
SIPJSPhone.audioInputDeviceChangeCallback(deviceId);
|
|
22277
|
+
}
|
|
22278
|
+
}
|
|
22279
|
+
},
|
|
22280
|
+
(deviceId) => {
|
|
22281
|
+
SIPJSPhone.changeAudioOutputDeviceForAdditionalAudioElement(deviceId);
|
|
22282
|
+
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioOutputDeviceId = deviceId;
|
|
22283
|
+
if (SIPJSPhone.audioOutputDeviceChangeCallback) {
|
|
22284
|
+
SIPJSPhone.audioOutputDeviceChangeCallback(deviceId);
|
|
22285
|
+
}
|
|
22286
|
+
}
|
|
22287
|
+
);
|
|
22273
22288
|
});
|
|
22289
|
+
} catch (e) {
|
|
22290
|
+
logger.error("SIPJSPhone:ondevicechange something went wrong during device change", e);
|
|
22291
|
+
}
|
|
22274
22292
|
});
|
|
22293
|
+
},
|
|
22294
|
+
setEnableAutoAudioDeviceChangeHandling(flag) {
|
|
22295
|
+
logger.log("sipjsphone: setEnableAutoAudioDeviceChangeHandling: entry, enableAutoAudioDeviceChangeHandling = ",flag);
|
|
22296
|
+
enableAutoAudioDeviceChangeHandling = flag;
|
|
22297
|
+
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.setEnableAutoAudioDeviceChangeHandling(flag);
|
|
22298
|
+
}
|
|
22299
|
+
};
|
|
22300
|
+
|
|
22275
22301
|
|
|
22276
|
-
} catch (e) {
|
|
22277
|
-
logger.error("SIPJSPhone:ondevicechange something went wrong during device change", e);
|
|
22278
|
-
}
|
|
22279
|
-
});
|
|
22280
22302
|
|
|
22281
22303
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SIPJSPhone);
|
|
22282
22304
|
|
|
@@ -22306,12 +22328,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
22306
22328
|
|
|
22307
22329
|
|
|
22308
22330
|
|
|
22309
|
-
|
|
22310
22331
|
var phone = null;
|
|
22311
22332
|
let webrtcSIPEngine = null;
|
|
22312
22333
|
const logger = _coreSDKLogger__WEBPACK_IMPORTED_MODULE_0__["default"];
|
|
22313
22334
|
|
|
22314
22335
|
function sendWebRTCEventsToFSM(eventType, sipMethod) {
|
|
22336
|
+
logger.log("webrtcSIPPhone: sendWebRTCEventsToFSM : ",eventType,sipMethod);
|
|
22315
22337
|
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM(eventType, sipMethod);
|
|
22316
22338
|
}
|
|
22317
22339
|
|
|
@@ -22321,6 +22343,7 @@ const webrtcSIPPhone = {
|
|
|
22321
22343
|
|
|
22322
22344
|
|
|
22323
22345
|
isConnected: () => {
|
|
22346
|
+
logger.log("webrtcSIPPhone: isConnected entry");
|
|
22324
22347
|
var status = phone.getStatus();
|
|
22325
22348
|
if (status != "offline") {
|
|
22326
22349
|
return true;
|
|
@@ -22330,10 +22353,12 @@ const webrtcSIPPhone = {
|
|
|
22330
22353
|
},
|
|
22331
22354
|
|
|
22332
22355
|
sendDTMFWebRTC: (dtmfValue) => {
|
|
22356
|
+
logger.log("webrtcSIPPhone: sendDTMFWebRTC : ",dtmfValue);
|
|
22333
22357
|
phone.sipSendDTMF(dtmfValue);
|
|
22334
22358
|
},
|
|
22335
22359
|
|
|
22336
22360
|
registerWebRTCClient: (sipAccountInfo, handler) => {
|
|
22361
|
+
logger.log("webrtcSIPPhone: registerWebRTCClient : ",sipAccountInfo,handler);
|
|
22337
22362
|
sipAccountInfoData = sipAccountInfo;
|
|
22338
22363
|
phone.init(() => {
|
|
22339
22364
|
phone.loadCredentials(sipAccountInfo);
|
|
@@ -22352,76 +22377,92 @@ const webrtcSIPPhone = {
|
|
|
22352
22377
|
|
|
22353
22378
|
|
|
22354
22379
|
configureWebRTCClientDevice: (handler) => {
|
|
22380
|
+
logger.log("webrtcSIPPhone: configureWebRTCClientDevice : ",handler);
|
|
22355
22381
|
phone.registerCallBacks(handler);
|
|
22356
22382
|
},
|
|
22357
22383
|
|
|
22358
22384
|
setAuthenticatorServerURL(serverURL) {
|
|
22385
|
+
logger.log("webrtcSIPPhone: setAuthenticatorServerURL : ",serverURL);
|
|
22359
22386
|
// Nothing to do here
|
|
22360
22387
|
},
|
|
22361
22388
|
|
|
22362
22389
|
toggleSipRegister: () => {
|
|
22390
|
+
logger.log("webrtcSIPPhone: toggleSipRegister entry");
|
|
22363
22391
|
phone.resetRegisterAttempts();
|
|
22364
22392
|
phone.sipToggleRegister();
|
|
22365
22393
|
},
|
|
22366
22394
|
|
|
22367
|
-
webRTCMuteUnmute: (
|
|
22395
|
+
webRTCMuteUnmute: () => {
|
|
22396
|
+
logger.log("webrtcSIPPhone: webRTCMuteUnmute");
|
|
22368
22397
|
phone.sipToggleMic();
|
|
22369
22398
|
},
|
|
22370
22399
|
|
|
22371
22400
|
getMuteStatus: () => {
|
|
22401
|
+
logger.log("webrtcSIPPhone: getMuteStatus entry");
|
|
22372
22402
|
return phone.getMicMuteStatus();
|
|
22373
22403
|
},
|
|
22374
22404
|
|
|
22375
22405
|
muteAction: (bMute) => {
|
|
22406
|
+
logger.log("webrtcSIPPhone: muteAction: ",bMute);
|
|
22376
22407
|
phone.sipMute(bMute);
|
|
22377
22408
|
},
|
|
22378
22409
|
|
|
22379
22410
|
holdAction: (bHold) => {
|
|
22411
|
+
logger.log("webrtcSIPPhone: holdAction: ",bHold);
|
|
22380
22412
|
phone.sipHold(bHold);
|
|
22381
22413
|
},
|
|
22382
22414
|
|
|
22383
22415
|
holdCall: () => {
|
|
22416
|
+
logger.log("webrtcSIPPhone: holdCall entry");
|
|
22384
22417
|
phone.holdCall();
|
|
22385
22418
|
},
|
|
22386
22419
|
|
|
22387
22420
|
pickCall: () => {
|
|
22421
|
+
logger.log("webrtcSIPPhone: pickCall entry");
|
|
22388
22422
|
phone.pickPhoneCall();
|
|
22389
22423
|
|
|
22390
22424
|
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onPickCall();
|
|
22391
22425
|
},
|
|
22392
22426
|
|
|
22393
22427
|
rejectCall: () => {
|
|
22428
|
+
logger.log("webrtcSIPPhone: rejectCall entry");
|
|
22394
22429
|
phone.sipHangUp();
|
|
22395
22430
|
|
|
22396
22431
|
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onRejectCall();
|
|
22397
22432
|
},
|
|
22398
22433
|
|
|
22399
22434
|
reRegisterWebRTCPhone: () => {
|
|
22435
|
+
logger.log("webrtcSIPPhone: reRegisterWebRTCPhone entry");
|
|
22400
22436
|
phone.reRegister();
|
|
22401
22437
|
},
|
|
22402
22438
|
|
|
22403
22439
|
|
|
22404
22440
|
playBeepTone: () => {
|
|
22441
|
+
logger.log("webrtcSIPPhone: playBeepTone entry");
|
|
22405
22442
|
phone.playBeep();
|
|
22406
22443
|
|
|
22407
22444
|
},
|
|
22408
22445
|
|
|
22409
22446
|
sipUnRegisterWebRTC: () => {
|
|
22447
|
+
logger.log("webrtcSIPPhone: sipUnRegisterWebRTC entry");
|
|
22410
22448
|
phone.sipUnRegister();
|
|
22411
22449
|
},
|
|
22412
22450
|
|
|
22413
22451
|
startWSNetworkTest: () => {
|
|
22452
|
+
logger.log("webrtcSIPPhone: startWSNetworkTest entry");
|
|
22414
22453
|
undefined.testingMode = true;
|
|
22415
22454
|
phone.sipRegister();
|
|
22416
22455
|
},
|
|
22417
22456
|
|
|
22418
22457
|
stopWSNetworkTest: () => {
|
|
22458
|
+
logger.log("webrtcSIPPhone stopWSNetworkTest entry");
|
|
22419
22459
|
phone.sipUnRegister();
|
|
22420
22460
|
},
|
|
22421
22461
|
|
|
22422
22462
|
|
|
22423
22463
|
|
|
22424
|
-
registerPhone: (engine, delegate) => {
|
|
22464
|
+
registerPhone: (engine, delegate, enableAutoAudioDeviceChangeHandling = false) => {
|
|
22465
|
+
logger.log("webrtcSIPPhone: registerPhone : ",engine, "enableAutoAudioDeviceChangeHandling:", enableAutoAudioDeviceChangeHandling);
|
|
22425
22466
|
webrtcSIPEngine = engine;
|
|
22426
22467
|
switch (engine) {
|
|
22427
22468
|
case "sipjs":
|
|
@@ -22432,34 +22473,42 @@ const webrtcSIPPhone = {
|
|
|
22432
22473
|
}
|
|
22433
22474
|
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].registerDelegate(delegate);
|
|
22434
22475
|
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onRegisterWebRTCSIPEngine(engine);
|
|
22435
|
-
|
|
22436
|
-
|
|
22476
|
+
phone.setEnableAutoAudioDeviceChangeHandling(enableAutoAudioDeviceChangeHandling);
|
|
22477
|
+
if (enableAutoAudioDeviceChangeHandling) {
|
|
22478
|
+
phone.attachGlobalDeviceChangeListener();
|
|
22479
|
+
}
|
|
22437
22480
|
},
|
|
22438
22481
|
|
|
22439
22482
|
getWebRTCStatus: () => {
|
|
22483
|
+
logger.log("webrtcSIPPhone: getWebRTCStatus entry");
|
|
22440
22484
|
var status = phone.getStatus();
|
|
22441
22485
|
return status;
|
|
22442
22486
|
},
|
|
22443
22487
|
|
|
22444
22488
|
disconnect: () => {
|
|
22489
|
+
logger.log("webrtcSIPPhone: disconnect entry");
|
|
22445
22490
|
if (phone) {
|
|
22446
22491
|
phone.disconnect();
|
|
22447
22492
|
}
|
|
22448
22493
|
},
|
|
22449
22494
|
|
|
22450
22495
|
connect: () => {
|
|
22496
|
+
logger.log("webrtcSIPPhone: connect entry");
|
|
22451
22497
|
phone.connect();
|
|
22452
22498
|
},
|
|
22453
22499
|
|
|
22454
22500
|
getSIPAccountInfo() {
|
|
22501
|
+
logger.log("webrtcSIPPhone: getSIPAccountInfo entry");
|
|
22455
22502
|
return sipAccountInfoData;
|
|
22456
22503
|
},
|
|
22457
22504
|
getWebRTCSIPEngine() {
|
|
22505
|
+
logger.log("webrtcSIPPhone: getWebRTCSIPEngine entry");
|
|
22458
22506
|
return webrtcSIPEngine;
|
|
22459
22507
|
},
|
|
22460
22508
|
|
|
22461
22509
|
/* NL Addition - Start */
|
|
22462
22510
|
getSpeakerTestTone() {
|
|
22511
|
+
logger.log("webrtcSIPPhone: getSpeakerTestTone entry");
|
|
22463
22512
|
try {
|
|
22464
22513
|
return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getSpeakerTestTone()
|
|
22465
22514
|
} catch (e) {
|
|
@@ -22468,6 +22517,7 @@ const webrtcSIPPhone = {
|
|
|
22468
22517
|
},
|
|
22469
22518
|
|
|
22470
22519
|
getWSSUrl() {
|
|
22520
|
+
logger.log("webrtcSIPPhone: getWSSUrl entry");
|
|
22471
22521
|
try {
|
|
22472
22522
|
return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getWSSUrl()
|
|
22473
22523
|
} catch (e) {
|
|
@@ -22477,6 +22527,7 @@ const webrtcSIPPhone = {
|
|
|
22477
22527
|
/* NL Addition - End */
|
|
22478
22528
|
|
|
22479
22529
|
getTransportState() {
|
|
22530
|
+
logger.log("webrtcSIPPhone: getTransportState entry");
|
|
22480
22531
|
try {
|
|
22481
22532
|
return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getTransportState();
|
|
22482
22533
|
} catch (e) {
|
|
@@ -22486,6 +22537,7 @@ const webrtcSIPPhone = {
|
|
|
22486
22537
|
},
|
|
22487
22538
|
|
|
22488
22539
|
getRegistrationState() {
|
|
22540
|
+
logger.log("webrtcSIPPhone: getRegistrationState entry");
|
|
22489
22541
|
try {
|
|
22490
22542
|
return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getRegistrationState();
|
|
22491
22543
|
} catch (e) {
|
|
@@ -22494,21 +22546,21 @@ const webrtcSIPPhone = {
|
|
|
22494
22546
|
}
|
|
22495
22547
|
},
|
|
22496
22548
|
|
|
22497
|
-
changeAudioInputDevice(deviceId, onSuccess, onError) {
|
|
22498
|
-
logger.log(
|
|
22499
|
-
_sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].changeAudioInputDevice(deviceId, onSuccess, onError);
|
|
22549
|
+
changeAudioInputDevice(deviceId, onSuccess, onError, forceDeviceChange=false) {
|
|
22550
|
+
logger.log("webrtcSIPPhone: changeAudioInputDevice : ", deviceId, onSuccess, onError);
|
|
22551
|
+
_sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].changeAudioInputDevice(deviceId, onSuccess, onError, forceDeviceChange);
|
|
22500
22552
|
},
|
|
22501
22553
|
|
|
22502
|
-
changeAudioOutputDevice(deviceId, onSuccess, onError) {
|
|
22503
|
-
logger.log(
|
|
22504
|
-
_sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].changeAudioOutputDevice(deviceId, onSuccess, onError);
|
|
22554
|
+
changeAudioOutputDevice(deviceId, onSuccess, onError, forceDeviceChange=false) {
|
|
22555
|
+
logger.log("webrtcSIPPhone: changeAudioOutputDevice : ", deviceId, onSuccess, onError);
|
|
22556
|
+
_sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].changeAudioOutputDevice(deviceId, onSuccess, onError, forceDeviceChange);
|
|
22505
22557
|
},
|
|
22506
22558
|
setPreferredCodec(codecName) {
|
|
22507
|
-
logger.log("webrtcSIPPhone:setPreferredCodec
|
|
22559
|
+
logger.log("webrtcSIPPhone: setPreferredCodec : ", codecName);
|
|
22508
22560
|
_sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].setPreferredCodec(codecName);
|
|
22509
22561
|
},
|
|
22510
22562
|
registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback) {
|
|
22511
|
-
logger.log(
|
|
22563
|
+
logger.log("webrtcSIPPhone: registerAudioDeviceChangeCallback entry");
|
|
22512
22564
|
_sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback);
|
|
22513
22565
|
},
|
|
22514
22566
|
getLogger() {
|
|
@@ -22714,6 +22766,55 @@ const webrtcSIPPhoneEventDelegate = {
|
|
|
22714
22766
|
|
|
22715
22767
|
/***/ }),
|
|
22716
22768
|
|
|
22769
|
+
/***/ "./src/api/LogManager.js":
|
|
22770
|
+
/*!*******************************!*\
|
|
22771
|
+
!*** ./src/api/LogManager.js ***!
|
|
22772
|
+
\*******************************/
|
|
22773
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
22774
|
+
|
|
22775
|
+
"use strict";
|
|
22776
|
+
__webpack_require__.r(__webpack_exports__);
|
|
22777
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
22778
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
22779
|
+
/* harmony export */ });
|
|
22780
|
+
const MAX_LOG_LINES = 1000;
|
|
22781
|
+
const LOG_STORAGE_KEY = 'webrtc_sdk_logs';
|
|
22782
|
+
const LogManager = {
|
|
22783
|
+
onLog(level, msg, args = []) {
|
|
22784
|
+
const timestamp = new Date().toISOString();
|
|
22785
|
+
const line = `[${timestamp}] [${level.toUpperCase()}] ${msg} ${args.map(arg => JSON.stringify(arg)).join(" ")}`.trim();
|
|
22786
|
+
let logs = JSON.parse(localStorage.getItem(LOG_STORAGE_KEY)) || [];
|
|
22787
|
+
logs.push(line);
|
|
22788
|
+
if (logs.length > MAX_LOG_LINES) {
|
|
22789
|
+
logs = logs.slice(-MAX_LOG_LINES); // rotate
|
|
22790
|
+
}
|
|
22791
|
+
|
|
22792
|
+
localStorage.setItem(LOG_STORAGE_KEY, JSON.stringify(logs));
|
|
22793
|
+
},
|
|
22794
|
+
getLogs() {
|
|
22795
|
+
return JSON.parse(localStorage.getItem(LOG_STORAGE_KEY)) || [];
|
|
22796
|
+
},
|
|
22797
|
+
downloadLogs(filename) {
|
|
22798
|
+
if (!filename) {
|
|
22799
|
+
const now = new Date();
|
|
22800
|
+
const formattedDate = now.toISOString().split('T')[0]; // Gets YYYY-MM-DD
|
|
22801
|
+
filename = `webrtc_sdk_logs_${formattedDate}.txt`;
|
|
22802
|
+
}
|
|
22803
|
+
const blob = new Blob([LogManager.getLogs().join('\n')], {
|
|
22804
|
+
type: 'text/plain'
|
|
22805
|
+
});
|
|
22806
|
+
const url = URL.createObjectURL(blob);
|
|
22807
|
+
const a = document.createElement('a');
|
|
22808
|
+
a.href = url;
|
|
22809
|
+
a.download = filename;
|
|
22810
|
+
a.click();
|
|
22811
|
+
URL.revokeObjectURL(url);
|
|
22812
|
+
}
|
|
22813
|
+
};
|
|
22814
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LogManager);
|
|
22815
|
+
|
|
22816
|
+
/***/ }),
|
|
22817
|
+
|
|
22717
22818
|
/***/ "./src/api/callAPI/Call.js":
|
|
22718
22819
|
/*!*********************************!*\
|
|
22719
22820
|
!*** ./src/api/callAPI/Call.js ***!
|
|
@@ -22749,25 +22850,32 @@ function Call() {
|
|
|
22749
22850
|
/**
|
|
22750
22851
|
* When agent clicks on mute
|
|
22751
22852
|
*/
|
|
22752
|
-
logger.log('
|
|
22753
|
-
|
|
22754
|
-
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.webRTCMuteUnmute(null);
|
|
22853
|
+
logger.log('Call: MuteToggle');
|
|
22854
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.webRTCMuteUnmute();
|
|
22755
22855
|
};
|
|
22756
22856
|
this.Mute = function () {
|
|
22757
22857
|
/**
|
|
22758
22858
|
* When agent clicks on mute
|
|
22759
22859
|
*/
|
|
22760
|
-
|
|
22761
|
-
|
|
22762
|
-
|
|
22860
|
+
var isMicEnabled = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.getMuteStatus();
|
|
22861
|
+
logger.log('Call: Mute: isMicEnabled: ', isMicEnabled);
|
|
22862
|
+
if (isMicEnabled) {
|
|
22863
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.muteAction(true);
|
|
22864
|
+
} else {
|
|
22865
|
+
logger.log('Call: Mute: Already muted');
|
|
22866
|
+
}
|
|
22763
22867
|
};
|
|
22764
22868
|
this.UnMute = function () {
|
|
22765
22869
|
/**
|
|
22766
22870
|
* When agent clicks on mute
|
|
22767
22871
|
*/
|
|
22768
|
-
|
|
22769
|
-
|
|
22770
|
-
|
|
22872
|
+
var isMicEnabled = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.getMuteStatus();
|
|
22873
|
+
logger.log('Call: UnMute: isMicEnabled: ', isMicEnabled);
|
|
22874
|
+
if (isMicEnabled) {
|
|
22875
|
+
logger.log('Call: Unmute: Already unmuted');
|
|
22876
|
+
} else {
|
|
22877
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.muteAction(false);
|
|
22878
|
+
}
|
|
22771
22879
|
};
|
|
22772
22880
|
this.HoldToggle = function () {
|
|
22773
22881
|
/**
|
|
@@ -23948,6 +24056,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
23948
24056
|
/* harmony import */ var _listeners_Callback__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Callback */ "./src/listeners/Callback.js");
|
|
23949
24057
|
/* harmony import */ var _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @exotel-npm-dev/webrtc-core-sdk */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js");
|
|
23950
24058
|
/* harmony import */ var _api_callAPI_CallDetails__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../api/callAPI/CallDetails */ "./src/api/callAPI/CallDetails.js");
|
|
24059
|
+
/* harmony import */ var _api_LogManager_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../api/LogManager.js */ "./src/api/LogManager.js");
|
|
24060
|
+
|
|
23951
24061
|
|
|
23952
24062
|
|
|
23953
24063
|
|
|
@@ -24013,7 +24123,7 @@ function ExDelegationHandler(exClient_) {
|
|
|
24013
24123
|
logger.log("delegationHandler: setTestingMode\n");
|
|
24014
24124
|
};
|
|
24015
24125
|
this.onCallStatSipJsSessionEvent = function (ev) {
|
|
24016
|
-
logger.log("delegationHandler: onCallStatSipJsSessionEvent
|
|
24126
|
+
logger.log("delegationHandler: onCallStatSipJsSessionEvent", ev);
|
|
24017
24127
|
};
|
|
24018
24128
|
this.sendWebRTCEventsToFSM = function (eventType, sipMethod) {
|
|
24019
24129
|
logger.log("delegationHandler: sendWebRTCEventsToFSM\n");
|
|
@@ -24139,7 +24249,17 @@ class ExotelWebClient {
|
|
|
24139
24249
|
//this.webRTCPhones = {};
|
|
24140
24250
|
|
|
24141
24251
|
sipAccountInfo = null;
|
|
24142
|
-
|
|
24252
|
+
clientSDKLoggerCallback = null;
|
|
24253
|
+
constructor() {
|
|
24254
|
+
/*
|
|
24255
|
+
Register the logger callback and emit the onLog event
|
|
24256
|
+
*/
|
|
24257
|
+
logger.registerLoggerCallback(function (type, message, args) {
|
|
24258
|
+
_api_LogManager_js__WEBPACK_IMPORTED_MODULE_10__["default"].onLog(type, message, args);
|
|
24259
|
+
if (this.clientSDKLoggerCallback) this.clientSDKLoggerCallback("log", arg1, args);
|
|
24260
|
+
});
|
|
24261
|
+
}
|
|
24262
|
+
initWebrtc = (sipAccountInfo_, RegisterEventCallBack, CallListenerCallback, SessionCallback, enableAutoAudioDeviceChangeHandling = false) => {
|
|
24143
24263
|
if (!this.eventListener) {
|
|
24144
24264
|
this.eventListener = new _listeners_ExotelVoiceClientListener__WEBPACK_IMPORTED_MODULE_3__.ExotelVoiceClientListener();
|
|
24145
24265
|
}
|
|
@@ -24152,7 +24272,8 @@ class ExotelWebClient {
|
|
|
24152
24272
|
if (!this.call) {
|
|
24153
24273
|
this.call = new _api_callAPI_Call__WEBPACK_IMPORTED_MODULE_0__.Call();
|
|
24154
24274
|
}
|
|
24155
|
-
|
|
24275
|
+
sipAccountInfo_.enableAutoAudioDeviceChangeHandling = enableAutoAudioDeviceChangeHandling;
|
|
24276
|
+
logger.log("ExWebClient: initWebrtc: Exotel Client Initialised with " + JSON.stringify(sipAccountInfo_));
|
|
24156
24277
|
this.sipAccountInfo = sipAccountInfo_;
|
|
24157
24278
|
if (!this.sipAccountInfo["userName"] || !this.sipAccountInfo["sipdomain"] || !this.sipAccountInfo["port"]) {
|
|
24158
24279
|
return false;
|
|
@@ -24160,22 +24281,22 @@ class ExotelWebClient {
|
|
|
24160
24281
|
this.sipAccountInfo["sipUri"] = "wss://" + this.sipAccountInfo["userName"] + "@" + this.sipAccountInfo["sipdomain"] + ":" + this.sipAccountInfo["port"];
|
|
24161
24282
|
_listeners_Callback__WEBPACK_IMPORTED_MODULE_7__.callbacks.initializeCallback(CallListenerCallback);
|
|
24162
24283
|
_listeners_Callback__WEBPACK_IMPORTED_MODULE_7__.registerCallback.initializeRegisterCallback(RegisterEventCallBack);
|
|
24163
|
-
logger.log("Initializing session callback");
|
|
24284
|
+
logger.log("ExWebClient: initWebrtc: Initializing session callback");
|
|
24164
24285
|
_listeners_Callback__WEBPACK_IMPORTED_MODULE_7__.sessionCallback.initializeSessionCallback(SessionCallback);
|
|
24165
24286
|
this.setEventListener(this.eventListener);
|
|
24166
24287
|
return true;
|
|
24167
24288
|
};
|
|
24168
24289
|
DoRegister = () => {
|
|
24169
|
-
logger.log("ExWebClient:DoRegister Entry");
|
|
24290
|
+
logger.log("ExWebClient: DoRegister: Entry");
|
|
24170
24291
|
if (!this.isReadyToRegister) {
|
|
24171
|
-
logger.warn("ExWebClient:DoRegister SDK is not ready to register");
|
|
24292
|
+
logger.warn("ExWebClient: DoRegister: SDK is not ready to register");
|
|
24172
24293
|
return false;
|
|
24173
24294
|
}
|
|
24174
24295
|
(0,_api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_1__.DoRegister)(this.sipAccountInfo, this);
|
|
24175
24296
|
return true;
|
|
24176
24297
|
};
|
|
24177
24298
|
UnRegister = () => {
|
|
24178
|
-
logger.log("ExWebClient:UnRegister Entry");
|
|
24299
|
+
logger.log("ExWebClient: UnRegister: Entry");
|
|
24179
24300
|
(0,_api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_1__.UnRegister)(this.sipAccountInfo, this);
|
|
24180
24301
|
};
|
|
24181
24302
|
initDiagnostics = (saveDiagnosticsCallback, keyValueSetCallback) => {
|
|
@@ -24236,7 +24357,7 @@ class ExotelWebClient {
|
|
|
24236
24357
|
*/
|
|
24237
24358
|
|
|
24238
24359
|
registerEventCallback = (event, phone, param) => {
|
|
24239
|
-
logger.log("
|
|
24360
|
+
logger.log("ExWebClient: registerEventCallback: Received ---> " + event + 'phone....', phone + 'param....', param);
|
|
24240
24361
|
if (event === "connected") {
|
|
24241
24362
|
/**
|
|
24242
24363
|
* When registration is successful then send the phone number of the same to UI
|
|
@@ -24244,7 +24365,7 @@ class ExotelWebClient {
|
|
|
24244
24365
|
this.eventListener.onInitializationSuccess(phone);
|
|
24245
24366
|
this.registrationInProgress = false;
|
|
24246
24367
|
if (this.unregisterInitiated) {
|
|
24247
|
-
logger.log("ExWebClient:registerEventCallback unregistering due to unregisterInitiated");
|
|
24368
|
+
logger.log("ExWebClient: registerEventCallback: unregistering due to unregisterInitiated");
|
|
24248
24369
|
this.unregisterInitiated = false;
|
|
24249
24370
|
this.unregister();
|
|
24250
24371
|
}
|
|
@@ -24259,7 +24380,7 @@ class ExotelWebClient {
|
|
|
24259
24380
|
this.isReadyToRegister = true;
|
|
24260
24381
|
}
|
|
24261
24382
|
if (this.shouldAutoRetry) {
|
|
24262
|
-
logger.log("ExWebClient:registerEventCallback Autoretrying");
|
|
24383
|
+
logger.log("ExWebClient: registerEventCallback: Autoretrying");
|
|
24263
24384
|
(0,_api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_1__.DoRegister)(this.sipAccountInfo, this, 5000);
|
|
24264
24385
|
}
|
|
24265
24386
|
} else if (event === "sent_request") {
|
|
@@ -24276,7 +24397,7 @@ class ExotelWebClient {
|
|
|
24276
24397
|
* @param {*} param
|
|
24277
24398
|
*/
|
|
24278
24399
|
callEventCallback = (event, phone, param) => {
|
|
24279
|
-
logger.log("
|
|
24400
|
+
logger.log("ExWebClient: callEventCallback: Received ---> " + event + 'param sent....' + param + 'for phone....' + phone);
|
|
24280
24401
|
if (event === "i_new_call") {
|
|
24281
24402
|
this.callListener.onIncomingCall(param, phone);
|
|
24282
24403
|
} else if (event === "connected") {
|
|
@@ -24301,7 +24422,7 @@ class ExotelWebClient {
|
|
|
24301
24422
|
* @param {*} sipAccountInfo
|
|
24302
24423
|
*/
|
|
24303
24424
|
unregister = sipAccountInfo => {
|
|
24304
|
-
logger.log("ExWebClient:unregister Entry");
|
|
24425
|
+
logger.log("ExWebClient: unregister: Entry");
|
|
24305
24426
|
this.shouldAutoRetry = false;
|
|
24306
24427
|
this.unregisterInitiated = true;
|
|
24307
24428
|
if (!this.registrationInProgress) {
|
|
@@ -24311,7 +24432,7 @@ class ExotelWebClient {
|
|
|
24311
24432
|
}
|
|
24312
24433
|
};
|
|
24313
24434
|
webRTCStatusCallbackHandler = (msg1, arg1) => {
|
|
24314
|
-
logger.log("webRTCStatusCallbackHandler: " + msg1 + " " + arg1);
|
|
24435
|
+
logger.log("ExWebClient: webRTCStatusCallbackHandler: " + msg1 + " " + arg1);
|
|
24315
24436
|
};
|
|
24316
24437
|
|
|
24317
24438
|
/**
|
|
@@ -24337,7 +24458,7 @@ class ExotelWebClient {
|
|
|
24337
24458
|
'port': '',
|
|
24338
24459
|
'contactHost': ''
|
|
24339
24460
|
};
|
|
24340
|
-
logger.log('Sending register for the number..', subscriberName);
|
|
24461
|
+
logger.log('ExWebClient: initialize: Sending register for the number..', subscriberName);
|
|
24341
24462
|
fetchPublicIP(sipAccountInfo);
|
|
24342
24463
|
|
|
24343
24464
|
/* Temporary till we figure out the arguments - Start */
|
|
@@ -24387,7 +24508,7 @@ class ExotelWebClient {
|
|
|
24387
24508
|
//webRTCPhones[userName] = webRTC;
|
|
24388
24509
|
|
|
24389
24510
|
/* New-Way */
|
|
24390
|
-
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.registerPhone("sipjs", delegationHandler);
|
|
24511
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.registerPhone("sipjs", delegationHandler, sipAccountInfo.enableAutoAudioDeviceChangeHandling);
|
|
24391
24512
|
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.registerWebRTCClient(this.sipAccntInfo, synchronousHandler);
|
|
24392
24513
|
|
|
24393
24514
|
/**
|
|
@@ -24434,24 +24555,28 @@ class ExotelWebClient {
|
|
|
24434
24555
|
}
|
|
24435
24556
|
}
|
|
24436
24557
|
}).catch(function (error) {
|
|
24437
|
-
logger.log("something went wrong during checkClientStatus ", error);
|
|
24558
|
+
logger.log("ExWebClient: checkClientStatus: something went wrong during checkClientStatus ", error);
|
|
24438
24559
|
callback("media_permission_denied");
|
|
24439
24560
|
});
|
|
24440
24561
|
};
|
|
24441
|
-
changeAudioInputDevice(deviceId, onSuccess, onError) {
|
|
24442
|
-
logger.log(`
|
|
24443
|
-
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.changeAudioInputDevice(deviceId, onSuccess, onError);
|
|
24562
|
+
changeAudioInputDevice(deviceId, onSuccess, onError, forceDeviceChange = false) {
|
|
24563
|
+
logger.log(`ExWebClient: changeAudioInputDevice: Entry`);
|
|
24564
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.changeAudioInputDevice(deviceId, onSuccess, onError, forceDeviceChange);
|
|
24565
|
+
}
|
|
24566
|
+
changeAudioOutputDevice(deviceId, onSuccess, onError, forceDeviceChange = false) {
|
|
24567
|
+
logger.log(`ExWebClient: changeAudioOutputDevice: Entry`);
|
|
24568
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.changeAudioOutputDevice(deviceId, onSuccess, onError, forceDeviceChange);
|
|
24444
24569
|
}
|
|
24445
|
-
|
|
24446
|
-
logger.log(`
|
|
24447
|
-
|
|
24570
|
+
downloadLogs() {
|
|
24571
|
+
logger.log(`ExWebClient: downloadLogs: Entry`);
|
|
24572
|
+
_api_LogManager_js__WEBPACK_IMPORTED_MODULE_10__["default"].downloadLogs();
|
|
24448
24573
|
}
|
|
24449
24574
|
setPreferredCodec(codecName) {
|
|
24450
|
-
logger.log("ExWebClient:setPreferredCodec
|
|
24575
|
+
logger.log("ExWebClient: setPreferredCodec: Entry");
|
|
24451
24576
|
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.setPreferredCodec(codecName);
|
|
24452
24577
|
}
|
|
24453
24578
|
registerLoggerCallback(callback) {
|
|
24454
|
-
|
|
24579
|
+
this.clientSDKLoggerCallback = callback;
|
|
24455
24580
|
}
|
|
24456
24581
|
registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback) {
|
|
24457
24582
|
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback);
|