@exotel-npm-dev/webrtc-client-sdk 1.0.20 → 1.0.22

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 1.0.20
3
+ * WebRTC CLient SIP version 1.0.22
4
4
  *
5
5
  */
6
6
  (function webpackUniversalModuleDefinition(root, factory) {
@@ -20885,7 +20885,7 @@ function getLogger() {
20885
20885
  uaLogger = userAgent.getLogger("sip.WebrtcLib")
20886
20886
  //let loggerFactory = userAgent.getLoggerFactory()
20887
20887
  } catch (e) {
20888
- logger.log("No userAgent.getLogger: Using console log")
20888
+ logger.log("sipjsphone: getLogger: No userAgent.getLogger, Using console log")
20889
20889
  return console;
20890
20890
  }
20891
20891
 
@@ -20893,7 +20893,7 @@ function getLogger() {
20893
20893
  return uaLogger;
20894
20894
  }
20895
20895
  else {
20896
- logger.log("No Logger: Using console log")
20896
+ logger.log("sipjsphone: getLogger: No Logger, Using console log")
20897
20897
  return logger;
20898
20898
  }
20899
20899
  }
@@ -20928,10 +20928,10 @@ function postInit(onInitDoneCallback) {
20928
20928
  ctxSip.ringtone.play()
20929
20929
  .then(() => {
20930
20930
  // Audio is playing.
20931
- logger.log("startRingTone: Audio is playing: count=" + count + " ctxSip.ringToneIntervalID=" + ctxSip.ringToneIntervalID + " ctxSip.ringtoneCount=" + ctxSip.ringtoneCount);
20931
+ logger.log("sipjsphone: startRingTone: Audio is playing: count=" + count + " ctxSip.ringToneIntervalID=" + ctxSip.ringToneIntervalID + " ctxSip.ringtoneCount=" + ctxSip.ringtoneCount);
20932
20932
  })
20933
20933
  .catch(e => {
20934
- logger.log("startRingTone: Exception:", e);
20934
+ logger.log("sipjsphone: startRingTone: Exception:", e);
20935
20935
  });
20936
20936
  count++;
20937
20937
  if (count > ctxSip.ringtoneCount) {
@@ -20941,7 +20941,7 @@ function postInit(onInitDoneCallback) {
20941
20941
 
20942
20942
 
20943
20943
 
20944
- } catch (e) { logger.log("startRingTone: Exception:", e); }
20944
+ } catch (e) { logger.log("sipjsphone: startRingTone: Exception:", e); }
20945
20945
  },
20946
20946
 
20947
20947
  stopRingTone: function () {
@@ -20951,9 +20951,9 @@ function postInit(onInitDoneCallback) {
20951
20951
  ctxSip.ringtone = ringtone;
20952
20952
  }
20953
20953
  ctxSip.ringtone.pause();
20954
- logger.log("stopRingTone: intervalID:", ctxSip.ringToneIntervalID);
20954
+ logger.log("sipjsphone: stopRingTone: intervalID:", ctxSip.ringToneIntervalID);
20955
20955
  clearInterval(ctxSip.ringToneIntervalID)
20956
- } catch (e) { logger.log("stopRingTone: Exception:", e); }
20956
+ } catch (e) { logger.log("sipjsphone: stopRingTone: Exception:", e); }
20957
20957
  },
20958
20958
 
20959
20959
  startRingbackTone: function () {
@@ -20963,19 +20963,19 @@ function postInit(onInitDoneCallback) {
20963
20963
  try {
20964
20964
  ctxSip.ringbacktone.play().then(() => {
20965
20965
  // Audio is playing.
20966
- logger.log("startRingbackTone: Audio is playing:");
20966
+ logger.log("sipjsphone: startRingbackTone: Audio is playing:");
20967
20967
  })
20968
20968
  .catch(e => {
20969
- logger.log("startRingbackTone: Exception:", e);
20969
+ logger.log("sipjsphone: startRingbackTone: Exception:", e);
20970
20970
  });
20971
- } catch (e) { logger.log("startRingbackTone: Exception:", e); }
20971
+ } catch (e) { logger.log("sipjsphone: startRingbackTone: Exception:", e); }
20972
20972
  },
20973
20973
 
20974
20974
  stopRingbackTone: function () {
20975
20975
  if (!ctxSip.ringbacktone) {
20976
20976
  ctxSip.ringbacktone = ringbacktone;
20977
20977
  }
20978
- try { ctxSip.ringbacktone.pause(); } catch (e) { logger.log("stopRingbackTone: Exception:", e); }
20978
+ try { ctxSip.ringbacktone.pause(); } catch (e) { logger.log("sipjsphone: stopRingbackTone: Exception:", e); }
20979
20979
  },
20980
20980
 
20981
20981
  // Genereates a rendom string to ID a call
@@ -21020,7 +21020,7 @@ function postInit(onInitDoneCallback) {
21020
21020
  let pc = sdh._peerConnection;
21021
21021
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].initGetStats(pc, callId, username);
21022
21022
  } catch (e) {
21023
- logger.log("something went wrong while initing getstats");
21023
+ logger.log("sipjsphone: newSession: something went wrong while initing getstats");
21024
21024
  logger.log(e);
21025
21025
  }
21026
21026
 
