@exotel-npm-dev/webrtc-client-sdk 1.0.11 → 1.0.13
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 +4 -1
- package/Makefile +16 -0
- package/dist/exotelsdk.js +491 -220
- package/dist/exotelsdk.js.map +1 -1
- package/package.json +3 -3
- package/src/api/callAPI/Call.js +1 -2
- package/src/api/omAPI/Diagnostics.js +120 -121
- package/src/api/omAPI/DiagnosticsListener.js +13 -12
- package/src/api/registerAPI/RegisterListener.js +12 -12
- package/src/listeners/CallListener.js +10 -10
- package/src/listeners/Callback.js +132 -132
- package/src/listeners/ExWebClient.js +25 -18
- package/src/listeners/ExotelVoiceClientListener.js +9 -9
- package/src/listeners/SessionListeners.js +110 -110
- package/src/api/omAPI/WebrtcLogger.js +0 -55
package/dist/exotelsdk.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
*
|
|
3
|
-
* WebRTC CLient SIP version 1.0.
|
|
3
|
+
* WebRTC CLient SIP version 1.0.13
|
|
4
4
|
*
|
|
5
5
|
*/
|
|
6
6
|
(function webpackUniversalModuleDefinition(root, factory) {
|
|
@@ -30,6 +30,207 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30
30
|
/* harmony import */ var _src_webrtcSIPPhone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/webrtcSIPPhone */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/webrtcSIPPhone.js");
|
|
31
31
|
|
|
32
32
|
|
|
33
|
+
/***/ }),
|
|
34
|
+
|
|
35
|
+
/***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/audioDeviceManager.js":
|
|
36
|
+
/*!********************************************************************************!*\
|
|
37
|
+
!*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/audioDeviceManager.js ***!
|
|
38
|
+
\********************************************************************************/
|
|
39
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
40
|
+
|
|
41
|
+
"use strict";
|
|
42
|
+
__webpack_require__.r(__webpack_exports__);
|
|
43
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
44
|
+
/* harmony export */ audioDeviceManager: () => (/* binding */ audioDeviceManager),
|
|
45
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
46
|
+
/* harmony export */ });
|
|
47
|
+
/* harmony import */ var _coreSDKLogger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./coreSDKLogger */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/coreSDKLogger.js");
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
const logger = _coreSDKLogger__WEBPACK_IMPORTED_MODULE_0__["default"];
|
|
51
|
+
const audioDeviceManager = {
|
|
52
|
+
resetInputDevice: false,
|
|
53
|
+
resetOutputDevice: false,
|
|
54
|
+
currentAudioInputDeviceId: "default",
|
|
55
|
+
currentAudioOutputDeviceId: "default",
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
// Method to set the resetInputDevice flag
|
|
59
|
+
setResetInputDeviceFlag(value) {
|
|
60
|
+
this.resetInputDevice = value;
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
// Method to set the resetOutputDevice flag
|
|
64
|
+
setResetOutputDeviceFlag(value) {
|
|
65
|
+
this.resetOutputDevice = value;
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
async changeAudioInputDevice(deviceId, onSuccess, onError) {
|
|
69
|
+
logger.log(`SIPJSPhone:changeAudioInputDevice entry`);
|
|
70
|
+
try {
|
|
71
|
+
if (deviceId == audioDeviceManager.currentAudioInputDeviceId) {
|
|
72
|
+
logger.log(`SIPJSPhone:changeAudioInputDevice current input device is same as ${deviceId}`);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const devices = await navigator.mediaDevices.enumerateDevices();
|
|
76
|
+
const inputDevice = devices.find(device => device.deviceId === deviceId && device.kind === 'audioinput');
|
|
77
|
+
if (!inputDevice) {
|
|
78
|
+
logger.error("input device id " + deviceId + "not found");
|
|
79
|
+
onError("deviceIdNotFound");
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
logger.log(`SIPJSPhone:changeAudioInputDevice acquiring input device ${deviceId} : ${inputDevice.label}`);
|
|
83
|
+
const stream = await navigator.mediaDevices.getUserMedia({
|
|
84
|
+
audio: { deviceId: { exact: deviceId } }
|
|
85
|
+
});
|
|
86
|
+
onSuccess(stream);
|
|
87
|
+
} catch (error) {
|
|
88
|
+
logger.error('SIPJSPhone:changeAudioInputDevice Error changing input device:', error);
|
|
89
|
+
onError(error);
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
|
|
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
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const audioElement = audioRemote;
|
|
100
|
+
if (typeof audioElement.sinkId !== 'undefined') {
|
|
101
|
+
try {
|
|
102
|
+
const devices = await navigator.mediaDevices.enumerateDevices();
|
|
103
|
+
const outputDevice = devices.find(device => device.deviceId === deviceId && device.kind === 'audiooutput');
|
|
104
|
+
if (!outputDevice) {
|
|
105
|
+
logger.error("audioDeviceManager:changeAudioOutputDevice output device id " + deviceId + "not found");
|
|
106
|
+
onError("deviceIdNotFound");
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
logger.log(`SIPJSPhone:changeAudioOutputDevice acquiring output device ${deviceId} : ${outputDevice.label}`);
|
|
110
|
+
await audioElement.setSinkId(deviceId);
|
|
111
|
+
audioDeviceManager.currentAudioOutputDeviceId = deviceId;
|
|
112
|
+
logger.log(`audioDeviceManager:changeAudioOutputDevice Output device changed to: ${deviceId}`);
|
|
113
|
+
if (onSuccess) onSuccess();
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
} catch (error) {
|
|
117
|
+
logger.error('audioDeviceManager:changeAudioOutputDevice Error changing output device:', error);
|
|
118
|
+
if (onError) onError(error);
|
|
119
|
+
}
|
|
120
|
+
} else {
|
|
121
|
+
const errorMsg = 'audioDeviceManager:changeAudioOutputDevice Browser does not support output device selection.';
|
|
122
|
+
logger.error(errorMsg);
|
|
123
|
+
if (onError) onError(errorMsg);
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
|
|
127
|
+
async resetAudioDevice(audioRemote, onInputDeviceChangeCallback, onOutputDeviceChangeCallback) {
|
|
128
|
+
audioDeviceManager._resetAudioDevice(audioRemote, onInputDeviceChangeCallback, onOutputDeviceChangeCallback, audioDeviceManager.resetOutputDevice, audioDeviceManager.resetInputDevice);
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
onAudioDeviceChange(audioRemote, onInputDeviceChangeCallback, onOutputDeviceChangeCallback) {
|
|
132
|
+
logger.log("audioDeviceManager:onAudioDeviceChange entry");
|
|
133
|
+
audioDeviceManager._resetAudioDevice(audioRemote, onInputDeviceChangeCallback, onOutputDeviceChangeCallback, true, true);
|
|
134
|
+
},
|
|
135
|
+
|
|
136
|
+
async _resetAudioDevice(audioRemote, onInputDeviceChangeCallback, onOutputDeviceChangecallback, resetOutputDevice, resetInputDevice) {
|
|
137
|
+
logger.log("audioDeviceManager:_resetAudioDevice entry");
|
|
138
|
+
try {
|
|
139
|
+
const devices = await navigator.mediaDevices.enumerateDevices();
|
|
140
|
+
|
|
141
|
+
if (resetOutputDevice) {
|
|
142
|
+
const defaultOutputDevice = devices.find(device => device.deviceId === "default" && device.kind === 'audiooutput');
|
|
143
|
+
const outputDevice = devices.find(device => device.groupId == defaultOutputDevice.groupId && device.kind === 'audiooutput' && device.deviceId != 'default');
|
|
144
|
+
|
|
145
|
+
audioDeviceManager.changeAudioOutputDevice(audioRemote,
|
|
146
|
+
outputDevice.deviceId,
|
|
147
|
+
() => onOutputDeviceChangecallback(outputDevice.deviceId),
|
|
148
|
+
(error) => logger.log(`audioDeviceManager:_resetAudioDevice Failed to change output device: ${error}`)
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
if (resetInputDevice) {
|
|
152
|
+
const defaultInputDevice = devices.find(device => device.deviceId === "default" && device.kind === 'audioinput');
|
|
153
|
+
const inputDevice = devices.find(device => device.groupId == defaultInputDevice.groupId && device.kind === 'audioinput' && device.deviceId != 'default');
|
|
154
|
+
audioDeviceManager.changeAudioInputDevice(
|
|
155
|
+
inputDevice.deviceId,
|
|
156
|
+
(stream) => onInputDeviceChangeCallback(stream, inputDevice.deviceId),
|
|
157
|
+
(error) => logger.log(`audioDeviceManager:_resetAudioDevice Failed to change input device: ${error}`)
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
} catch (error) {
|
|
161
|
+
logger.log("audioDeviceManager:_resetAudioDevice something went wrong", error);
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (audioDeviceManager);
|
|
169
|
+
|
|
170
|
+
/***/ }),
|
|
171
|
+
|
|
172
|
+
/***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/coreSDKLogger.js":
|
|
173
|
+
/*!***************************************************************************!*\
|
|
174
|
+
!*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/coreSDKLogger.js ***!
|
|
175
|
+
\***************************************************************************/
|
|
176
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
177
|
+
|
|
178
|
+
"use strict";
|
|
179
|
+
__webpack_require__.r(__webpack_exports__);
|
|
180
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
181
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
182
|
+
/* harmony export */ });
|
|
183
|
+
|
|
184
|
+
const coreSDKLogger = {
|
|
185
|
+
|
|
186
|
+
loggerCallback: null,
|
|
187
|
+
|
|
188
|
+
registerLoggerCallback(callback) {
|
|
189
|
+
coreSDKLogger.loggerCallback = callback;
|
|
190
|
+
},
|
|
191
|
+
log: (arg1, ...args) => {
|
|
192
|
+
if (args.length == 0)
|
|
193
|
+
console.log(arg1);
|
|
194
|
+
else
|
|
195
|
+
console.log(arg1, args);
|
|
196
|
+
if (coreSDKLogger.loggerCallback)
|
|
197
|
+
coreSDKLogger.loggerCallback("log", arg1, args);
|
|
198
|
+
},
|
|
199
|
+
|
|
200
|
+
info: (arg1, ...args) => {
|
|
201
|
+
if (args.length == 0)
|
|
202
|
+
console.info(arg1);
|
|
203
|
+
else
|
|
204
|
+
console.info(arg1, args);
|
|
205
|
+
if (coreSDKLogger.loggerCallback)
|
|
206
|
+
coreSDKLogger.loggerCallback("info", arg1, args);
|
|
207
|
+
},
|
|
208
|
+
|
|
209
|
+
warn: (arg1, ...args) => {
|
|
210
|
+
if (args.length == 0)
|
|
211
|
+
console.warn(arg1);
|
|
212
|
+
else
|
|
213
|
+
console.warn(arg1, args);
|
|
214
|
+
if (coreSDKLogger.loggerCallback)
|
|
215
|
+
coreSDKLogger.loggerCallback("warn", arg1, args);
|
|
216
|
+
},
|
|
217
|
+
|
|
218
|
+
error: (arg1, ...args) => {
|
|
219
|
+
if (args.length == 0)
|
|
220
|
+
console.error(arg1);
|
|
221
|
+
else
|
|
222
|
+
console.error(arg1, args);
|
|
223
|
+
if (coreSDKLogger.loggerCallback)
|
|
224
|
+
coreSDKLogger.loggerCallback("error", arg1, args);
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (coreSDKLogger);
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
33
234
|
/***/ }),
|
|
34
235
|
|
|
35
236
|
/***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/sip-0.20.0.js":
|
|
@@ -20614,7 +20815,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
20614
20815
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
20615
20816
|
/* harmony export */ getLogger: () => (/* binding */ getLogger)
|
|
20616
20817
|
/* harmony export */ });
|
|
20617
|
-
/* harmony import */ var
|
|
20818
|
+
/* harmony import */ var _audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./audioDeviceManager.js */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/audioDeviceManager.js");
|
|
20819
|
+
/* harmony import */ var _coreSDKLogger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coreSDKLogger.js */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/coreSDKLogger.js");
|
|
20820
|
+
/* harmony import */ var _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./webrtcSIPPhoneEventDelegate */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/webrtcSIPPhoneEventDelegate.js");
|
|
20618
20821
|
/*
|
|
20619
20822
|
* SIPJS WebRTC SIP Phone - to interact with SIPJS Library
|
|
20620
20823
|
*/
|
|
@@ -20622,9 +20825,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
20622
20825
|
var SIP = __webpack_require__(/*! ./sip-0.20.0.js */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/sip-0.20.0.js")
|
|
20623
20826
|
;
|
|
20624
20827
|
|
|
20828
|
+
|
|
20829
|
+
|
|
20625
20830
|
var lastTransportState = "";
|
|
20626
20831
|
var lastRegistererState = "";
|
|
20627
|
-
var videoRemote, videoLocal, audioRemote;
|
|
20628
20832
|
var initializeComplete = false;
|
|
20629
20833
|
var webRTCStatus = "offline"; // ready -> registered, offline -> unregistered,
|
|
20630
20834
|
var callBackHandler = null;
|
|
@@ -20641,8 +20845,8 @@ ringbacktone.src = __webpack_require__(/*! ./static/ringbacktone.wav */ "./node_
|
|
|
20641
20845
|
var dtmftone = document.createElement("audio");
|
|
20642
20846
|
dtmftone.src = __webpack_require__(/*! ./static/dtmf.wav */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/dtmf.wav");
|
|
20643
20847
|
|
|
20644
|
-
|
|
20645
|
-
|
|
20848
|
+
var audioRemote = document.createElement("audio");
|
|
20849
|
+
|
|
20646
20850
|
|
|
20647
20851
|
let txtDisplayName, txtPrivateIdentity, txtHostNameWithPort, txtHostName, txtWebSocketPort, txtAccountName;
|
|
20648
20852
|
let txtSecurity, txtSipDomain, txtWSPort, txtSipPort, txtSipSecurePort, txtContactHost, endpoint;
|
|
@@ -20653,7 +20857,8 @@ let register_flag = false;
|
|
|
20653
20857
|
var ctxSip = {};
|
|
20654
20858
|
var registerer = null;
|
|
20655
20859
|
|
|
20656
|
-
|
|
20860
|
+
|
|
20861
|
+
let logger = _coreSDKLogger_js__WEBPACK_IMPORTED_MODULE_1__["default"];
|
|
20657
20862
|
logger.log(SIP);
|
|
20658
20863
|
/* NL Additions - Start */
|
|
20659
20864
|
|
|
@@ -20664,7 +20869,7 @@ function getLogger() {
|
|
|
20664
20869
|
uaLogger = userAgent.getLogger("sip.WebrtcLib")
|
|
20665
20870
|
//let loggerFactory = userAgent.getLoggerFactory()
|
|
20666
20871
|
} catch (e) {
|
|
20667
|
-
|
|
20872
|
+
logger.log("No userAgent.getLogger: Using console log")
|
|
20668
20873
|
return console;
|
|
20669
20874
|
}
|
|
20670
20875
|
|
|
@@ -20672,7 +20877,7 @@ function getLogger() {
|
|
|
20672
20877
|
return uaLogger;
|
|
20673
20878
|
}
|
|
20674
20879
|
else {
|
|
20675
|
-
|
|
20880
|
+
logger.log("No Logger: Using console log")
|
|
20676
20881
|
return logger;
|
|
20677
20882
|
}
|
|
20678
20883
|
}
|
|
@@ -20797,7 +21002,7 @@ function postInit(onInitDoneCallback) {
|
|
|
20797
21002
|
let callId = ctxSip.callActiveID;
|
|
20798
21003
|
let username = ctxSip.config.authorizationUsername;
|
|
20799
21004
|
let pc = sdh._peerConnection;
|
|
20800
|
-
|
|
21005
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].initGetStats(pc, callId, username);
|
|
20801
21006
|
} catch (e) {
|
|
20802
21007
|
logger.log("something went wrong while initing getstats");
|
|
20803
21008
|
logger.log(e);
|
|
@@ -20805,19 +21010,19 @@ function postInit(onInitDoneCallback) {
|
|
|
20805
21010
|
|
|
20806
21011
|
sdh.peerConnectionDelegate = {
|
|
20807
21012
|
onnegotiationneeded: (event) => {
|
|
20808
|
-
|
|
21013
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatNegoNeeded();
|
|
20809
21014
|
},
|
|
20810
21015
|
onsignalingstatechange: (event) => {
|
|
20811
|
-
|
|
21016
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSignalingStateChange(event.target.signalingState);
|
|
20812
21017
|
},
|
|
20813
21018
|
onconnectionstatechange: (event) => {
|
|
20814
|
-
|
|
21019
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onStatPeerConnectionConnectionStateChange(event.target.connectionState);
|
|
20815
21020
|
},
|
|
20816
21021
|
oniceconnectionstatechange: (event) => {
|
|
20817
|
-
|
|
21022
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onStatPeerConnectionIceConnectionStateChange(event.target.iceConnectionState);
|
|
20818
21023
|
},
|
|
20819
21024
|
onicegatheringstatechange: (event) => {
|
|
20820
|
-
|
|
21025
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onStatPeerConnectionIceGatheringStateChange(event.target.iceGatheringState);
|
|
20821
21026
|
}
|
|
20822
21027
|
|
|
20823
21028
|
};
|
|
@@ -20827,7 +21032,7 @@ function postInit(onInitDoneCallback) {
|
|
|
20827
21032
|
|
|
20828
21033
|
let status;
|
|
20829
21034
|
if (newSess.direction === 'incoming') {
|
|
20830
|
-
|
|
21035
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipJsSessionEvent('incoming');
|
|
20831
21036
|
status = "Incoming: " + newSess.displayName;
|
|
20832
21037
|
ctxSip.startRingTone();
|
|
20833
21038
|
//sip call method was invoking after 500 ms because of race between server push and
|
|
@@ -20952,7 +21157,7 @@ function postInit(onInitDoneCallback) {
|
|
|
20952
21157
|
phoneMute: function (sessionid, bMute) {
|
|
20953
21158
|
if (sessionid) {
|
|
20954
21159
|
var s = ctxSip.Sessions[sessionid];
|
|
20955
|
-
|
|
21160
|
+
logger.log("phoneMute: bMute", bMute)
|
|
20956
21161
|
toggleMute(s, bMute);
|
|
20957
21162
|
bMicEnable = !bMute;
|
|
20958
21163
|
}
|
|
@@ -20961,7 +21166,7 @@ function postInit(onInitDoneCallback) {
|
|
|
20961
21166
|
phoneHold: function (sessionid, bHold) {
|
|
20962
21167
|
if (sessionid) {
|
|
20963
21168
|
var s = ctxSip.Sessions[sessionid];
|
|
20964
|
-
|
|
21169
|
+
logger.log("phoneHold: bHold", bHold)
|
|
20965
21170
|
toggleHold(s, bHold);
|
|
20966
21171
|
bHoldEnable = bHold;
|
|
20967
21172
|
}
|
|
@@ -20995,7 +21200,7 @@ function postInit(onInitDoneCallback) {
|
|
|
20995
21200
|
return true;
|
|
20996
21201
|
} else {
|
|
20997
21202
|
ctxSip.setError(true, 'Unsupported Browser.', 'Your browser does not support the features required for this phone.');
|
|
20998
|
-
|
|
21203
|
+
logger.error("WebRTC support not found");
|
|
20999
21204
|
return false;
|
|
21000
21205
|
}
|
|
21001
21206
|
}
|
|
@@ -21006,7 +21211,7 @@ function postInit(onInitDoneCallback) {
|
|
|
21006
21211
|
if (!ctxSip.hasWebRTC) {
|
|
21007
21212
|
alert('Your browser don\'t support WebRTC.\naudio/video calls will be disabled.');
|
|
21008
21213
|
}
|
|
21009
|
-
|
|
21214
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].setWebRTCFSMMapper("sipjs");
|
|
21010
21215
|
logger.log("init: Initialization complete...")
|
|
21011
21216
|
initializeComplete = true;
|
|
21012
21217
|
onInitDoneCallback();
|
|
@@ -21112,8 +21317,8 @@ let transportStateChangeListener = (newState) => {
|
|
|
21112
21317
|
switch (newState) {
|
|
21113
21318
|
|
|
21114
21319
|
case SIP.TransportState.Connecting:
|
|
21115
|
-
|
|
21116
|
-
|
|
21320
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipJsTransportEvent('connecting');
|
|
21321
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("starting", "CONNECTION");
|
|
21117
21322
|
break;
|
|
21118
21323
|
case SIP.TransportState.Connected:
|
|
21119
21324
|
onUserAgentTransportConnected();
|
|
@@ -21145,8 +21350,8 @@ function registerPhoneEventListeners() {
|
|
|
21145
21350
|
var s = incomingSession;
|
|
21146
21351
|
s.direction = 'incoming';
|
|
21147
21352
|
ctxSip.newSession(s);
|
|
21148
|
-
|
|
21149
|
-
|
|
21353
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onRecieveInvite(incomingSession);
|
|
21354
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("i_new_call", "CALL");
|
|
21150
21355
|
} else {
|
|
21151
21356
|
incomingSession.reject();
|
|
21152
21357
|
}
|
|
@@ -21207,7 +21412,7 @@ function uiCallTerminated(s_description) {
|
|
|
21207
21412
|
|
|
21208
21413
|
function sipCall() {
|
|
21209
21414
|
logger.log("testing emit accept_reject");
|
|
21210
|
-
|
|
21415
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("accept_reject", "CALL");
|
|
21211
21416
|
}
|
|
21212
21417
|
|
|
21213
21418
|
|
|
@@ -21224,26 +21429,18 @@ function sipPhoneLogger(level, category, label, content) {
|
|
|
21224
21429
|
logger.log(level + " sipjslog: " + category + ": " + content);
|
|
21225
21430
|
}
|
|
21226
21431
|
} catch (e) {
|
|
21227
|
-
logger.error("ERROR", e);
|
|
21432
|
+
logger.error("sipjsphone:sipPhoneLogger ERROR", e);
|
|
21228
21433
|
}
|
|
21229
21434
|
|
|
21230
21435
|
}
|
|
21231
21436
|
|
|
21232
21437
|
|
|
21233
21438
|
function onInvitationSessionAccepted(newSess) {
|
|
21439
|
+
ctxSip.Stream = newSess.sessionDescriptionHandler.localMediaStream;
|
|
21440
|
+
assignStream(newSess.sessionDescriptionHandler.remoteMediaStream, audioRemote);
|
|
21234
21441
|
|
|
21235
|
-
|
|
21236
|
-
|
|
21237
|
-
//audioRemote.setAttribute("id", "audio_remote");
|
|
21238
|
-
console.log("No audio remote id .... ")
|
|
21239
|
-
}
|
|
21240
|
-
|
|
21241
|
-
if (audioRemote) {
|
|
21242
|
-
assignStream(newSess.sessionDescriptionHandler.remoteMediaStream, audioRemote);
|
|
21243
|
-
}
|
|
21244
|
-
|
|
21245
|
-
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_0__["default"].onCallStatSipJsSessionEvent('accepted');
|
|
21246
|
-
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_0__["default"].sendWebRTCEventsToFSM("connected", "CALL");
|
|
21442
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipJsSessionEvent('accepted');
|
|
21443
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("connected", "CALL");
|
|
21247
21444
|
|
|
21248
21445
|
// If there is another active call, hold it
|
|
21249
21446
|
if (ctxSip.callActiveID && ctxSip.callActiveID !== newSess.ctxid) {
|
|
@@ -21263,14 +21460,15 @@ function onInvitationSessionAccepted(newSess) {
|
|
|
21263
21460
|
}
|
|
21264
21461
|
|
|
21265
21462
|
function onInvitationSessionTerminated() {
|
|
21266
|
-
|
|
21267
|
-
|
|
21463
|
+
SIPJSPhone.stopStreamTracks(ctxSip.Stream);
|
|
21464
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].stopCallStat();
|
|
21465
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipJsSessionEvent('terminated');
|
|
21268
21466
|
ctxSip.stopRingTone();
|
|
21269
21467
|
ctxSip.stopRingbackTone();
|
|
21270
21468
|
ctxSip.setCallSessionStatus("");
|
|
21271
21469
|
ctxSip.callActiveID = null;
|
|
21272
|
-
|
|
21273
|
-
|
|
21470
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].playBeepTone();
|
|
21471
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("terminated", "CALL");
|
|
21274
21472
|
|
|
21275
21473
|
uiCallTerminated();
|
|
21276
21474
|
if (register_flag == true) {
|
|
@@ -21285,7 +21483,7 @@ function onInvitationSessionTerminated() {
|
|
|
21285
21483
|
|
|
21286
21484
|
|
|
21287
21485
|
function onUserAgentRegistered() {
|
|
21288
|
-
|
|
21486
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("connected", "CONNECTION");
|
|
21289
21487
|
var bConnected = true;
|
|
21290
21488
|
uiOnConnectionEvent(bConnected, !bConnected);
|
|
21291
21489
|
register_flag = true;
|
|
@@ -21312,7 +21510,7 @@ function onUserAgentRegistrationTerminated() {
|
|
|
21312
21510
|
function onUserAgentRegistrationFailed() {
|
|
21313
21511
|
|
|
21314
21512
|
|
|
21315
|
-
|
|
21513
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("terminated", "CONNECTION");
|
|
21316
21514
|
uiOnConnectionEvent(false, false);
|
|
21317
21515
|
register_flag = false;
|
|
21318
21516
|
if (callBackHandler != null) {
|
|
@@ -21324,9 +21522,9 @@ function onUserAgentRegistrationFailed() {
|
|
|
21324
21522
|
|
|
21325
21523
|
|
|
21326
21524
|
function onUserAgentTransportConnected() {
|
|
21327
|
-
|
|
21525
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipJsTransportEvent('connected');
|
|
21328
21526
|
webRTCStatus = "ready";
|
|
21329
|
-
|
|
21527
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("started", "CONNECTION");
|
|
21330
21528
|
if (callBackHandler != null) {
|
|
21331
21529
|
if (callBackHandler.onResponse) {
|
|
21332
21530
|
callBackHandler.onResponse("offline");
|
|
@@ -21364,8 +21562,8 @@ function onUserAgentTransportDisconnected() {
|
|
|
21364
21562
|
|
|
21365
21563
|
cleanupRegistererTimer();
|
|
21366
21564
|
|
|
21367
|
-
|
|
21368
|
-
|
|
21565
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipJsTransportEvent('disconnected');
|
|
21566
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("failed_to_start", "CONNECTION");
|
|
21369
21567
|
if (callBackHandler != null) {
|
|
21370
21568
|
if (callBackHandler.onResponse) {
|
|
21371
21569
|
callBackHandler.onResponse("error");
|
|
@@ -21418,14 +21616,14 @@ function handleWebSocketMessageContent(content, direction) {
|
|
|
21418
21616
|
case "sent":
|
|
21419
21617
|
|
|
21420
21618
|
if (sipMessage.method == "CONNECTION")
|
|
21421
|
-
|
|
21619
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("sent_request", sipMessage.method);
|
|
21422
21620
|
|
|
21423
|
-
|
|
21621
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipSendCallback(newtext, "sipjs");
|
|
21424
21622
|
|
|
21425
21623
|
|
|
21426
21624
|
break;
|
|
21427
21625
|
case "recv":
|
|
21428
|
-
|
|
21626
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipRecvCallback(newtext, "sipjs");
|
|
21429
21627
|
break;
|
|
21430
21628
|
default:
|
|
21431
21629
|
break;
|
|
@@ -21468,13 +21666,13 @@ function toggleMute(s, mute) {
|
|
|
21468
21666
|
|
|
21469
21667
|
|
|
21470
21668
|
function onMuted(s) {
|
|
21471
|
-
|
|
21669
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipJsSessionEvent('muted');
|
|
21472
21670
|
s.isMuted = true;
|
|
21473
21671
|
ctxSip.setCallSessionStatus("Muted");
|
|
21474
21672
|
}
|
|
21475
21673
|
|
|
21476
21674
|
function onUnmuted(s) {
|
|
21477
|
-
|
|
21675
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipJsSessionEvent('unmuted');
|
|
21478
21676
|
s.isMuted = false;
|
|
21479
21677
|
ctxSip.setCallSessionStatus("Answered");
|
|
21480
21678
|
}
|
|
@@ -21506,13 +21704,13 @@ function enableReceiverTracks(s, enable) {
|
|
|
21506
21704
|
throw new Error("Peer connection closed.");
|
|
21507
21705
|
}
|
|
21508
21706
|
peerConnection.getReceivers().forEach((receiver) => {
|
|
21509
|
-
|
|
21707
|
+
logger.log("Receiver ", receiver)
|
|
21510
21708
|
if (receiver.track) {
|
|
21511
21709
|
receiver.track.enabled = enable;
|
|
21512
21710
|
}
|
|
21513
21711
|
});
|
|
21514
21712
|
} catch (e) {
|
|
21515
|
-
|
|
21713
|
+
logger.log("enableReceiverTracks: Error in updating receiver tracks ", e)
|
|
21516
21714
|
|
|
21517
21715
|
}
|
|
21518
21716
|
}
|
|
@@ -21531,7 +21729,7 @@ function enableSenderTracks(s, enable) {
|
|
|
21531
21729
|
}
|
|
21532
21730
|
});
|
|
21533
21731
|
} catch (e) {
|
|
21534
|
-
|
|
21732
|
+
logger.log("enableSenderTracks: Error in updating sender tracks ", e)
|
|
21535
21733
|
}
|
|
21536
21734
|
}
|
|
21537
21735
|
|
|
@@ -21559,6 +21757,8 @@ function toggleHold(s, hold) {
|
|
|
21559
21757
|
}
|
|
21560
21758
|
|
|
21561
21759
|
function assignStream(stream, element) {
|
|
21760
|
+
if (_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioOutputDeviceId != "default")
|
|
21761
|
+
element.setSinkId(_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioOutputDeviceId);
|
|
21562
21762
|
// Set element source.
|
|
21563
21763
|
element.autoplay = true; // Safari does not allow calling .play() from a
|
|
21564
21764
|
// non user action
|
|
@@ -21566,16 +21766,16 @@ function assignStream(stream, element) {
|
|
|
21566
21766
|
|
|
21567
21767
|
// Load and start playback of media.
|
|
21568
21768
|
element.play().catch((error) => {
|
|
21569
|
-
|
|
21570
|
-
|
|
21769
|
+
logger.error("Failed to play media");
|
|
21770
|
+
logger.error(error);
|
|
21571
21771
|
});
|
|
21572
21772
|
|
|
21573
21773
|
// If a track is added, load and restart playback of media.
|
|
21574
21774
|
stream.onaddtrack = () => {
|
|
21575
21775
|
element.load(); // Safari does not work otheriwse
|
|
21576
21776
|
element.play().catch((error) => {
|
|
21577
|
-
|
|
21578
|
-
|
|
21777
|
+
logger.error("Failed to play remote media on add track");
|
|
21778
|
+
logger.error(error);
|
|
21579
21779
|
});
|
|
21580
21780
|
};
|
|
21581
21781
|
|
|
@@ -21583,17 +21783,17 @@ function assignStream(stream, element) {
|
|
|
21583
21783
|
stream.onremovetrack = () => {
|
|
21584
21784
|
element.load(); // Safari does not work otheriwse
|
|
21585
21785
|
element.play().catch((error) => {
|
|
21586
|
-
|
|
21587
|
-
|
|
21786
|
+
logger.error("Failed to play remote media on remove track");
|
|
21787
|
+
logger.error(error);
|
|
21588
21788
|
});
|
|
21589
21789
|
};
|
|
21590
21790
|
}
|
|
21591
21791
|
|
|
21592
21792
|
function onUserSessionAcceptFailed(e) {
|
|
21593
21793
|
if (e.name == "NotAllowedError" || e.name == "NotFoundError") {
|
|
21594
|
-
|
|
21595
|
-
|
|
21596
|
-
|
|
21794
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("m_permission_refused", "CALL");
|
|
21795
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipJsSessionEvent('userMediaFailed');
|
|
21796
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onGetUserMediaErrorCallstatCallback();
|
|
21597
21797
|
} else {
|
|
21598
21798
|
logger.log("user media failed due to error ", e);
|
|
21599
21799
|
}
|
|
@@ -21604,9 +21804,6 @@ const SIPJSPhone = {
|
|
|
21604
21804
|
|
|
21605
21805
|
init: (onInitDoneCallback) => {
|
|
21606
21806
|
|
|
21607
|
-
videoLocal = document.getElementById("video_local");
|
|
21608
|
-
videoRemote = document.getElementById("video_remote");
|
|
21609
|
-
audioRemote = document.getElementById("audio_remote");
|
|
21610
21807
|
var preInit = function () {
|
|
21611
21808
|
logger.log("init:readyState, calling postInit")
|
|
21612
21809
|
postInit(onInitDoneCallback);
|
|
@@ -21742,9 +21939,20 @@ const SIPJSPhone = {
|
|
|
21742
21939
|
var newSess = ctxSip.Sessions[ctxSip.callActiveID];
|
|
21743
21940
|
logger.log("pickphonecall ", ctxSip.callActiveID);
|
|
21744
21941
|
if (newSess) {
|
|
21745
|
-
|
|
21746
|
-
|
|
21747
|
-
|
|
21942
|
+
if (_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId != "default") {
|
|
21943
|
+
newSess.accept({
|
|
21944
|
+
sessionDescriptionHandlerOptions: {
|
|
21945
|
+
constraints: { audio: { deviceId: _audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId }, video: false }
|
|
21946
|
+
}
|
|
21947
|
+
}).catch((e) => {
|
|
21948
|
+
onUserSessionAcceptFailed(e);
|
|
21949
|
+
});
|
|
21950
|
+
} else {
|
|
21951
|
+
|
|
21952
|
+
newSess.accept().catch((e) => {
|
|
21953
|
+
onUserSessionAcceptFailed(e);
|
|
21954
|
+
});
|
|
21955
|
+
}
|
|
21748
21956
|
}
|
|
21749
21957
|
|
|
21750
21958
|
},
|
|
@@ -21795,29 +22003,137 @@ const SIPJSPhone = {
|
|
|
21795
22003
|
},
|
|
21796
22004
|
/* NL Additions - Start */
|
|
21797
22005
|
getSpeakerTestTone: () => {
|
|
21798
|
-
|
|
22006
|
+
logger.log("Returning speaker test tone:", ringtone);
|
|
21799
22007
|
return ringtone;
|
|
21800
22008
|
},
|
|
21801
22009
|
|
|
21802
22010
|
|
|
21803
22011
|
getWSSUrl: () => {
|
|
21804
|
-
|
|
22012
|
+
logger.log("Returning txtWebsocketURL:", txtWebsocketURL);
|
|
21805
22013
|
return txtWebsocketURL;
|
|
21806
22014
|
},
|
|
21807
22015
|
/* NL Additions - End */
|
|
21808
22016
|
getTransportState: () => {
|
|
21809
|
-
|
|
22017
|
+
logger.log("Returning Transport State : ", lastTransportState);
|
|
21810
22018
|
return lastTransportState;
|
|
21811
22019
|
},
|
|
21812
22020
|
getRegistrationState: () => {
|
|
21813
|
-
|
|
22021
|
+
logger.log("Returning Registration State : ", lastRegistererState);
|
|
21814
22022
|
return lastRegistererState;
|
|
21815
22023
|
},
|
|
21816
22024
|
|
|
22025
|
+
changeAudioInputDevice(deviceId, onSuccess, onError) {
|
|
22026
|
+
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.changeAudioInputDevice(deviceId, function (stream) {
|
|
22027
|
+
const trackChanged = SIPJSPhone.replaceSenderTrack(stream, deviceId);
|
|
22028
|
+
if (trackChanged) {
|
|
22029
|
+
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId = deviceId;
|
|
22030
|
+
logger.log(`SIPJSPhone:changeAudioInputDevice Input device changed to: ${deviceId}`);
|
|
22031
|
+
|
|
22032
|
+
onSuccess();
|
|
22033
|
+
} else {
|
|
22034
|
+
logger.error("SIPJSPhone:changeAudioInputDevice failed");
|
|
22035
|
+
onError("something went wrong , try again");
|
|
22036
|
+
}
|
|
22037
|
+
}, onError);
|
|
22038
|
+
},
|
|
22039
|
+
onRemoteAudioOutputDeviceChanged(deviceId) {
|
|
22040
|
+
ringtone.setSinkId(deviceId).catch((e) => {
|
|
22041
|
+
logger.error("sipjsphone:onRemoteAudioOutputDeviceChanged ringtone changedevice failure ", e);
|
|
22042
|
+
});
|
|
22043
|
+
},
|
|
22044
|
+
changeAudioOutputDevice(deviceId, onSuccess, onError) {
|
|
22045
|
+
if (!ctxSip.callActiveID) {
|
|
22046
|
+
audioRemote = document.createElement("audio");
|
|
22047
|
+
}
|
|
22048
|
+
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.changeAudioOutputDevice(audioRemote, deviceId, function () {
|
|
22049
|
+
SIPJSPhone.onRemoteAudioOutputDeviceChanged(deviceId);
|
|
22050
|
+
onSuccess();
|
|
22051
|
+
}, onError);
|
|
22052
|
+
},
|
|
22053
|
+
|
|
22054
|
+
stopStreamTracks(stream) {
|
|
22055
|
+
try {
|
|
22056
|
+
if (stream) {
|
|
22057
|
+
const tracks = stream.getTracks();
|
|
22058
|
+
tracks.forEach((track) => {
|
|
22059
|
+
track.stop();
|
|
22060
|
+
});
|
|
22061
|
+
}
|
|
22062
|
+
} catch (e) {
|
|
22063
|
+
logger.error("sipjsphone:stopStreamTracks failed to stop tracks");
|
|
22064
|
+
}
|
|
22065
|
+
},
|
|
22066
|
+
replaceSenderTrack(stream, deviceId) {
|
|
22067
|
+
try {
|
|
21817
22068
|
|
|
22069
|
+
if (_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId == deviceId) {
|
|
22070
|
+
SIPJSPhone.stopStreamTracks(stream);
|
|
22071
|
+
return false;
|
|
22072
|
+
}
|
|
22073
|
+
if (ctxSip.callActiveID) {
|
|
22074
|
+
ctxSip.Stream = stream;
|
|
22075
|
+
const s = ctxSip.Sessions[ctxSip.callActiveID];
|
|
22076
|
+
const pc = s.sessionDescriptionHandler.peerConnection;
|
|
22077
|
+
if (pc.getSenders) {
|
|
22078
|
+
try {
|
|
22079
|
+
const [audioTrack] = stream.getAudioTracks();
|
|
22080
|
+
const sender = pc.getSenders().find((s) => s.track.kind === audioTrack.kind);
|
|
22081
|
+
sender.track.stop();
|
|
22082
|
+
sender.replaceTrack(audioTrack);
|
|
22083
|
+
} catch (e) {
|
|
22084
|
+
logger.error(`replaceSenderTrack unable to replace track for stream for device id ${deviceId} `, stream);
|
|
22085
|
+
}
|
|
22086
|
+
}
|
|
22087
|
+
} else {
|
|
22088
|
+
SIPJSPhone.stopStreamTracks(stream);
|
|
22089
|
+
}
|
|
22090
|
+
return true;
|
|
22091
|
+
} catch (e) {
|
|
22092
|
+
return false;
|
|
22093
|
+
}
|
|
22094
|
+
|
|
22095
|
+
},
|
|
22096
|
+
registerLogger(customLogger) {
|
|
22097
|
+
logger = customLogger;
|
|
22098
|
+
},
|
|
22099
|
+
audioInputDeviceChangeCallback: null,
|
|
22100
|
+
audioOutputDeviceChangeCallback: null,
|
|
22101
|
+
registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback) {
|
|
22102
|
+
logger.log(`SIPJSPhone:registerAudioDeviceChangeCallback entry`);
|
|
22103
|
+
SIPJSPhone.audioInputDeviceChangeCallback = audioInputDeviceChangeCallback;
|
|
22104
|
+
SIPJSPhone.audioOutputDeviceChangeCallback = audioOutputDeviceChangeCallback;
|
|
22105
|
+
|
|
22106
|
+
}
|
|
21818
22107
|
|
|
21819
22108
|
};
|
|
21820
22109
|
|
|
22110
|
+
|
|
22111
|
+
navigator.mediaDevices.addEventListener('devicechange', function (event) {
|
|
22112
|
+
try {
|
|
22113
|
+
if (!ctxSip.callActiveID) {
|
|
22114
|
+
audioRemote = document.createElement("audio");
|
|
22115
|
+
}
|
|
22116
|
+
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.onAudioDeviceChange(audioRemote,
|
|
22117
|
+
function (stream, deviceId) {
|
|
22118
|
+
const trackChanged = SIPJSPhone.replaceSenderTrack(stream, deviceId);
|
|
22119
|
+
if (trackChanged) {
|
|
22120
|
+
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId = deviceId;
|
|
22121
|
+
if (SIPJSPhone.audioInputDeviceChangeCallback) {
|
|
22122
|
+
SIPJSPhone.audioInputDeviceChangeCallback(deviceId);
|
|
22123
|
+
}
|
|
22124
|
+
}
|
|
22125
|
+
}, function (deviceId) {
|
|
22126
|
+
SIPJSPhone.onRemoteAudioOutputDeviceChanged(deviceId);
|
|
22127
|
+
_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioOutputDeviceId = deviceId;
|
|
22128
|
+
if (SIPJSPhone.audioOutputDeviceChangeCallback) {
|
|
22129
|
+
SIPJSPhone.audioOutputDeviceChangeCallback(deviceId);
|
|
22130
|
+
}
|
|
22131
|
+
});
|
|
22132
|
+
} catch (e) {
|
|
22133
|
+
logger.error("SIPJSPhone:ondevicechange something went wrong during device change", e);
|
|
22134
|
+
}
|
|
22135
|
+
});
|
|
22136
|
+
|
|
21821
22137
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SIPJSPhone);
|
|
21822
22138
|
|
|
21823
22139
|
|
|
@@ -21835,8 +22151,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
21835
22151
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
21836
22152
|
/* harmony export */ webrtcSIPPhone: () => (/* binding */ webrtcSIPPhone)
|
|
21837
22153
|
/* harmony export */ });
|
|
21838
|
-
/* harmony import */ var
|
|
21839
|
-
/* harmony import */ var
|
|
22154
|
+
/* harmony import */ var _coreSDKLogger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./coreSDKLogger */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/coreSDKLogger.js");
|
|
22155
|
+
/* harmony import */ var _sipjsphone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sipjsphone */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/sipjsphone.js");
|
|
22156
|
+
/* harmony import */ var _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./webrtcSIPPhoneEventDelegate */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/webrtcSIPPhoneEventDelegate.js");
|
|
21840
22157
|
/**
|
|
21841
22158
|
* Communication from Webrtc flows and feature handling for web RTC as WebRTC Phone Interface
|
|
21842
22159
|
*
|
|
@@ -21848,8 +22165,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
21848
22165
|
|
|
21849
22166
|
var phone = null;
|
|
21850
22167
|
let webrtcSIPEngine = null;
|
|
22168
|
+
const logger = _coreSDKLogger__WEBPACK_IMPORTED_MODULE_0__["default"];
|
|
22169
|
+
|
|
21851
22170
|
function sendWebRTCEventsToFSM(eventType, sipMethod) {
|
|
21852
|
-
|
|
22171
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM(eventType, sipMethod);
|
|
21853
22172
|
}
|
|
21854
22173
|
|
|
21855
22174
|
let sipAccountInfoData = {};
|
|
@@ -21924,13 +22243,13 @@ const webrtcSIPPhone = {
|
|
|
21924
22243
|
pickCall: () => {
|
|
21925
22244
|
phone.pickPhoneCall();
|
|
21926
22245
|
|
|
21927
|
-
|
|
22246
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onPickCall();
|
|
21928
22247
|
},
|
|
21929
22248
|
|
|
21930
22249
|
rejectCall: () => {
|
|
21931
22250
|
phone.sipHangUp();
|
|
21932
22251
|
|
|
21933
|
-
|
|
22252
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onRejectCall();
|
|
21934
22253
|
},
|
|
21935
22254
|
|
|
21936
22255
|
reRegisterWebRTCPhone: () => {
|
|
@@ -21962,13 +22281,13 @@ const webrtcSIPPhone = {
|
|
|
21962
22281
|
webrtcSIPEngine = engine;
|
|
21963
22282
|
switch (engine) {
|
|
21964
22283
|
case "sipjs":
|
|
21965
|
-
phone =
|
|
22284
|
+
phone = _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"];
|
|
21966
22285
|
break;
|
|
21967
22286
|
default:
|
|
21968
22287
|
break;
|
|
21969
22288
|
}
|
|
21970
|
-
|
|
21971
|
-
|
|
22289
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].registerDelegate(delegate);
|
|
22290
|
+
_webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onRegisterWebRTCSIPEngine(engine);
|
|
21972
22291
|
|
|
21973
22292
|
|
|
21974
22293
|
},
|
|
@@ -21998,37 +22317,54 @@ const webrtcSIPPhone = {
|
|
|
21998
22317
|
/* NL Addition - Start */
|
|
21999
22318
|
getSpeakerTestTone() {
|
|
22000
22319
|
try {
|
|
22001
|
-
return
|
|
22320
|
+
return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getSpeakerTestTone()
|
|
22002
22321
|
} catch (e) {
|
|
22003
|
-
|
|
22322
|
+
logger.log("getSpeakerTestTone: Exception ", e)
|
|
22004
22323
|
}
|
|
22005
22324
|
},
|
|
22006
22325
|
|
|
22007
22326
|
getWSSUrl() {
|
|
22008
22327
|
try {
|
|
22009
|
-
return
|
|
22328
|
+
return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getWSSUrl()
|
|
22010
22329
|
} catch (e) {
|
|
22011
|
-
|
|
22330
|
+
logger.log("getWSSUrl: Exception ", e)
|
|
22012
22331
|
}
|
|
22013
22332
|
},
|
|
22014
22333
|
/* NL Addition - End */
|
|
22015
22334
|
|
|
22016
22335
|
getTransportState() {
|
|
22017
22336
|
try {
|
|
22018
|
-
return
|
|
22337
|
+
return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getTransportState();
|
|
22019
22338
|
} catch (e) {
|
|
22020
|
-
|
|
22339
|
+
logger.log("getTransportState: Exception ", e);
|
|
22021
22340
|
return "unknown";
|
|
22022
22341
|
}
|
|
22023
22342
|
},
|
|
22024
22343
|
|
|
22025
22344
|
getRegistrationState() {
|
|
22026
22345
|
try {
|
|
22027
|
-
return
|
|
22346
|
+
return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getRegistrationState();
|
|
22028
22347
|
} catch (e) {
|
|
22029
|
-
|
|
22348
|
+
logger.log("getTransportState: Exception ", e);
|
|
22030
22349
|
return "unknown";
|
|
22031
22350
|
}
|
|
22351
|
+
},
|
|
22352
|
+
|
|
22353
|
+
changeAudioInputDevice(deviceId, onSuccess, onError) {
|
|
22354
|
+
logger.log(`webrtcSIPPhone:changeAudioInputDevice entry`);
|
|
22355
|
+
_sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].changeAudioInputDevice(deviceId, onSuccess, onError);
|
|
22356
|
+
},
|
|
22357
|
+
|
|
22358
|
+
changeAudioOutputDevice(deviceId, onSuccess, onError) {
|
|
22359
|
+
logger.log(`webrtcSIPPhone:changeAudioOutputDevice entry`);
|
|
22360
|
+
_sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].changeAudioOutputDevice(deviceId, onSuccess, onError);
|
|
22361
|
+
},
|
|
22362
|
+
registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback) {
|
|
22363
|
+
logger.log(`webrtcSIPPhone:registerAudioDeviceChangeCallback entry`);
|
|
22364
|
+
_sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback);
|
|
22365
|
+
},
|
|
22366
|
+
getLogger() {
|
|
22367
|
+
return _coreSDKLogger__WEBPACK_IMPORTED_MODULE_0__["default"];
|
|
22032
22368
|
}
|
|
22033
22369
|
|
|
22034
22370
|
};
|
|
@@ -22242,26 +22578,24 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
22242
22578
|
/* harmony export */ Call: () => (/* binding */ Call)
|
|
22243
22579
|
/* harmony export */ });
|
|
22244
22580
|
/* harmony import */ var _CallDetails__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CallDetails */ "./src/api/callAPI/CallDetails.js");
|
|
22245
|
-
/* harmony import */ var
|
|
22246
|
-
/* harmony import */ var _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @exotel-npm-dev/webrtc-core-sdk */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js");
|
|
22247
|
-
|
|
22581
|
+
/* harmony import */ var _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @exotel-npm-dev/webrtc-core-sdk */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js");
|
|
22248
22582
|
|
|
22249
22583
|
|
|
22250
|
-
var logger =
|
|
22584
|
+
var logger = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.getLogger();
|
|
22251
22585
|
function Call() {
|
|
22252
22586
|
this.Answer = function () {
|
|
22253
22587
|
/**
|
|
22254
22588
|
* When agent accepts phone, add appropriate msg to be sent to webclient
|
|
22255
22589
|
*/
|
|
22256
22590
|
logger.log('Call answered');
|
|
22257
|
-
|
|
22591
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.pickCall();
|
|
22258
22592
|
};
|
|
22259
22593
|
this.Hangup = function () {
|
|
22260
22594
|
/**
|
|
22261
22595
|
* When call is terminated
|
|
22262
22596
|
*/
|
|
22263
22597
|
logger.log('call ended');
|
|
22264
|
-
|
|
22598
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.rejectCall();
|
|
22265
22599
|
};
|
|
22266
22600
|
this.MuteToggle = function () {
|
|
22267
22601
|
/**
|
|
@@ -22269,7 +22603,7 @@ function Call() {
|
|
|
22269
22603
|
*/
|
|
22270
22604
|
logger.log('mute toggle clicked');
|
|
22271
22605
|
let dummyFlag = null;
|
|
22272
|
-
|
|
22606
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.webRTCMuteUnmute(null);
|
|
22273
22607
|
};
|
|
22274
22608
|
this.Mute = function () {
|
|
22275
22609
|
/**
|
|
@@ -22277,7 +22611,7 @@ function Call() {
|
|
|
22277
22611
|
*/
|
|
22278
22612
|
logger.log('mute clicked');
|
|
22279
22613
|
let dummyFlag = true;
|
|
22280
|
-
|
|
22614
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.webRTCMuteUnmute(dummyFlag);
|
|
22281
22615
|
};
|
|
22282
22616
|
this.UnMute = function () {
|
|
22283
22617
|
/**
|
|
@@ -22285,14 +22619,14 @@ function Call() {
|
|
|
22285
22619
|
*/
|
|
22286
22620
|
logger.log('unmute clicked');
|
|
22287
22621
|
let dummyFlag = false;
|
|
22288
|
-
|
|
22622
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.webRTCMuteUnmute(dummyFlag);
|
|
22289
22623
|
};
|
|
22290
22624
|
this.HoldToggle = function () {
|
|
22291
22625
|
/**
|
|
22292
22626
|
* When user clicks on hold
|
|
22293
22627
|
*/
|
|
22294
22628
|
logger.log('Hold toggle clicked');
|
|
22295
|
-
|
|
22629
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.holdCall();
|
|
22296
22630
|
};
|
|
22297
22631
|
this.Hold = function () {
|
|
22298
22632
|
/**
|
|
@@ -22300,7 +22634,7 @@ function Call() {
|
|
|
22300
22634
|
*/
|
|
22301
22635
|
logger.log('hold clicked');
|
|
22302
22636
|
let dummyFlag = true;
|
|
22303
|
-
|
|
22637
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.holdCall();
|
|
22304
22638
|
};
|
|
22305
22639
|
this.UnHold = function () {
|
|
22306
22640
|
/**
|
|
@@ -22308,7 +22642,7 @@ function Call() {
|
|
|
22308
22642
|
*/
|
|
22309
22643
|
logger.log('unhold clicked');
|
|
22310
22644
|
let dummyFlag = true;
|
|
22311
|
-
|
|
22645
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.holdCall();
|
|
22312
22646
|
};
|
|
22313
22647
|
this.callDetails = function () {
|
|
22314
22648
|
/**
|
|
@@ -22321,7 +22655,7 @@ function Call() {
|
|
|
22321
22655
|
* sends dtmf digit as SIP info over websocket
|
|
22322
22656
|
*/
|
|
22323
22657
|
logger.log("trying to send dtmf " + digit);
|
|
22324
|
-
|
|
22658
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.sendDTMFWebRTC(digit);
|
|
22325
22659
|
};
|
|
22326
22660
|
}
|
|
22327
22661
|
|
|
@@ -22425,12 +22759,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
22425
22759
|
/* harmony export */ ameyoWebRTCTroubleshooter: () => (/* binding */ ameyoWebRTCTroubleshooter)
|
|
22426
22760
|
/* harmony export */ });
|
|
22427
22761
|
/* harmony import */ var _listeners_Callback__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../listeners/Callback */ "./src/listeners/Callback.js");
|
|
22428
|
-
/* harmony import */ var
|
|
22429
|
-
/* harmony import */ var _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @exotel-npm-dev/webrtc-core-sdk */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js");
|
|
22762
|
+
/* harmony import */ var _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @exotel-npm-dev/webrtc-core-sdk */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js");
|
|
22430
22763
|
|
|
22431
22764
|
|
|
22432
|
-
|
|
22433
|
-
var logger = (0,_WebrtcLogger__WEBPACK_IMPORTED_MODULE_1__.webrtcLogger)();
|
|
22765
|
+
var logger = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.getLogger();
|
|
22434
22766
|
var speakerNode;
|
|
22435
22767
|
var micNode;
|
|
22436
22768
|
var audioTrack;
|
|
@@ -22544,7 +22876,7 @@ var ameyoWebRTCTroubleshooter = {
|
|
|
22544
22876
|
return browserName + "/" + version;
|
|
22545
22877
|
},
|
|
22546
22878
|
stopSpeakerTesttone: function () {
|
|
22547
|
-
speakerTestTone =
|
|
22879
|
+
speakerTestTone = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.getSpeakerTestTone();
|
|
22548
22880
|
speakerTestTone.pause();
|
|
22549
22881
|
},
|
|
22550
22882
|
stopSpeakerTesttoneWithSuccess: function () {
|
|
@@ -22564,7 +22896,7 @@ var ameyoWebRTCTroubleshooter = {
|
|
|
22564
22896
|
try {
|
|
22565
22897
|
intervalID = setInterval(function () {
|
|
22566
22898
|
try {
|
|
22567
|
-
speakerTestTone =
|
|
22899
|
+
speakerTestTone = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.getSpeakerTestTone();
|
|
22568
22900
|
/* Close last pending tracks.. */
|
|
22569
22901
|
logger.log("close last track");
|
|
22570
22902
|
speakerTestTone.pause();
|
|
@@ -22614,7 +22946,7 @@ var ameyoWebRTCTroubleshooter = {
|
|
|
22614
22946
|
|
|
22615
22947
|
stopSpeakerTest: function () {
|
|
22616
22948
|
var parent = this;
|
|
22617
|
-
speakerTestTone =
|
|
22949
|
+
speakerTestTone = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.getSpeakerTestTone();
|
|
22618
22950
|
//Enable this for tone loop - Start
|
|
22619
22951
|
try {
|
|
22620
22952
|
clearInterval(intervalID);
|
|
@@ -22778,7 +23110,7 @@ var ameyoWebRTCTroubleshooter = {
|
|
|
22778
23110
|
},
|
|
22779
23111
|
setWSTroubleshootData: function (txtWsStatus) {
|
|
22780
23112
|
//Already done during init, no need to do again.
|
|
22781
|
-
let txtWSSUrl =
|
|
23113
|
+
let txtWSSUrl = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.getWSSUrl();
|
|
22782
23114
|
_listeners_Callback__WEBPACK_IMPORTED_MODULE_0__.diagnosticsCallback.triggerKeyValueSetCallback("wss", txtWsStatus, txtWSSUrl);
|
|
22783
23115
|
},
|
|
22784
23116
|
startWSAndUserRegistrationTest: function () {
|
|
@@ -22968,11 +23300,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
22968
23300
|
/* harmony export */ });
|
|
22969
23301
|
/* harmony import */ var _listeners_Callback__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../listeners/Callback */ "./src/listeners/Callback.js");
|
|
22970
23302
|
/* harmony import */ var _Diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Diagnostics */ "./src/api/omAPI/Diagnostics.js");
|
|
22971
|
-
/* harmony import */ var
|
|
23303
|
+
/* harmony import */ var _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @exotel-npm-dev/webrtc-core-sdk */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js");
|
|
22972
23304
|
|
|
22973
23305
|
|
|
22974
23306
|
|
|
22975
|
-
var logger =
|
|
23307
|
+
var logger = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_2__.webrtcSIPPhone.getLogger();
|
|
22976
23308
|
function initDiagnostics(setDiagnosticsReportCallback, keyValueSetCallback) {
|
|
22977
23309
|
if (!keyValueSetCallback || !setDiagnosticsReportCallback) {
|
|
22978
23310
|
logger.log("Callbacks are not set");
|
|
@@ -23060,69 +23392,6 @@ function stopNetworkDiagnostics() {
|
|
|
23060
23392
|
|
|
23061
23393
|
/***/ }),
|
|
23062
23394
|
|
|
23063
|
-
/***/ "./src/api/omAPI/WebrtcLogger.js":
|
|
23064
|
-
/*!***************************************!*\
|
|
23065
|
-
!*** ./src/api/omAPI/WebrtcLogger.js ***!
|
|
23066
|
-
\***************************************/
|
|
23067
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
23068
|
-
|
|
23069
|
-
"use strict";
|
|
23070
|
-
__webpack_require__.r(__webpack_exports__);
|
|
23071
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
23072
|
-
/* harmony export */ customLogger: () => (/* binding */ customLogger),
|
|
23073
|
-
/* harmony export */ webrtcLogger: () => (/* binding */ webrtcLogger)
|
|
23074
|
-
/* harmony export */ });
|
|
23075
|
-
/* ES6 LOGGER */
|
|
23076
|
-
/*
|
|
23077
|
-
import Logger from 'node-logger-es6'
|
|
23078
|
-
|
|
23079
|
-
var es6Logger = Logger.configure(
|
|
23080
|
-
{
|
|
23081
|
-
level: 'debug',
|
|
23082
|
-
rotation: 'd',
|
|
23083
|
-
size: 5,
|
|
23084
|
-
json: true,
|
|
23085
|
-
timestamp: true
|
|
23086
|
-
}
|
|
23087
|
-
);
|
|
23088
|
-
*/
|
|
23089
|
-
|
|
23090
|
-
/* CUSTOM-LOGGER */
|
|
23091
|
-
/* Note currently customLogger uses console only
|
|
23092
|
-
we can replace it with any other logger for
|
|
23093
|
-
instances: es6Logger or ameyoLogger or winstonLogger.
|
|
23094
|
-
essentially the idea is not to duplicate the logic of
|
|
23095
|
-
handling levels and output stream.
|
|
23096
|
-
*/
|
|
23097
|
-
var customLogger = {
|
|
23098
|
-
log: (arg1, ...args) => {
|
|
23099
|
-
console.log(arg1, args);
|
|
23100
|
-
},
|
|
23101
|
-
info: (arg1, ...args) => {
|
|
23102
|
-
console.log(arg1, args);
|
|
23103
|
-
},
|
|
23104
|
-
warn: (arg1, ...args) => {
|
|
23105
|
-
console.log(arg1, args);
|
|
23106
|
-
},
|
|
23107
|
-
error: (arg1, ...args) => {
|
|
23108
|
-
console.log(arg1, args);
|
|
23109
|
-
}
|
|
23110
|
-
};
|
|
23111
|
-
|
|
23112
|
-
/* CONSOLE LOGGER */
|
|
23113
|
-
var consoleLogger = console;
|
|
23114
|
-
|
|
23115
|
-
/* FINAL LOGGER TO USE */
|
|
23116
|
-
function webrtcLogger() {
|
|
23117
|
-
if (customLogger) {
|
|
23118
|
-
return customLogger;
|
|
23119
|
-
} else {
|
|
23120
|
-
return consoleLogger;
|
|
23121
|
-
}
|
|
23122
|
-
}
|
|
23123
|
-
|
|
23124
|
-
/***/ }),
|
|
23125
|
-
|
|
23126
23395
|
/***/ "./src/api/registerAPI/RegisterListener.js":
|
|
23127
23396
|
/*!*************************************************!*\
|
|
23128
23397
|
!*** ./src/api/registerAPI/RegisterListener.js ***!
|
|
@@ -23135,9 +23404,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
23135
23404
|
/* harmony export */ DoRegister: () => (/* binding */ DoRegister),
|
|
23136
23405
|
/* harmony export */ UnRegister: () => (/* binding */ UnRegister)
|
|
23137
23406
|
/* harmony export */ });
|
|
23138
|
-
/* harmony import */ var
|
|
23407
|
+
/* harmony import */ var _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @exotel-npm-dev/webrtc-core-sdk */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js");
|
|
23139
23408
|
|
|
23140
|
-
var logger =
|
|
23409
|
+
var logger = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_0__.webrtcSIPPhone.getLogger();
|
|
23141
23410
|
|
|
23142
23411
|
/**
|
|
23143
23412
|
* Function to register the phone onto a webRTC client
|
|
@@ -23241,42 +23510,42 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
23241
23510
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
23242
23511
|
/* harmony export */ CallListener: () => (/* binding */ CallListener)
|
|
23243
23512
|
/* harmony export */ });
|
|
23244
|
-
/* harmony import */ var
|
|
23245
|
-
/* harmony import */ var
|
|
23513
|
+
/* harmony import */ var _Callback__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Callback */ "./src/listeners/Callback.js");
|
|
23514
|
+
/* harmony import */ var _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @exotel-npm-dev/webrtc-core-sdk */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js");
|
|
23246
23515
|
|
|
23247
23516
|
|
|
23248
|
-
var logger =
|
|
23517
|
+
var logger = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.getLogger();
|
|
23249
23518
|
function CallListener() {
|
|
23250
23519
|
this.onIncomingCall = function (call, phone) {
|
|
23251
23520
|
/**
|
|
23252
23521
|
* When there is an incoming call, [INVITE is received on SIP] send a call back to the
|
|
23253
23522
|
*/
|
|
23254
23523
|
logger.log("CallListener:Initialise call");
|
|
23255
|
-
|
|
23524
|
+
_Callback__WEBPACK_IMPORTED_MODULE_0__.callbacks.initializeCall(call, phone);
|
|
23256
23525
|
|
|
23257
23526
|
/** Triggers the callback on the UI end with message indicating it to be an incoming call */
|
|
23258
23527
|
logger.log("CallListener:Trigger Incoming");
|
|
23259
|
-
|
|
23528
|
+
_Callback__WEBPACK_IMPORTED_MODULE_0__.callbacks.triggerCallback("incoming");
|
|
23260
23529
|
};
|
|
23261
23530
|
this.onCallEstablished = function (call, phone) {
|
|
23262
23531
|
/**
|
|
23263
23532
|
* When connection is established [ACK is sent by other party on SIP]
|
|
23264
23533
|
*/
|
|
23265
23534
|
logger.log("CallListener:Initialise call");
|
|
23266
|
-
|
|
23535
|
+
_Callback__WEBPACK_IMPORTED_MODULE_0__.callbacks.initializeCall(call, phone);
|
|
23267
23536
|
/** Triggers the callback on the UI end with message indicating call has been established*/
|
|
23268
23537
|
logger.log("CallListener:Trigger Connected");
|
|
23269
|
-
|
|
23538
|
+
_Callback__WEBPACK_IMPORTED_MODULE_0__.callbacks.triggerCallback("connected");
|
|
23270
23539
|
};
|
|
23271
23540
|
this.onCallEnded = function (call, phone) {
|
|
23272
23541
|
/**
|
|
23273
23542
|
* When other party ends the call [BYE is received and sent by SIP]
|
|
23274
23543
|
*/
|
|
23275
23544
|
logger.log("CallListener:Initialise call");
|
|
23276
|
-
|
|
23545
|
+
_Callback__WEBPACK_IMPORTED_MODULE_0__.callbacks.initializeCall(call, phone);
|
|
23277
23546
|
/** Triggers the callback on the UI end with message indicating call has ended */
|
|
23278
23547
|
logger.log("CallListener:Trigger Call Ended");
|
|
23279
|
-
|
|
23548
|
+
_Callback__WEBPACK_IMPORTED_MODULE_0__.callbacks.triggerCallback("callEnded");
|
|
23280
23549
|
};
|
|
23281
23550
|
}
|
|
23282
23551
|
|
|
@@ -23299,9 +23568,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
23299
23568
|
/* harmony export */ timerSession: () => (/* binding */ timerSession),
|
|
23300
23569
|
/* harmony export */ webrtcTroubleshooterEventBus: () => (/* binding */ webrtcTroubleshooterEventBus)
|
|
23301
23570
|
/* harmony export */ });
|
|
23302
|
-
/* harmony import */ var
|
|
23571
|
+
/* harmony import */ var _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @exotel-npm-dev/webrtc-core-sdk */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js");
|
|
23303
23572
|
|
|
23304
|
-
var logger =
|
|
23573
|
+
var logger = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_0__.webrtcSIPPhone.getLogger();
|
|
23305
23574
|
|
|
23306
23575
|
/**
|
|
23307
23576
|
* The call backs are called through this function. First initiates the call object and then
|
|
@@ -23516,26 +23785,14 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
23516
23785
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
23517
23786
|
/* harmony export */ });
|
|
23518
23787
|
/* harmony import */ var _api_callAPI_Call__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../api/callAPI/Call */ "./src/api/callAPI/Call.js");
|
|
23519
|
-
/* harmony import */ var
|
|
23788
|
+
/* harmony import */ var _api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../api/registerAPI/RegisterListener */ "./src/api/registerAPI/RegisterListener.js");
|
|
23520
23789
|
/* harmony import */ var _listeners_CallListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../listeners/CallListener */ "./src/listeners/CallListener.js");
|
|
23521
|
-
/* harmony import */ var
|
|
23522
|
-
/* harmony import */ var
|
|
23523
|
-
/* harmony import */ var
|
|
23790
|
+
/* harmony import */ var _listeners_ExotelVoiceClientListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../listeners/ExotelVoiceClientListener */ "./src/listeners/ExotelVoiceClientListener.js");
|
|
23791
|
+
/* harmony import */ var _listeners_SessionListeners__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../listeners/SessionListeners */ "./src/listeners/SessionListeners.js");
|
|
23792
|
+
/* harmony import */ var _CallCtrlerDummy__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CallCtrlerDummy */ "./src/listeners/CallCtrlerDummy.js");
|
|
23524
23793
|
/* harmony import */ var _api_omAPI_DiagnosticsListener__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../api/omAPI/DiagnosticsListener */ "./src/api/omAPI/DiagnosticsListener.js");
|
|
23525
23794
|
/* harmony import */ var _listeners_Callback__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Callback */ "./src/listeners/Callback.js");
|
|
23526
|
-
/* harmony import */ var
|
|
23527
|
-
/* harmony import */ var _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @exotel-npm-dev/webrtc-core-sdk */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js");
|
|
23528
|
-
|
|
23529
|
-
|
|
23530
|
-
|
|
23531
|
-
|
|
23532
|
-
|
|
23533
|
-
|
|
23534
|
-
|
|
23535
|
-
|
|
23536
|
-
|
|
23537
|
-
|
|
23538
|
-
|
|
23795
|
+
/* 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");
|
|
23539
23796
|
|
|
23540
23797
|
|
|
23541
23798
|
|
|
@@ -23548,7 +23805,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
23548
23805
|
|
|
23549
23806
|
var intervalId;
|
|
23550
23807
|
var intervalIDMap = new Map();
|
|
23551
|
-
var logger =
|
|
23808
|
+
var logger = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.getLogger();
|
|
23552
23809
|
function sleep(ms) {
|
|
23553
23810
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
23554
23811
|
}
|
|
@@ -23703,13 +23960,13 @@ class ExotelWebClient {
|
|
|
23703
23960
|
sipAccountInfo = null;
|
|
23704
23961
|
initWebrtc = (sipAccountInfo_, RegisterEventCallBack, CallListenerCallback, SessionCallback) => {
|
|
23705
23962
|
if (!this.eventListener) {
|
|
23706
|
-
this.eventListener = new
|
|
23963
|
+
this.eventListener = new _listeners_ExotelVoiceClientListener__WEBPACK_IMPORTED_MODULE_3__.ExotelVoiceClientListener();
|
|
23707
23964
|
}
|
|
23708
23965
|
if (!this.callListener) {
|
|
23709
23966
|
this.callListener = new _listeners_CallListener__WEBPACK_IMPORTED_MODULE_2__.CallListener();
|
|
23710
23967
|
}
|
|
23711
23968
|
if (!this.ctrlr) {
|
|
23712
|
-
this.ctrlr = new
|
|
23969
|
+
this.ctrlr = new _CallCtrlerDummy__WEBPACK_IMPORTED_MODULE_5__.CallController();
|
|
23713
23970
|
}
|
|
23714
23971
|
if (!this.call) {
|
|
23715
23972
|
this.call = new _api_callAPI_Call__WEBPACK_IMPORTED_MODULE_0__.Call();
|
|
@@ -23728,10 +23985,10 @@ class ExotelWebClient {
|
|
|
23728
23985
|
return true;
|
|
23729
23986
|
};
|
|
23730
23987
|
DoRegister = () => {
|
|
23731
|
-
(0,
|
|
23988
|
+
(0,_api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_1__.DoRegister)(this.sipAccountInfo, this);
|
|
23732
23989
|
};
|
|
23733
23990
|
UnRegister = () => {
|
|
23734
|
-
(0,
|
|
23991
|
+
(0,_api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_1__.UnRegister)(this.sipAccountInfo, this);
|
|
23735
23992
|
};
|
|
23736
23993
|
initDiagnostics = (saveDiagnosticsCallback, keyValueSetCallback) => {
|
|
23737
23994
|
(0,_api_omAPI_DiagnosticsListener__WEBPACK_IMPORTED_MODULE_6__.initDiagnostics)(saveDiagnosticsCallback, keyValueSetCallback);
|
|
@@ -23759,7 +24016,7 @@ class ExotelWebClient {
|
|
|
23759
24016
|
(0,_api_omAPI_DiagnosticsListener__WEBPACK_IMPORTED_MODULE_6__.stopNetworkDiagnostics)();
|
|
23760
24017
|
};
|
|
23761
24018
|
SessionListener = () => {
|
|
23762
|
-
(0,
|
|
24019
|
+
(0,_listeners_SessionListeners__WEBPACK_IMPORTED_MODULE_4__.SessionListener)();
|
|
23763
24020
|
};
|
|
23764
24021
|
|
|
23765
24022
|
/**
|
|
@@ -23842,7 +24099,7 @@ class ExotelWebClient {
|
|
|
23842
24099
|
*/
|
|
23843
24100
|
unregister = sipAccountInfo => {
|
|
23844
24101
|
// webrtcSIPPhone.unregister(sipAccountInfo)
|
|
23845
|
-
|
|
24102
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.sipUnRegisterWebRTC();
|
|
23846
24103
|
};
|
|
23847
24104
|
webRTCStatusCallbackHandler = (msg1, arg1) => {
|
|
23848
24105
|
logger.log("webRTCStatusCallbackHandler: " + msg1 + " " + arg1);
|
|
@@ -23918,8 +24175,8 @@ class ExotelWebClient {
|
|
|
23918
24175
|
//webRTCPhones[userName] = webRTC;
|
|
23919
24176
|
|
|
23920
24177
|
/* New-Way */
|
|
23921
|
-
|
|
23922
|
-
|
|
24178
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.registerPhone("sipjs", delegationHandler);
|
|
24179
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.registerWebRTCClient(this.sipAccntInfo, synchronousHandler);
|
|
23923
24180
|
|
|
23924
24181
|
/**
|
|
23925
24182
|
* Store the intervalID against a map
|
|
@@ -23936,7 +24193,7 @@ class ExotelWebClient {
|
|
|
23936
24193
|
video: false
|
|
23937
24194
|
};
|
|
23938
24195
|
navigator.mediaDevices.getUserMedia(constraints).then(function (mediaStream) {
|
|
23939
|
-
var transportState =
|
|
24196
|
+
var transportState = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.getTransportState();
|
|
23940
24197
|
transportState = transportState.toLowerCase();
|
|
23941
24198
|
switch (transportState) {
|
|
23942
24199
|
case "":
|
|
@@ -23947,7 +24204,7 @@ class ExotelWebClient {
|
|
|
23947
24204
|
callback(transportState);
|
|
23948
24205
|
break;
|
|
23949
24206
|
default:
|
|
23950
|
-
var registerationState =
|
|
24207
|
+
var registerationState = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.getRegistrationState();
|
|
23951
24208
|
registerationState = registerationState.toLowerCase();
|
|
23952
24209
|
switch (registerationState) {
|
|
23953
24210
|
case "":
|
|
@@ -23965,10 +24222,24 @@ class ExotelWebClient {
|
|
|
23965
24222
|
}
|
|
23966
24223
|
}
|
|
23967
24224
|
}).catch(function (error) {
|
|
23968
|
-
|
|
24225
|
+
logger.log("something went wrong during checkClientStatus ", error);
|
|
23969
24226
|
callback("media_permission_denied");
|
|
23970
24227
|
});
|
|
23971
24228
|
};
|
|
24229
|
+
changeAudioInputDevice(deviceId, onSuccess, onError) {
|
|
24230
|
+
logger.log(`in changeAudioInputDevice() of ExWebClient.js`);
|
|
24231
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.changeAudioInputDevice(deviceId, onSuccess, onError);
|
|
24232
|
+
}
|
|
24233
|
+
changeAudioOutputDevice(deviceId, onSuccess, onError) {
|
|
24234
|
+
logger.log(`in changeAudioOutputDevice() of ExWebClient.js`);
|
|
24235
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.changeAudioOutputDevice(deviceId, onSuccess, onError);
|
|
24236
|
+
}
|
|
24237
|
+
registerLoggerCallback(callback) {
|
|
24238
|
+
logger.registerLoggerCallback(callback);
|
|
24239
|
+
}
|
|
24240
|
+
registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback) {
|
|
24241
|
+
_exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback);
|
|
24242
|
+
}
|
|
23972
24243
|
}
|
|
23973
24244
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ExotelWebClient);
|
|
23974
24245
|
|
|
@@ -24044,12 +24315,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
24044
24315
|
/* harmony import */ var _Callback__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Callback */ "./src/listeners/Callback.js");
|
|
24045
24316
|
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! uuid */ "./node_modules/uuid/dist/esm-browser/v4.js");
|
|
24046
24317
|
/* harmony import */ var _constants_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants/common */ "./src/constants/common.js");
|
|
24047
|
-
/* harmony import */ var
|
|
24318
|
+
/* harmony import */ var _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @exotel-npm-dev/webrtc-core-sdk */ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js");
|
|
24048
24319
|
|
|
24049
24320
|
|
|
24050
24321
|
|
|
24051
24322
|
|
|
24052
|
-
var logger =
|
|
24323
|
+
var logger = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_2__.webrtcSIPPhone.getLogger();
|
|
24053
24324
|
/**
|
|
24054
24325
|
* Session listeners is invoked when user opens two tabs, the data in tab 1 is
|
|
24055
24326
|
* copied into tab 2
|