@exotel-npm-dev/webrtc-client-sdk 3.0.6 → 3.0.8

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/dist/exotelsdk.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * WebRTC CLient SIP version 3.0.6
3
+ * WebRTC CLient SIP version 3.0.8
4
4
  *
5
5
  */
6
6
  (function webpackUniversalModuleDefinition(root, factory) {
@@ -16,11 +16,11 @@
16
16
  return /******/ (() => { // webpackBootstrap
17
17
  /******/ var __webpack_modules__ = ({
18
18
 
19
- /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js":
19
+ /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js"
20
20
  /*!***************************************************************!*\
21
21
  !*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/index.js ***!
22
22
  \***************************************************************/
23
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24
24
 
25
25
  "use strict";
26
26
  __webpack_require__.r(__webpack_exports__);
@@ -32,13 +32,13 @@ __webpack_require__.r(__webpack_exports__);
32
32
 
33
33
 
34
34
 
35
- /***/ }),
35
+ /***/ },
36
36
 
37
- /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/audioDeviceManager.js":
37
+ /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/audioDeviceManager.js"
38
38
  /*!********************************************************************************!*\
39
39
  !*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/audioDeviceManager.js ***!
40
40
  \********************************************************************************/
41
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
41
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
42
42
 
43
43
  "use strict";
44
44
  __webpack_require__.r(__webpack_exports__);
@@ -219,13 +219,13 @@ const audioDeviceManager = {
219
219
 
220
220
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (audioDeviceManager);
221
221
 
222
- /***/ }),
222
+ /***/ },
223
223
 
224
- /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/coreSDKLogger.js":
224
+ /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/coreSDKLogger.js"
225
225
  /*!***************************************************************************!*\
226
226
  !*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/coreSDKLogger.js ***!
227
227
  \***************************************************************************/
228
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
228
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
229
229
 
230
230
  "use strict";
231
231
  __webpack_require__.r(__webpack_exports__);
@@ -296,13 +296,13 @@ const coreSDKLogger = {
296
296
 
297
297
 
298
298
 
299
- /***/ }),
299
+ /***/ },
300
300
 
301
- /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/sip-0.20.0.js":
301
+ /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/sip-0.20.0.js"
302
302
  /*!************************************************************************!*\
303
303
  !*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/sip-0.20.0.js ***!
304
304
  \************************************************************************/
305
- /***/ (function(module) {
305
+ (module) {
306
306
 
307
307
  /*!
308
308
  *
@@ -20868,13 +20868,13 @@ const name = "sip.js";
20868
20868
  ;
20869
20869
  });
20870
20870
 
20871
- /***/ }),
20871
+ /***/ },
20872
20872
 
20873
- /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/sipjsphone.js":
20873
+ /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/sipjsphone.js"
20874
20874
  /*!************************************************************************!*\
20875
20875
  !*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/sipjsphone.js ***!
20876
20876
  \************************************************************************/
20877
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20877
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
20878
20878
 
20879
20879
  "use strict";
20880
20880
  __webpack_require__.r(__webpack_exports__);