@@ -21112,8 +21112,10 @@ function postInit(onInitDoneCallback) {
21112
21112
  } else if (s.state == SIP.SessionState.Established) {
21113
21113
  s.bye();
21114
21114
  } else if (s.reject) {
21115
- s.reject();
21116
-
21115
+ s.reject({
21116
+ statusCode: 486,
21117
+ reasonPhrase: "Busy"
21118
+ });
21117
21119
  } else if (s.cancel) {
21118
21120
  s.cancel();
21119
21121
  }
@@ -21123,7 +21125,7 @@ function postInit(onInitDoneCallback) {
21123
21125
 
21124
21126
  sipSendDTMF: function (digit) {
21125
21127
 
21126
- try { ctxSip.dtmfTone.play(); } catch (e) { logger.log("sipSendDTMF: Exception:", e); }
21128
+ try { ctxSip.dtmfTone.play(); } catch (e) { logger.log("sipjsphone: sipSendDTMF: Exception:", e); }
21127
21129
 
21128
21130
  var a = ctxSip.callActiveID;
21129
21131
  if (a) {
@@ -21157,7 +21159,7 @@ function postInit(onInitDoneCallback) {
21157
21159
 
21158
21160
 
21159
21161
  phoneMuteButtonPressed: function (sessionid) {
21160
-
21162
+ logger.log(" sipjsphone: phoneMuteButtonPressed: bMicEnable, sessionid", bMicEnable, sessionid);
21161
21163
  var s = ctxSip.Sessions[sessionid];
21162
21164
 
21163
21165
  if (bMicEnable) {
@@ -21173,16 +21175,20 @@ function postInit(onInitDoneCallback) {
21173
21175
  phoneMute: function (sessionid, bMute) {
21174
21176
  if (sessionid) {
21175
21177
  var s = ctxSip.Sessions[sessionid];
21176
- logger.log("phoneMute: bMute", bMute)
21178
+ logger.log(" sipjsphone: phoneMute: bMute", bMute)
21177
21179
  toggleMute(s, bMute);
21178
21180
  bMicEnable = !bMute;
21179
21181
  }
21182
+ else{
21183
+ logger.log(" sipjsphone: phoneMute: doing nothing as sessionid not found")
21184
+
21185
+ }
21180
21186
  },
21181
21187
 
21182
21188
  phoneHold: function (sessionid, bHold) {
21183
21189
  if (sessionid) {
21184
21190
  var s = ctxSip.Sessions[sessionid];
21185
- logger.log("phoneHold: bHold", bHold)
21191
+ logger.log("sipjsphone: phoneHold: bHold", bHold)
21186
21192
  toggleHold(s, bHold);
21187
21193
  bHoldEnable = bHold;
21188
21194
  }
@@ -21228,7 +21234,7 @@ function postInit(onInitDoneCallback) {
21228
21234
  alert('Your browser don\'t support WebRTC.\naudio/video calls will be disabled.');
21229
21235
  }
21230
21236
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].setWebRTCFSMMapper("sipjs");
21231
- logger.log("init: Initialization complete...")
21237
+ logger.log("sipjsphone: init: Initialization complete...")
21232
21238
  initializeComplete = true;
21233
21239
  onInitDoneCallback();
21234
21240
  }
@@ -21453,7 +21459,10 @@ function registerPhoneEventListeners() {
21453
21459
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onRecieveInvite(incomingSession);
21454
21460
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("i_new_call", "CALL");
21455
21461
  } else {
21456
- incomingSession.reject();
21462
+ incomingSession.reject({
21463
+ statusCode: 480,
21464
+ reasonPhrase: "4001"
21465
+ });
21457
21466
  }
21458
21467
  };
21459
21468
 
@@ -21490,7 +21499,7 @@ function destroySocketConnection() {
21490
21499
  ctxSip.phone.transport.disconnect();
21491
21500
  }
21492
21501
  } catch (e) {
21493
- logger.log("ERROR", e);
21502
+ logger.log("sipjsphone: destroySocketConnection: ERROR", e);
21494
21503
  }
21495
21504
  }
21496
21505
 
@@ -21511,7 +21520,7 @@ function uiCallTerminated(s_description) {
21511
21520
 
21512
21521
 
21513
21522
  function sipCall() {
21514
- logger.log("testing emit accept_reject");
21523
+ logger.log("sipjsphone: sipCall: testing emit accept_reject");
21515
21524
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("accept_reject", "CALL");
21516
21525
  }
21517
21526
 
@@ -21526,7 +21535,7 @@ function sipPhoneLogger(level, category, label, content) {
21526
21535
  } else if (content.startsWith("Received WebSocket text message")) {
21527
21536
  handleWebSocketMessageContent(content, "recv");
21528
21537
  }
21529
- logger.log(level + " sipjslog: " + category + ": " + content);
21538
+ logger.log("sipjsphone: sipPhoneLogger:" + level + " sipjslog: " + category + ": " + content);
21530
21539
  }
21531
21540
  } catch (e) {
21532
21541
  logger.error("sipjsphone:sipPhoneLogger ERROR", e);
@@ -21648,7 +21657,7 @@ function cleanupRegistererTimer() {
21648
21657
 
21649
21658
 
21650
21659
  } catch (e) {
21651
- logger.log("ERROR", e);
21660
+ logger.log("sipjsphone: cleanupRegistererTimer: ERROR", e);
21652
21661
 
21653
21662
  }
21654
21663
  registerer = null;
@@ -21804,13 +21813,13 @@ function enableReceiverTracks(s, enable) {
21804
21813
  throw new Error("Peer connection closed.");
21805
21814
  }
21806
21815
  peerConnection.getReceivers().forEach((receiver) => {
21807
- logger.log("Receiver ", receiver)
21816
+ logger.log("sipjsphone: enableReceiverTracks: Receiver ", receiver)
21808
21817
  if (receiver.track) {
21809
21818
  receiver.track.enabled = enable;
21810
21819
  }
21811
21820
  });
21812
21821
  } catch (e) {
21813
- logger.log("enableReceiverTracks: Error in updating receiver tracks ", e)
21822
+ logger.log("sipjsphone: enableReceiverTracks: Error in updating receiver tracks ", e)
21814
21823
 
21815
21824
  }
21816
21825
  }
@@ -21829,7 +21838,7 @@ function enableSenderTracks(s, enable) {
21829
21838
  }
21830
21839
  });
