@webex/calling 3.0.0-next.4 → 3.0.0-next.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1403 -1403
- package/README.md +74 -74
- package/dist/CallHistory/CallHistory.js +201 -0
- package/dist/CallHistory/CallHistory.js.map +1 -0
- package/dist/CallHistory/CallHistory.test.js +142 -0
- package/dist/CallHistory/CallHistory.test.js.map +1 -0
- package/dist/CallHistory/callHistoryFixtures.js +366 -0
- package/dist/CallHistory/callHistoryFixtures.js.map +1 -0
- package/dist/CallHistory/constants.js +17 -0
- package/dist/CallHistory/constants.js.map +1 -0
- package/dist/CallHistory/types.js +7 -0
- package/dist/CallHistory/types.js.map +1 -0
- package/dist/CallSettings/CallSettings.js +279 -0
- package/dist/CallSettings/CallSettings.js.map +1 -0
- package/dist/CallSettings/CallSettings.test.js +122 -0
- package/dist/CallSettings/CallSettings.test.js.map +1 -0
- package/dist/CallSettings/UcmBackendConnector.js +216 -0
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -0
- package/dist/CallSettings/UcmBackendConnector.test.js +259 -0
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -0
- package/dist/CallSettings/WxCallBackendConnector.js +547 -0
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -0
- package/dist/CallSettings/WxCallBackendConnector.test.js +802 -0
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -0
- package/dist/CallSettings/constants.js +19 -0
- package/dist/CallSettings/constants.js.map +1 -0
- package/dist/CallSettings/testFixtures.js +68 -0
- package/dist/CallSettings/testFixtures.js.map +1 -0
- package/dist/CallSettings/types.js +7 -0
- package/dist/CallSettings/types.js.map +1 -0
- package/dist/CallingClient/CallingClient.js +631 -0
- package/dist/CallingClient/CallingClient.js.map +1 -0
- package/dist/CallingClient/CallingClient.test.js +992 -0
- package/dist/CallingClient/CallingClient.test.js.map +1 -0
- package/dist/CallingClient/callRecordFixtures.js +101 -0
- package/dist/CallingClient/callRecordFixtures.js.map +1 -0
- package/dist/CallingClient/calling/CallerId/index.js +267 -0
- package/dist/CallingClient/calling/CallerId/index.js.map +1 -0
- package/dist/CallingClient/calling/CallerId/index.test.js +274 -0
- package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -0
- package/dist/CallingClient/calling/CallerId/types.js +7 -0
- package/dist/CallingClient/calling/CallerId/types.js.map +1 -0
- package/dist/CallingClient/calling/call.js +3055 -0
- package/dist/CallingClient/calling/call.js.map +1 -0
- package/dist/CallingClient/calling/call.test.js +2858 -0
- package/dist/CallingClient/calling/call.test.js.map +1 -0
- package/dist/CallingClient/calling/callManager.js +432 -0
- package/dist/CallingClient/calling/callManager.js.map +1 -0
- package/dist/CallingClient/calling/callManager.test.js +683 -0
- package/dist/CallingClient/calling/callManager.test.js.map +1 -0
- package/dist/CallingClient/calling/index.js +30 -0
- package/dist/CallingClient/calling/index.js.map +1 -0
- package/dist/CallingClient/calling/types.js +69 -0
- package/dist/CallingClient/calling/types.js.map +1 -0
- package/dist/CallingClient/callingClientFixtures.js +143 -0
- package/dist/CallingClient/callingClientFixtures.js.map +1 -0
- package/dist/CallingClient/constants.js +134 -0
- package/dist/CallingClient/constants.js.map +1 -0
- package/dist/CallingClient/line/index.js +314 -0
- package/dist/CallingClient/line/index.js.map +1 -0
- package/dist/CallingClient/line/line.test.js +270 -0
- package/dist/CallingClient/line/line.test.js.map +1 -0
- package/dist/CallingClient/line/types.js +21 -0
- package/dist/CallingClient/line/types.js.map +1 -0
- package/dist/CallingClient/registration/index.js +19 -0
- package/dist/CallingClient/registration/index.js.map +1 -0
- package/dist/CallingClient/registration/register.js +1286 -0
- package/dist/CallingClient/registration/register.js.map +1 -0
- package/dist/CallingClient/registration/register.test.js +839 -0
- package/dist/CallingClient/registration/register.test.js.map +1 -0
- package/dist/CallingClient/registration/registerFixtures.js +36 -0
- package/dist/CallingClient/registration/registerFixtures.js.map +1 -0
- package/dist/CallingClient/registration/types.js +7 -0
- package/dist/CallingClient/registration/types.js.map +1 -0
- package/dist/CallingClient/types.js +7 -0
- package/dist/CallingClient/types.js.map +1 -0
- package/dist/Contacts/ContactsClient.js +1156 -0
- package/dist/Contacts/ContactsClient.js.map +1 -0
- package/dist/Contacts/ContactsClient.test.js +725 -0
- package/dist/Contacts/ContactsClient.test.js.map +1 -0
- package/dist/Contacts/constants.js +28 -0
- package/dist/Contacts/constants.js.map +1 -0
- package/dist/Contacts/contactFixtures.js +314 -0
- package/dist/Contacts/contactFixtures.js.map +1 -0
- package/dist/Contacts/types.js +43 -0
- package/dist/Contacts/types.js.map +1 -0
- package/dist/Errors/catalog/CallError.js +92 -0
- package/dist/Errors/catalog/CallError.js.map +1 -0
- package/dist/Errors/catalog/CallingDeviceError.js +86 -0
- package/dist/Errors/catalog/CallingDeviceError.js.map +1 -0
- package/dist/Errors/catalog/ExtendedError.js +44 -0
- package/dist/Errors/catalog/ExtendedError.js.map +1 -0
- package/dist/Errors/catalog/LineError.js +88 -0
- package/dist/Errors/catalog/LineError.js.map +1 -0
- package/dist/Errors/index.js +28 -0
- package/dist/Errors/index.js.map +1 -0
- package/dist/Errors/types.js +57 -0
- package/dist/Errors/types.js.map +1 -0
- package/dist/Events/impl/index.js +81 -0
- package/dist/Events/impl/index.js.map +1 -0
- package/dist/Events/types.js +103 -0
- package/dist/Events/types.js.map +1 -0
- package/dist/Logger/index.js +220 -0
- package/dist/Logger/index.js.map +1 -0
- package/dist/Logger/index.test.js +62 -0
- package/dist/Logger/index.test.js.map +1 -0
- package/dist/Logger/types.js +34 -0
- package/dist/Logger/types.js.map +1 -0
- package/dist/Metrics/index.js +327 -0
- package/dist/Metrics/index.js.map +1 -0
- package/dist/Metrics/index.test.js +291 -0
- package/dist/Metrics/index.test.js.map +1 -0
- package/dist/Metrics/types.js +45 -0
- package/dist/Metrics/types.js.map +1 -0
- package/dist/SDKConnector/index.js +104 -0
- package/dist/SDKConnector/index.js.map +1 -0
- package/dist/SDKConnector/index.test.js +9 -0
- package/dist/SDKConnector/index.test.js.map +1 -0
- package/dist/SDKConnector/types.js +7 -0
- package/dist/SDKConnector/types.js.map +1 -0
- package/dist/SDKConnector/utils.js +39 -0
- package/dist/SDKConnector/utils.js.map +1 -0
- package/dist/SDKConnector/utils.test.js +9 -0
- package/dist/SDKConnector/utils.test.js.map +1 -0
- package/dist/Voicemail/BroadworksBackendConnector.js +641 -0
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -0
- package/dist/Voicemail/BroadworksBackendConnector.test.js +733 -0
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -0
- package/dist/Voicemail/UcmBackendConnector.js +574 -0
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -0
- package/dist/Voicemail/UcmBackendConnector.test.js +629 -0
- package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -0
- package/dist/Voicemail/Voicemail.js +380 -0
- package/dist/Voicemail/Voicemail.js.map +1 -0
- package/dist/Voicemail/Voicemail.test.js +226 -0
- package/dist/Voicemail/Voicemail.test.js.map +1 -0
- package/dist/Voicemail/WxCallBackendConnector.js +547 -0
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -0
- package/dist/Voicemail/WxCallBackendConnector.test.js +942 -0
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -0
- package/dist/Voicemail/constants.js +37 -0
- package/dist/Voicemail/constants.js.map +1 -0
- package/dist/Voicemail/types.js +7 -0
- package/dist/Voicemail/types.js.map +1 -0
- package/dist/Voicemail/voicemailFixture.js +524 -0
- package/dist/Voicemail/voicemailFixture.js.map +1 -0
- package/dist/api.js +157 -0
- package/dist/api.js.map +1 -0
- package/dist/common/Utils.js +1257 -0
- package/dist/common/Utils.js.map +1 -0
- package/dist/common/Utils.test.js +1227 -0
- package/dist/common/Utils.test.js.map +1 -0
- package/dist/common/constants.js +49 -0
- package/dist/common/constants.js.map +1 -0
- package/dist/common/index.js +19 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/testUtil.js +959 -0
- package/dist/common/testUtil.js.map +1 -0
- package/dist/common/types.js +66 -0
- package/dist/common/types.js.map +1 -0
- package/dist/index.js +309 -0
- package/dist/index.js.map +1 -0
- package/dist/module/CallHistory/CallHistory.js +83 -81
- package/dist/module/CallHistory/callHistoryFixtures.js +366 -307
- package/dist/module/CallHistory/constants.js +9 -9
- package/dist/module/CallHistory/types.js +1 -1
- package/dist/module/CallSettings/CallSettings.js +65 -65
- package/dist/module/CallSettings/UcmBackendConnector.js +100 -100
- package/dist/module/CallSettings/WxCallBackendConnector.js +287 -287
- package/dist/module/CallSettings/constants.js +11 -11
- package/dist/module/CallSettings/testFixtures.js +62 -62
- package/dist/module/CallSettings/types.js +1 -1
- package/dist/module/CallingClient/CallingClient.js +265 -248
- package/dist/module/CallingClient/callRecordFixtures.js +93 -93
- package/dist/module/CallingClient/calling/CallerId/index.js +149 -169
- package/dist/module/CallingClient/calling/CallerId/types.js +1 -1
- package/dist/module/CallingClient/calling/call.js +1701 -1658
- package/dist/module/CallingClient/calling/callManager.js +278 -284
- package/dist/module/CallingClient/calling/index.js +2 -2
- package/dist/module/CallingClient/calling/types.js +53 -53
- package/dist/module/CallingClient/callingClientFixtures.js +156 -38
- package/dist/module/CallingClient/constants.js +126 -122
- package/dist/module/CallingClient/line/index.js +155 -158
- package/dist/module/CallingClient/line/types.js +10 -15
- package/dist/module/CallingClient/registration/index.js +1 -1
- package/dist/module/CallingClient/registration/register.js +515 -507
- package/dist/module/CallingClient/registration/registerFixtures.js +28 -28
- package/dist/module/CallingClient/registration/types.js +1 -1
- package/dist/module/CallingClient/types.js +1 -1
- package/dist/module/Contacts/ContactsClient.js +487 -484
- package/dist/module/Contacts/constants.js +20 -20
- package/dist/module/Contacts/contactFixtures.js +284 -284
- package/dist/module/Contacts/types.js +10 -10
- package/dist/module/Errors/catalog/CallError.js +26 -26
- package/dist/module/Errors/catalog/CallingDeviceError.js +18 -18
- package/dist/module/Errors/catalog/ExtendedError.js +10 -10
- package/dist/module/Errors/catalog/LineError.js +24 -24
- package/dist/module/Errors/index.js +3 -2
- package/dist/module/Errors/types.js +48 -48
- package/dist/module/Events/impl/index.js +19 -19
- package/dist/module/Events/types.js +85 -83
- package/dist/module/Logger/index.js +114 -114
- package/dist/module/Logger/types.js +25 -25
- package/dist/module/Metrics/index.js +232 -232
- package/dist/module/Metrics/types.js +37 -37
- package/dist/module/SDKConnector/index.js +39 -39
- package/dist/module/SDKConnector/types.js +1 -1
- package/dist/module/SDKConnector/utils.js +12 -12
- package/dist/module/Voicemail/BroadworksBackendConnector.js +291 -291
- package/dist/module/Voicemail/UcmBackendConnector.js +279 -279
- package/dist/module/Voicemail/Voicemail.js +110 -110
- package/dist/module/Voicemail/WxCallBackendConnector.js +279 -279
- package/dist/module/Voicemail/constants.js +29 -29
- package/dist/module/Voicemail/types.js +1 -1
- package/dist/module/Voicemail/voicemailFixture.js +510 -510
- package/dist/module/api.js +7 -6
- package/dist/module/common/Utils.js +797 -802
- package/dist/module/common/constants.js +41 -41
- package/dist/module/common/index.js +1 -1
- package/dist/module/common/testUtil.js +939 -938
- package/dist/module/common/types.js +58 -57
- package/dist/module/index.js +17 -8
- package/dist/types/CallHistory/CallHistory.d.ts +18 -17
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallHistory/callHistoryFixtures.d.ts +95 -94
- package/dist/types/CallHistory/callHistoryFixtures.d.ts.map +1 -1
- package/dist/types/CallHistory/constants.d.ts +9 -9
- package/dist/types/CallHistory/types.d.ts +18 -18
- package/dist/types/CallSettings/CallSettings.d.ts +19 -19
- package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
- package/dist/types/CallSettings/UcmBackendConnector.d.ts +19 -19
- package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/WxCallBackendConnector.d.ts +21 -21
- package/dist/types/CallSettings/constants.d.ts +11 -11
- package/dist/types/CallSettings/testFixtures.d.ts +15 -15
- package/dist/types/CallSettings/types.d.ts +108 -107
- package/dist/types/CallSettings/types.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts +37 -35
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/callRecordFixtures.d.ts +3 -3
- package/dist/types/CallingClient/calling/CallerId/index.d.ts +17 -17
- package/dist/types/CallingClient/calling/CallerId/index.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/CallerId/types.d.ts +41 -41
- package/dist/types/CallingClient/calling/CallerId/types.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts +98 -96
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/callManager.d.ts +24 -25
- package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/index.d.ts +2 -2
- package/dist/types/CallingClient/calling/types.d.ts +206 -206
- package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
- package/dist/types/CallingClient/callingClientFixtures.d.ts +86 -18
- package/dist/types/CallingClient/callingClientFixtures.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +126 -122
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/line/index.d.ts +43 -43
- package/dist/types/CallingClient/line/index.d.ts.map +1 -1
- package/dist/types/CallingClient/line/types.d.ts +43 -55
- package/dist/types/CallingClient/line/types.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/index.d.ts +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +64 -64
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/registerFixtures.d.ts +28 -28
- package/dist/types/CallingClient/registration/types.d.ts +20 -20
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/CallingClient/types.d.ts +31 -29
- package/dist/types/CallingClient/types.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts +27 -26
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Contacts/constants.d.ts +19 -19
- package/dist/types/Contacts/contactFixtures.d.ts +280 -280
- package/dist/types/Contacts/types.d.ts +74 -72
- package/dist/types/Contacts/types.d.ts.map +1 -1
- package/dist/types/Errors/catalog/CallError.d.ts +11 -11
- package/dist/types/Errors/catalog/CallingDeviceError.d.ts +10 -10
- package/dist/types/Errors/catalog/CallingDeviceError.d.ts.map +1 -1
- package/dist/types/Errors/catalog/ExtendedError.d.ts +6 -6
- package/dist/types/Errors/catalog/LineError.d.ts +10 -10
- package/dist/types/Errors/catalog/LineError.d.ts.map +1 -1
- package/dist/types/Errors/index.d.ts +3 -2
- package/dist/types/Errors/index.d.ts.map +1 -1
- package/dist/types/Errors/types.d.ts +59 -60
- package/dist/types/Errors/types.d.ts.map +1 -1
- package/dist/types/Events/impl/index.d.ts +8 -8
- package/dist/types/Events/types.d.ts +311 -288
- package/dist/types/Events/types.d.ts.map +1 -1
- package/dist/types/Logger/index.d.ts +12 -12
- package/dist/types/Logger/types.d.ts +25 -25
- package/dist/types/Metrics/index.d.ts +5 -5
- package/dist/types/Metrics/types.d.ts +42 -42
- package/dist/types/SDKConnector/index.d.ts +12 -12
- package/dist/types/SDKConnector/types.d.ts +129 -128
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/SDKConnector/utils.d.ts +5 -5
- package/dist/types/Voicemail/BroadworksBackendConnector.d.ts +27 -27
- package/dist/types/Voicemail/UcmBackendConnector.d.ts +34 -34
- package/dist/types/Voicemail/Voicemail.d.ts +27 -27
- package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts +23 -23
- package/dist/types/Voicemail/constants.d.ts +29 -29
- package/dist/types/Voicemail/types.d.ts +133 -133
- package/dist/types/Voicemail/types.d.ts.map +1 -1
- package/dist/types/Voicemail/voicemailFixture.d.ts +417 -417
- package/dist/types/api.d.ts +16 -16
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts +34 -34
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/constants.d.ts +41 -41
- package/dist/types/common/index.d.ts +1 -1
- package/dist/types/common/testUtil.d.ts +3612 -3611
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +192 -191
- package/dist/types/common/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +21 -8
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_uuid","require","_types","_common","_types2","_Metrics","_calling","_Logger","_interopRequireDefault","_SDKConnector","_types3","_constants","_types4","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","Registration","exports","webex","serviceData","mutex","lineEmitter","logLevel","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","getWebex","setWebex","userId","internal","device","registrationStatus","RegistrationStatus","IDLE","failback429RetryAttempts","log","setLogger","REGISTRATION_FILE","rehomingIntervalMin","DEFAULT_REHOMING_INTERVAL_MIN","rehomingIntervalMax","DEFAULT_REHOMING_INTERVAL_MAX","callManager","getCallManager","indicator","metricManager","getMetricManager","primaryMobiusUris","backupMobiusUris","_createClass2","key","getActiveMobiusUrl","activeMobiusUrl","setActiveMobiusUrl","url","info","concat","method","file","updateActiveMobius","setMobiusServers","_postKeepAlive","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","abrupt","request","uri","HTTP_METHODS","POST","headers","CISCO_DEVICE_URL","SPARK_USER_AGENT","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","stop","postKeepAlive","_x","apply","arguments","_deleteRegistration","_callee2","deviceId","deviceUrl","_response","response","_callee2$","_context2","t0","fetch","t1","DEVICES_ENDPOINT_RESOURCE","t2","DELETE","t3","t4","t5","t6","credentials","getUserToken","t7","sent","t8","t9","WEBEX_WEB_CLIENT","uuid","t10","t11","t12","t13","t14","t15","warn","setStatus","INACTIVE","LINE_EVENTS","UNREGISTERED","json","deleteRegistration","_x2","_x3","_x4","_postRegistration","_callee3","deviceInfo","_callee3$","_context3","clientDeviceUri","body","postRegistration","_x5","_restorePreviousRegistration","_callee4","caller","abort","_callee4$","_context4","attemptRegistrationWithServers","restorePreviousRegistration","_x6","_scheduleFailback429Retry","_callee5","interval","_callee5$","_context5","REG_FAILBACK_429_MAX_RETRIES","clearFailbackTimer","FAILBACK_429_RETRY_UTIL","getRegRetryInterval","startFailbackTimer","isDeviceRegistered","restartRegistration","scheduleFailback429Retry","attempt","undefined","BASE_REG_RETRY_TIMER_VAL_IN_SEC","Math","pow","BASE_REG_TIMER_MFACTOR","floor","random","REG_RANDOM_T_FACTOR_UPPER_LIMIT","SEC_TO_MSEC_MFACTOR","_startFailoverTimer","_callee10","_this","timeElapsed","loggerContext","excessVal","scheduledTime","_args10","_callee10$","_context10","startFailoverTimer","REG_TRY_BACKUP_TIMER_VAL_IN_SEC","_now","setTimeout","_callee7","_callee7$","_context7","runExclusive","_callee6","currentTime","_callee6$","_context6","_callee9","_callee9$","_context9","_callee8","_callee8$","_context8","emitFinalFailure","clientError","ERROR","failbackTimer","clearTimeout","isFailbackRequired","indexOf","getFailbackInterval","initiateFailback","intervalInMinutes","MINUTES_TO_SEC_MFACTOR","intervalInSeconds","_this2","_callee11","_callee11$","_context11","executeFailback","_executeFailback","_callee13","_this3","_callee13$","_context13","_callee12","abortNew","_callee12$","_context12","_keys","getActiveCalls","deregister","FAILBACK_UTIL","setIntervalValues","getDeviceInfo","ACTIVE","getStatus","_restartRegistration","_callee14","_callee14$","_context14","_x7","_handleConnectionRestoration","_callee16","retry","_this4","_callee16$","_context16","_callee15","_callee15$","_context15","handleConnectionRestoration","clearKeepaliveTimer","_x8","restoreRegistrationCallBack","_this5","_ref8","_callee17","restoreData","logContext","restore","finalError","_callee17$","_context17","isRegRetry","getExistingDevice","setRegRetry","_x9","_x10","_triggerRegistration","_callee18","_callee18$","_context18","triggerRegistration","_attemptRegistrationWithServers","_callee19","_this6","servers","_iterator","_step","_this$deviceInfo$devi","resp","error","_args19","_callee19$","_context19","CONNECTING","REGISTERED","setDeviceInfo","submitRegistrationMetric","METRIC_EVENT","REGISTRATION","REG_ACTION","REGISTER","METRIC_TYPE","BEHAVIORAL","startKeepaliveTimer","keepaliveInterval","handleRegistrationErrors","REGISTRATION_ERROR","statusCode","ERROR_CODE","TOO_MANY_REQUESTS","finish","_x11","_this7","keepAliveRetryCount","keepaliveTimer","setInterval","_callee21","_callee21$","_context21","_callee20","res","_callee20$","_context20","RECONNECTED","KEEPALIVE_FAILURE","reconnectOnFailure","RECONNECTING","clearInterval","isReconnectPending","reconnectPending","_deregister","_callee22","_this$deviceInfo$devi2","_this$deviceInfo$devi3","_callee22$","_context22","registerRetry","devices","DEFAULT_KEEPALIVE_INTERVAL","stringToReplace","replace","_reconnectOnFailure","_callee23","_callee23$","_context23","_x12","createRegistration"],"sources":["register.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\nimport {Mutex} from 'async-mutex';\nimport {ERROR_CODE} from '../../Errors/types';\nimport {emitFinalFailure, handleRegistrationErrors} from '../../common';\n\nimport {IMetricManager, METRIC_EVENT, METRIC_TYPE, REG_ACTION} from '../../Metrics/types';\nimport {getMetricManager} from '../../Metrics';\nimport {ICallManager} from '../calling/types';\nimport {getCallManager} from '../calling';\nimport {LOGGER} from '../../Logger/types';\nimport log from '../../Logger';\nimport {IRegistration} from './types';\nimport SDKConnector from '../../SDKConnector';\nimport {\n ALLOWED_SERVICES,\n HTTP_METHODS,\n IDeviceInfo,\n RegistrationStatus,\n ServiceData,\n WebexRequestPayload,\n} from '../../common/types';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n DEVICES_ENDPOINT_RESOURCE,\n SPARK_USER_AGENT,\n WEBEX_WEB_CLIENT,\n BASE_REG_RETRY_TIMER_VAL_IN_SEC,\n BASE_REG_TIMER_MFACTOR,\n SEC_TO_MSEC_MFACTOR,\n REG_RANDOM_T_FACTOR_UPPER_LIMIT,\n REG_TRY_BACKUP_TIMER_VAL_IN_SEC,\n MINUTES_TO_SEC_MFACTOR,\n FAILBACK_429_RETRY_UTIL,\n REG_FAILBACK_429_MAX_RETRIES,\n FAILBACK_UTIL,\n REGISTRATION_FILE,\n DEFAULT_REHOMING_INTERVAL_MIN,\n DEFAULT_REHOMING_INTERVAL_MAX,\n DEFAULT_KEEPALIVE_INTERVAL,\n} from '../constants';\nimport {LINE_EVENTS, LineEmitterCallback} from '../line/types';\nimport {LineError} from '../../Errors/catalog/LineError';\n\n/**\n *\n */\nexport class Registration implements IRegistration {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private userId = '';\n\n private serviceData: ServiceData;\n\n private failback429RetryAttempts: number;\n private registrationStatus: RegistrationStatus;\n private failbackTimer?: NodeJS.Timer;\n private activeMobiusUrl!: string;\n\n private keepaliveTimer: NodeJS.Timer | undefined;\n private rehomingIntervalMin: number;\n\n private rehomingIntervalMax: number;\n private mutex: Mutex;\n private metricManager: IMetricManager;\n private lineEmitter: LineEmitterCallback;\n private callManager: ICallManager;\n private deviceInfo: IDeviceInfo = {};\n private primaryMobiusUris: string[];\n private backupMobiusUris: string[];\n private registerRetry = false;\n private reconnectPending = false;\n\n /**\n */\n constructor(\n webex: WebexSDK,\n serviceData: ServiceData,\n mutex: Mutex,\n lineEmitter: LineEmitterCallback,\n logLevel: LOGGER\n ) {\n this.sdkConnector = SDKConnector;\n this.serviceData = serviceData;\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.userId = this.webex.internal.device.userId;\n this.registrationStatus = RegistrationStatus.IDLE;\n this.failback429RetryAttempts = 0;\n log.setLogger(logLevel, REGISTRATION_FILE);\n this.rehomingIntervalMin = DEFAULT_REHOMING_INTERVAL_MIN;\n this.rehomingIntervalMax = DEFAULT_REHOMING_INTERVAL_MAX;\n this.mutex = mutex;\n this.callManager = getCallManager(this.webex, serviceData.indicator);\n this.metricManager = getMetricManager(this.webex, serviceData.indicator);\n this.lineEmitter = lineEmitter;\n\n this.primaryMobiusUris = [];\n this.backupMobiusUris = [];\n }\n\n public getActiveMobiusUrl(): string {\n return this.activeMobiusUrl;\n }\n\n public setActiveMobiusUrl(url: string) {\n log.info(`ActiveMobiusUrl: ${url}`, {method: 'setActiveMobiusUrl', file: REGISTRATION_FILE});\n this.activeMobiusUrl = url;\n this.callManager.updateActiveMobius(url);\n }\n\n public setMobiusServers(primaryMobiusUris: string[], backupMobiusUris: string[]) {\n this.primaryMobiusUris = primaryMobiusUris;\n this.backupMobiusUris = backupMobiusUris;\n }\n\n /**\n * Implementation of sending keepalive.\n *\n */\n private async postKeepAlive(url: string) {\n return <WebexRequestPayload>this.webex.request({\n uri: `${url}/status`,\n method: HTTP_METHODS.POST,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n }\n\n /**\n * Implementation of delete device.\n *\n */\n private async deleteRegistration(url: string, deviceId: string, deviceUrl: string) {\n let response;\n try {\n response = await fetch(`${url}${DEVICES_ENDPOINT_RESOURCE}/${deviceId}`, {\n method: HTTP_METHODS.DELETE,\n headers: {\n [CISCO_DEVICE_URL]: deviceUrl,\n Authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${WEBEX_WEB_CLIENT}_${uuid()}`,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n } catch (error) {\n log.warn(`Delete failed with Mobius`, {});\n }\n\n this.setStatus(RegistrationStatus.INACTIVE);\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n\n return <WebexRequestPayload>response?.json();\n }\n\n /**\n * Implementation of POST request for device registration.\n *\n */\n private async postRegistration(url: string) {\n const deviceInfo = {\n userId: this.userId,\n clientDeviceUri: this.webex.internal.device.url,\n serviceData: this.serviceData,\n };\n\n return <WebexRequestPayload>this.webex.request({\n uri: `${url}device`,\n method: HTTP_METHODS.POST,\n headers: {\n [CISCO_DEVICE_URL]: deviceInfo.clientDeviceUri,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: deviceInfo,\n service: ALLOWED_SERVICES.MOBIUS,\n });\n }\n\n /**\n * Re-attempts registration with the mobius url it was last registered\n * to, that mobius url is expected to be updated already in this.activeMobiusUrl.\n */\n private async restorePreviousRegistration(caller: string): Promise<boolean> {\n let abort = false;\n\n if (this.activeMobiusUrl) {\n abort = await this.attemptRegistrationWithServers(caller, [this.activeMobiusUrl]);\n }\n\n return abort;\n }\n\n /**\n * When a failback request is rejected with 429, it means the\n * request did not even land on primary mobius to know if it\n * can handle this device registration now, in such cases this\n * method is called to retry sooner than the rehoming timer value.\n */\n private async scheduleFailback429Retry() {\n if (this.failback429RetryAttempts >= REG_FAILBACK_429_MAX_RETRIES) {\n return;\n }\n this.clearFailbackTimer();\n this.failback429RetryAttempts += 1;\n log.log(`Received 429 while rehoming, 429 retry count : ${this.failback429RetryAttempts}`, {\n file: REGISTRATION_FILE,\n method: FAILBACK_429_RETRY_UTIL,\n });\n const interval = this.getRegRetryInterval(this.failback429RetryAttempts);\n\n this.startFailbackTimer(interval);\n const abort = await this.restorePreviousRegistration(FAILBACK_429_RETRY_UTIL);\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.restartRegistration(FAILBACK_429_RETRY_UTIL);\n }\n }\n\n /**\n * Calculates and returns a random interval value using input argument\n * attempt as the variable factor.\n *\n * attempted already.\n */\n private getRegRetryInterval(attempt = 1): number {\n return (\n BASE_REG_RETRY_TIMER_VAL_IN_SEC +\n BASE_REG_TIMER_MFACTOR ** attempt +\n Math.floor(\n (Math.random() * (REG_RANDOM_T_FACTOR_UPPER_LIMIT - SEC_TO_MSEC_MFACTOR + 1) +\n SEC_TO_MSEC_MFACTOR) /\n SEC_TO_MSEC_MFACTOR\n )\n );\n }\n\n /**\n * Schedules registration retry with primary mobius servers at a random\n * interval calculated based on the number of times registration retry is already done\n * Once the time taken since the beginning of retry attempt exceeds the\n * retry threshold, it switches over to backup mobius servers.\n *\n */\n private async startFailoverTimer(attempt = 1, timeElapsed = 0) {\n const loggerContext = {\n file: REGISTRATION_FILE,\n method: this.startFailoverTimer.name,\n };\n\n let interval = this.getRegRetryInterval(attempt);\n\n if (timeElapsed + interval > REG_TRY_BACKUP_TIMER_VAL_IN_SEC) {\n const excessVal = timeElapsed + interval - REG_TRY_BACKUP_TIMER_VAL_IN_SEC;\n\n interval -= excessVal;\n }\n\n let abort;\n\n if (interval > BASE_REG_RETRY_TIMER_VAL_IN_SEC) {\n const scheduledTime = Math.floor(Date.now() / 1000);\n\n setTimeout(async () => {\n await this.mutex.runExclusive(async () => {\n abort = await this.attemptRegistrationWithServers(this.startFailoverTimer.name);\n const currentTime = Math.floor(Date.now() / 1000);\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.startFailoverTimer(attempt + 1, timeElapsed + (currentTime - scheduledTime));\n }\n });\n }, interval * SEC_TO_MSEC_MFACTOR);\n log.log(\n `Scheduled retry with primary in ${interval} seconds, number of attempts : ${attempt}`,\n loggerContext\n );\n } else if (this.backupMobiusUris.length) {\n log.log('Failing over to backup servers.', loggerContext);\n abort = await this.attemptRegistrationWithServers(\n this.startFailoverTimer.name,\n this.backupMobiusUris\n );\n if (!abort && !this.isDeviceRegistered()) {\n interval = this.getRegRetryInterval();\n setTimeout(async () => {\n await this.mutex.runExclusive(async () => {\n abort = await this.attemptRegistrationWithServers(\n this.startFailoverTimer.name,\n this.backupMobiusUris\n );\n if (!abort && !this.isDeviceRegistered()) {\n emitFinalFailure((clientError: LineError) => {\n this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);\n }, loggerContext);\n }\n });\n }, interval * SEC_TO_MSEC_MFACTOR);\n log.log(`Scheduled retry with backup servers in ${interval} seconds.`, loggerContext);\n }\n } else {\n emitFinalFailure((clientError: LineError) => {\n this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);\n }, loggerContext);\n }\n }\n\n /**\n * Clears the failback timer if running.\n */\n private clearFailbackTimer() {\n if (this.failbackTimer) {\n clearTimeout(this.failbackTimer);\n this.failbackTimer = undefined;\n }\n }\n\n /**\n * Returns true if device is registered with a backup mobius.\n */\n private isFailbackRequired(): boolean {\n return this.isDeviceRegistered() && this.primaryMobiusUris.indexOf(this.activeMobiusUrl) === -1;\n }\n\n /**\n * Calculates and returns a random value between rehomingIntervalMin and\n * rehomingIntervalMax.\n */\n private getFailbackInterval(): number {\n return Math.floor(\n Math.random() * (this.rehomingIntervalMax - this.rehomingIntervalMin + 1) +\n this.rehomingIntervalMin\n );\n }\n\n /**\n * Starts failback timer to move to primary mobius if device\n * is registered with a backup mobius.\n */\n private initiateFailback() {\n if (this.isFailbackRequired()) {\n if (!this.failbackTimer) {\n this.failback429RetryAttempts = 0;\n const intervalInMinutes = this.getFailbackInterval();\n\n this.startFailbackTimer(intervalInMinutes * MINUTES_TO_SEC_MFACTOR);\n }\n } else {\n this.failback429RetryAttempts = 0;\n this.clearFailbackTimer();\n }\n }\n\n /**\n * Starts failback timer with the interval value received.\n *\n */\n private startFailbackTimer(intervalInSeconds: number) {\n this.failbackTimer = setTimeout(\n async () => this.executeFailback(),\n intervalInSeconds * SEC_TO_MSEC_MFACTOR\n );\n log.log(`Failback scheduled after ${intervalInSeconds} seconds.`, {\n file: REGISTRATION_FILE,\n method: this.startFailbackTimer.name,\n });\n }\n\n /**\n * Core logic for the failback processing, scheduled and executed\n * at failback timer expiry.\n */\n private async executeFailback() {\n await this.mutex.runExclusive(async () => {\n if (this.isFailbackRequired()) {\n if (Object.keys(this.callManager.getActiveCalls()).length === 0) {\n log.info(`Attempting failback to primary.`, {\n file: REGISTRATION_FILE,\n method: this.executeFailback.name,\n });\n await this.deregister();\n const abort = await this.attemptRegistrationWithServers(FAILBACK_UTIL);\n if (!abort && !this.isDeviceRegistered()) {\n const abortNew = await this.restorePreviousRegistration(FAILBACK_UTIL);\n\n if (abortNew) {\n this.clearFailbackTimer();\n\n return;\n }\n\n if (!this.isDeviceRegistered()) {\n await this.restartRegistration(this.executeFailback.name);\n } else {\n this.failbackTimer = undefined;\n this.initiateFailback();\n }\n }\n } else {\n log.info('Active calls present, deferring failback to next cycle.', {\n file: REGISTRATION_FILE,\n method: this.executeFailback.name,\n });\n this.failbackTimer = undefined;\n this.initiateFailback();\n }\n }\n });\n }\n\n /**\n * Updates rehomingIntervalMin and rehomingIntervalMax values\n * if received in registration response from a primary mobius\n * server.\n *\n */\n private setIntervalValues(deviceInfo: IDeviceInfo) {\n if (this.primaryMobiusUris.indexOf(this.activeMobiusUrl) !== -1) {\n this.rehomingIntervalMin = deviceInfo?.rehomingIntervalMin\n ? deviceInfo.rehomingIntervalMin\n : DEFAULT_REHOMING_INTERVAL_MIN;\n this.rehomingIntervalMax = deviceInfo?.rehomingIntervalMax\n ? deviceInfo.rehomingIntervalMax\n : DEFAULT_REHOMING_INTERVAL_MAX;\n }\n }\n\n /**\n * Retrieves information about the device as {@link IDeviceInfo}.\n *\n */\n public getDeviceInfo(): IDeviceInfo {\n return this.deviceInfo;\n }\n\n /**\n * Checks if the device is currently registered.\n *\n * by checking if isRegistered state is set to\n * ACTIVE, else false.\n */\n public isDeviceRegistered(): boolean {\n return this.registrationStatus === RegistrationStatus.ACTIVE;\n }\n\n public getStatus(): RegistrationStatus {\n return this.registrationStatus;\n }\n\n public setStatus(value: RegistrationStatus) {\n this.registrationStatus = value;\n }\n\n /**\n * Start fresh registration cycle with the mobius\n * server list already present.\n *\n */\n private async restartRegistration(caller: string) {\n /*\n * Cancel any failback timer running\n * and start fresh registration attempt with retry as true.\n */\n this.clearFailbackTimer();\n this.failback429RetryAttempts = 0;\n const abort = await this.attemptRegistrationWithServers(caller, this.primaryMobiusUris);\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.startFailoverTimer();\n }\n }\n\n /**\n * Restores the connection and attempts refreshing existing registration with server.\n * Allows retry if not restored in the first attempt.\n *\n */\n public async handleConnectionRestoration(retry: boolean): Promise<boolean> {\n await this.mutex.runExclusive(async () => {\n /* Check retry once again to see if another timer thread has not finished the job already. */\n if (retry) {\n log.info('Mercury connection is up again, re-registering with Webex Calling if needed', {\n file: REGISTRATION_FILE,\n method: this.handleConnectionRestoration.name,\n });\n this.clearKeepaliveTimer();\n if (this.isDeviceRegistered()) {\n // eslint-disable-next-line no-await-in-loop\n await this.deregister();\n }\n\n /*\n * Do not attempt registration if mobius url is not set in this.activeMobiusUrl\n * as that'd mean initial registration itself is not finished yet, let\n * failover timer handle the registration in that case.\n */\n if (this.activeMobiusUrl) {\n /*\n * When restoring connectivity, register with same url first\n * where it was registered last even if it was a backup url,\n * because failback timer may already be running to register\n * it back to primary.\n */\n const abort = await this.restorePreviousRegistration(\n this.handleConnectionRestoration.name\n );\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.restartRegistration(this.handleConnectionRestoration.name);\n }\n }\n retry = false;\n }\n });\n\n return retry;\n }\n\n /**\n * Callback function for restoring registration in case of failure during initial registration\n * due to device registration already exists.\n *\n */\n private restoreRegistrationCallBack() {\n return async (restoreData: IDeviceInfo, caller: string) => {\n const logContext = {file: REGISTRATION_FILE, method: caller};\n if (!this.isRegRetry()) {\n log.info('Registration restoration in progress.', logContext);\n const restore = this.getExistingDevice(restoreData);\n\n if (restore) {\n this.setRegRetry(true);\n await this.deregister();\n const finalError = await this.restorePreviousRegistration(caller);\n this.setRegRetry(false);\n if (this.isDeviceRegistered()) {\n log.info('Registration restored successfully.', logContext);\n }\n\n return finalError;\n }\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n } else {\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n }\n\n return false;\n };\n }\n\n /**\n * Triggers the registration with the given list of Mobius servers\n * Registration is attempted with primary and backup until it succeeds or the list is exhausted\n */\n public async triggerRegistration() {\n if (this.primaryMobiusUris.length > 0) {\n const abort = await this.attemptRegistrationWithServers(\n this.triggerRegistration.name,\n this.primaryMobiusUris\n );\n\n if (!this.isDeviceRegistered() && !abort) {\n await this.startFailoverTimer();\n }\n }\n }\n\n /**\n * Attempts registration with the server list received in\n * argument one by one until registration either succeeds with\n * one or all of them are tried.\n *\n * attempt has hit a final error and a retry should not be scheduled\n * else false.\n */\n private async attemptRegistrationWithServers(\n caller: string,\n servers: string[] = this.primaryMobiusUris\n ): Promise<boolean> {\n let abort = false;\n\n if (this.isDeviceRegistered()) {\n log.log(`[${caller}] : Device already registered with : ${this.activeMobiusUrl}`, {\n file: REGISTRATION_FILE,\n method: this.attemptRegistrationWithServers.name,\n });\n\n return abort;\n }\n for (const url of servers) {\n try {\n abort = false;\n this.registrationStatus = RegistrationStatus.INACTIVE;\n this.lineEmitter(LINE_EVENTS.CONNECTING);\n log.log(`[${caller}] : Mobius url to contact: ${url}`, {\n file: REGISTRATION_FILE,\n method: this.attemptRegistrationWithServers.name,\n });\n // eslint-disable-next-line no-await-in-loop\n const resp = await this.postRegistration(url);\n this.deviceInfo = resp.body as IDeviceInfo;\n this.registrationStatus = RegistrationStatus.ACTIVE;\n this.lineEmitter(LINE_EVENTS.REGISTERED, resp.body as IDeviceInfo);\n this.setActiveMobiusUrl(url);\n this.setIntervalValues(this.deviceInfo);\n this.metricManager.setDeviceInfo(this.deviceInfo);\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n undefined\n );\n this.startKeepaliveTimer(\n this.deviceInfo.device?.uri as string,\n this.deviceInfo.keepaliveInterval as number\n );\n this.initiateFailback();\n break;\n } catch (err: unknown) {\n const body = err as WebexRequestPayload;\n\n // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-unused-vars\n abort = await handleRegistrationErrors(\n body,\n (clientError, finalError) => {\n if (finalError) {\n this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);\n } else {\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n }\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n },\n {method: this.attemptRegistrationWithServers.name, file: REGISTRATION_FILE},\n this.restoreRegistrationCallBack()\n );\n if (this.registrationStatus === RegistrationStatus.ACTIVE) {\n log.info(\n `[${caller}] : Device is already restored, active mobius url: ${this.activeMobiusUrl}`,\n {\n file: REGISTRATION_FILE,\n method: this.attemptRegistrationWithServers.name,\n }\n );\n break;\n }\n if (abort) {\n this.setStatus(RegistrationStatus.INACTIVE);\n break;\n } else if (caller === this.executeFailback.name) {\n const error = body.statusCode;\n\n if (error === ERROR_CODE.TOO_MANY_REQUESTS) {\n // eslint-disable-next-line no-await-in-loop\n await this.scheduleFailback429Retry();\n abort = true;\n break;\n }\n }\n }\n }\n\n return abort;\n }\n\n /**\n * This method sets up a timer to periodically send keep-alive requests to maintain a connection.\n * It handles retries, error handling, and re-registration attempts based on the response, ensuring continuous connectivity with the server.\n */\n private startKeepaliveTimer(url: string, interval: number) {\n let keepAliveRetryCount = 0;\n this.clearKeepaliveTimer();\n this.keepaliveTimer = setInterval(async () => {\n const logContext = {\n file: REGISTRATION_FILE,\n method: this.startKeepaliveTimer.name,\n };\n await this.mutex.runExclusive(async () => {\n if (this.isDeviceRegistered() && keepAliveRetryCount < 5) {\n try {\n const res = await this.postKeepAlive(url);\n log.info(`Sent Keepalive, status: ${res.statusCode}`, logContext);\n if (keepAliveRetryCount > 0) {\n this.lineEmitter(LINE_EVENTS.RECONNECTED);\n }\n keepAliveRetryCount = 0;\n } catch (err: unknown) {\n keepAliveRetryCount += 1;\n const error = <WebexRequestPayload>err;\n\n log.warn(\n `Keep-alive missed ${keepAliveRetryCount} times. Status -> ${error.statusCode} `,\n logContext\n );\n\n const abort = await handleRegistrationErrors(\n error,\n (clientError, finalError) => {\n if (finalError) {\n this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);\n }\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION,\n REG_ACTION.KEEPALIVE_FAILURE,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n },\n {method: this.startKeepaliveTimer.name, file: REGISTRATION_FILE}\n );\n\n if (abort || keepAliveRetryCount >= 5) {\n this.setStatus(RegistrationStatus.INACTIVE);\n this.clearKeepaliveTimer();\n this.clearFailbackTimer();\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n\n if (!abort) {\n /* In case of non-final error, re-attempt registration */\n await this.reconnectOnFailure(this.startKeepaliveTimer.name);\n }\n } else {\n this.lineEmitter(LINE_EVENTS.RECONNECTING);\n }\n }\n }\n });\n }, interval * 1000);\n }\n\n /**\n * Clears the keepalive timer if running.\n */\n public clearKeepaliveTimer() {\n if (this.keepaliveTimer) {\n clearInterval(this.keepaliveTimer);\n this.keepaliveTimer = undefined;\n }\n }\n\n public isReconnectPending(): boolean {\n return this.reconnectPending;\n }\n\n public async deregister() {\n try {\n await this.deleteRegistration(\n this.activeMobiusUrl as string,\n this.deviceInfo.device?.deviceId as string,\n this.deviceInfo.device?.clientDeviceUri as string\n );\n } catch (err) {\n log.warn(`Delete failed with Mobius`, {});\n }\n\n this.clearKeepaliveTimer();\n this.setStatus(RegistrationStatus.INACTIVE);\n }\n\n /**\n * Indicates whether the calling client is in a mode\n * to retry registration.\n */\n private isRegRetry(): boolean {\n return this.registerRetry;\n }\n\n /**\n * Sets the received value in instance variable\n * registerRetry for registration retry cases.\n *\n */\n private setRegRetry(value: boolean) {\n this.registerRetry = value;\n }\n\n /**\n * Restores the deviceInfo object in callingClient when receiving a 403 with error code 101.\n *\n */\n private getExistingDevice(restoreData: IDeviceInfo) {\n if (restoreData.devices && restoreData.devices.length > 0) {\n this.deviceInfo = {\n userId: restoreData.userId,\n device: restoreData.devices[0],\n keepaliveInterval: DEFAULT_KEEPALIVE_INTERVAL,\n rehomingIntervalMax: DEFAULT_REHOMING_INTERVAL_MAX,\n rehomingIntervalMin: DEFAULT_REHOMING_INTERVAL_MIN,\n };\n\n const stringToReplace = `${DEVICES_ENDPOINT_RESOURCE}/${restoreData.devices[0].deviceId}`;\n\n const uri = restoreData.devices[0].uri.replace(stringToReplace, '');\n this.setActiveMobiusUrl(uri);\n this.registrationStatus = RegistrationStatus.ACTIVE;\n\n return true;\n }\n\n return false;\n }\n\n /**\n * Invoked to re-register in cases when the registration\n * is lost due to some failure.\n * If there are active calls, it will only mark reconnectPending\n * as true and then retry will happen when this method gets\n * invoked again on receiving all calls cleared event from\n * callManager.\n *\n */\n public async reconnectOnFailure(caller: string) {\n this.reconnectPending = false;\n if (!this.isDeviceRegistered()) {\n if (Object.keys(this.callManager.getActiveCalls()).length === 0) {\n const abort = await this.restorePreviousRegistration(caller);\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.restartRegistration(caller);\n }\n } else {\n this.reconnectPending = true;\n log.info('Active call(s) present, deferred reconnect till call cleanup.', {\n file: REGISTRATION_FILE,\n method: this.reconnectOnFailure.name,\n });\n }\n }\n }\n}\n\n/*\n */\nexport const createRegistration = (\n webex: WebexSDK,\n serviceData: ServiceData,\n mutex: Mutex,\n lineEmitter: LineEmitterCallback,\n logLevel: LOGGER\n): IRegistration => new Registration(webex, serviceData, mutex, lineEmitter, logLevel);\n"],"mappings":"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"}
|