@@ -20950,7 +20950,7 @@ class SIPJSPhone {
20950
20950
  this.isConnecting = false;
20951
20951
  this.isDisconnected = false;
20952
20952
  this.isMuted = false;
20953
- this.isHold = false;
20953
+ this.isOnHold = false;
20954
20954
  this.isCallActive = false;
20955
20955
  this.isCallEnded = false;
20956
20956
  this.isCallRejected = false;
@@ -20995,8 +20995,6 @@ class SIPJSPhone {
20995
20995
  this.isCallUnrestricted = false;
20996
20996
  this.isCallUnshackled = false;
20997
20997
  this.isCallUntrammeled = false;
20998
- this.bMicEnable = true;
20999
- this.bHoldEnable = false;
21000
20998
  this.register_flag = false;
21001
20999
  this.enableAutoAudioDeviceChangeHandling = false;
21002
21000
  this.addPreferredCodec = this.addPreferredCodec.bind(this);
@@ -21339,25 +21337,15 @@ class SIPJSPhone {
21339
21337
 
21340
21338
 
21341
21339
  phoneMuteButtonPressed: (sessionid) => {
21342
- logger.log(" sipjsphone: phoneMuteButtonPressed: bMicEnable, sessionid", this.bMicEnable, sessionid);
21343
- var s = this.ctxSip.Sessions[sessionid];
21344
-
21345
- if (this.bMicEnable) {
21346
- this.toggleMute(s, true);
21347
- this.bMicEnable = false;
21348
- } else {
21349
- this.toggleMute(s, false);
21350
- this.bMicEnable = true;
21351
- }
21340
+ logger.log(" sipjsphone: phoneMuteButtonPressed: sessionid", sessionid);
21341
+ this.toggleMute(sessionid);
21352
21342
  },
21353
21343
 
21354
21344
  //NL --Implement hold button start
21355
21345
  phoneMute: (sessionid, bMute) => {
21356
21346
  if (sessionid) {
21357
- var s = this.ctxSip.Sessions[sessionid];
21358
21347
  logger.log(" sipjsphone: phoneMute: bMute", bMute)
21359
- this.toggleMute(s, bMute);
21360
- this.bMicEnable = !bMute;
21348
+ this.muteActionBySessionID(sessionid, bMute);
21361
21349
  }
21362
21350
  else{
21363
21351
  logger.log(" sipjsphone: phoneMute: doing nothing as sessionid not found")
@@ -21367,24 +21355,22 @@ class SIPJSPhone {
21367
21355
 
21368
21356
  phoneHold: (sessionid, bHold) => {
21369
21357
  if (sessionid) {
21370
- var s = this.ctxSip.Sessions[sessionid];
21371
- logger.log("sipjsphone: phoneHold: bHold", bHold)
21372
- this.toggleHold(s, bHold);
21373
- this.bHoldEnable = bHold;
21358
+ logger.log("sipjsphone: phoneHold: bHold:", bHold, "sessionid:", sessionid)
21359
+ this.holdActionBySessionID(sessionid, bHold);
21360
+ }
21361
+ else{
21362
+ logger.log(" sipjsphone: phoneHold: doing nothing as sessionid not found")
21363
+
21374
21364
  }
21375
21365
  },
21376
21366
 
21377
21367
  phoneHoldButtonPressed: (sessionid) => {
21378
- if (sessionid) {
21379
- var s = this.ctxSip.Sessions[sessionid];
21380
- if (this.bHoldEnable) {
21381
- this.toggleHold(s, false);
21382
- this.bHoldEnable = false;
21383
- } else {
21384
- this.toggleHold(s, true);
21385
- this.bHoldEnable = true;
21368
+ logger.log("sipjsphone: phoneHoldButtonPressed: sessionid:", sessionid);
21369
+ if(!sessionid) {
21370
+ logger.log("sipjsphone: phoneHoldButtonPressed: invalid sessionid");
21371
+ return;
21386
21372
  }
21387
- }
21373
+ this.toggleHold(sessionid);
21388
21374
  },
21389
21375
  //NL --Implement hold button end
21390
21376
 
@@ -21452,7 +21438,7 @@ class SIPJSPhone {
21452
21438
 
21453
21439
  // Extract and modify the audio m-line
21454
21440
  let audioMLine = sdpLines[audioMLineIndex];
21455
- audioMLine = audioMLine.replace("RTP/SAVP", "RTP/AVP");
21441
+ audioMLine = audioMLine.replace("RTP/SAVP", "RTP/SAVP");
21456
21442
 
21457
21443
  const codecs = audioMLine.split(" ");
21458
21444
  const mLineStart = codecs.slice(0, 3); // "m=audio <port> <protocol>"
@@ -21476,7 +21462,7 @@ class SIPJSPhone {
21476
21462
 
21477
21463
  // Extract and modify the audio m-line
21478
21464
  let audioMLine = sdpLines[audioMLineIndex];
21479
- audioMLine = audioMLine.replace("RTP/SAVP", "RTP/AVP");
21465
+ audioMLine = audioMLine.replace("RTP/SAVP", "RTP/SAVP");
21480
21466
 
21481
21467
  const codecs = audioMLine.split(" ");
21482
21468
  const mLineStart = codecs.slice(0, 3); // "m=audio <port> <protocol>"
@@ -21866,67 +21852,82 @@ destroySocketConnection() {
21866
21852
  this.register_flag = b;
21867
21853
  }
21868
21854
 
21869
- toggleMute(s, mute) {
21870
- let pc = s.sessionDescriptionHandler.peerConnection;
21871
- if (pc.getSenders) {
21872
- pc.getSenders().forEach((sender) => {
21873
- if (sender.track) {
21874
- sender.track.enabled = !mute;
21875
- }
21876
- });
21877
- } else {
21878
- pc.getLocalStreams().forEach((stream) => {
21879
- stream.getAudioTracks().forEach((track) => {
21880
- track.enabled = !mute;
21855
+ toggleMute(sessionid) {
21856
+ logger.log("sipjsphone: toggleMute: sessionid:", sessionid);
21857
+ let bMute = !this.isMuted;
21858
+ this.muteActionBySessionID(sessionid, bMute);
21859
+ }
21860
+
21861
+
21862
+ muteActionBySessionID(sessionid, bMute) {
21863
+
21864
+ logger.log("sipjsphone: muteActionBySessionID: sessionid:", sessionid, "bMute:", bMute);
21865
+
21866
+ if(bMute == this.isMuted) {
21867
+ logger.log("sipjsphone: muteActionBySessionID: already muted", bMute);
21868
+ return;
21869
+ }
21870
+ if(!sessionid) {
21871
+ logger.error("sipjsphone: muteActionBySessionID: invalid sessionid");
21872
+ return;
21873
+ }
21874
+ let s = this.ctxSip.Sessions[sessionid];
21875
+ if(!s) {
21876
+ logger.error("sipjsphone: muteActionBySessionID: invalid session");
21877
+ return;
21878
+ }
21879
+ let pc = s.sessionDescriptionHandler.peerConnection;
21880
+ if (pc.getSenders) {
21881
+ pc.getSenders().forEach((sender) => {
21882
+ if (sender.track) {
21883
+ sender.track.enabled = !bMute;
21884
+ }
21881
21885
  });
21882
- stream.getVideoTracks().forEach((track) => {
21883
- track.enabled = !mute;
21886
+ } else {
21887
+ pc.getLocalStreams().forEach((stream) => {
21888
+ stream.getAudioTracks().forEach((track) => {
21889
+ track.enabled = !bMute;
21890
+ });
21891
+ stream.getVideoTracks().forEach((track) => {
21892
+ track.enabled = !bMute;
21893
+ });
21884
21894
  });
21885
- });
21886
- }
21887
- if (mute) {
21888
- this.onMuted(s);
21889
- } else {
21890
- this.onUnmuted(s);
21895
+ }
21896
+ if (bMute) {
21897
+ this.onMuted(s);
21898
+ } else {
21899
+ this.onUnmuted(s);
21900
+ }
21891
21901
  }
21892
- }
21893
21902
 
21894
21903
 
21895
21904
  onMuted(s) {
21896
- logger.log(`[onMuted] Before: s.isMuted=${s && s.isMuted}, global isMuted=${this.isMuted}`);
21897
- this.webrtcSIPPhoneEventDelegate.onCallStatSipJsSessionEvent('muted');
21905
+ logger.log("sipjsphone: onMuted: sessionid:", s.id);
21898
21906
  if (s) s.isMuted = true;
21899
21907
  this.isMuted = true;
21900
- logger.log(`[onMuted] After: s.isMuted=${s && s.isMuted}, global isMuted=${this.isMuted}`);
21908
+ this.webrtcSIPPhoneEventDelegate.onCallStatSipJsSessionEvent('muted');
21901
21909
  this.ctxSip.setCallSessionStatus("Muted");
21902
21910
  }
21903
21911
 
21904
21912
  onUnmuted(s) {
21905
- logger.log(`[onUnmuted] Before: s.isMuted=${s && s.isMuted}, global isMuted=${this.isMuted}`);
21906
- this.webrtcSIPPhoneEventDelegate.onCallStatSipJsSessionEvent('unmuted');
21913
+ logger.log("sipjsphone: onUnmuted: sessionid:", s.id);
21907
21914
  if (s) s.isMuted = false;
21908
21915
  this.isMuted = false;
21909
- logger.log(`[onUnmuted] After: s.isMuted=${s && s.isMuted}, global isMuted=${this.isMuted}`);
21916
+ this.webrtcSIPPhoneEventDelegate.onCallStatSipJsSessionEvent('unmuted');
21910
21917
  this.ctxSip.setCallSessionStatus("Answered");
21911
21918
  }
21912
21919
 
21913
- onHold(s) {
21914
- //webrtcSIPPhoneEventDelegate.onCallStatSipJsSessionEvent('hold');
21915
- logger.warn(`[${s.id}] re-invite request was accepted`);
21916
- s.held = true;
21917
- this.enableSenderTracks(s, !s.held && !s.isMuted);
21918
- this.enableReceiverTracks(s, !s.held);
21919
- //this.ctxSip.setCallSessionStatus("Hold");
21920
+ onHoldUnholdSuccess(s, hold) {
21921
+ logger.info(`sipjsphone: onHoldUnholdSuccess: [${s.id}] : re-invite request was accepted for hold: ${hold}`);
21922
+ this.webrtcSIPPhoneEventDelegate.onCallStatSipJsSessionEvent('holdunhold_success');
21923
+ s.held = hold;
21924
+ this.isOnHold = hold;
21920
21925
  }
21921
21926
 
21922
- onUnhold(s) {
21923
- //webrtcSIPPhoneEventDelegate.onCallStatSipJsSessionEvent('unhold');
21924
- logger.warn(`[${s.id}] re-invite request was rejected`);
21925
- s.held = false;
21926
- this.enableSenderTracks(s, !s.held && !s.isMuted);
21927
- this.enableReceiverTracks(s, !s.held);
21928
- //this.ctxSip.setCallSessionStatus("Unhold");
21929
- }
21927
+ onHoldUnholdFailure(s, hold) {
21928
+ logger.info(`sipjsphone: onHoldUnholdFailure: [${s.id}] : re-invite request was rejected for hold: ${hold}`);
21929
+ this.webrtcSIPPhoneEventDelegate.onCallStatSipJsSessionEvent('holdunhold_failed');
21930
+ }
21930
21931
 
21931
21932
  /** Helper function to enable/disable media tracks. */
21932
21933
  enableReceiverTracks(s, enable) {
@@ -21966,28 +21967,47 @@ destroySocketConnection() {
21966
21967
  }
21967
21968
  }
21968
21969
 
21969
- toggleHold(s, hold) {
21970
- const options = {
21971
- requestDelegate: {
21972
- onAccept: () => {
21973
- this.onHold(s)
21970
+ toggleHold(sessionid) {
21971
+ logger.log("sipjsphone: toggleHold: sessionid:", sessionid);
21972
+ this.holdActionBySessionID(sessionid, !this.isOnHold);
21973
+ }
21974
+
21975
+ holdActionBySessionID(sessionid, hold) {
21976
+ logger.log("sipjsphone: holdActionBySessionID: hold:", hold, "sessionid:", sessionid);
21977
+
21978
+ if(hold == this.isOnHold) {
21979
+ logger.log("sipjsphone: holdActionBySessionID: already on hold", hold);
21980
+ return;
21981
+ }
21982
+ if (!sessionid) {
21983
+ logger.log("sipjsphone: holdActionBySessionID: invalid sessionid");
21984
+ return;
21985
+ }
21986
+ let s = this.ctxSip.Sessions[sessionid];
21987
+ if(!s) {
21988
+ logger.error("sipjsphone: holdActionBySessionID: invalid session");
21989
+ return;
21990
+ }
21991
+
21992
+
21993
+
21994
+ const options = {
21995
+ requestDelegate: {
21996
+ onAccept: () => {
21997
+ this.onHoldUnholdSuccess(s, hold);
21998
+ },
21999
+ onReject: () => {
22000
+ this.onHoldUnholdFailure(s, hold);
22001
+ }
21974
22002
  },
21975
- onReject: () => {
21976
- this.onUnhold(s)
22003
+ sessionDescriptionHandlerOptions: {
22004
+ hold: hold
21977
22005
  }
21978
- },
21979
- sessionDescriptionHandlerOptions: {
21980
- hold: hold
21981
- }
21982
- };
21983
- s.invite(options).then(() => {
21984
- // preemptively enable/disable tracks
21985
- this.enableReceiverTracks(s, !hold);
21986
- this.enableSenderTracks(s, !hold && !s.isMuted);
21987
- }).catch((error) => {
21988
- logger.error(`Error in hold request [${s.id}]`);
21989
- });
21990
- }
22006
+ };
22007
+ s.invite(options).catch((error) => {
22008
+ logger.error(`sipjsphone: holdActionBySessionID: Error in hold request [${sessionid}] error:`, error);
22009
+ });
22010
+ }
21991
22011
 
21992
22012
 
21993
22013
  assignStream(stream, element) {
@@ -22154,14 +22174,20 @@ destroySocketConnection() {
22154
22174
  }
22155
22175
 
22156
22176
  holdCall() {
22177
+ logger.log("sipjsphone: holdCall: entry");
22157
22178
  if (this.ctxSip.callActiveID) {
22158
22179
  this.ctxSip.phoneHoldButtonPressed(this.ctxSip.callActiveID);
22180
+ } else {
22181
+ logger.log("sipjsphone: holdCall: No active session");
22159
22182
  }
22160
22183
  }
22161
22184
 
22162
22185
  sipHold(bHold) {
22186
+ logger.log("sipjsphone: sipHold: bHold: ", bHold);
22163
22187
  if (this.ctxSip.callActiveID) {
22164
22188
  this.ctxSip.phoneHold(this.ctxSip.callActiveID, bHold);
22189
+ } else {
22190
+ logger.log("sipjsphone: sipHold: No active session");
22165
22191
  }
22166
22192
  }
22167
22193
 
@@ -22177,6 +22203,18 @@ destroySocketConnection() {
22177
22203
  return this.isMuted;
22178
22204
  }
22179
22205
 
22206
+ getHoldStatus() {
22207
+ logger.log("sipjsphone: getHoldStatus: isOnHold:", this.isOnHold);
22208
+ if (this.ctxSip && this.ctxSip.callActiveID && this.ctxSip.Sessions && this.ctxSip.Sessions[this.ctxSip.callActiveID]) {
22209
+ const sessionHold = !!this.ctxSip.Sessions[this.ctxSip.callActiveID].held;
22210
+ logger.log(`[getHoldStatus] sessionHold: ${sessionHold}, global isOnHold: ${this.isOnHold}`);
22211
+ return sessionHold;
22212
+ } else {
22213
+ logger.log(`[getHoldStatus] No active session, global onHold: ${this.isOnHold}`);
22214
+ return this.isOnHold;
22215
+ }
22216
+ }
22217
+
22180
22218
  setPreferredCodec(codecName) {
22181
22219
  logger.log("sipjsphone:setPreferredCodec entry");
22182
22220
  const codecPayloadTypes = {
@@ -22435,8 +22473,10 @@ destroySocketConnection() {
22435
22473
  // Reset mute state at the start of every call
22436
22474
  logger.log(`[onInvitationSessionAccepted] Resetting mute state. Before: newSess.isMuted=${newSess && newSess.isMuted}, global isMuted=${this.isMuted}`);
22437
22475
  this.isMuted = false;
22476
+ this.isOnHold = false;
22438
22477
  if (newSess && newSess.isMuted !== undefined) {
22439
22478
  newSess.isMuted = false;
22479
+ newSess.held = false;
22440
22480
  }
22441
22481
  logger.log(`[onInvitationSessionAccepted] After reset: newSess.isMuted=${newSess && newSess.isMuted}, global isMuted=${this.isMuted}`);
22442
22482
  this.ctxSip.Stream = newSess.sessionDescriptionHandler.localMediaStream;
@@ -22595,57 +22635,57 @@ destroySocketConnection() {
22595
22635
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SIPJSPhone);
22596
22636
 
22597
22637
 
22598
- /***/ }),
22638
+ /***/ },
22599
22639
 
22600
- /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/beep.wav":
22640
+ /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/beep.wav"
22601
22641
  /*!**************************************************************************!*\
22602
22642
  !*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/beep.wav ***!
22603
22643
  \**************************************************************************/
22604
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
22644
+ (module, __unused_webpack_exports, __webpack_require__) {
22605
22645
 
22606
22646
  "use strict";
22607
22647
  module.exports = __webpack_require__.p + "beep.wav";
22608
22648
 
22609
- /***/ }),
22649
+ /***/ },
22610
22650
 
22611
- /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/dtmf.wav":
22651
+ /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/dtmf.wav"
22612
22652
  /*!**************************************************************************!*\
22613
22653
  !*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/dtmf.wav ***!
22614
22654
  \**************************************************************************/
22615
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
22655
+ (module, __unused_webpack_exports, __webpack_require__) {
22616
22656
 
22617
22657
  "use strict";
22618
22658
  module.exports = __webpack_require__.p + "dtmf.wav";
22619
22659
 
22620
- /***/ }),
22660
+ /***/ },
22621
22661
 
22622
- /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/ringbacktone.wav":
22662
+ /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/ringbacktone.wav"
22623
22663
  /*!**********************************************************************************!*\
22624
22664
  !*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/ringbacktone.wav ***!
22625
22665
  \**********************************************************************************/
22626
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
22666
+ (module, __unused_webpack_exports, __webpack_require__) {
22627
22667
 
22628
22668
  "use strict";
22629
22669
  module.exports = __webpack_require__.p + "ringbacktone.wav";
22630
22670
 
22631
- /***/ }),
22671
+ /***/ },
22632
22672
 
22633
- /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/ringtone.wav":
22673
+ /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/ringtone.wav"
22634
22674
  /*!******************************************************************************!*\
22635
22675
  !*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/static/ringtone.wav ***!
22636
22676
  \******************************************************************************/
22637
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
22677
+ (module, __unused_webpack_exports, __webpack_require__) {
22638
22678
 
22639
22679
  "use strict";
22640
22680
  module.exports = __webpack_require__.p + "ringtone.wav";
22641
22681
 
22642
- /***/ }),
22682
+ /***/ },
22643
22683
 
22644
- /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/webrtcSIPPhone.js":
22684
+ /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/webrtcSIPPhone.js"
22645
22685
  /*!****************************************************************************!*\
22646
22686
  !*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/webrtcSIPPhone.js ***!
22647
22687
  \****************************************************************************/
22648
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22688
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
22649
22689
 
22650
22690
  "use strict";
22651
22691
  __webpack_require__.r(__webpack_exports__);
@@ -22793,6 +22833,11 @@ class WebrtcSIPPhone {
22793
22833
  return this.phone.getMicMuteStatus();
22794
22834
  }
22795
22835
 
22836
+ getHoldStatus() {
22837
+ logger.log("webrtcSIPPhone: getHoldStatus entry");
22838
+ return this.phone.getHoldStatus();
22839
+ }
22840
+
22796
22841
  muteAction (bMute){
22797
22842
  logger.log("webrtcSIPPhone: muteAction: ",bMute);
22798
22843
  this.phone.sipMute(bMute);
@@ -22957,13 +23002,13 @@ class WebrtcSIPPhone {
22957
23002
 
22958
23003
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (WebrtcSIPPhone);
22959
23004
 
22960
- /***/ }),
23005
+ /***/ },
22961
23006
 
22962
- /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/webrtcSIPPhoneEventDelegate.js":
23007
+ /***/ "./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/webrtcSIPPhoneEventDelegate.js"
22963
23008
  /*!*****************************************************************************************!*\
22964
23009
  !*** ./node_modules/@exotel-npm-dev/webrtc-core-sdk/src/webrtcSIPPhoneEventDelegate.js ***!
22965
23010
  \*****************************************************************************************/
22966
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23011
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
22967
23012
 
22968
23013
  "use strict";
22969
23014
  __webpack_require__.r(__webpack_exports__);
@@ -23222,13 +23267,13 @@ class WebrtcSIPPhoneEventDelegate {
23222
23267
 
23223
23268
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (WebrtcSIPPhoneEventDelegate);
23224
23269
 
23225
- /***/ }),
23270
+ /***/ },
23226
23271
 
23227
- /***/ "./node_modules/uuid/dist/esm-browser/native.js":
23272
+ /***/ "./node_modules/uuid/dist/esm-browser/native.js"
23228
23273
  /*!******************************************************!*\
23229
23274
  !*** ./node_modules/uuid/dist/esm-browser/native.js ***!
23230
23275
  \******************************************************/
23231
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23276
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
23232
23277
 
23233
23278
  "use strict";
23234
23279
  __webpack_require__.r(__webpack_exports__);
@@ -23240,13 +23285,13 @@ const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.
23240
23285
  randomUUID
23241
23286
  });
23242
23287
 
23243
- /***/ }),
23288
+ /***/ },
23244
23289
 
23245
- /***/ "./node_modules/uuid/dist/esm-browser/regex.js":
23290
+ /***/ "./node_modules/uuid/dist/esm-browser/regex.js"
23246
23291
  /*!*****************************************************!*\
23247
23292
  !*** ./node_modules/uuid/dist/esm-browser/regex.js ***!
23248
23293
  \*****************************************************/
23249
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23294
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
23250
23295
 
23251
23296
  "use strict";
23252
23297
  __webpack_require__.r(__webpack_exports__);
@@ -23255,13 +23300,13 @@ __webpack_require__.r(__webpack_exports__);
23255
23300
  /* harmony export */ });