21831
21840
  } catch (e) {
21832
- logger.log("enableSenderTracks: Error in updating sender tracks ", e)
21841
+ logger.log("sipjsphone: enableSenderTracks: Error in updating sender tracks ", e)
21833
21842
  }
21834
21843
  }
21835
21844
 
@@ -21895,7 +21904,7 @@ function onUserSessionAcceptFailed(e) {
21895
21904
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipJsSessionEvent('userMediaFailed');
21896
21905
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onGetUserMediaErrorCallstatCallback();
21897
21906
  } else {
21898
- logger.log("user media failed due to error ", e);
21907
+ logger.log("sipjsphone: onUserSessionAcceptFailed: user media failed due to error ", e);
21899
21908
  }
21900
21909
  uiCallTerminated('Media stream permission denied');
21901
21910
  }
@@ -21905,13 +21914,13 @@ const SIPJSPhone = {
21905
21914
  init: (onInitDoneCallback) => {
21906
21915
 
21907
21916
  var preInit = function () {
21908
- logger.log("init:readyState, calling postInit")
21917
+ logger.log("sipjsphone: init:readyState, calling postInit")
21909
21918
  postInit(onInitDoneCallback);
21910
21919
  }
21911
21920
  var oReadyStateTimer = setInterval(function () {
21912
21921
  if (document.readyState === "complete") {
21913
21922
  clearInterval(oReadyStateTimer);
21914
- logger.log("init:readyState, calling preinit")
21923
+ logger.log("sipjsphone: init:readyState, calling preinit")
21915
21924
  preInit();
21916
21925
  }
21917
21926
  }, 100);
@@ -22002,11 +22011,11 @@ const SIPJSPhone = {
22002
22011
  },
22003
22012
 
22004
22013
  reRegister: () => {
22005
- logger.log("sipjs: registering in case of relogin");
22014
+ logger.log("sipjsphone: reRegister: registering in case of relogin");
22006
22015
  if (ctxSip.phone && registerer) {
22007
22016
  registerer.register({});
22008
22017
  } else {
22009
- logger.log("sipjs: SIP Session does not exist for re registration");
22018
+ logger.log("sipjsphone: reRegister: SIP Session does not exist for re registration");
22010
22019
  }
22011
22020
 
22012
22021
  },
@@ -22054,7 +22063,7 @@ const SIPJSPhone = {
22054
22063
 
22055
22064
  pickPhoneCall: () => {
22056
22065
  var newSess = ctxSip.Sessions[ctxSip.callActiveID];
22057
- logger.log("pickphonecall ", ctxSip.callActiveID);
22066
+ logger.log("sipjsphone: pickphonecall: ", ctxSip.callActiveID);
22058
22067
  if (newSess) {
22059
22068
  if (_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId != "default") {
22060
22069
  newSess.accept({
@@ -22087,7 +22096,7 @@ const SIPJSPhone = {
22087
22096
  try {
22088
22097
  ctxSip.beeptone.play();
22089
22098
  } catch (e) {
22090
- logger.log("playBeep: Exception:", e);
22099
+ logger.log("sipjsphone: playBeep: Exception:", e);
22091
22100
  }
22092
22101
  },
22093
22102
 
@@ -22123,22 +22132,22 @@ const SIPJSPhone = {
22123
22132
  },
22124
22133
  /* NL Additions - Start */
22125
22134
  getSpeakerTestTone: () => {
22126
- logger.log("Returning speaker test tone:", ringtone);
22135
+ logger.log("sipjsphone: getSpeakerTestTone: Returning speaker test tone:", ringtone);
22127
22136
  return ringtone;
22128
22137
  },
22129
22138
 
22130
22139
 
22131
22140
  getWSSUrl: () => {
22132
- logger.log("Returning txtWebsocketURL:", txtWebsocketURL);
22141
+ logger.log("sipjsphone: getWSSUrl: Returning txtWebsocketURL:", txtWebsocketURL);
22133
22142
  return txtWebsocketURL;
22134
22143
  },
22135
22144
  /* NL Additions - End */
22136
22145
  getTransportState: () => {
22137
- logger.log("Returning Transport State : ", lastTransportState);
22146
+ logger.log("sipjsphone: getTransportState: Returning Transport State : ", lastTransportState);
22138
22147
  return lastTransportState;
22139
22148
  },
22140
22149
  getRegistrationState: () => {
22141
- logger.log("Returning Registration State : ", lastRegistererState);
22150
+ logger.log("sipjsphone: getRegistrationState: Returning Registration State : ", lastRegistererState);
22142
22151
  return lastRegistererState;
22143
22152
  },
22144
22153
 
@@ -22147,11 +22156,11 @@ const SIPJSPhone = {
22147
22156
  const trackChanged = SIPJSPhone.replaceSenderTrack(stream, deviceId);
22148
22157
  if (trackChanged) {
22149
22158
  _audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId = deviceId;
22150
- logger.log(`SIPJSPhone:changeAudioInputDevice Input device changed to: ${deviceId}`);
22159
+ logger.log(`sipjsphone: changeAudioInputDevice: Input device changed to: ${deviceId}`);
22151
22160
 
22152
22161
  onSuccess();
22153
22162
  } else {
22154
- logger.error("SIPJSPhone:changeAudioInputDevice failed");
22163
+ logger.error("sipjsphone: changeAudioInputDevice: failed");
22155
22164
  onError("replaceSenderTrack failed for webrtc");
22156
22165
  }
22157
22166
  }, onError);
@@ -22229,7 +22238,7 @@ const SIPJSPhone = {
22229
22238
  audioOutputDeviceChangeCallback: null,
22230
22239
  onDeviceChangeCallback: null,
22231
22240
  registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback) {
22232
- logger.log(`SIPJSPhone:registerAudioDeviceChangeCallback entry`);
22241
+ logger.log(`sipjsphone: registerAudioDeviceChangeCallback: entry`);
22233
22242
  SIPJSPhone.audioInputDeviceChangeCallback = audioInputDeviceChangeCallback;
22234
22243
  SIPJSPhone.audioOutputDeviceChangeCallback = audioOutputDeviceChangeCallback;
22235
22244
  SIPJSPhone.onDeviceChangeCallback = onDeviceChangeCallback;
@@ -22307,6 +22316,7 @@ let webrtcSIPEngine = null;
22307
22316
  const logger = _coreSDKLogger__WEBPACK_IMPORTED_MODULE_0__["default"];
22308
22317
 
22309
22318
  function sendWebRTCEventsToFSM(eventType, sipMethod) {
22319
+ logger.log("webrtcSIPPhone: sendWebRTCEventsToFSM : ",eventType,sipMethod);
22310
22320
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM(eventType, sipMethod);
22311
22321
  }
22312
22322
 
@@ -22316,6 +22326,7 @@ const webrtcSIPPhone = {
22316
22326
 
22317
22327
 
22318
22328
  isConnected: () => {
22329
+ logger.log("webrtcSIPPhone: isConnected entry");
22319
22330
  var status = phone.getStatus();
22320
22331
  if (status != "offline") {
22321
22332
  return true;
@@ -22325,10 +22336,12 @@ const webrtcSIPPhone = {
22325
22336
  },
22326
22337
 
22327
22338
  sendDTMFWebRTC: (dtmfValue) => {
22339
+ logger.log("webrtcSIPPhone: sendDTMFWebRTC : ",dtmfValue);
22328
22340
  phone.sipSendDTMF(dtmfValue);
22329
22341
  },
22330
22342
 
22331
22343
  registerWebRTCClient: (sipAccountInfo, handler) => {
22344
+ logger.log("webrtcSIPPhone: registerWebRTCClient : ",sipAccountInfo,handler);
22332
22345
  sipAccountInfoData = sipAccountInfo;
22333
22346
  phone.init(() => {
22334
22347
  phone.loadCredentials(sipAccountInfo);
@@ -22347,76 +22360,92 @@ const webrtcSIPPhone = {
22347
22360
 
22348
22361
 
22349
22362
  configureWebRTCClientDevice: (handler) => {
22363
+ logger.log("webrtcSIPPhone: configureWebRTCClientDevice : ",handler);
22350
22364
  phone.registerCallBacks(handler);
22351
22365
  },
22352
22366
 
22353
22367
  setAuthenticatorServerURL(serverURL) {
22368
+ logger.log("webrtcSIPPhone: setAuthenticatorServerURL : ",serverURL);
22354
22369
  // Nothing to do here
22355
22370
  },
22356
22371
 
22357
22372
  toggleSipRegister: () => {
22373
+ logger.log("webrtcSIPPhone: toggleSipRegister entry");
22358
22374
  phone.resetRegisterAttempts();
22359
22375
  phone.sipToggleRegister();
22360
22376
  },
22361
22377
 
22362
- webRTCMuteUnmute: (isMuted) => {
22378
+ webRTCMuteUnmute: () => {
22379
+ logger.log("webrtcSIPPhone: webRTCMuteUnmute");
22363
22380
  phone.sipToggleMic();
22364
22381
  },
22365
22382
 
22366
22383
  getMuteStatus: () => {
22384
+ logger.log("webrtcSIPPhone: getMuteStatus entry");
22367
22385
  return phone.getMicMuteStatus();
22368
22386
  },
22369
22387
 
22370
22388
  muteAction: (bMute) => {
22389
+ logger.log("webrtcSIPPhone: muteAction: ",bMute);
22371
22390
  phone.sipMute(bMute);
22372
22391
  },
22373
22392
 
22374
22393
  holdAction: (bHold) => {
22394
+ logger.log("webrtcSIPPhone: holdAction: ",bHold);
22375
22395
  phone.sipHold(bHold);
22376
22396
  },
22377
22397
 
22378
22398
  holdCall: () => {
22399
+ logger.log("webrtcSIPPhone: holdCall entry");
22379
22400
  phone.holdCall();
22380
22401
  },
22381
22402
 
22382
22403
  pickCall: () => {
22404
+ logger.log("webrtcSIPPhone: pickCall entry");
22383
22405
  phone.pickPhoneCall();
22384
22406
 
22385
22407
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onPickCall();
22386
22408
  },
22387
22409
 
22388
22410
  rejectCall: () => {
22411
+ logger.log("webrtcSIPPhone: rejectCall entry");
22389
22412
  phone.sipHangUp();
22390
22413
 
22391
22414
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onRejectCall();
22392
22415
  },
22393
22416
 
22394
22417
  reRegisterWebRTCPhone: () => {
22418
+ logger.log("webrtcSIPPhone: reRegisterWebRTCPhone entry");
22395
22419
  phone.reRegister();
22396
22420
  },
22397
22421
 
22398
22422
 
22399
22423
  playBeepTone: () => {
22424
+ logger.log("webrtcSIPPhone: playBeepTone entry");
22400
22425
  phone.playBeep();
22401
22426
 
22402
22427
  },
22403
22428
 
22404
22429
  sipUnRegisterWebRTC: () => {
22430
+ logger.log("webrtcSIPPhone: sipUnRegisterWebRTC entry");
22405
22431
  phone.sipUnRegister();
22406
22432
  },
22407
22433
 
22408
22434
  startWSNetworkTest: () => {
22435
+ logger.log("webrtcSIPPhone: startWSNetworkTest entry");
22409
22436
  undefined.testingMode = true;
22410
22437
  phone.sipRegister();
22411
22438
  },
22412
22439
 
22413
22440
  stopWSNetworkTest: () => {
22441
+ logger.log("webrtcSIPPhone stopWSNetworkTest entry");
22414
22442
  phone.sipUnRegister();
22415
22443
  },
22416
22444
 
22417
22445
 
22418
22446
 
22419
22447
  registerPhone: (engine, delegate) => {
22448
+ logger.log("webrtcSIPPhone: registerPhone : ",engine);
22420
22449
  webrtcSIPEngine = engine;
22421
22450
  switch (engine) {
22422
22451
  case "sipjs":
@@ -22432,29 +22461,35 @@ const webrtcSIPPhone = {
22432
22461
  },
22433
22462
 
22434
22463
  getWebRTCStatus: () => {
22464
+ logger.log("webrtcSIPPhone: getWebRTCStatus entry");
22435
22465
  var status = phone.getStatus();
22436
22466
  return status;
22437
22467
  },
22438
22468
 
22439
22469
  disconnect: () => {
22470
+ logger.log("webrtcSIPPhone: disconnect entry");
22440
22471
  if (phone) {
22441
22472
  phone.disconnect();
22442
22473
  }
22443
22474
  },
22444
22475
 
22445
22476
  connect: () => {
22477
+ logger.log("webrtcSIPPhone: connect entry");
22446
22478
  phone.connect();
22447
22479
  },
22448
22480
 
22449
22481
  getSIPAccountInfo() {
22482
+ logger.log("webrtcSIPPhone: getSIPAccountInfo entry");
22450
22483
  return sipAccountInfoData;
22451
22484
  },
22452
22485
  getWebRTCSIPEngine() {
22486
+ logger.log("webrtcSIPPhone: getWebRTCSIPEngine entry");
22453
22487
  return webrtcSIPEngine;
22454
22488
  },
22455
22489
 
22456
22490
  /* NL Addition - Start */
22457
22491
  getSpeakerTestTone() {
22492
+ logger.log("webrtcSIPPhone: getSpeakerTestTone entry");
22458
22493
  try {
22459
22494
  return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getSpeakerTestTone()
22460
22495
  } catch (e) {
@@ -22463,6 +22498,7 @@ const webrtcSIPPhone = {
22463
22498
  },
22464
22499
 
22465
22500
  getWSSUrl() {
22501
+ logger.log("webrtcSIPPhone: getWSSUrl entry");
22466
22502
  try {
22467
22503
  return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getWSSUrl()
22468
22504
  } catch (e) {
@@ -22472,6 +22508,7 @@ const webrtcSIPPhone = {
22472
22508
  /* NL Addition - End */
22473
22509
 
22474
22510
  getTransportState() {
22511
+ logger.log("webrtcSIPPhone: getTransportState entry");
22475
22512
  try {
22476
22513
  return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getTransportState();
22477
22514
  } catch (e) {
@@ -22481,6 +22518,7 @@ const webrtcSIPPhone = {
22481
22518
  },
22482
22519
 
22483
22520
  getRegistrationState() {
22521
+ logger.log("webrtcSIPPhone: getRegistrationState entry");
22484
22522
  try {
22485
22523
  return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getRegistrationState();
22486
22524
  } catch (e) {
@@ -22490,20 +22528,20 @@ const webrtcSIPPhone = {
22490
22528
  },
22491
22529
 
22492
22530
  changeAudioInputDevice(deviceId, onSuccess, onError) {
22493
- logger.log(`webrtcSIPPhone:changeAudioInputDevice entry`);
22531
+ logger.log("webrtcSIPPhone: changeAudioInputDevice : ", deviceId, onSuccess, onError);
22494
22532
  _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].changeAudioInputDevice(deviceId, onSuccess, onError);
22495
22533
  },
22496
22534
 
22497
22535
  changeAudioOutputDevice(deviceId, onSuccess, onError) {
22498
- logger.log(`webrtcSIPPhone:changeAudioOutputDevice entry`);
22536
+ logger.log("webrtcSIPPhone: changeAudioOutputDevice : ", deviceId, onSuccess, onError);
22499
22537
  _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].changeAudioOutputDevice(deviceId, onSuccess, onError);
22500
22538
  },
22501
22539
  setPreferredCodec(codecName) {
22502
- logger.log("webrtcSIPPhone:setPreferredCodec entry");
22540
+ logger.log("webrtcSIPPhone: setPreferredCodec : ", codecName);
22503
22541
  _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].setPreferredCodec(codecName);
22504
22542
  },
22505
22543
  registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback) {
22506
- logger.log(`webrtcSIPPhone:registerAudioDeviceChangeCallback entry`);
22544
+ logger.log("webrtcSIPPhone: registerAudioDeviceChangeCallback entry");
22507
22545
  _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback);
22508
22546
  },
22509
22547
  getLogger() {
@@ -22709,6 +22747,55 @@ const webrtcSIPPhoneEventDelegate = {
22709
22747
 
22710
22748
  /***/ }),
22711
22749
 
22750
+ /***/ "./src/api/LogManager.js":
22751
+ /*!*******************************!*\
22752
+ !*** ./src/api/LogManager.js ***!
22753
+ \*******************************/
22754
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22755
+
22756
+ "use strict";
22757
+ __webpack_require__.r(__webpack_exports__);
22758
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22759
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
22760
+ /* harmony export */ });
22761
+ const MAX_LOG_LINES = 1000;
22762
+ const LOG_STORAGE_KEY = 'webrtc_sdk_logs';
22763
+ const LogManager = {
22764
+ onLog(level, msg, args = []) {
22765
+ const timestamp = new Date().toISOString();
22766
+ const line = `[${timestamp}] [${level.toUpperCase()}] ${msg} ${args.map(arg => JSON.stringify(arg)).join(" ")}`.trim();
22767
+ let logs = JSON.parse(localStorage.getItem(LOG_STORAGE_KEY)) || [];
22768
+ logs.push(line);
22769
+ if (logs.length > MAX_LOG_LINES) {
22770
+ logs = logs.slice(-MAX_LOG_LINES); // rotate
22771
+ }
22772
+
22773
+ localStorage.setItem(LOG_STORAGE_KEY, JSON.stringify(logs));
22774
+ },
22775
+ getLogs() {
22776
+ return JSON.parse(localStorage.getItem(LOG_STORAGE_KEY)) || [];
22777
+ },
22778
+ downloadLogs(filename) {
22779
+ if (!filename) {
22780
+ const now = new Date();
22781
+ const formattedDate = now.toISOString().split('T')[0]; // Gets YYYY-MM-DD
22782
+ filename = `webrtc_sdk_logs_${formattedDate}.txt`;
22783
+ }
22784
+ const blob = new Blob([LogManager.getLogs().join('\n')], {
22785
+ type: 'text/plain'
22786
+ });
22787
+ const url = URL.createObjectURL(blob);
22788
+ const a = document.createElement('a');
22789
+ a.href = url;
22790
+ a.download = filename;
22791
+ a.click();
22792
+ URL.revokeObjectURL(url);
22793
+ }
22794
+ };
22795
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LogManager);
22796
+
22797
+ /***/ }),
22798
+
22712
22799
  /***/ "./src/api/callAPI/Call.js":
22713
22800
  /*!*********************************!*\
22714
22801
  !*** ./src/api/callAPI/Call.js ***!
@@ -22744,25 +22831,32 @@ function Call() {
22744
22831
  /**
22745
22832
  * When agent clicks on mute
22746
22833
  */
22747
- logger.log('mute toggle clicked');
22748
- let dummyFlag = null;
22749
- _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.webRTCMuteUnmute(null);
22834
+ logger.log('Call: MuteToggle');
22835
+ _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.webRTCMuteUnmute();
22750
22836
  };
22751
22837
  this.Mute = function () {
22752
22838
  /**
22753
22839
  * When agent clicks on mute
22754
22840
  */
22755
- logger.log('mute clicked');
22756
- let dummyFlag = true;
22757
- _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.webRTCMuteUnmute(dummyFlag);
22841
+ var isMicEnabled = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.getMuteStatus();
22842
+ logger.log('Call: Mute: isMicEnabled: ', isMicEnabled);
22843
+ if (isMicEnabled) {
22844
+ _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.muteAction(true);
22845
+ } else {
22846
+ logger.log('Call: Mute: Already muted');
22847
+ }
22758
22848
  };
22759
22849
  this.UnMute = function () {
22760
22850
  /**
22761
22851
  * When agent clicks on mute
22762
22852
  */
22763
- logger.log('unmute clicked');
22764
- let dummyFlag = false;
22765
- _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.webRTCMuteUnmute(dummyFlag);
22853
+ var isMicEnabled = _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.getMuteStatus();
22854
+ logger.log('Call: UnMute: isMicEnabled: ', isMicEnabled);
22855
+ if (isMicEnabled) {
22856
+ logger.log('Call: Unmute: Already unmuted');
22857
+ } else {
22858
+ _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_1__.webrtcSIPPhone.muteAction(false);
22859
+ }
22766
22860
  };
22767
22861
  this.HoldToggle = function () {
22768
22862
  /**
@@ -23943,6 +24037,8 @@ __webpack_require__.r(__webpack_exports__);
23943
24037
  /* harmony import */ var _listeners_Callback__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Callback */ "./src/listeners/Callback.js");
23944
24038
  /* 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");
23945
24039
  /* harmony import */ var _api_callAPI_CallDetails__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../api/callAPI/CallDetails */ "./src/api/callAPI/CallDetails.js");
24040
+ /* harmony import */ var _api_LogManager_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../api/LogManager.js */ "./src/api/LogManager.js");
24041
+
23946
24042
 
23947
24043
 
23948
24044
 
@@ -24008,7 +24104,7 @@ function ExDelegationHandler(exClient_) {
24008
24104
  logger.log("delegationHandler: setTestingMode\n");
24009
24105
  };
24010
24106
  this.onCallStatSipJsSessionEvent = function (ev) {
24011
- logger.log("delegationHandler: onCallStatSipJsSessionEvent\n");
24107
+ logger.log("delegationHandler: onCallStatSipJsSessionEvent", ev);
24012
24108
  };
24013
24109
  this.sendWebRTCEventsToFSM = function (eventType, sipMethod) {
24014
24110
  logger.log("delegationHandler: sendWebRTCEventsToFSM\n");
@@ -24134,6 +24230,16 @@ class ExotelWebClient {
24134
24230
  //this.webRTCPhones = {};
24135
24231
 
24136
24232
  sipAccountInfo = null;
24233
+ clientSDKLoggerCallback = null;
24234
+ constructor() {
24235
+ /*
24236
+ Register the logger callback and emit the onLog event
24237
+ */
24238
+ logger.registerLoggerCallback(function (type, message, args) {
24239
+ _api_LogManager_js__WEBPACK_IMPORTED_MODULE_10__["default"].onLog(type, message, args);
24240
+ if (this.clientSDKLoggerCallback) this.clientSDKLoggerCallback("log", arg1, args);
24241
+ });
24242
+ }
24137
24243
  initWebrtc = (sipAccountInfo_, RegisterEventCallBack, CallListenerCallback, SessionCallback) => {
24138
24244
  if (!this.eventListener) {
24139
24245
  this.eventListener = new _listeners_ExotelVoiceClientListener__WEBPACK_IMPORTED_MODULE_3__.ExotelVoiceClientListener();
@@ -24147,7 +24253,7 @@ class ExotelWebClient {
24147
24253
  if (!this.call) {
24148
24254
  this.call = new _api_callAPI_Call__WEBPACK_IMPORTED_MODULE_0__.Call();
24149
24255
  }
24150
- logger.log("Exotel Client Initialised with " + JSON.stringify(sipAccountInfo_));
24256
+ logger.log("ExWebClient: initWebrtc: Exotel Client Initialised with " + JSON.stringify(sipAccountInfo_));
24151
24257
  this.sipAccountInfo = sipAccountInfo_;
24152
24258
  if (!this.sipAccountInfo["userName"] || !this.sipAccountInfo["sipdomain"] || !this.sipAccountInfo["port"]) {
24153
24259
  return false;
@@ -24155,22 +24261,22 @@ class ExotelWebClient {
24155
24261
  this.sipAccountInfo["sipUri"] = "wss://" + this.sipAccountInfo["userName"] + "@" + this.sipAccountInfo["sipdomain"] + ":" + this.sipAccountInfo["port"];
24156
24262
  _listeners_Callback__WEBPACK_IMPORTED_MODULE_7__.callbacks.initializeCallback(CallListenerCallback);
24157
24263
  _listeners_Callback__WEBPACK_IMPORTED_MODULE_7__.registerCallback.initializeRegisterCallback(RegisterEventCallBack);
24158
- logger.log("Initializing session callback");
24264
+ logger.log("ExWebClient: initWebrtc: Initializing session callback");
24159
24265
  _listeners_Callback__WEBPACK_IMPORTED_MODULE_7__.sessionCallback.initializeSessionCallback(SessionCallback);
24160
24266
  this.setEventListener(this.eventListener);
24161
24267
  return true;
24162
24268
  };
24163
24269
  DoRegister = () => {
24164
- logger.log("ExWebClient:DoRegister Entry");
24270
+ logger.log("ExWebClient: DoRegister: Entry");
24165
24271
  if (!this.isReadyToRegister) {
24166
- logger.warn("ExWebClient:DoRegister SDK is not ready to register");
24272
+ logger.warn("ExWebClient: DoRegister: SDK is not ready to register");
24167
24273
  return false;
24168
24274
  }
24169
24275
  (0,_api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_1__.DoRegister)(this.sipAccountInfo, this);
24170
24276
  return true;
24171
24277
  };
24172
24278
  UnRegister = () => {
24173
- logger.log("ExWebClient:UnRegister Entry");
24279
+ logger.log("ExWebClient: UnRegister: Entry");
24174
24280
  (0,_api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_1__.UnRegister)(this.sipAccountInfo, this);
24175
24281
  };
24176
24282
  initDiagnostics = (saveDiagnosticsCallback, keyValueSetCallback) => {
@@ -24231,7 +24337,7 @@ class ExotelWebClient {
24231
24337
  */
24232
24338
 
24233
24339
  registerEventCallback = (event, phone, param) => {
24234
- logger.log("Dialer: registerEventCallback: Received ---> " + event + 'phone....', phone + 'param....', param);
24340
+ logger.log("ExWebClient: registerEventCallback: Received ---> " + event + 'phone....', phone + 'param....', param);
24235
24341
  if (event === "connected") {
24236
24342
  /**
24237
24343
  * When registration is successful then send the phone number of the same to UI
@@ -24239,7 +24345,7 @@ class ExotelWebClient {
24239
24345
  this.eventListener.onInitializationSuccess(phone);
24240
24346
  this.registrationInProgress = false;
24241
24347
  if (this.unregisterInitiated) {
24242
- logger.log("ExWebClient:registerEventCallback unregistering due to unregisterInitiated");
24348
+ logger.log("ExWebClient: registerEventCallback: unregistering due to unregisterInitiated");
24243
24349
  this.unregisterInitiated = false;
24244
24350
  this.unregister();
24245
24351
  }
@@ -24254,7 +24360,7 @@ class ExotelWebClient {
24254
24360
  this.isReadyToRegister = true;
24255
24361
  }
24256
24362
  if (this.shouldAutoRetry) {
24257
- logger.log("ExWebClient:registerEventCallback Autoretrying");
24363
+ logger.log("ExWebClient: registerEventCallback: Autoretrying");
24258
24364
  (0,_api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_1__.DoRegister)(this.sipAccountInfo, this, 5000);
24259
24365
  }
24260
24366
  } else if (event === "sent_request") {
@@ -24271,7 +24377,7 @@ class ExotelWebClient {
24271
24377
  * @param {*} param
24272
24378
  */
24273
24379
  callEventCallback = (event, phone, param) => {
24274
- logger.log("Dialer: callEventCallback: Received ---> " + event + 'param sent....' + param + 'for phone....' + phone);
24380
+ logger.log("ExWebClient: callEventCallback: Received ---> " + event + 'param sent....' + param + 'for phone....' + phone);
24275
24381
  if (event === "i_new_call") {
24276
24382
  this.callListener.onIncomingCall(param, phone);
24277
24383
  } else if (event === "connected") {
@@ -24296,7 +24402,7 @@ class ExotelWebClient {
24296
24402
  * @param {*} sipAccountInfo
24297
24403
  */
24298
24404
  unregister = sipAccountInfo => {
24299
- logger.log("ExWebClient:unregister Entry");
24405
+ logger.log("ExWebClient: unregister: Entry");
24300
24406
  this.shouldAutoRetry = false;
24301
24407
  this.unregisterInitiated = true;
24302
24408
  if (!this.registrationInProgress) {
@@ -24306,7 +24412,7 @@ class ExotelWebClient {
24306
24412
  }
24307
24413
  };
24308
24414
  webRTCStatusCallbackHandler = (msg1, arg1) => {
24309
- logger.log("webRTCStatusCallbackHandler: " + msg1 + " " + arg1);
24415
+ logger.log("ExWebClient: webRTCStatusCallbackHandler: " + msg1 + " " + arg1);
24310
24416
  };
24311
24417
 
24312
24418
  /**
@@ -24332,7 +24438,7 @@ class ExotelWebClient {
24332
24438
  'port': '',
24333
24439
  'contactHost': ''
24334
24440
  };
24335
- logger.log('Sending register for the number..', subscriberName);
24441
+ logger.log('ExWebClient: initialize: Sending register for the number..', subscriberName);
24336
24442
  fetchPublicIP(sipAccountInfo);
24337
24443
 
24338
24444
  /* Temporary till we figure out the arguments - Start */
@@ -24429,24 +24535,28 @@ class ExotelWebClient {
24429
24535
  }
24430
24536
  }
24431
24537
  }).catch(function (error) {
24432
- logger.log("something went wrong during checkClientStatus ", error);
24538
+ logger.log("ExWebClient: checkClientStatus: something went wrong during checkClientStatus ", error);
24433
24539
  callback("media_permission_denied");
24434
24540
  });
24435
24541
  };
24436
24542
  changeAudioInputDevice(deviceId, onSuccess, onError) {
24437
- logger.log(`in changeAudioInputDevice() of ExWebClient.js`);
24543
+ logger.log(`ExWebClient: changeAudioInputDevice: Entry`);
24438
24544
  _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.changeAudioInputDevice(deviceId, onSuccess, onError);
24439
24545
  }
24440
24546
  changeAudioOutputDevice(deviceId, onSuccess, onError) {
24441
- logger.log(`in changeAudioOutputDevice() of ExWebClient.js`);
24547
+ logger.log(`ExWebClient: changeAudioOutputDevice: Entry`);
24442
24548
  _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.changeAudioOutputDevice(deviceId, onSuccess, onError);
24443
24549
  }
24550
+ downloadLogs() {
24551
+ logger.log(`ExWebClient: downloadLogs: Entry`);
24552
+ _api_LogManager_js__WEBPACK_IMPORTED_MODULE_10__["default"].downloadLogs();
24553
+ }
24444
24554
  setPreferredCodec(codecName) {
24445
- logger.log("ExWebClient:setPreferredCodec entry");
24555
+ logger.log("ExWebClient: setPreferredCodec: Entry");
24446
24556
  _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.setPreferredCodec(codecName);
24447
24557
  }
24448
24558
  registerLoggerCallback(callback) {
24449
- logger.registerLoggerCallback(callback);
24559
+ this.clientSDKLoggerCallback = callback;
24450
24560
  }
24451
24561
  registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback) {
24452
24562
  _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback);