@exotel-npm-dev/webrtc-client-sdk 1.0.21 → 1.0.23

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.21
3
+ * WebRTC CLient SIP version 1.0.23
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
 
@@ -21125,7 +21125,7 @@ function postInit(onInitDoneCallback) {
21125
21125
 
21126
21126
  sipSendDTMF: function (digit) {
21127
21127
 
21128
- try { ctxSip.dtmfTone.play(); } catch (e) { logger.log("sipSendDTMF: Exception:", e); }
21128
+ try { ctxSip.dtmfTone.play(); } catch (e) { logger.log("sipjsphone: sipSendDTMF: Exception:", e); }
21129
21129
 
21130
21130
  var a = ctxSip.callActiveID;
21131
21131
  if (a) {
@@ -21159,7 +21159,7 @@ function postInit(onInitDoneCallback) {
21159
21159
 
21160
21160
 
21161
21161
  phoneMuteButtonPressed: function (sessionid) {
21162
-
21162
+ logger.log(" sipjsphone: phoneMuteButtonPressed: bMicEnable, sessionid", bMicEnable, sessionid);
21163
21163
  var s = ctxSip.Sessions[sessionid];
21164
21164
 
21165
21165
  if (bMicEnable) {
@@ -21175,16 +21175,20 @@ function postInit(onInitDoneCallback) {
21175
21175
  phoneMute: function (sessionid, bMute) {
21176
21176
  if (sessionid) {
21177
21177
  var s = ctxSip.Sessions[sessionid];
21178
- logger.log("phoneMute: bMute", bMute)
21178
+ logger.log(" sipjsphone: phoneMute: bMute", bMute)
21179
21179
  toggleMute(s, bMute);
21180
21180
  bMicEnable = !bMute;
21181
21181
  }
21182
+ else{
21183
+ logger.log(" sipjsphone: phoneMute: doing nothing as sessionid not found")
21184
+
21185
+ }
21182
21186
  },
21183
21187
 
21184
21188
  phoneHold: function (sessionid, bHold) {
21185
21189
  if (sessionid) {
21186
21190
  var s = ctxSip.Sessions[sessionid];
21187
- logger.log("phoneHold: bHold", bHold)
21191
+ logger.log("sipjsphone: phoneHold: bHold", bHold)
21188
21192
  toggleHold(s, bHold);
21189
21193
  bHoldEnable = bHold;
21190
21194
  }
@@ -21230,7 +21234,7 @@ function postInit(onInitDoneCallback) {
21230
21234
  alert('Your browser don\'t support WebRTC.\naudio/video calls will be disabled.');
21231
21235
  }
21232
21236
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].setWebRTCFSMMapper("sipjs");
21233
- logger.log("init: Initialization complete...")
21237
+ logger.log("sipjsphone: init: Initialization complete...")
21234
21238
  initializeComplete = true;
21235
21239
  onInitDoneCallback();
21236
21240
  }
@@ -21353,7 +21357,7 @@ function sipRegister() {
21353
21357
  },
21354
21358
  stunServers: ["stun:stun.l.google.com:19302"],
21355
21359
  registerOptions: {
21356
- expires: 60
21360
+ expires: 300
21357
21361
  }
21358
21362
 
21359
21363
  };
@@ -21444,7 +21448,7 @@ function registerPhoneEventListeners() {
21444
21448
 
21445
21449
  ctxSip.phone.transport.stateChange.addListener(transportStateChangeListener);
21446
21450
 
21447
- registerer = new SIP.Registerer(ctxSip.phone, { expires: 60, refreshFrequency: 80 });
21451
+ registerer = new SIP.Registerer(ctxSip.phone, { expires: 300, refreshFrequency: 80 });
21448
21452
 
21449
21453
 
21450
21454
  ctxSip.phone.delegate.onInvite = (incomingSession) => {
@@ -21495,7 +21499,7 @@ function destroySocketConnection() {
21495
21499
  ctxSip.phone.transport.disconnect();
21496
21500
  }
21497
21501
  } catch (e) {
21498
- logger.log("ERROR", e);
21502
+ logger.log("sipjsphone: destroySocketConnection: ERROR", e);
21499
21503
  }
21500
21504
  }
21501
21505
 
@@ -21516,7 +21520,7 @@ function uiCallTerminated(s_description) {
21516
21520
 
21517
21521
 
21518
21522
  function sipCall() {
21519
- logger.log("testing emit accept_reject");
21523
+ logger.log("sipjsphone: sipCall: testing emit accept_reject");
21520
21524
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM("accept_reject", "CALL");
21521
21525
  }
21522
21526
 
@@ -21531,7 +21535,7 @@ function sipPhoneLogger(level, category, label, content) {
21531
21535
  } else if (content.startsWith("Received WebSocket text message")) {
21532
21536
  handleWebSocketMessageContent(content, "recv");
21533
21537
  }
21534
- logger.log(level + " sipjslog: " + category + ": " + content);
21538
+ logger.log("sipjsphone: sipPhoneLogger:" + level + " sipjslog: " + category + ": " + content);
21535
21539
  }
21536
21540
  } catch (e) {
21537
21541
  logger.error("sipjsphone:sipPhoneLogger ERROR", e);
@@ -21653,7 +21657,7 @@ function cleanupRegistererTimer() {
21653
21657
 
21654
21658
 
21655
21659
  } catch (e) {
21656
- logger.log("ERROR", e);
21660
+ logger.log("sipjsphone: cleanupRegistererTimer: ERROR", e);
21657
21661
 
21658
21662
  }
21659
21663
  registerer = null;
@@ -21809,13 +21813,13 @@ function enableReceiverTracks(s, enable) {
21809
21813
  throw new Error("Peer connection closed.");
21810
21814
  }
21811
21815
  peerConnection.getReceivers().forEach((receiver) => {
21812
- logger.log("Receiver ", receiver)
21816
+ logger.log("sipjsphone: enableReceiverTracks: Receiver ", receiver)
21813
21817
  if (receiver.track) {
21814
21818
  receiver.track.enabled = enable;
21815
21819
  }
21816
21820
  });
21817
21821
  } catch (e) {
21818
- logger.log("enableReceiverTracks: Error in updating receiver tracks ", e)
21822
+ logger.log("sipjsphone: enableReceiverTracks: Error in updating receiver tracks ", e)
21819
21823
 
21820
21824
  }
21821
21825
  }
@@ -21834,7 +21838,7 @@ function enableSenderTracks(s, enable) {
21834
21838
  }
21835
21839
  });
21836
21840
  } catch (e) {
21837
- logger.log("enableSenderTracks: Error in updating sender tracks ", e)
21841
+ logger.log("sipjsphone: enableSenderTracks: Error in updating sender tracks ", e)
21838
21842
  }
21839
21843
  }
21840
21844
 
@@ -21900,7 +21904,7 @@ function onUserSessionAcceptFailed(e) {
21900
21904
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onCallStatSipJsSessionEvent('userMediaFailed');
21901
21905
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onGetUserMediaErrorCallstatCallback();
21902
21906
  } else {
21903
- logger.log("user media failed due to error ", e);
21907
+ logger.log("sipjsphone: onUserSessionAcceptFailed: user media failed due to error ", e);
21904
21908
  }
21905
21909
  uiCallTerminated('Media stream permission denied');
21906
21910
  }
@@ -21910,13 +21914,13 @@ const SIPJSPhone = {
21910
21914
  init: (onInitDoneCallback) => {
21911
21915
 
21912
21916
  var preInit = function () {
21913
- logger.log("init:readyState, calling postInit")
21917
+ logger.log("sipjsphone: init:readyState, calling postInit")
21914
21918
  postInit(onInitDoneCallback);
21915
21919
  }
21916
21920
  var oReadyStateTimer = setInterval(function () {
21917
21921
  if (document.readyState === "complete") {
21918
21922
  clearInterval(oReadyStateTimer);
21919
- logger.log("init:readyState, calling preinit")
21923
+ logger.log("sipjsphone: init:readyState, calling preinit")
21920
21924
  preInit();
21921
21925
  }
21922
21926
  }, 100);
@@ -22007,11 +22011,11 @@ const SIPJSPhone = {
22007
22011
  },
22008
22012
 
22009
22013
  reRegister: () => {
22010
- logger.log("sipjs: registering in case of relogin");
22014
+ logger.log("sipjsphone: reRegister: registering in case of relogin");
22011
22015
  if (ctxSip.phone && registerer) {
22012
22016
  registerer.register({});
22013
22017
  } else {
22014
- logger.log("sipjs: SIP Session does not exist for re registration");
22018
+ logger.log("sipjsphone: reRegister: SIP Session does not exist for re registration");
22015
22019
  }
22016
22020
 
22017
22021
  },
@@ -22059,7 +22063,7 @@ const SIPJSPhone = {
22059
22063
 
22060
22064
  pickPhoneCall: () => {
22061
22065
  var newSess = ctxSip.Sessions[ctxSip.callActiveID];
22062
- logger.log("pickphonecall ", ctxSip.callActiveID);
22066
+ logger.log("sipjsphone: pickphonecall: ", ctxSip.callActiveID);
22063
22067
  if (newSess) {
22064
22068
  if (_audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId != "default") {
22065
22069
  newSess.accept({
@@ -22092,7 +22096,7 @@ const SIPJSPhone = {
22092
22096
  try {
22093
22097
  ctxSip.beeptone.play();
22094
22098
  } catch (e) {
22095
- logger.log("playBeep: Exception:", e);
22099
+ logger.log("sipjsphone: playBeep: Exception:", e);
22096
22100
  }
22097
22101
  },
22098
22102
 
@@ -22128,22 +22132,22 @@ const SIPJSPhone = {
22128
22132
  },
22129
22133
  /* NL Additions - Start */
22130
22134
  getSpeakerTestTone: () => {
22131
- logger.log("Returning speaker test tone:", ringtone);
22135
+ logger.log("sipjsphone: getSpeakerTestTone: Returning speaker test tone:", ringtone);
22132
22136
  return ringtone;
22133
22137
  },
22134
22138
 
22135
22139
 
22136
22140
  getWSSUrl: () => {
22137
- logger.log("Returning txtWebsocketURL:", txtWebsocketURL);
22141
+ logger.log("sipjsphone: getWSSUrl: Returning txtWebsocketURL:", txtWebsocketURL);
22138
22142
  return txtWebsocketURL;
22139
22143
  },
22140
22144
  /* NL Additions - End */
22141
22145
  getTransportState: () => {
22142
- logger.log("Returning Transport State : ", lastTransportState);
22146
+ logger.log("sipjsphone: getTransportState: Returning Transport State : ", lastTransportState);
22143
22147
  return lastTransportState;
22144
22148
  },
22145
22149
  getRegistrationState: () => {
22146
- logger.log("Returning Registration State : ", lastRegistererState);
22150
+ logger.log("sipjsphone: getRegistrationState: Returning Registration State : ", lastRegistererState);
22147
22151
  return lastRegistererState;
22148
22152
  },
22149
22153
 
@@ -22152,11 +22156,11 @@ const SIPJSPhone = {
22152
22156
  const trackChanged = SIPJSPhone.replaceSenderTrack(stream, deviceId);
22153
22157
  if (trackChanged) {
22154
22158
  _audioDeviceManager_js__WEBPACK_IMPORTED_MODULE_0__.audioDeviceManager.currentAudioInputDeviceId = deviceId;
22155
- logger.log(`SIPJSPhone:changeAudioInputDevice Input device changed to: ${deviceId}`);
22159
+ logger.log(`sipjsphone: changeAudioInputDevice: Input device changed to: ${deviceId}`);
22156
22160
 
22157
22161
  onSuccess();
22158
22162
  } else {
22159
- logger.error("SIPJSPhone:changeAudioInputDevice failed");
22163
+ logger.error("sipjsphone: changeAudioInputDevice: failed");
22160
22164
  onError("replaceSenderTrack failed for webrtc");
22161
22165
  }
22162
22166
  }, onError);
@@ -22234,7 +22238,7 @@ const SIPJSPhone = {
22234
22238
  audioOutputDeviceChangeCallback: null,
22235
22239
  onDeviceChangeCallback: null,
22236
22240
  registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback) {
22237
- logger.log(`SIPJSPhone:registerAudioDeviceChangeCallback entry`);
22241
+ logger.log(`sipjsphone: registerAudioDeviceChangeCallback: entry`);
22238
22242
  SIPJSPhone.audioInputDeviceChangeCallback = audioInputDeviceChangeCallback;
22239
22243
  SIPJSPhone.audioOutputDeviceChangeCallback = audioOutputDeviceChangeCallback;
22240
22244
  SIPJSPhone.onDeviceChangeCallback = onDeviceChangeCallback;
@@ -22312,6 +22316,7 @@ let webrtcSIPEngine = null;
22312
22316
  const logger = _coreSDKLogger__WEBPACK_IMPORTED_MODULE_0__["default"];
22313
22317
 
22314
22318
  function sendWebRTCEventsToFSM(eventType, sipMethod) {
22319
+ logger.log("webrtcSIPPhone: sendWebRTCEventsToFSM : ",eventType,sipMethod);
22315
22320
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].sendWebRTCEventsToFSM(eventType, sipMethod);
22316
22321
  }
22317
22322
 
@@ -22321,6 +22326,7 @@ const webrtcSIPPhone = {
22321
22326
 
22322
22327
 
22323
22328
  isConnected: () => {
22329
+ logger.log("webrtcSIPPhone: isConnected entry");
22324
22330
  var status = phone.getStatus();
22325
22331
  if (status != "offline") {
22326
22332
  return true;
@@ -22330,10 +22336,12 @@ const webrtcSIPPhone = {
22330
22336
  },
22331
22337
 
22332
22338
  sendDTMFWebRTC: (dtmfValue) => {
22339
+ logger.log("webrtcSIPPhone: sendDTMFWebRTC : ",dtmfValue);
22333
22340
  phone.sipSendDTMF(dtmfValue);
22334
22341
  },
22335
22342
 
22336
22343
  registerWebRTCClient: (sipAccountInfo, handler) => {
22344
+ logger.log("webrtcSIPPhone: registerWebRTCClient : ",sipAccountInfo,handler);
22337
22345
  sipAccountInfoData = sipAccountInfo;
22338
22346
  phone.init(() => {
22339
22347
  phone.loadCredentials(sipAccountInfo);
@@ -22352,76 +22360,92 @@ const webrtcSIPPhone = {
22352
22360
 
22353
22361
 
22354
22362
  configureWebRTCClientDevice: (handler) => {
22363
+ logger.log("webrtcSIPPhone: configureWebRTCClientDevice : ",handler);
22355
22364
  phone.registerCallBacks(handler);
22356
22365
  },
22357
22366
 
22358
22367
  setAuthenticatorServerURL(serverURL) {
22368
+ logger.log("webrtcSIPPhone: setAuthenticatorServerURL : ",serverURL);
22359
22369
  // Nothing to do here
22360
22370
  },
22361
22371
 
22362
22372
  toggleSipRegister: () => {
22373
+ logger.log("webrtcSIPPhone: toggleSipRegister entry");
22363
22374
  phone.resetRegisterAttempts();
22364
22375
  phone.sipToggleRegister();
22365
22376
  },
22366
22377
 
22367
- webRTCMuteUnmute: (isMuted) => {
22378
+ webRTCMuteUnmute: () => {
22379
+ logger.log("webrtcSIPPhone: webRTCMuteUnmute");
22368
22380
  phone.sipToggleMic();
22369
22381
  },
22370
22382
 
22371
22383
  getMuteStatus: () => {
22384
+ logger.log("webrtcSIPPhone: getMuteStatus entry");
22372
22385
  return phone.getMicMuteStatus();
22373
22386
  },
22374
22387
 
22375
22388
  muteAction: (bMute) => {
22389
+ logger.log("webrtcSIPPhone: muteAction: ",bMute);
22376
22390
  phone.sipMute(bMute);
22377
22391
  },
22378
22392
 
22379
22393
  holdAction: (bHold) => {
22394
+ logger.log("webrtcSIPPhone: holdAction: ",bHold);
22380
22395
  phone.sipHold(bHold);
22381
22396
  },
22382
22397
 
22383
22398
  holdCall: () => {
22399
+ logger.log("webrtcSIPPhone: holdCall entry");
22384
22400
  phone.holdCall();
22385
22401
  },
22386
22402
 
22387
22403
  pickCall: () => {
22404
+ logger.log("webrtcSIPPhone: pickCall entry");
22388
22405
  phone.pickPhoneCall();
22389
22406
 
22390
22407
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onPickCall();
22391
22408
  },
22392
22409
 
22393
22410
  rejectCall: () => {
22411
+ logger.log("webrtcSIPPhone: rejectCall entry");
22394
22412
  phone.sipHangUp();
22395
22413
 
22396
22414
  _webrtcSIPPhoneEventDelegate__WEBPACK_IMPORTED_MODULE_2__["default"].onRejectCall();
22397
22415
  },
22398
22416
 
22399
22417
  reRegisterWebRTCPhone: () => {
22418
+ logger.log("webrtcSIPPhone: reRegisterWebRTCPhone entry");
22400
22419
  phone.reRegister();
22401
22420
  },
22402
22421
 
22403
22422
 
22404
22423
  playBeepTone: () => {
22424
+ logger.log("webrtcSIPPhone: playBeepTone entry");
22405
22425
  phone.playBeep();
22406
22426
 
22407
22427
  },
22408
22428
 
22409
22429
  sipUnRegisterWebRTC: () => {
22430
+ logger.log("webrtcSIPPhone: sipUnRegisterWebRTC entry");
22410
22431
  phone.sipUnRegister();
22411
22432
  },
22412
22433
 
22413
22434
  startWSNetworkTest: () => {
22435
+ logger.log("webrtcSIPPhone: startWSNetworkTest entry");
22414
22436
  undefined.testingMode = true;
22415
22437
  phone.sipRegister();
22416
22438
  },
22417
22439
 
22418
22440
  stopWSNetworkTest: () => {
22441
+ logger.log("webrtcSIPPhone stopWSNetworkTest entry");
22419
22442
  phone.sipUnRegister();
22420
22443
  },
22421
22444
 
22422
22445
 
22423
22446
 
22424
22447
  registerPhone: (engine, delegate) => {
22448
+ logger.log("webrtcSIPPhone: registerPhone : ",engine);
22425
22449
  webrtcSIPEngine = engine;
22426
22450
  switch (engine) {
22427
22451
  case "sipjs":
@@ -22437,29 +22461,35 @@ const webrtcSIPPhone = {
22437
22461
  },
22438
22462
 
22439
22463
  getWebRTCStatus: () => {
22464
+ logger.log("webrtcSIPPhone: getWebRTCStatus entry");
22440
22465
  var status = phone.getStatus();
22441
22466
  return status;
22442
22467
  },
22443
22468
 
22444
22469
  disconnect: () => {
22470
+ logger.log("webrtcSIPPhone: disconnect entry");
22445
22471
  if (phone) {
22446
22472
  phone.disconnect();
22447
22473
  }
22448
22474
  },
22449
22475
 
22450
22476
  connect: () => {
22477
+ logger.log("webrtcSIPPhone: connect entry");
22451
22478
  phone.connect();
22452
22479
  },
22453
22480
 
22454
22481
  getSIPAccountInfo() {
22482
+ logger.log("webrtcSIPPhone: getSIPAccountInfo entry");
22455
22483
  return sipAccountInfoData;
22456
22484
  },
22457
22485
  getWebRTCSIPEngine() {
22486
+ logger.log("webrtcSIPPhone: getWebRTCSIPEngine entry");
22458
22487
  return webrtcSIPEngine;
22459
22488
  },
22460
22489
 
22461
22490
  /* NL Addition - Start */
22462
22491
  getSpeakerTestTone() {
22492
+ logger.log("webrtcSIPPhone: getSpeakerTestTone entry");
22463
22493
  try {
22464
22494
  return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getSpeakerTestTone()
22465
22495
  } catch (e) {
@@ -22468,6 +22498,7 @@ const webrtcSIPPhone = {
22468
22498
  },
22469
22499
 
22470
22500
  getWSSUrl() {
22501
+ logger.log("webrtcSIPPhone: getWSSUrl entry");
22471
22502
  try {
22472
22503
  return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getWSSUrl()
22473
22504
  } catch (e) {
@@ -22477,6 +22508,7 @@ const webrtcSIPPhone = {
22477
22508
  /* NL Addition - End */
22478
22509
 
22479
22510
  getTransportState() {
22511
+ logger.log("webrtcSIPPhone: getTransportState entry");
22480
22512
  try {
22481
22513
  return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getTransportState();
22482
22514
  } catch (e) {
@@ -22486,6 +22518,7 @@ const webrtcSIPPhone = {
22486
22518
  },
22487
22519
 
22488
22520
  getRegistrationState() {
22521
+ logger.log("webrtcSIPPhone: getRegistrationState entry");
22489
22522
  try {
22490
22523
  return _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].getRegistrationState();
22491
22524
  } catch (e) {
@@ -22495,20 +22528,20 @@ const webrtcSIPPhone = {
22495
22528
  },
22496
22529
 
22497
22530
  changeAudioInputDevice(deviceId, onSuccess, onError) {
22498
- logger.log(`webrtcSIPPhone:changeAudioInputDevice entry`);
22531
+ logger.log("webrtcSIPPhone: changeAudioInputDevice : ", deviceId, onSuccess, onError);
22499
22532
  _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].changeAudioInputDevice(deviceId, onSuccess, onError);
22500
22533
  },
22501
22534
 
22502
22535
  changeAudioOutputDevice(deviceId, onSuccess, onError) {
22503
- logger.log(`webrtcSIPPhone:changeAudioOutputDevice entry`);
22536
+ logger.log("webrtcSIPPhone: changeAudioOutputDevice : ", deviceId, onSuccess, onError);
22504
22537
  _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].changeAudioOutputDevice(deviceId, onSuccess, onError);
22505
22538
  },
22506
22539
  setPreferredCodec(codecName) {
22507
- logger.log("webrtcSIPPhone:setPreferredCodec entry");
22540
+ logger.log("webrtcSIPPhone: setPreferredCodec : ", codecName);
22508
22541
  _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].setPreferredCodec(codecName);
22509
22542
  },
22510
22543
  registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback) {
22511
- logger.log(`webrtcSIPPhone:registerAudioDeviceChangeCallback entry`);
22544
+ logger.log("webrtcSIPPhone: registerAudioDeviceChangeCallback entry");
22512
22545
  _sipjsphone__WEBPACK_IMPORTED_MODULE_1__["default"].registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback);
22513
22546
  },
22514
22547
  getLogger() {
@@ -22714,6 +22747,55 @@ const webrtcSIPPhoneEventDelegate = {
22714
22747
 
22715
22748
  /***/ }),
22716
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
+
22717
22799
  /***/ "./src/api/callAPI/Call.js":
22718
22800
  /*!*********************************!*\
22719
22801
  !*** ./src/api/callAPI/Call.js ***!
@@ -22749,25 +22831,32 @@ function Call() {
22749
22831
  /**
22750
22832
  * When agent clicks on mute
22751
22833
  */
22752
- logger.log('mute toggle clicked');
22753
- let dummyFlag = null;
22754
- _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();
22755
22836
  };
22756
22837
  this.Mute = function () {
22757
22838
  /**
22758
22839
  * When agent clicks on mute
22759
22840
  */
22760
- logger.log('mute clicked');
22761
- let dummyFlag = true;
22762
- _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
+ }
22763
22848
  };
22764
22849
  this.UnMute = function () {
22765
22850
  /**
22766
22851
  * When agent clicks on mute
22767
22852
  */
22768
- logger.log('unmute clicked');
22769
- let dummyFlag = false;
22770
- _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
+ }
22771
22860
  };
22772
22861
  this.HoldToggle = function () {
22773
22862
  /**
@@ -23948,6 +24037,8 @@ __webpack_require__.r(__webpack_exports__);
23948
24037
  /* harmony import */ var _listeners_Callback__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Callback */ "./src/listeners/Callback.js");
23949
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");
23950
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
+
23951
24042
 
23952
24043
 
23953
24044
 
@@ -24013,7 +24104,7 @@ function ExDelegationHandler(exClient_) {
24013
24104
  logger.log("delegationHandler: setTestingMode\n");
24014
24105
  };
24015
24106
  this.onCallStatSipJsSessionEvent = function (ev) {
24016
- logger.log("delegationHandler: onCallStatSipJsSessionEvent\n");
24107
+ logger.log("delegationHandler: onCallStatSipJsSessionEvent", ev);
24017
24108
  };
24018
24109
  this.sendWebRTCEventsToFSM = function (eventType, sipMethod) {
24019
24110
  logger.log("delegationHandler: sendWebRTCEventsToFSM\n");
@@ -24139,6 +24230,16 @@ class ExotelWebClient {
24139
24230
  //this.webRTCPhones = {};
24140
24231
 
24141
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
+ }
24142
24243
  initWebrtc = (sipAccountInfo_, RegisterEventCallBack, CallListenerCallback, SessionCallback) => {
24143
24244
  if (!this.eventListener) {
24144
24245
  this.eventListener = new _listeners_ExotelVoiceClientListener__WEBPACK_IMPORTED_MODULE_3__.ExotelVoiceClientListener();
@@ -24152,7 +24253,7 @@ class ExotelWebClient {
24152
24253
  if (!this.call) {
24153
24254
  this.call = new _api_callAPI_Call__WEBPACK_IMPORTED_MODULE_0__.Call();
24154
24255
  }
24155
- logger.log("Exotel Client Initialised with " + JSON.stringify(sipAccountInfo_));
24256
+ logger.log("ExWebClient: initWebrtc: Exotel Client Initialised with " + JSON.stringify(sipAccountInfo_));
24156
24257
  this.sipAccountInfo = sipAccountInfo_;
24157
24258
  if (!this.sipAccountInfo["userName"] || !this.sipAccountInfo["sipdomain"] || !this.sipAccountInfo["port"]) {
24158
24259
  return false;
@@ -24160,22 +24261,22 @@ class ExotelWebClient {
24160
24261
  this.sipAccountInfo["sipUri"] = "wss://" + this.sipAccountInfo["userName"] + "@" + this.sipAccountInfo["sipdomain"] + ":" + this.sipAccountInfo["port"];
24161
24262
  _listeners_Callback__WEBPACK_IMPORTED_MODULE_7__.callbacks.initializeCallback(CallListenerCallback);
24162
24263
  _listeners_Callback__WEBPACK_IMPORTED_MODULE_7__.registerCallback.initializeRegisterCallback(RegisterEventCallBack);
24163
- logger.log("Initializing session callback");
24264
+ logger.log("ExWebClient: initWebrtc: Initializing session callback");
24164
24265
  _listeners_Callback__WEBPACK_IMPORTED_MODULE_7__.sessionCallback.initializeSessionCallback(SessionCallback);
24165
24266
  this.setEventListener(this.eventListener);
24166
24267
  return true;
24167
24268
  };
24168
24269
  DoRegister = () => {
24169
- logger.log("ExWebClient:DoRegister Entry");
24270
+ logger.log("ExWebClient: DoRegister: Entry");
24170
24271
  if (!this.isReadyToRegister) {
24171
- logger.warn("ExWebClient:DoRegister SDK is not ready to register");
24272
+ logger.warn("ExWebClient: DoRegister: SDK is not ready to register");
24172
24273
  return false;
24173
24274
  }
24174
24275
  (0,_api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_1__.DoRegister)(this.sipAccountInfo, this);
24175
24276
  return true;
24176
24277
  };
24177
24278
  UnRegister = () => {
24178
- logger.log("ExWebClient:UnRegister Entry");
24279
+ logger.log("ExWebClient: UnRegister: Entry");
24179
24280
  (0,_api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_1__.UnRegister)(this.sipAccountInfo, this);
24180
24281
  };
24181
24282
  initDiagnostics = (saveDiagnosticsCallback, keyValueSetCallback) => {
@@ -24236,7 +24337,7 @@ class ExotelWebClient {
24236
24337
  */
24237
24338
 
24238
24339
  registerEventCallback = (event, phone, param) => {
24239
- logger.log("Dialer: registerEventCallback: Received ---> " + event + 'phone....', phone + 'param....', param);
24340
+ logger.log("ExWebClient: registerEventCallback: Received ---> " + event + 'phone....', phone + 'param....', param);
24240
24341
  if (event === "connected") {
24241
24342
  /**
24242
24343
  * When registration is successful then send the phone number of the same to UI
@@ -24244,7 +24345,7 @@ class ExotelWebClient {
24244
24345
  this.eventListener.onInitializationSuccess(phone);
24245
24346
  this.registrationInProgress = false;
24246
24347
  if (this.unregisterInitiated) {
24247
- logger.log("ExWebClient:registerEventCallback unregistering due to unregisterInitiated");
24348
+ logger.log("ExWebClient: registerEventCallback: unregistering due to unregisterInitiated");
24248
24349
  this.unregisterInitiated = false;
24249
24350
  this.unregister();
24250
24351
  }
@@ -24259,7 +24360,7 @@ class ExotelWebClient {
24259
24360
  this.isReadyToRegister = true;
24260
24361
  }
24261
24362
  if (this.shouldAutoRetry) {
24262
- logger.log("ExWebClient:registerEventCallback Autoretrying");
24363
+ logger.log("ExWebClient: registerEventCallback: Autoretrying");
24263
24364
  (0,_api_registerAPI_RegisterListener__WEBPACK_IMPORTED_MODULE_1__.DoRegister)(this.sipAccountInfo, this, 5000);
24264
24365
  }
24265
24366
  } else if (event === "sent_request") {
@@ -24276,7 +24377,7 @@ class ExotelWebClient {
24276
24377
  * @param {*} param
24277
24378
  */
24278
24379
  callEventCallback = (event, phone, param) => {
24279
- 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);
24280
24381
  if (event === "i_new_call") {
24281
24382
  this.callListener.onIncomingCall(param, phone);
24282
24383
  } else if (event === "connected") {
@@ -24301,7 +24402,7 @@ class ExotelWebClient {
24301
24402
  * @param {*} sipAccountInfo
24302
24403
  */
24303
24404
  unregister = sipAccountInfo => {
24304
- logger.log("ExWebClient:unregister Entry");
24405
+ logger.log("ExWebClient: unregister: Entry");
24305
24406
  this.shouldAutoRetry = false;
24306
24407
  this.unregisterInitiated = true;
24307
24408
  if (!this.registrationInProgress) {
@@ -24311,7 +24412,7 @@ class ExotelWebClient {
24311
24412
  }
24312
24413
  };
24313
24414
  webRTCStatusCallbackHandler = (msg1, arg1) => {
24314
- logger.log("webRTCStatusCallbackHandler: " + msg1 + " " + arg1);
24415
+ logger.log("ExWebClient: webRTCStatusCallbackHandler: " + msg1 + " " + arg1);
24315
24416
  };
24316
24417
 
24317
24418
  /**
@@ -24337,7 +24438,7 @@ class ExotelWebClient {
24337
24438
  'port': '',
24338
24439
  'contactHost': ''
24339
24440
  };
24340
- logger.log('Sending register for the number..', subscriberName);
24441
+ logger.log('ExWebClient: initialize: Sending register for the number..', subscriberName);
24341
24442
  fetchPublicIP(sipAccountInfo);
24342
24443
 
24343
24444
  /* Temporary till we figure out the arguments - Start */
@@ -24434,24 +24535,28 @@ class ExotelWebClient {
24434
24535
  }
24435
24536
  }
24436
24537
  }).catch(function (error) {
24437
- logger.log("something went wrong during checkClientStatus ", error);
24538
+ logger.log("ExWebClient: checkClientStatus: something went wrong during checkClientStatus ", error);
24438
24539
  callback("media_permission_denied");
24439
24540
  });
24440
24541
  };
24441
24542
  changeAudioInputDevice(deviceId, onSuccess, onError) {
24442
- logger.log(`in changeAudioInputDevice() of ExWebClient.js`);
24543
+ logger.log(`ExWebClient: changeAudioInputDevice: Entry`);
24443
24544
  _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.changeAudioInputDevice(deviceId, onSuccess, onError);
24444
24545
  }
24445
24546
  changeAudioOutputDevice(deviceId, onSuccess, onError) {
24446
- logger.log(`in changeAudioOutputDevice() of ExWebClient.js`);
24547
+ logger.log(`ExWebClient: changeAudioOutputDevice: Entry`);
24447
24548
  _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.changeAudioOutputDevice(deviceId, onSuccess, onError);
24448
24549
  }
24550
+ downloadLogs() {
24551
+ logger.log(`ExWebClient: downloadLogs: Entry`);
24552
+ _api_LogManager_js__WEBPACK_IMPORTED_MODULE_10__["default"].downloadLogs();
24553
+ }
24449
24554
  setPreferredCodec(codecName) {
24450
- logger.log("ExWebClient:setPreferredCodec entry");
24555
+ logger.log("ExWebClient: setPreferredCodec: Entry");
24451
24556
  _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.setPreferredCodec(codecName);
24452
24557
  }
24453
24558
  registerLoggerCallback(callback) {
24454
- logger.registerLoggerCallback(callback);
24559
+ this.clientSDKLoggerCallback = callback;
24455
24560
  }
24456
24561
  registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback) {
24457
24562
  _exotel_npm_dev_webrtc_core_sdk__WEBPACK_IMPORTED_MODULE_8__.webrtcSIPPhone.registerAudioDeviceChangeCallback(audioInputDeviceChangeCallback, audioOutputDeviceChangeCallback, onDeviceChangeCallback);