23256
23301
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i);
23257
23302
 
23258
- /***/ }),
23303
+ /***/ },
23259
23304
 
23260
- /***/ "./node_modules/uuid/dist/esm-browser/rng.js":
23305
+ /***/ "./node_modules/uuid/dist/esm-browser/rng.js"
23261
23306
  /*!***************************************************!*\
23262
23307
  !*** ./node_modules/uuid/dist/esm-browser/rng.js ***!
23263
23308
  \***************************************************/
23264
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23309
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
23265
23310
 
23266
23311
  "use strict";
23267
23312
  __webpack_require__.r(__webpack_exports__);
@@ -23287,13 +23332,13 @@ function rng() {
23287
23332
  return getRandomValues(rnds8);
23288
23333
  }
23289
23334
 
23290
- /***/ }),
23335
+ /***/ },
23291
23336
 
23292
- /***/ "./node_modules/uuid/dist/esm-browser/stringify.js":
23337
+ /***/ "./node_modules/uuid/dist/esm-browser/stringify.js"
23293
23338
  /*!*********************************************************!*\
23294
23339
  !*** ./node_modules/uuid/dist/esm-browser/stringify.js ***!
23295
23340
  \*********************************************************/
23296
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23341
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
23297
23342
 
23298
23343
  "use strict";
23299
23344
  __webpack_require__.r(__webpack_exports__);
@@ -23336,13 +23381,13 @@ function stringify(arr, offset = 0) {
23336
23381
 
23337
23382
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stringify);
23338
23383
 
23339
- /***/ }),
23384
+ /***/ },
23340
23385
 
23341
- /***/ "./node_modules/uuid/dist/esm-browser/v4.js":
23386
+ /***/ "./node_modules/uuid/dist/esm-browser/v4.js"
23342
23387
  /*!**************************************************!*\
23343
23388
  !*** ./node_modules/uuid/dist/esm-browser/v4.js ***!
23344
23389
  \**************************************************/
23345
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23390
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
23346
23391
 
23347
23392
  "use strict";
23348
23393
  __webpack_require__.r(__webpack_exports__);
@@ -23382,13 +23427,13 @@ function v4(options, buf, offset) {
23382
23427
 
23383
23428
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v4);
23384
23429
 
23385
- /***/ }),
23430
+ /***/ },
23386
23431
 
23387
- /***/ "./node_modules/uuid/dist/esm-browser/validate.js":
23432
+ /***/ "./node_modules/uuid/dist/esm-browser/validate.js"
23388
23433
  /*!********************************************************!*\
23389
23434
  !*** ./node_modules/uuid/dist/esm-browser/validate.js ***!
23390
23435
  \********************************************************/
23391
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23436
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
23392
23437
 
23393
23438
  "use strict";
23394
23439
  __webpack_require__.r(__webpack_exports__);
@@ -23404,13 +23449,13 @@ function validate(uuid) {
23404
23449
 
23405
23450
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validate);
23406
23451
 
23407
- /***/ }),
23452
+ /***/ },
23408
23453
 
23409
- /***/ "./src/api/LogManager.js":
23454
+ /***/ "./src/api/LogManager.js"
23410
23455
  /*!*******************************!*\
23411
23456
  !*** ./src/api/LogManager.js ***!
23412
23457
  \*******************************/
23413
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23458
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
23414
23459
 
23415
23460
  "use strict";
23416
23461
  __webpack_require__.r(__webpack_exports__);
@@ -23452,13 +23497,13 @@ const LogManager = {
23452
23497
  };
23453
23498
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LogManager);
23454
23499
 
23455
- /***/ }),
23500
+ /***/ },
23456
23501
 
23457
- /***/ "./src/api/callAPI/Call.js":
23502
+ /***/ "./src/api/callAPI/Call.js"
23458
23503
  /*!*********************************!*\
23459
23504
  !*** ./src/api/callAPI/Call.js ***!
23460
23505
  \*********************************/
23461
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23506
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
23462
23507
 
23463
23508
  "use strict";
23464
23509
  __webpack_require__.r(__webpack_exports__);
@@ -23523,24 +23568,34 @@ function Call(webrtcSIPPhone) {
23523
23568
  /**
23524
23569
  * When user clicks on hold
23525
23570
  */
23526
- logger.log('Hold toggle clicked');
23571
+ logger.log('Call: HoldToggle');
23527
23572
  webrtcSIPPhone.holdCall();
23528
23573
  };
23529
23574
  this.Hold = function () {
23530
23575
  /**
23531
23576
  * When user clicks on hold
23532
23577
  */
23533
- logger.log('hold clicked');
23534
- let dummyFlag = true;
23535
- webrtcSIPPhone.holdCall();
23578
+ logger.log('Call: Hold');
23579
+ var isOnHold = webrtcSIPPhone.getHoldStatus();
23580
+ logger.log('Call: Hold: isOnHold: ', isOnHold);
23581
+ if (!isOnHold) {
23582
+ webrtcSIPPhone.holdAction(true);
23583
+ } else {
23584
+ logger.log('Call: Hold: Already on hold');
23585
+ }
23536
23586
  };
23537
23587
  this.UnHold = function () {
23538
23588
  /**
23539
23589
  * When user clicks on hold
23540
23590
  */
23541
- logger.log('unhold clicked');
23542
- let dummyFlag = true;
23543
- webrtcSIPPhone.holdCall();
23591
+ logger.log('Call: UnHold');
23592
+ var isOnHold = webrtcSIPPhone.getHoldStatus();
23593
+ logger.log('Call: UnHold: isOnHold: ', isOnHold);
23594
+ if (isOnHold) {
23595
+ webrtcSIPPhone.holdAction(false);
23596
+ } else {
23597
+ logger.log('Call: UnHold: Already on hold');
23598
+ }
23544
23599
  };
23545
23600
  this.callDetails = function () {
23546
23601
  /**
@@ -23557,13 +23612,13 @@ function Call(webrtcSIPPhone) {
23557
23612
  };
23558
23613
  }
23559
23614
 
23560
- /***/ }),
23615
+ /***/ },
23561
23616
 
23562
- /***/ "./src/api/callAPI/CallDetails.js":
23617
+ /***/ "./src/api/callAPI/CallDetails.js"
23563
23618
  /*!****************************************!*\
23564
23619
  !*** ./src/api/callAPI/CallDetails.js ***!
23565
23620
  \****************************************/
23566
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23621
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
23567
23622
 
23568
23623
  "use strict";
23569
23624
  __webpack_require__.r(__webpack_exports__);
@@ -23647,13 +23702,13 @@ var CallDetails = {
23647
23702
  }
23648
23703
  };
23649
23704
 
23650
- /***/ }),
23705
+ /***/ },
23651
23706
 
23652
- /***/ "./src/api/omAPI/Diagnostics.js":
23707
+ /***/ "./src/api/omAPI/Diagnostics.js"
23653
23708
  /*!**************************************!*\
23654
23709
  !*** ./src/api/omAPI/Diagnostics.js ***!
23655
23710
  \**************************************/
23656
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23711
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
23657
23712
 
23658
23713
  "use strict";
23659
23714
  __webpack_require__.r(__webpack_exports__);
@@ -24204,13 +24259,13 @@ var ameyoWebRTCTroubleshooter = {
24204
24259
 
24205
24260
  //ameyoWebRTCTroubleshooter.getBrowserData();
24206
24261
 
24207
- /***/ }),
24262
+ /***/ },
24208
24263
 
24209
- /***/ "./src/api/omAPI/DiagnosticsListener.js":
24264
+ /***/ "./src/api/omAPI/DiagnosticsListener.js"
24210
24265
  /*!**********************************************!*\
24211
24266
  !*** ./src/api/omAPI/DiagnosticsListener.js ***!
24212
24267
  \**********************************************/
24213
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24268
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24214
24269
 
24215
24270
  "use strict";
24216
24271
  __webpack_require__.r(__webpack_exports__);
@@ -24326,13 +24381,13 @@ class DiagnosticsListener {
24326
24381
  }
24327
24382
  }
24328
24383
 
24329
- /***/ }),
24384
+ /***/ },
24330
24385
 
24331
- /***/ "./src/api/registerAPI/RegisterListener.js":
24386
+ /***/ "./src/api/registerAPI/RegisterListener.js"
24332
24387
  /*!*************************************************!*\
24333
24388
  !*** ./src/api/registerAPI/RegisterListener.js ***!
24334
24389
  \*************************************************/
24335
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24390
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24336
24391
 
24337
24392
  "use strict";
24338
24393
  __webpack_require__.r(__webpack_exports__);
@@ -24387,13 +24442,13 @@ function UnRegister(sipAccountInfo, exWebClient) {
24387
24442
  }
24388
24443
  }
24389
24444
 
24390
- /***/ }),
24445
+ /***/ },
24391
24446
 
24392
- /***/ "./src/listeners/CallCtrlerDummy.js":
24447
+ /***/ "./src/listeners/CallCtrlerDummy.js"
24393
24448
  /*!******************************************!*\
24394
24449
  !*** ./src/listeners/CallCtrlerDummy.js ***!
24395
24450
  \******************************************/
24396
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24451
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24397
24452
 
24398
24453
  "use strict";
24399
24454
  __webpack_require__.r(__webpack_exports__);
@@ -24409,13 +24464,13 @@ function CallController() {
24409
24464
  };
24410
24465
  }
24411
24466
 
24412
- /***/ }),
24467
+ /***/ },
24413
24468
 
24414
- /***/ "./src/listeners/CallListener.js":
24469
+ /***/ "./src/listeners/CallListener.js"
24415
24470
  /*!***************************************!*\
24416
24471
  !*** ./src/listeners/CallListener.js ***!
24417
24472
  \***************************************/
24418
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24473
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24419
24474
 
24420
24475
  "use strict";
24421
24476
  __webpack_require__.r(__webpack_exports__);
@@ -24452,13 +24507,13 @@ class CallListener {
24452
24507
  }
24453
24508
  }
24454
24509
 
24455
- /***/ }),
24510
+ /***/ },
24456
24511
 
24457
- /***/ "./src/listeners/Callback.js":
24512
+ /***/ "./src/listeners/Callback.js"
24458
24513
  /*!***********************************!*\
24459
24514
  !*** ./src/listeners/Callback.js ***!
24460
24515
  \***********************************/
24461
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24516
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24462
24517
 
24463
24518
  "use strict";
24464
24519
  __webpack_require__.r(__webpack_exports__);
@@ -24677,13 +24732,13 @@ var timerSession = {
24677
24732
  }
24678
24733
  };
24679
24734
 
24680
- /***/ }),
24735
+ /***/ },
24681
24736
 
24682
- /***/ "./src/listeners/ExWebClient.js":
24737
+ /***/ "./src/listeners/ExWebClient.js"
24683
24738
  /*!**************************************!*\
24684
24739
  !*** ./src/listeners/ExWebClient.js ***!
24685
24740
  \**************************************/
24686
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24741
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24687
24742
 
24688
24743
  "use strict";
24689
24744
  __webpack_require__.r(__webpack_exports__);
@@ -24777,6 +24832,8 @@ class ExDelegationHandler {
24777
24832
  }
24778
24833
  onCallStatSipJsSessionEvent(ev) {
24779
24834
  logger.log("delegationHandler: onCallStatSipJsSessionEvent", ev);
24835
+ this.sessionCallback.initializeSession(ev, this.exClient.callFromNumber);
24836
+ this.sessionCallback.triggerSessionCallback();
24780
24837
  }
24781
24838
  sendWebRTCEventsToFSM(eventType, sipMethod) {
24782
24839
  logger.log("delegationHandler: sendWebRTCEventsToFSM\n");
@@ -25179,7 +25236,8 @@ class ExotelWebClient {
25179
25236
  var synchronousHandler = new ExSynchronousHandler();
25180
25237
  var delegationHandler = new ExDelegationHandler(this);
25181
25238
  var userName = this.userName;
25182
- this.webrtcSIPPhone.registerPhone("sipjs", delegationHandler, this.sipAccountInfo.enableAutoAudioDeviceChangeHandling);
25239
+
25240
+ //this.webrtcSIPPhone.registerPhone("sipjs", delegationHandler, this.sipAccountInfo.enableAutoAudioDeviceChangeHandling);
25183
25241
  this.webrtcSIPPhone.registerWebRTCClient(this.sipAccntInfo, synchronousHandler);
25184
25242
  phonePool[this.userName] = this.webrtcSIPPhone;
25185
25243
  intervalIDMap.set(userName, intervalId);
@@ -25291,13 +25349,13 @@ logger.registerLoggerCallback((type, message, args) => {
25291
25349
 
25292
25350
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ExotelWebClient);
25293
25351
 
25294
- /***/ }),
25352
+ /***/ },
25295
25353
 
25296
- /***/ "./src/listeners/ExotelVoiceClientListener.js":
25354
+ /***/ "./src/listeners/ExotelVoiceClientListener.js"
25297
25355
  /*!****************************************************!*\
25298
25356
  !*** ./src/listeners/ExotelVoiceClientListener.js ***!
25299
25357
  \****************************************************/
25300
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25358
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
25301
25359
 
25302
25360
  "use strict";
25303
25361
  __webpack_require__.r(__webpack_exports__);
@@ -25355,13 +25413,13 @@ class ExotelVoiceClientListener {
25355
25413
  }
25356
25414
  }
25357
25415
 
25358
- /***/ }),
25416
+ /***/ },
25359
25417
 
25360
- /***/ "./src/listeners/SessionListeners.js":
25418
+ /***/ "./src/listeners/SessionListeners.js"
25361
25419
  /*!*******************************************!*\
25362
25420
  !*** ./src/listeners/SessionListeners.js ***!
25363
25421
  \*******************************************/
25364
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25422
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
25365
25423
 
25366
25424
  "use strict";
25367
25425
  __webpack_require__.r(__webpack_exports__);
@@ -25500,7 +25558,7 @@ class SessionListener {
25500
25558
  }
25501
25559
  }
25502
25560
 
25503
- /***/ })
25561
+ /***/ }
25504
25562
 
25505
25563
  /******/ });
25506
25564
  /************************************************************************/
@@ -25514,6 +25572,12 @@ class SessionListener {
25514
25572
  /******/ if (cachedModule !== undefined) {
25515
25573
  /******/ return cachedModule.exports;
25516
25574
  /******/ }
25575
+ /******/ // Check if module exists (development only)
25576
+ /******/ if (__webpack_modules__[moduleId] === undefined) {
25577
+ /******/ var e = new Error("Cannot find module '" + moduleId + "'");
25578
+ /******/ e.code = 'MODULE_NOT_FOUND';
25579
+ /******/ throw e;
25580
+ /******/ }
25517
25581
  /******/ // Create a new module (and put it into the cache)
25518
25582
  /******/ var module = __webpack_module_cache__[moduleId] = {
25519
25583
  /******/ // no module.id needed