@webex/calling 3.12.0-next.6 → 3.12.0-next.61

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.
Files changed (255) hide show
  1. package/dist/CallRecording/CallRecording.js +158 -0
  2. package/dist/CallRecording/CallRecording.js.map +1 -0
  3. package/dist/CallRecording/CallRecording.test.js +257 -0
  4. package/dist/CallRecording/CallRecording.test.js.map +1 -0
  5. package/dist/CallRecording/WxcCallRecordingConnector.js +576 -0
  6. package/dist/CallRecording/WxcCallRecordingConnector.js.map +1 -0
  7. package/dist/CallRecording/WxcCallRecordingConnector.test.js +651 -0
  8. package/dist/CallRecording/WxcCallRecordingConnector.test.js.map +1 -0
  9. package/dist/CallRecording/callRecordingFixtures.js +235 -0
  10. package/dist/CallRecording/callRecordingFixtures.js.map +1 -0
  11. package/dist/CallRecording/constants.js +49 -0
  12. package/dist/CallRecording/constants.js.map +1 -0
  13. package/dist/CallRecording/types.js +136 -0
  14. package/dist/CallRecording/types.js.map +1 -0
  15. package/dist/CallRecording/utils.js +42 -0
  16. package/dist/CallRecording/utils.js.map +1 -0
  17. package/dist/CallRecording/utils.test.js +97 -0
  18. package/dist/CallRecording/utils.test.js.map +1 -0
  19. package/dist/CallingClient/CallingClient.js +454 -224
  20. package/dist/CallingClient/CallingClient.js.map +1 -1
  21. package/dist/CallingClient/CallingClient.test.js +513 -154
  22. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  23. package/dist/CallingClient/calling/call.js +589 -445
  24. package/dist/CallingClient/calling/call.js.map +1 -1
  25. package/dist/CallingClient/calling/call.test.js +695 -445
  26. package/dist/CallingClient/calling/call.test.js.map +1 -1
  27. package/dist/CallingClient/calling/callManager.js +81 -31
  28. package/dist/CallingClient/calling/callManager.js.map +1 -1
  29. package/dist/CallingClient/calling/callManager.test.js +123 -0
  30. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  31. package/dist/CallingClient/calling/types.js +2 -0
  32. package/dist/CallingClient/calling/types.js.map +1 -1
  33. package/dist/CallingClient/constants.js +28 -3
  34. package/dist/CallingClient/constants.js.map +1 -1
  35. package/dist/CallingClient/line/index.js +4 -1
  36. package/dist/CallingClient/line/index.js.map +1 -1
  37. package/dist/CallingClient/line/line.test.js +16 -1
  38. package/dist/CallingClient/line/line.test.js.map +1 -1
  39. package/dist/CallingClient/registration/register.js +724 -407
  40. package/dist/CallingClient/registration/register.js.map +1 -1
  41. package/dist/CallingClient/registration/register.test.js +380 -58
  42. package/dist/CallingClient/registration/register.test.js.map +1 -1
  43. package/dist/CallingClient/registration/types.js.map +1 -1
  44. package/dist/CallingClient/registration/webWorker.js +41 -104
  45. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  46. package/dist/CallingClient/registration/webWorker.test.js +39 -153
  47. package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
  48. package/dist/CallingClient/registration/webWorkerStr.js +1 -1
  49. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
  50. package/dist/CallingClient/types.js.map +1 -1
  51. package/dist/CallingClient/utils/constants.js +58 -0
  52. package/dist/CallingClient/utils/constants.js.map +1 -0
  53. package/dist/CallingClient/utils/index.js +63 -0
  54. package/dist/CallingClient/utils/index.js.map +1 -0
  55. package/dist/CallingClient/utils/mobiusSocketMapper.js +122 -0
  56. package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -0
  57. package/dist/CallingClient/utils/mobiusSocketMapper.test.js +221 -0
  58. package/dist/CallingClient/utils/mobiusSocketMapper.test.js.map +1 -0
  59. package/dist/CallingClient/utils/request.js +435 -0
  60. package/dist/CallingClient/utils/request.js.map +1 -0
  61. package/dist/CallingClient/utils/request.test.js +999 -0
  62. package/dist/CallingClient/utils/request.test.js.map +1 -0
  63. package/dist/CallingClient/utils/types.js +7 -0
  64. package/dist/CallingClient/utils/types.js.map +1 -0
  65. package/dist/CallingClient/utils/wsFeatureFlag.js +70 -0
  66. package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -0
  67. package/dist/CallingClient/utils/wsFeatureFlag.test.js +139 -0
  68. package/dist/CallingClient/utils/wsFeatureFlag.test.js.map +1 -0
  69. package/dist/Contacts/ContactsClient.js +13 -11
  70. package/dist/Contacts/ContactsClient.js.map +1 -1
  71. package/dist/Contacts/ContactsClient.test.js +3 -8
  72. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  73. package/dist/Events/types.js +38 -11
  74. package/dist/Events/types.js.map +1 -1
  75. package/dist/Metrics/index.js +63 -2
  76. package/dist/Metrics/index.js.map +1 -1
  77. package/dist/Metrics/index.test.js +357 -1
  78. package/dist/Metrics/index.test.js.map +1 -1
  79. package/dist/Metrics/types.js +19 -1
  80. package/dist/Metrics/types.js.map +1 -1
  81. package/dist/SDKConnector/types.js.map +1 -1
  82. package/dist/api.js +56 -0
  83. package/dist/api.js.map +1 -1
  84. package/dist/common/Utils.js +156 -51
  85. package/dist/common/Utils.js.map +1 -1
  86. package/dist/common/Utils.test.js +79 -0
  87. package/dist/common/Utils.test.js.map +1 -1
  88. package/dist/common/testUtil.js +10 -5
  89. package/dist/common/testUtil.js.map +1 -1
  90. package/dist/common/types.js +3 -0
  91. package/dist/common/types.js.map +1 -1
  92. package/dist/index.js +165 -40
  93. package/dist/index.js.map +1 -1
  94. package/dist/mobius-socket/config.js +24 -0
  95. package/dist/mobius-socket/config.js.map +1 -0
  96. package/dist/mobius-socket/errors.js +143 -0
  97. package/dist/mobius-socket/errors.js.map +1 -0
  98. package/dist/mobius-socket/errors.test.js +20 -0
  99. package/dist/mobius-socket/errors.test.js.map +1 -0
  100. package/dist/mobius-socket/index.js +57 -0
  101. package/dist/mobius-socket/index.js.map +1 -0
  102. package/dist/mobius-socket/mobius-socket-events.test.js +492 -0
  103. package/dist/mobius-socket/mobius-socket-events.test.js.map +1 -0
  104. package/dist/mobius-socket/mobius-socket.js +849 -0
  105. package/dist/mobius-socket/mobius-socket.js.map +1 -0
  106. package/dist/mobius-socket/mobius-socket.test.js +1898 -0
  107. package/dist/mobius-socket/mobius-socket.test.js.map +1 -0
  108. package/dist/mobius-socket/socket/constants.js +55 -0
  109. package/dist/mobius-socket/socket/constants.js.map +1 -0
  110. package/dist/mobius-socket/socket/index.js +15 -0
  111. package/dist/mobius-socket/socket/index.js.map +1 -0
  112. package/dist/mobius-socket/socket/socket-base.js +604 -0
  113. package/dist/mobius-socket/socket/socket-base.js.map +1 -0
  114. package/dist/mobius-socket/socket/socket.js +19 -0
  115. package/dist/mobius-socket/socket/socket.js.map +1 -0
  116. package/dist/mobius-socket/socket/socket.shim.js +26 -0
  117. package/dist/mobius-socket/socket/socket.shim.js.map +1 -0
  118. package/dist/mobius-socket/socket/types.js +7 -0
  119. package/dist/mobius-socket/socket/types.js.map +1 -0
  120. package/dist/mobius-socket/socket.test.js +727 -0
  121. package/dist/mobius-socket/socket.test.js.map +1 -0
  122. package/dist/mobius-socket/test/mocha-helpers.js +23 -0
  123. package/dist/mobius-socket/test/mocha-helpers.js.map +1 -0
  124. package/dist/mobius-socket/test/promise-tick.js +28 -0
  125. package/dist/mobius-socket/test/promise-tick.js.map +1 -0
  126. package/dist/mobius-socket/types.js +7 -0
  127. package/dist/mobius-socket/types.js.map +1 -0
  128. package/dist/module/CallRecording/CallRecording.js +56 -0
  129. package/dist/module/CallRecording/WxcCallRecordingConnector.js +264 -0
  130. package/dist/module/CallRecording/callRecordingFixtures.js +201 -0
  131. package/dist/module/CallRecording/constants.js +27 -0
  132. package/dist/module/CallRecording/types.js +19 -0
  133. package/dist/module/CallRecording/utils.js +14 -0
  134. package/dist/module/CallingClient/CallingClient.js +126 -10
  135. package/dist/module/CallingClient/calling/call.js +177 -61
  136. package/dist/module/CallingClient/calling/callManager.js +39 -7
  137. package/dist/module/CallingClient/calling/types.js +2 -0
  138. package/dist/module/CallingClient/constants.js +24 -0
  139. package/dist/module/CallingClient/line/index.js +2 -2
  140. package/dist/module/CallingClient/registration/register.js +239 -63
  141. package/dist/module/CallingClient/registration/webWorker.js +42 -61
  142. package/dist/module/CallingClient/registration/webWorkerStr.js +47 -82
  143. package/dist/module/CallingClient/utils/constants.js +36 -0
  144. package/dist/module/CallingClient/utils/index.js +5 -0
  145. package/dist/module/CallingClient/utils/mobiusSocketMapper.js +72 -0
  146. package/dist/module/CallingClient/utils/request.js +211 -0
  147. package/dist/module/CallingClient/utils/types.js +1 -0
  148. package/dist/module/CallingClient/utils/wsFeatureFlag.js +41 -0
  149. package/dist/module/Contacts/ContactsClient.js +1 -1
  150. package/dist/module/Events/types.js +23 -10
  151. package/dist/module/Metrics/index.js +48 -1
  152. package/dist/module/Metrics/types.js +18 -0
  153. package/dist/module/api.js +3 -2
  154. package/dist/module/common/Utils.js +60 -17
  155. package/dist/module/common/testUtil.js +6 -1
  156. package/dist/module/common/types.js +3 -0
  157. package/dist/module/index.js +7 -3
  158. package/dist/module/mobius-socket/config.js +15 -0
  159. package/dist/module/mobius-socket/errors.js +58 -0
  160. package/dist/module/mobius-socket/index.js +24 -0
  161. package/dist/module/mobius-socket/mobius-socket.js +593 -0
  162. package/dist/module/mobius-socket/socket/constants.js +26 -0
  163. package/dist/module/mobius-socket/socket/index.js +4 -0
  164. package/dist/module/mobius-socket/socket/socket-base.js +368 -0
  165. package/dist/module/mobius-socket/socket/socket.js +9 -0
  166. package/dist/module/mobius-socket/socket/socket.shim.js +12 -0
  167. package/dist/module/mobius-socket/socket/types.js +1 -0
  168. package/dist/module/mobius-socket/types.js +1 -0
  169. package/dist/types/CallRecording/CallRecording.d.ts +18 -0
  170. package/dist/types/CallRecording/CallRecording.d.ts.map +1 -0
  171. package/dist/types/CallRecording/WxcCallRecordingConnector.d.ts +23 -0
  172. package/dist/types/CallRecording/WxcCallRecordingConnector.d.ts.map +1 -0
  173. package/dist/types/CallRecording/callRecordingFixtures.d.ts +61 -0
  174. package/dist/types/CallRecording/callRecordingFixtures.d.ts.map +1 -0
  175. package/dist/types/CallRecording/constants.d.ts +28 -0
  176. package/dist/types/CallRecording/constants.d.ts.map +1 -0
  177. package/dist/types/CallRecording/types.d.ts +176 -0
  178. package/dist/types/CallRecording/types.d.ts.map +1 -0
  179. package/dist/types/CallRecording/utils.d.ts +3 -0
  180. package/dist/types/CallRecording/utils.d.ts.map +1 -0
  181. package/dist/types/CallingClient/CallingClient.d.ts +8 -0
  182. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  183. package/dist/types/CallingClient/calling/call.d.ts +12 -0
  184. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  185. package/dist/types/CallingClient/calling/callManager.d.ts +4 -2
  186. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  187. package/dist/types/CallingClient/calling/types.d.ts +34 -9
  188. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  189. package/dist/types/CallingClient/constants.d.ts +24 -0
  190. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  191. package/dist/types/CallingClient/line/index.d.ts +1 -1
  192. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  193. package/dist/types/CallingClient/registration/register.d.ts +7 -1
  194. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  195. package/dist/types/CallingClient/registration/types.d.ts +4 -2
  196. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  197. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
  198. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  199. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  200. package/dist/types/CallingClient/types.d.ts +1 -0
  201. package/dist/types/CallingClient/types.d.ts.map +1 -1
  202. package/dist/types/CallingClient/utils/constants.d.ts +35 -0
  203. package/dist/types/CallingClient/utils/constants.d.ts.map +1 -0
  204. package/dist/types/CallingClient/utils/index.d.ts +6 -0
  205. package/dist/types/CallingClient/utils/index.d.ts.map +1 -0
  206. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts +5 -0
  207. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -0
  208. package/dist/types/CallingClient/utils/request.d.ts +28 -0
  209. package/dist/types/CallingClient/utils/request.d.ts.map +1 -0
  210. package/dist/types/CallingClient/utils/types.d.ts +34 -0
  211. package/dist/types/CallingClient/utils/types.d.ts.map +1 -0
  212. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts +4 -0
  213. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -0
  214. package/dist/types/Events/types.d.ts +79 -15
  215. package/dist/types/Events/types.d.ts.map +1 -1
  216. package/dist/types/Metrics/index.d.ts.map +1 -1
  217. package/dist/types/Metrics/types.d.ts +19 -2
  218. package/dist/types/Metrics/types.d.ts.map +1 -1
  219. package/dist/types/SDKConnector/types.d.ts +39 -12
  220. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  221. package/dist/types/api.d.ts +6 -4
  222. package/dist/types/api.d.ts.map +1 -1
  223. package/dist/types/common/Utils.d.ts +11 -3
  224. package/dist/types/common/Utils.d.ts.map +1 -1
  225. package/dist/types/common/testUtil.d.ts +5 -1
  226. package/dist/types/common/testUtil.d.ts.map +1 -1
  227. package/dist/types/common/types.d.ts +5 -1
  228. package/dist/types/common/types.d.ts.map +1 -1
  229. package/dist/types/index.d.ts +8 -3
  230. package/dist/types/index.d.ts.map +1 -1
  231. package/dist/types/mobius-socket/config.d.ts +17 -0
  232. package/dist/types/mobius-socket/config.d.ts.map +1 -0
  233. package/dist/types/mobius-socket/errors.d.ts +32 -0
  234. package/dist/types/mobius-socket/errors.d.ts.map +1 -0
  235. package/dist/types/mobius-socket/index.d.ts +14 -0
  236. package/dist/types/mobius-socket/index.d.ts.map +1 -0
  237. package/dist/types/mobius-socket/mobius-socket.d.ts +48 -0
  238. package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -0
  239. package/dist/types/mobius-socket/socket/constants.d.ts +27 -0
  240. package/dist/types/mobius-socket/socket/constants.d.ts.map +1 -0
  241. package/dist/types/mobius-socket/socket/index.d.ts +5 -0
  242. package/dist/types/mobius-socket/socket/index.d.ts.map +1 -0
  243. package/dist/types/mobius-socket/socket/socket-base.d.ts +43 -0
  244. package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -0
  245. package/dist/types/mobius-socket/socket/socket.d.ts +6 -0
  246. package/dist/types/mobius-socket/socket/socket.d.ts.map +1 -0
  247. package/dist/types/mobius-socket/socket/socket.shim.d.ts +6 -0
  248. package/dist/types/mobius-socket/socket/socket.shim.d.ts.map +1 -0
  249. package/dist/types/mobius-socket/socket/types.d.ts +61 -0
  250. package/dist/types/mobius-socket/socket/types.d.ts.map +1 -0
  251. package/dist/types/mobius-socket/types.d.ts +21 -0
  252. package/dist/types/mobius-socket/types.d.ts.map +1 -0
  253. package/package.json +20 -5
  254. package/src/mobius-socket/socket/socket.shim.ts +22 -0
  255. package/src/mobius-socket/socket/socket.ts +14 -0
@@ -1 +1 @@
1
- {"version":3,"names":["Media","_interopRequireWildcard","require","_asyncMutex","_constants","_Utils","_types","_SDKConnector","_interopRequireDefault","_impl","_types2","_types3","_Logger","_callManager","_constants2","_line","_types4","_Metrics","_windowsChromiumIceWarmupUtils","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t9","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","_createForOfIteratorHelper","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","_n","F","s","done","value","TypeError","a","u","next","return","_arrayLikeToArray","toString","slice","constructor","name","_Array$from","test","Array","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","apply","Boolean","prototype","valueOf","CallingClient","exports","_Eventing","webex","config","_this$sdkConfig","_this$sdkConfig$servi","_this$sdkConfig2","_this$sdkConfig2$logg","_this","_classCallCheck2","_defineProperty2","_asyncToGenerator2","_regenerator","mark","_callee","line","wrap","_context","prev","networkDownTimestamp","Date","toISOString","checkNetworkReachability","isNetworkDown","sent","log","warn","file","CALLING_CLIENT_FILE","method","METHODS","NETWORK_OFFLINE","_values","lineDict","registration","clearKeepaliveTimer","stop","info","METHOD_START_MESSAGE","NETWORK_ONLINE","networkUpTimestamp","MERCURY_OFFLINE","mercuryDownTimestamp","metricManager","submitConnectionMetrics","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","mercuryUpTimestamp","_callee3","callCheckInterval","_context3","MERCURY_ONLINE","setInterval","_callee2","_context2","_keys","callManager","getActiveCalls","clearInterval","getStatus","RegistrationStatus","IDLE","handleConnectionRestoration","NETWORK_FLAP_TIMEOUT","checkCallStatus","NETWORK_FLAP","MERCURY_UP","_callee5","_context5","CALLS_CLEARED_HANDLER","isDeviceRegistered","mutex","runExclusive","_callee4","_context4","isReconnectPending","CALLS_CLEARED_HANDLER_UTIL","reconnectOnFailure","sdkConnector","SDKConnector","getWebex","_config$logger","setWebex","logger","level","setWebexLogger","Mutex","sdkConfig","serviceData","indicator","ServiceIndicator","CALLING","domain","logLevel","LOGGER","ERROR","setLogger","validateServiceData","getCallManager","getMetricManager","mediaEngine","adaptedLogger","_len","arguments","args","_key","join","error","_len2","_key2","_len3","_key3","_len4","_key4","trace","_len5","_key5","debug","_len6","_key6","primaryMobiusUris","backupMobiusUris","mobiusClusters","internal","services","getMobiusClusters","mobiusHost","registerSessionsListener","registerCallsClearedListener","_inherits2","_createClass2","key","_init","_callee6","_window","_window$navigator","ua","_t","_context6","window","navigator","userAgent","toLowerCase","includes","windowsChromiumIceWarmup","iceServers","timeoutMs","concat","getMobiusServers","createLine","setupNetworkEventListeners","init","_checkNetworkReachability","_callee7","controller","timeoutId","_t2","_context7","AbortController","setTimeout","abort","fetch","cache","mode","signal","clearTimeout","abrupt","_checkCallStatus","_callee8","loggerContext","calls","_iterator","_step","_loop","_t3","_context9","_context8","postStatus","then","catch","err","sendCallStateMachineEvt","type","delegateYield","finish","_this2","addEventListener","handleNetworkOnline","handleNetworkOffline","mercury","on","handleMercuryOffline","handleMercuryOnline","_getClientRegionInfo","_callee9","_this3","regionInfo","_response$headers","_response$headers$tra","_response$headers2","response","clientRegionInfo","_t4","_context0","GET_CLIENT_REGION_INFO","request","uri","DISCOVERY_URL","HTTP_METHODS","GET","addAuthHeader","headers","SPARK_USER_AGENT","body","clientRegion","countryCode","trackingid","submitRegionInfoMetric","MOBIUS_DISCOVERY","MOBIUS_SERVER_ACTION","REGION_INFO","_stringify","handleCallingClientErrors","clientError","_headers$trackingId","_headers2","submitRegistrationMetric","REGISTRATION_ERROR","REG_ACTION","REGISTER","GET_MOBIUS_SERVERS_UTIL","trackingId","undefined","emit","CALLING_CLIENT_EVENT_KEYS","uploadLogs","getClientRegionInfo","_getMobiusServers","_callee0","_this$sdkConfig3","_this$sdkConfig3$disc","_this$sdkConfig4","_this$sdkConfig4$disc","_this4","useDefault","_this$sdkConfig5","_this$sdkConfig5$disc","_this$sdkConfig6","_this$sdkConfig6$disc","_this$webex$internal$","_iterator2","_step2","_loop2","_ret","_t6","_context10","GET_MOBIUS_SERVERS","discovery","country","region","_serviceUrls","mobius","_activeServices","_response$headers3","_response$headers$tra2","_response$headers4","mobiusServers","mobiusUris","_t5","_context1","host","API_V1","URL_ENDPOINT","CISCO_DEVICE_URL","device","url","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","submitMobiusServersMetric","MOBIUS_SERVERS","filterMobiusUris","primary","backup","_headers$trackingId2","_headers4","t0","REGISTER_CALLS_CLEARED_LISTENER","ALL_CALLS_CLEARED","callsClearedHandler","getLoggingLevel","getLogLevel","getSDKConnector","_this5","REGISTER_SESSIONS_LISTENER","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","_ref6","_callee1","event","sessionArr","_context11","data","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x","_createLine","_callee10","_this$sdkConfig7","_this$sdkConfig8","_context12","CREATE_LINE","Line","userId","jwe","lineId","getLines","_getDevices","_callee11","userid","mobiusUrls","finalError","_iterator3","_step3","mobiusUrl","normalizedMobiusUrl","_body$devices","_t7","_t8","_context13","Error","GET_DEVICES","_toConsumableArray2","replace","DEVICES_ENDPOINT_RESOURCE","encodeURIComponent","statusCode","setDeviceInfo","setActiveMobiusUrl","devices","getDevices","_x2","activeCalls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","_uploadLogs2","_callee12","result","_context14","Eventing","createClient","_ref7","_callee13","callingClientInstance","_context15","_x3","_x4"],"sources":["CallingClient.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport * as Media from '@webex/internal-media-core';\nimport {Mutex} from 'async-mutex';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport {\n filterMobiusUris,\n handleCallingClientErrors,\n uploadLogs,\n validateServiceData,\n} from '../common/Utils';\nimport {LOGGER} from '../Logger/types';\nimport SDKConnector from '../SDKConnector';\nimport {ClientRegionInfo, ISDKConnector, ServiceHost, WebexSDK} from '../SDKConnector/types';\nimport {Eventing} from '../Events/impl';\nimport {\n CallingClientEventTypes,\n MOBIUS_EVENT_KEYS,\n CallSessionEvent,\n SessionType,\n CALLING_CLIENT_EVENT_KEYS,\n} from '../Events/types';\nimport {\n ServiceIndicator,\n RegionInfo,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n MobiusServers,\n WebexRequestPayload,\n RegistrationStatus,\n UploadLogsResponse,\n DeviceType,\n Devices,\n} from '../common/types';\nimport {ICallingClient, CallingClientConfig} from './types';\nimport {ICall, ICallManager} from './calling/types';\nimport log from '../Logger';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n CALLS_CLEARED_HANDLER_UTIL,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n DISCOVERY_URL,\n GET_MOBIUS_SERVERS_UTIL,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n API_V1,\n METHODS,\n NETWORK_FLAP_TIMEOUT,\n DEVICES_ENDPOINT_RESOURCE,\n} from './constants';\nimport Line from './line';\nimport {ILine} from './line/types';\nimport {\n METRIC_EVENT,\n REG_ACTION,\n METRIC_TYPE,\n IMetricManager,\n CONNECTION_ACTION,\n MOBIUS_SERVER_ACTION,\n} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\n\n/**\n * The `CallingClient` module provides a set of APIs for line registration and calling functionalities within the SDK.\n *\n * The following code snippet demonstrates how to create an instance of `CallingClient` using a `webex` instance and `callingConfig`:\n *\n * @example\n * ```javascript\n * const callingClient = createClient(webex, callingConfig);\n * ```\n */\n\nexport class CallingClient extends Eventing<CallingClientEventTypes> implements ICallingClient {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private mutex: Mutex;\n\n private callManager: ICallManager;\n\n private metricManager: IMetricManager;\n\n private sdkConfig?: CallingClientConfig;\n\n private primaryMobiusUris: string[];\n\n private backupMobiusUris: string[];\n\n private mobiusClusters: ServiceHost[];\n\n private mobiusHost: string;\n\n public mediaEngine: typeof Media;\n\n private lineDict: Record<string, ILine> = {};\n\n private isNetworkDown = false;\n\n private networkDownTimestamp = '';\n\n private networkUpTimestamp = '';\n\n private mercuryDownTimestamp = '';\n\n private mercuryUpTimestamp = '';\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, config?: CallingClientConfig) {\n super();\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n if (config?.logger?.level && webex.logger.config) {\n webex.logger.config.level = config.logger.level; // override the webex logger level\n }\n log.setWebexLogger(webex.logger);\n }\n this.mutex = new Mutex();\n this.webex = this.sdkConnector.getWebex();\n\n this.sdkConfig = config;\n const serviceData = this.sdkConfig?.serviceData?.indicator\n ? this.sdkConfig.serviceData\n : {indicator: ServiceIndicator.CALLING, domain: ''};\n\n const logLevel = this.sdkConfig?.logger?.level ? this.sdkConfig.logger.level : LOGGER.ERROR;\n log.setLogger(logLevel, CALLING_CLIENT_FILE);\n validateServiceData(serviceData);\n\n this.callManager = getCallManager(this.webex, serviceData.indicator);\n this.metricManager = getMetricManager(this.webex, serviceData.indicator);\n\n this.mediaEngine = Media;\n\n const adaptedLogger: Media.Logger = {\n log: (...args) => webex.logger.log(args.join(' : ')),\n error: (...args) => webex.logger.error(args.join(' : ')),\n warn: (...args) => webex.logger.warn(args.join(' : ')),\n info: (...args) => webex.logger.info(args.join(' : ')),\n trace: (...args) => webex.logger.trace(args.join(' : ')),\n debug: (...args) => webex.logger.debug(args.join(' : ')),\n };\n\n this.mediaEngine.setLogger(adaptedLogger);\n\n this.primaryMobiusUris = [];\n this.backupMobiusUris = [];\n this.mobiusClusters = this.webex.internal.services.getMobiusClusters();\n this.mobiusHost = '';\n\n this.registerSessionsListener();\n\n this.registerCallsClearedListener();\n }\n\n /**\n * Initializes the `CallingClient` by performing the following steps:\n *\n * 1. Retrieves list of servers.\n * 2. Creates a line.\n * 3. Sets up network change detection.\n *\n * This method should be called once to initialize the `callingClient`.\n *\n * @returns A promise that resolves when the initialization is complete.\n * @ignore\n */\n public async init() {\n // Only for Windows Chromium based browsers we need to do the ICE warmup\n if (typeof window !== 'undefined' && window?.navigator?.userAgent) {\n const ua = window.navigator.userAgent;\n if (ua.toLowerCase().includes('windows')) {\n log.info('Starting ICE warmup for Windows Chromium based browser', {\n file: CALLING_CLIENT_FILE,\n method: 'init',\n });\n try {\n await windowsChromiumIceWarmup({\n iceServers: [],\n timeoutMs: 1000,\n });\n log.info(`ICE warmup completed`, {\n file: CALLING_CLIENT_FILE,\n method: 'init',\n });\n } catch (err) {\n log.warn(`ICE warmup failed: ${err}`, {\n file: CALLING_CLIENT_FILE,\n method: 'init',\n });\n }\n }\n }\n\n await this.getMobiusServers();\n await this.createLine();\n\n this.setupNetworkEventListeners();\n }\n\n /**\n * Ping a reliable external endpoint with a short timeout to infer connectivity.\n */\n private async checkNetworkReachability(): Promise<boolean> {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 3000);\n\n // Using a common connectivity check endpoint that returns 204 with minimal payload.\n // no-cors mode yields an opaque response but a successful fetch implies reachability.\n await fetch('https://www.google.com/generate_204', {\n method: 'GET',\n cache: 'no-cache',\n mode: 'no-cors',\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n return true;\n } catch (error) {\n log.warn(`Network connectivity probe failed: ${error}`, {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n });\n\n return false;\n }\n }\n\n private async checkCallStatus() {\n const loggerContext = {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n };\n const calls = Object.values(this.callManager.getActiveCalls());\n for (const call of calls) {\n call\n .postStatus()\n .then(() => {\n log.info(`Call is active`, loggerContext);\n /*\n * Media Renegotiation Possibility if call keepalive succeeds,\n * for cases like WebRTC disconnect and media inactivity.\n */\n })\n .catch((err) => {\n log.warn(`Call Keepalive failed: ${err}`, loggerContext);\n\n call.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n });\n }\n }\n\n private handleNetworkOffline = async () => {\n this.networkDownTimestamp = new Date().toISOString();\n this.isNetworkDown = !(await this.checkNetworkReachability());\n log.warn(`Network has gone down, wait for it to come back up`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.NETWORK_OFFLINE,\n });\n\n if (this.isNetworkDown) {\n const line = Object.values(this.lineDict)[0];\n line.registration.clearKeepaliveTimer();\n }\n };\n\n // Wondering if we should keep this for timestamp recording purpose\n private handleNetworkOnline = () => {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.NETWORK_ONLINE,\n });\n this.networkUpTimestamp = new Date().toISOString();\n };\n\n private handleMercuryOffline = () => {\n log.warn(`Mercury down, waiting for connection to be up`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.MERCURY_OFFLINE,\n });\n this.mercuryDownTimestamp = new Date().toISOString();\n this.metricManager.submitConnectionMetrics(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n this.mercuryDownTimestamp,\n this.mercuryUpTimestamp\n );\n };\n\n private handleMercuryOnline = async () => {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.MERCURY_ONLINE,\n });\n this.mercuryUpTimestamp = new Date().toISOString();\n if (this.isNetworkDown) {\n const callCheckInterval = setInterval(async () => {\n if (!Object.keys(this.callManager.getActiveCalls()).length) {\n clearInterval(callCheckInterval);\n const line = Object.values(this.lineDict)[0];\n\n if (line.getStatus() !== RegistrationStatus.IDLE) {\n this.isNetworkDown = await line.registration.handleConnectionRestoration(\n this.isNetworkDown\n );\n } else {\n this.isNetworkDown = false;\n }\n }\n }, NETWORK_FLAP_TIMEOUT);\n\n if (Object.keys(this.callManager.getActiveCalls()).length) {\n await this.checkCallStatus();\n }\n\n this.metricManager.submitConnectionMetrics(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n this.networkDownTimestamp,\n this.networkUpTimestamp\n );\n } else {\n if (Object.keys(this.callManager.getActiveCalls()).length) {\n await this.checkCallStatus();\n }\n this.metricManager.submitConnectionMetrics(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n this.mercuryDownTimestamp,\n this.mercuryUpTimestamp\n );\n }\n };\n\n private setupNetworkEventListeners(): void {\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('online', this.handleNetworkOnline);\n\n window.addEventListener('offline', this.handleNetworkOffline);\n }\n\n this.webex.internal.mercury.on('offline', () => {\n this.handleMercuryOffline();\n });\n\n this.webex.internal.mercury.on('online', () => {\n this.handleMercuryOnline();\n });\n }\n\n /**\n * Fetches countryCode and region of the client.\n */\n private async getClientRegionInfo(): Promise<RegionInfo> {\n let abort;\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_CLIENT_REGION_INFO,\n });\n const regionInfo = {} as RegionInfo;\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${DISCOVERY_URL}`,\n method: HTTP_METHODS.GET,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n const clientRegionInfo = response.body as ClientRegionInfo;\n\n regionInfo.clientRegion = clientRegionInfo?.clientRegion || '';\n\n regionInfo.countryCode = clientRegionInfo?.countryCode || '';\n\n log.log(\n `Successfully fetched Client region info: ${regionInfo.clientRegion}, countryCode: ${regionInfo.countryCode}, and response trackingid: ${response?.headers?.trackingid}`,\n {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_CLIENT_REGION_INFO,\n }\n );\n\n this.metricManager.submitRegionInfoMetric(\n METRIC_EVENT.MOBIUS_DISCOVERY,\n MOBIUS_SERVER_ACTION.REGION_INFO,\n METRIC_TYPE.BEHAVIORAL,\n this.mobiusHost,\n clientRegionInfo.clientRegion,\n clientRegionInfo.countryCode,\n response?.headers?.trackingid ?? ''\n );\n } catch (err: unknown) {\n log.error(`Failed to get client region info: ${JSON.stringify(err)}`, {\n method: METHODS.GET_CLIENT_REGION_INFO,\n file: CALLING_CLIENT_FILE,\n });\n\n // eslint-disable-next-line no-await-in-loop\n abort = await handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n GET_MOBIUS_SERVERS_UTIL,\n 'UNKNOWN',\n (err as WebexRequestPayload).headers?.trackingId ?? '',\n undefined,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n\n regionInfo.clientRegion = '';\n regionInfo.countryCode = '';\n\n if (abort) {\n await uploadLogs();\n\n return regionInfo;\n }\n }\n\n return regionInfo;\n }\n\n /**\n * Local method for finding the mobius servers.\n */\n private async getMobiusServers() {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_MOBIUS_SERVERS,\n });\n /* Following operations are performed in a synchronous way ->\n\n 1. Get RegionInfo\n 2. Get Mobius Server with that RegionInfo\n 3. Check whether Mobius server was found without any error\n 4. If there is error , we don't need to send registration\n 5. Otherwise send registration\n */\n\n let useDefault = false;\n\n let clientRegion: string;\n let countryCode: string;\n\n if (this.sdkConfig?.discovery?.country && this.sdkConfig?.discovery?.region) {\n log.log('Updating region and country from the SDK config', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n clientRegion = this.sdkConfig?.discovery?.region;\n countryCode = this.sdkConfig?.discovery?.country;\n this.mobiusHost =\n this.webex.internal.services._serviceUrls?.mobius ||\n this.webex.internal.services.get(this.webex.internal.services._activeServices.mobius);\n } else {\n log.log('Updating region and country through Region discovery', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n\n const regionInfo = await this.getClientRegionInfo();\n\n clientRegion = regionInfo.clientRegion;\n countryCode = regionInfo.countryCode;\n }\n\n if (clientRegion && countryCode) {\n log.log(\n `Found Region: ${clientRegion} and country: ${countryCode}, going to fetch Mobius server`,\n {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n\n for (const mobius of this.mobiusClusters) {\n if (mobius.host) {\n this.mobiusHost = `https://${mobius.host}${API_V1}`;\n } else {\n this.mobiusHost = mobius as unknown as string;\n }\n try {\n // eslint-disable-next-line no-await-in-loop\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${this.mobiusHost}${URL_ENDPOINT}?regionCode=${clientRegion}&countryCode=${countryCode}`,\n method: HTTP_METHODS.GET,\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 log.log(\n `Mobius Server found for the region. Response trackingId: ${response?.headers?.trackingid}`,\n {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n\n const mobiusServers = response.body as MobiusServers;\n\n // Metrics for mobius servers\n this.metricManager.submitMobiusServersMetric(\n METRIC_EVENT.MOBIUS_DISCOVERY,\n MOBIUS_SERVER_ACTION.MOBIUS_SERVERS,\n METRIC_TYPE.BEHAVIORAL,\n mobiusServers,\n response?.headers?.trackingid ?? ''\n );\n\n /* update arrays of Mobius Uris. */\n const mobiusUris = filterMobiusUris(mobiusServers, this.mobiusHost);\n this.primaryMobiusUris = mobiusUris.primary;\n this.backupMobiusUris = mobiusUris.backup;\n\n log.log(\n `Final list of Mobius Servers, primary: ${mobiusUris.primary} and backup: ${mobiusUris.backup}`,\n {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n\n break;\n } catch (err: unknown) {\n log.error(`Failed to get Mobius servers: ${JSON.stringify(err)}`, {\n method: METHODS.GET_MOBIUS_SERVERS,\n file: CALLING_CLIENT_FILE,\n });\n\n // eslint-disable-next-line no-await-in-loop\n const abort = await handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n GET_MOBIUS_SERVERS_UTIL,\n 'UNKNOWN',\n (err as WebexRequestPayload).headers?.trackingId ?? '',\n undefined,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n\n if (abort) {\n useDefault = true;\n // eslint-disable-next-line no-await-in-loop\n await uploadLogs();\n break;\n }\n }\n }\n } else {\n /* Setting this to true because region info is possibly undefined */\n useDefault = true;\n }\n\n /* Use a default URL if Mobius discovery fails either because of region info failure\n * or because the discovered Mobius couldn't be reached\n */\n\n if (useDefault) {\n log.warn(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n this.mobiusHost = `https://${this.mobiusClusters[0].host}${API_V1}`;\n this.primaryMobiusUris = [`${this.mobiusHost}${URL_ENDPOINT}`];\n }\n }\n\n /**\n * Registers a listener/handler for ALL_CALLS_CLEARED\n * event emitted by callManager when all the calls\n * present on sdk are cleaned up.\n */\n private registerCallsClearedListener() {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.REGISTER_CALLS_CLEARED_LISTENER,\n });\n\n this.callManager.on(CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED, this.callsClearedHandler);\n }\n\n /**\n * Handler registered for ALL_CALLS_CLEARED event emitted by callManager.\n *\n * If re-register attempt was deferred earlier due to active call(s), then it\n * will be attempted here on receiving a notification from callManager that all\n * calls are cleaned up.\n */\n private callsClearedHandler = async () => {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.CALLS_CLEARED_HANDLER,\n });\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const {registration} = Object.values(this.lineDict)[0];\n\n if (!registration.isDeviceRegistered()) {\n await this.mutex.runExclusive(async () => {\n if (registration.isReconnectPending()) {\n log.info('All calls cleared, reconnecting', {\n file: CALLING_CLIENT_FILE,\n method: CALLS_CLEARED_HANDLER_UTIL,\n });\n await registration.reconnectOnFailure(CALLS_CLEARED_HANDLER_UTIL);\n }\n });\n }\n };\n\n /**\n * To get the current log Level.\n * @ignore\n */\n public getLoggingLevel(): LOGGER {\n return log.getLogLevel();\n }\n\n /**\n * To return the `sdkConnector` instance that was used during sdk initialisation.\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n\n private registerSessionsListener() {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.REGISTER_SESSIONS_LISTENER,\n });\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n async (event?: CallSessionEvent) => {\n if (event && event.data.userSessions.userSessions) {\n const sessionArr = event?.data.userSessions.userSessions;\n\n if (sessionArr.length === 1) {\n if (sessionArr[0].sessionType !== SessionType.WEBEX_CALLING) {\n return;\n }\n }\n\n for (let i = 0; i < sessionArr.length; i += 1) {\n if (sessionArr[i].sessionType !== SessionType.WEBEX_CALLING) {\n sessionArr.splice(i, 1);\n }\n }\n this.emit(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event as CallSessionEvent);\n }\n }\n );\n }\n\n /**\n * Creates line object inside calling client per user\n * NOTE: currently multiple lines are not supported\n */\n private async createLine(): Promise<void> {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.CREATE_LINE,\n });\n const line = new Line(\n this.webex.internal.device.userId,\n this.webex.internal.device.url,\n this.mutex,\n this.primaryMobiusUris,\n this.backupMobiusUris,\n this.getLoggingLevel(),\n this.sdkConfig?.serviceData,\n this.sdkConfig?.jwe\n );\n\n this.lineDict[line.lineId] = line;\n }\n\n /**\n * Retrieves details of all the Line objects belonging to a User\n * NOTE: currently multiple lines are not supported\n */\n public getLines(): Record<string, ILine> {\n return this.lineDict;\n }\n\n /**\n * Fetches the list of devices for a given user from Mobius.\n */\n public async getDevices(userId?: string): Promise<DeviceType[]> {\n const userid = userId || this.webex.internal.device.userId;\n if (!userid) {\n throw new Error('userId is required to fetch devices');\n }\n\n log.info(METHOD_START_MESSAGE, {file: CALLING_CLIENT_FILE, method: METHODS.GET_DEVICES});\n\n const mobiusUrls = [...this.primaryMobiusUris, ...this.backupMobiusUris];\n if (mobiusUrls.length === 0) {\n throw new Error('Mobius URLs are not available');\n }\n\n let finalError;\n for (const mobiusUrl of mobiusUrls) {\n const normalizedMobiusUrl = mobiusUrl.replace(/\\/+$/, '/');\n const uri = `${normalizedMobiusUrl}${DEVICES_ENDPOINT_RESOURCE}?userid=${encodeURIComponent(\n userid\n )}`;\n try {\n // eslint-disable-next-line no-await-in-loop\n const response = <WebexRequestPayload>await this.webex.request({\n uri,\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n if (response.statusCode !== 200) {\n throw new Error(`API call failed with ${response.statusCode}`);\n }\n\n const body = response.body as Devices;\n\n // Hydrate registration deviceInfo for deregister/restore flows\n Object.values(this.lineDict)[0].registration.setDeviceInfo(body);\n Object.values(this.lineDict)[0].registration.setActiveMobiusUrl(normalizedMobiusUrl);\n\n return body.devices ?? [];\n } catch (error) {\n finalError = error;\n }\n }\n\n log.error(`Failed to fetch devices for userId ${userId}: ${JSON.stringify(finalError)}`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_DEVICES,\n });\n\n throw finalError;\n }\n\n /**\n * Retrieves call objects for all the active calls present in the client\n */\n public getActiveCalls(): Record<string, ICall[]> {\n const activeCalls: Record<string, ICall[]> = {};\n const calls = this.callManager.getActiveCalls();\n Object.keys(calls).forEach((correlationId) => {\n const call = calls[correlationId];\n if (!activeCalls[call.lineId]) {\n activeCalls[call.lineId] = [];\n }\n activeCalls[call.lineId].push(call);\n });\n\n return activeCalls;\n }\n\n /**\n * Retrieves call object for the connected call in the client\n */\n public getConnectedCall(): ICall | undefined {\n let connectCall;\n const calls = this.callManager.getActiveCalls();\n\n Object.keys(calls).forEach((correlationId) => {\n if (calls[correlationId].isConnected() && !calls[correlationId].isHeld()) {\n connectCall = calls[correlationId];\n }\n });\n\n return connectCall;\n }\n\n /**\n * Uploads logs to help troubleshoot SDK issues.\n *\n * This method collects the current SDK logs including network requests, WebSocket\n * messages, and client-side events, then securely submits them to Webex's diagnostics\n * service. The returned tracking ID, feedbackID can be provided to Webex support for faster\n * issue resolution.\n * @returns Promise<UploadLogsResponse>\n * @throws Error\n */\n public async uploadLogs(): Promise<UploadLogsResponse> {\n const result = await uploadLogs({}, true);\n if (!result) {\n throw new Error('Failed to upload logs: No response received.');\n }\n\n return result;\n }\n}\n\n/**\n * Create the `CallingClient` instance using the `webex` object and callingSdk `config`\n * @param webex - A webex instance.\n * @param config - Config to start the CallingClient with.\n */\nexport const createClient = async (\n webex: WebexSDK,\n config?: CallingClientConfig\n): Promise<ICallingClient> => {\n const callingClientInstance = new CallingClient(webex, config);\n await callingClientInstance.init();\n\n return callingClientInstance;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Media","_interopRequireWildcard","require","_asyncMutex","_constants","_Utils","_types","_SDKConnector","_interopRequireDefault","_impl","_types2","_types3","_types4","_Logger","_callManager","_constants2","_line","_types5","_Metrics","_windowsChromiumIceWarmupUtils","_request","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t1","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","_createForOfIteratorHelper","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","_n","F","s","done","value","TypeError","a","u","next","return","_arrayLikeToArray","toString","slice","constructor","name","_Array$from","test","Array","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","apply","Boolean","prototype","valueOf","CallingClient","exports","_Eventing","webex","config","_this$sdkConfig","_this$sdkConfig$servi","_this$sdkConfig2","_this$sdkConfig2$logg","_this","_classCallCheck2","_defineProperty2","_asyncToGenerator2","_regenerator","mark","_callee","line","wrap","_context","prev","networkDownTimestamp","Date","toISOString","checkNetworkReachability","isNetworkDown","sent","log","warn","file","CALLING_CLIENT_FILE","method","METHODS","NETWORK_OFFLINE","_values","lineDict","registration","clearKeepaliveTimer","stop","info","METHOD_START_MESSAGE","NETWORK_ONLINE","networkUpTimestamp","MERCURY_OFFLINE","mercuryDownTimestamp","metricManager","submitConnectionMetrics","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","mercuryUpTimestamp","_callee3","callCheckInterval","_context3","MERCURY_ONLINE","setInterval","_callee2","_context2","_keys","callManager","getActiveCalls","clearInterval","getStatus","RegistrationStatus","IDLE","handleConnectionRestoration","NETWORK_FLAP_TIMEOUT","checkCallStatus","NETWORK_FLAP","MERCURY_UP","_ref4","_callee4","event","loggerContext","eventType","_context4","HANDLE_MOBIUS_ASYNC_EVENT","data","trace","concat","abrupt","MobiusEventType","REGISTRATION_DOWN","handleRegistrationDownEvent","submitMobiusSocketMetric","MOBIUS_SOCKET_ERROR","MOBIUS_SOCKET_ACTION","undefined","trackingId","dequeueWsEvents","_x","arguments","_callee6","_context6","CALLS_CLEARED_HANDLER","isDeviceRegistered","mutex","runExclusive","_callee5","_context5","isReconnectPending","CALLS_CLEARED_HANDLER_UTIL","reconnectOnFailure","sdkConnector","SDKConnector","getWebex","_config$logger","setWebex","logger","level","setWebexLogger","Mutex","sdkConfig","serviceData","indicator","ServiceIndicator","CALLING","domain","logLevel","LOGGER","ERROR","setLogger","validateServiceData","getCallManager","getMetricManager","mediaEngine","adaptedLogger","_len","args","_key","join","error","_len2","_key2","_len3","_key3","_len4","_key4","_len5","_key5","debug","_len6","_key6","primaryMobiusUris","backupMobiusUris","primaryWssMobiusUris","backupWssMobiusUris","mobiusClusters","internal","services","getMobiusClusters","mobiusHost","apiRequest","APIRequest","getInstance","registerSessionsListener","registerCallsClearedListener","_inherits2","_createClass2","key","_init","_callee7","_window","_window$navigator","_this2","ua","_this$sdkConfig3","rtmsDomain","_t","_context7","INIT","window","navigator","userAgent","toLowerCase","includes","windowsChromiumIceWarmup","iceServers","timeoutMs","getMobiusServers","isSocketEnabled","registerMobiusSocketConnectionListener","onConnected","emit","CALLING_CLIENT_EVENT_KEYS","MOBIUS_SOCKET_CONNECTED","onDisconnected","reason","MOBIUS_SOCKET_DISCONNECTED","connectToMobiusSocket","registerMobiusSocketListener","handleMobiusAsyncEvent","CONTACT_CENTER","getRTMSDomain","isValidServiceDomain","Error","createLine","setupNetworkEventListeners","init","GET_RTMS_DOMAIN","rtmsURL","WCC_CALLING_RTMS_DOMAIN","url","URL","hostname","_checkNetworkReachability","_callee8","controller","timeoutId","_t2","_context8","AbortController","setTimeout","abort","fetch","cache","mode","signal","clearTimeout","_checkCallStatus","_callee9","calls","_iterator","_step","_loop","_t3","_context0","_context9","postStatus","then","catch","err","sendCallStateMachineEvt","type","delegateYield","finish","_this3","addEventListener","handleNetworkOnline","handleNetworkOffline","mercury","on","handleMercuryOffline","handleMercuryOnline","_getClientRegionInfo","_callee0","_this4","regionInfo","_response$headers","_response$headers$tra","_response$headers2","response","clientRegionInfo","_t4","_context1","GET_CLIENT_REGION_INFO","request","uri","DISCOVERY_URL","HTTP_METHODS","GET","addAuthHeader","headers","SPARK_USER_AGENT","body","clientRegion","countryCode","trackingid","submitRegionInfoMetric","MOBIUS_DISCOVERY","MOBIUS_SERVER_ACTION","REGION_INFO","_stringify","handleCallingClientErrors","clientError","_headers$trackingId","_headers2","submitRegistrationMetric","REGISTRATION_ERROR","REG_ACTION","REGISTER","GET_MOBIUS_SERVERS_UTIL","uploadLogs","getClientRegionInfo","_getMobiusServers","_callee1","_this$sdkConfig4","_this$sdkConfig4$disc","_this$sdkConfig5","_this$sdkConfig5$disc","_this5","useDefault","_this$sdkConfig6","_this$sdkConfig6$disc","_this$sdkConfig7","_this$sdkConfig7$disc","_this$webex$internal$","_iterator2","_step2","_loop2","_ret","_t6","_context11","GET_MOBIUS_SERVERS","discovery","country","region","_serviceUrls","mobius","_activeServices","_response$headers3","_response$headers$tra2","_response$headers4","mobiusServers","mobiusUris","_t5","_context10","host","API_V1","URL_ENDPOINT","CISCO_DEVICE_URL","device","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","submitMobiusServersMetric","MOBIUS_SERVERS","filterMobiusUris","primary","backup","primaryWss","backupWss","_headers$trackingId2","_headers4","t0","_connectToMobiusSocket","_callee10","_iterator3","_step3","wssUri","_t7","_t8","_context12","CONNECT_TO_MOBIUS_SOCKET","REGISTER_CALLS_CLEARED_LISTENER","ALL_CALLS_CLEARED","callsClearedHandler","getLoggingLevel","getLogLevel","getSDKConnector","_this6","REGISTER_SESSIONS_LISTENER","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","_ref7","_callee11","sessionArr","_context13","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x2","_createLine","_callee12","_this$sdkConfig8","socketEnabled","primaryUris","backupUris","_context14","CREATE_LINE","normalizeMobiusUris","Line","userId","jwe","lineId","getLines","_getDevices","_callee13","userid","mobiusUrls","finalError","_iterator4","_step4","mobiusUrl","normalizedMobiusUrl","_body$devices","_t9","_t0","_context15","GET_DEVICES","_toConsumableArray2","replace","DEVICES_ENDPOINT_RESOURCE","encodeURIComponent","statusCode","setDeviceInfo","setActiveMobiusUrl","devices","getDevices","_x3","activeCalls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","isMobiusSocketConnected","isSocketConnected","_uploadLogs2","_callee14","result","_context16","Eventing","createClient","_ref8","_callee15","callingClientInstance","_context17","_x4","_x5"],"sources":["CallingClient.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport * as Media from '@webex/internal-media-core';\nimport {Mutex} from 'async-mutex';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport {\n filterMobiusUris,\n handleCallingClientErrors,\n normalizeMobiusUris,\n isValidServiceDomain,\n uploadLogs,\n validateServiceData,\n} from '../common/Utils';\nimport {LOGGER} from '../Logger/types';\nimport SDKConnector from '../SDKConnector';\nimport {ClientRegionInfo, ISDKConnector, ServiceHost, WebexSDK} from '../SDKConnector/types';\nimport {Eventing} from '../Events/impl';\nimport {\n CallingClientEventTypes,\n MOBIUS_EVENT_KEYS,\n CallSessionEvent,\n SessionType,\n CALLING_CLIENT_EVENT_KEYS,\n} from '../Events/types';\nimport {\n ServiceIndicator,\n RegionInfo,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n MobiusServers,\n ServiceData,\n WebexRequestPayload,\n RegistrationStatus,\n UploadLogsResponse,\n DeviceType,\n Devices,\n} from '../common/types';\nimport {ICallingClient, CallingClientConfig} from './types';\nimport {ICall, ICallManager, MobiusAsyncEvent, MobiusEventType} from './calling/types';\nimport log from '../Logger';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n CALLS_CLEARED_HANDLER_UTIL,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n DISCOVERY_URL,\n GET_MOBIUS_SERVERS_UTIL,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n API_V1,\n METHODS,\n NETWORK_FLAP_TIMEOUT,\n DEVICES_ENDPOINT_RESOURCE,\n WCC_CALLING_RTMS_DOMAIN,\n} from './constants';\nimport Line from './line';\nimport {ILine} from './line/types';\nimport {\n METRIC_EVENT,\n REG_ACTION,\n METRIC_TYPE,\n IMetricManager,\n CONNECTION_ACTION,\n MOBIUS_SERVER_ACTION,\n MOBIUS_SOCKET_ACTION,\n} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\nimport {APIRequest} from './utils/request';\n\n/**\n * The `CallingClient` module provides a set of APIs for line registration and calling functionalities within the SDK.\n *\n * The following code snippet demonstrates how to create an instance of `CallingClient` using a `webex` instance and `callingConfig`:\n *\n * @example\n * ```javascript\n * const callingClient = createClient(webex, callingConfig);\n * ```\n */\n\nexport class CallingClient extends Eventing<CallingClientEventTypes> implements ICallingClient {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private mutex: Mutex;\n\n private callManager: ICallManager;\n\n private metricManager: IMetricManager;\n\n private sdkConfig?: CallingClientConfig;\n\n private serviceData: ServiceData;\n\n private primaryMobiusUris: string[];\n\n private backupMobiusUris: string[];\n\n private primaryWssMobiusUris: string[];\n\n private backupWssMobiusUris: string[];\n\n private mobiusClusters: ServiceHost[];\n\n private mobiusHost: string;\n\n public mediaEngine: typeof Media;\n\n private lineDict: Record<string, ILine> = {};\n\n private apiRequest: APIRequest;\n\n private isNetworkDown = false;\n\n private networkDownTimestamp = '';\n\n private networkUpTimestamp = '';\n\n private mercuryDownTimestamp = '';\n\n private mercuryUpTimestamp = '';\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, config?: CallingClientConfig) {\n super();\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n if (config?.logger?.level && webex.logger.config) {\n webex.logger.config.level = config.logger.level; // override the webex logger level\n }\n log.setWebexLogger(webex.logger);\n }\n this.mutex = new Mutex();\n this.webex = this.sdkConnector.getWebex();\n\n this.sdkConfig = config;\n this.serviceData = this.sdkConfig?.serviceData?.indicator\n ? this.sdkConfig.serviceData\n : {indicator: ServiceIndicator.CALLING, domain: ''};\n\n const logLevel = this.sdkConfig?.logger?.level ? this.sdkConfig.logger.level : LOGGER.ERROR;\n log.setLogger(logLevel, CALLING_CLIENT_FILE);\n validateServiceData(this.serviceData);\n\n this.callManager = getCallManager(this.webex, this.serviceData.indicator);\n this.metricManager = getMetricManager(this.webex, this.serviceData.indicator);\n\n this.mediaEngine = Media;\n\n const adaptedLogger: Media.Logger = {\n log: (...args) => webex.logger.log(args.join(' : ')),\n error: (...args) => webex.logger.error(args.join(' : ')),\n warn: (...args) => webex.logger.warn(args.join(' : ')),\n info: (...args) => webex.logger.info(args.join(' : ')),\n trace: (...args) => webex.logger.trace(args.join(' : ')),\n debug: (...args) => webex.logger.debug(args.join(' : ')),\n };\n\n this.mediaEngine.setLogger(adaptedLogger);\n\n this.primaryMobiusUris = [];\n this.backupMobiusUris = [];\n this.primaryWssMobiusUris = [];\n this.backupWssMobiusUris = [];\n this.mobiusClusters = this.webex.internal.services.getMobiusClusters();\n this.mobiusHost = '';\n\n this.apiRequest = APIRequest.getInstance({webex: this.webex});\n\n this.registerSessionsListener();\n\n this.registerCallsClearedListener();\n }\n\n /**\n * Initializes the `CallingClient` by performing the following steps:\n *\n * 1. Retrieves list of servers.\n * 2. Creates a line.\n * 3. Sets up network change detection.\n *\n * This method should be called once to initialize the `callingClient`.\n *\n * @returns A promise that resolves when the initialization is complete.\n * @ignore\n */\n public async init() {\n const loggerContext = {\n file: CALLING_CLIENT_FILE,\n method: METHODS.INIT,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n // Only for Windows Chromium based browsers we need to do the ICE warmup\n if (typeof window !== 'undefined' && window?.navigator?.userAgent) {\n const ua = window.navigator.userAgent;\n if (ua.toLowerCase().includes('windows')) {\n log.info('Starting ICE warmup for Windows Chromium based browser', {\n file: CALLING_CLIENT_FILE,\n method: 'init',\n });\n try {\n await windowsChromiumIceWarmup({\n iceServers: [],\n timeoutMs: 1000,\n });\n log.info(`ICE warmup completed`, {\n file: CALLING_CLIENT_FILE,\n method: 'init',\n });\n } catch (err) {\n log.warn(`ICE warmup failed: ${err}`, {\n file: CALLING_CLIENT_FILE,\n method: 'init',\n });\n }\n }\n }\n\n await this.getMobiusServers();\n if (this.apiRequest.isSocketEnabled()) {\n this.apiRequest.registerMobiusSocketConnectionListener({\n onConnected: () => this.emit(CALLING_CLIENT_EVENT_KEYS.MOBIUS_SOCKET_CONNECTED),\n onDisconnected: (reason) =>\n this.emit(CALLING_CLIENT_EVENT_KEYS.MOBIUS_SOCKET_DISCONNECTED, {reason}),\n });\n await this.connectToMobiusSocket();\n this.apiRequest.registerMobiusSocketListener(this.handleMobiusAsyncEvent);\n }\n\n // Auto-fetch RTMS domain from service catalog for contact-center flows\n if (\n this.serviceData.indicator === ServiceIndicator.CONTACT_CENTER &&\n !this.serviceData.domain\n ) {\n const rtmsDomain = this.getRTMSDomain();\n\n this.serviceData.domain = rtmsDomain;\n if (this.sdkConfig?.serviceData) {\n this.sdkConfig.serviceData.domain = this.serviceData.domain;\n }\n }\n\n if (!isValidServiceDomain(this.serviceData)) {\n throw new Error('Invalid service domain.');\n }\n\n await this.createLine();\n this.setupNetworkEventListeners();\n\n log.log('CallingClient initialization complete', loggerContext);\n }\n\n /**\n * Retrieves the RTMS domain from the service catalog for contact-center flows.\n *\n * @returns The RTMS domain from catalog when available.\n */\n private getRTMSDomain(): string {\n log.info('Fetching RTMS domain from service catalog', {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_RTMS_DOMAIN,\n });\n\n try {\n const rtmsURL = this.webex.internal.services.get(WCC_CALLING_RTMS_DOMAIN);\n const url = new URL(rtmsURL);\n\n log.info(`RTMS domain resolved from catalog: ${url.hostname}`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_RTMS_DOMAIN,\n });\n\n return url.hostname;\n } catch (error) {\n log.warn(`Failed to fetch RTMS domain from service catalog: ${error}`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_RTMS_DOMAIN,\n });\n\n return '';\n }\n }\n\n /**\n * Ping a reliable external endpoint with a short timeout to infer connectivity.\n */\n private async checkNetworkReachability(): Promise<boolean> {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 3000);\n\n // Using a common connectivity check endpoint that returns 204 with minimal payload.\n // no-cors mode yields an opaque response but a successful fetch implies reachability.\n await fetch('https://www.google.com/generate_204', {\n method: 'GET',\n cache: 'no-cache',\n mode: 'no-cors',\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n return true;\n } catch (error) {\n log.warn(`Network connectivity probe failed: ${error}`, {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n });\n\n return false;\n }\n }\n\n private async checkCallStatus() {\n const loggerContext = {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n };\n const calls = Object.values(this.callManager.getActiveCalls());\n for (const call of calls) {\n call\n .postStatus()\n .then(() => {\n log.info(`Call is active`, loggerContext);\n /*\n * Media Renegotiation Possibility if call keepalive succeeds,\n * for cases like WebRTC disconnect and media inactivity.\n */\n })\n .catch((err) => {\n log.warn(`Call Keepalive failed: ${err}`, loggerContext);\n\n call.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n });\n }\n }\n\n private handleNetworkOffline = async () => {\n this.networkDownTimestamp = new Date().toISOString();\n this.isNetworkDown = !(await this.checkNetworkReachability());\n log.warn(`Network has gone down, wait for it to come back up`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.NETWORK_OFFLINE,\n });\n\n if (this.isNetworkDown) {\n const line = Object.values(this.lineDict)[0];\n line.registration.clearKeepaliveTimer();\n }\n };\n\n // Wondering if we should keep this for timestamp recording purpose\n private handleNetworkOnline = () => {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.NETWORK_ONLINE,\n });\n this.networkUpTimestamp = new Date().toISOString();\n };\n\n private handleMercuryOffline = () => {\n log.warn(`Mercury down, waiting for connection to be up`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.MERCURY_OFFLINE,\n });\n this.mercuryDownTimestamp = new Date().toISOString();\n this.metricManager.submitConnectionMetrics(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n this.mercuryDownTimestamp,\n this.mercuryUpTimestamp\n );\n };\n\n private handleMercuryOnline = async () => {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.MERCURY_ONLINE,\n });\n this.mercuryUpTimestamp = new Date().toISOString();\n if (this.isNetworkDown) {\n const callCheckInterval = setInterval(async () => {\n if (!Object.keys(this.callManager.getActiveCalls()).length) {\n clearInterval(callCheckInterval);\n const line = Object.values(this.lineDict)[0];\n\n if (line.getStatus() !== RegistrationStatus.IDLE) {\n this.isNetworkDown = await line.registration.handleConnectionRestoration(\n this.isNetworkDown\n );\n } else {\n this.isNetworkDown = false;\n }\n }\n }, NETWORK_FLAP_TIMEOUT);\n\n if (Object.keys(this.callManager.getActiveCalls()).length) {\n await this.checkCallStatus();\n }\n\n this.metricManager.submitConnectionMetrics(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n this.networkDownTimestamp,\n this.networkUpTimestamp\n );\n } else {\n if (Object.keys(this.callManager.getActiveCalls()).length) {\n await this.checkCallStatus();\n }\n this.metricManager.submitConnectionMetrics(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n this.mercuryDownTimestamp,\n this.mercuryUpTimestamp\n );\n }\n };\n\n private setupNetworkEventListeners(): void {\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('online', this.handleNetworkOnline);\n\n window.addEventListener('offline', this.handleNetworkOffline);\n }\n\n this.webex.internal.mercury.on('offline', () => {\n this.handleMercuryOffline();\n });\n\n this.webex.internal.mercury.on('online', () => {\n this.handleMercuryOnline();\n });\n }\n\n /**\n * Fetches countryCode and region of the client.\n */\n private async getClientRegionInfo(): Promise<RegionInfo> {\n let abort;\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_CLIENT_REGION_INFO,\n });\n const regionInfo = {} as RegionInfo;\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${DISCOVERY_URL}`,\n method: HTTP_METHODS.GET,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n const clientRegionInfo = response.body as ClientRegionInfo;\n\n regionInfo.clientRegion = clientRegionInfo?.clientRegion || '';\n\n regionInfo.countryCode = clientRegionInfo?.countryCode || '';\n\n log.log(\n `Successfully fetched Client region info: ${regionInfo.clientRegion}, countryCode: ${regionInfo.countryCode}, and response trackingid: ${response?.headers?.trackingid}`,\n {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_CLIENT_REGION_INFO,\n }\n );\n\n this.metricManager.submitRegionInfoMetric(\n METRIC_EVENT.MOBIUS_DISCOVERY,\n MOBIUS_SERVER_ACTION.REGION_INFO,\n METRIC_TYPE.BEHAVIORAL,\n this.mobiusHost,\n clientRegionInfo.clientRegion,\n clientRegionInfo.countryCode,\n response?.headers?.trackingid ?? ''\n );\n } catch (err: unknown) {\n log.error(`Failed to get client region info: ${JSON.stringify(err)}`, {\n method: METHODS.GET_CLIENT_REGION_INFO,\n file: CALLING_CLIENT_FILE,\n });\n\n // eslint-disable-next-line no-await-in-loop\n abort = await handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n GET_MOBIUS_SERVERS_UTIL,\n 'UNKNOWN',\n (err as WebexRequestPayload).headers?.trackingId ?? '',\n undefined,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n\n regionInfo.clientRegion = '';\n regionInfo.countryCode = '';\n\n if (abort) {\n await uploadLogs();\n\n return regionInfo;\n }\n }\n\n return regionInfo;\n }\n\n /**\n * Local method for finding the mobius servers.\n */\n private async getMobiusServers() {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_MOBIUS_SERVERS,\n });\n /* Following operations are performed in a synchronous way ->\n\n 1. Get RegionInfo\n 2. Get Mobius Server with that RegionInfo\n 3. Check whether Mobius server was found without any error\n 4. If there is error , we don't need to send registration\n 5. Otherwise send registration\n */\n\n let useDefault = false;\n\n let clientRegion: string;\n let countryCode: string;\n\n if (this.sdkConfig?.discovery?.country && this.sdkConfig?.discovery?.region) {\n log.log('Updating region and country from the SDK config', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n clientRegion = this.sdkConfig?.discovery?.region;\n countryCode = this.sdkConfig?.discovery?.country;\n this.mobiusHost =\n this.webex.internal.services._serviceUrls?.mobius ||\n this.webex.internal.services.get(this.webex.internal.services._activeServices.mobius);\n } else {\n log.log('Updating region and country through Region discovery', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n\n const regionInfo = await this.getClientRegionInfo();\n clientRegion = regionInfo.clientRegion;\n countryCode = regionInfo.countryCode;\n }\n\n if (clientRegion && countryCode) {\n log.log(\n `Found Region: ${clientRegion} and country: ${countryCode}, going to fetch Mobius server`,\n {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n\n for (const mobius of this.mobiusClusters) {\n if (mobius.host) {\n this.mobiusHost = `https://${mobius.host}${API_V1}`;\n } else {\n this.mobiusHost = mobius as unknown as string;\n }\n try {\n // eslint-disable-next-line no-await-in-loop\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${this.mobiusHost}${URL_ENDPOINT}?regionCode=${clientRegion}&countryCode=${countryCode}`,\n method: HTTP_METHODS.GET,\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 log.log(\n `Mobius Server found for the region. Response trackingId: ${response?.headers?.trackingid}`,\n {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n\n const mobiusServers = response.body as MobiusServers;\n\n // Metrics for mobius servers\n this.metricManager.submitMobiusServersMetric(\n METRIC_EVENT.MOBIUS_DISCOVERY,\n MOBIUS_SERVER_ACTION.MOBIUS_SERVERS,\n METRIC_TYPE.BEHAVIORAL,\n mobiusServers,\n response?.headers?.trackingid ?? ''\n );\n\n /* update arrays of Mobius Uris. */\n const mobiusUris = filterMobiusUris(mobiusServers, this.mobiusHost);\n this.primaryMobiusUris = mobiusUris.primary;\n this.backupMobiusUris = mobiusUris.backup;\n this.primaryWssMobiusUris = mobiusUris.primaryWss;\n this.backupWssMobiusUris = mobiusUris.backupWss;\n\n log.log(\n `Final list of Mobius Servers, primary: ${mobiusUris.primary} and backup: ${mobiusUris.backup}`,\n {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n\n break;\n } catch (err: unknown) {\n log.error(`Failed to get Mobius servers: ${JSON.stringify(err)}`, {\n method: METHODS.GET_MOBIUS_SERVERS,\n file: CALLING_CLIENT_FILE,\n });\n\n // eslint-disable-next-line no-await-in-loop\n const abort = await handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n GET_MOBIUS_SERVERS_UTIL,\n 'UNKNOWN',\n (err as WebexRequestPayload).headers?.trackingId ?? '',\n undefined,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n\n if (abort) {\n useDefault = true;\n // eslint-disable-next-line no-await-in-loop\n await uploadLogs();\n break;\n }\n }\n }\n } else {\n /* Setting this to true because region info is possibly undefined */\n useDefault = true;\n }\n\n /* Use a default URL if Mobius discovery fails either because of region info failure\n * or because the discovered Mobius couldn't be reached\n */\n\n if (useDefault) {\n log.warn(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n this.mobiusHost = `https://${this.mobiusClusters[0].host}${API_V1}`;\n this.primaryMobiusUris = [`${this.mobiusHost}${URL_ENDPOINT}`];\n }\n }\n\n /**\n * Connects to the Mobius WebSocket using WSS URIs discovered during Mobius server discovery.\n * Attempts primary WSS URIs first, then falls back to backup WSS URIs.\n * If all attempts fail, logs a warning and continues without a socket connection.\n */\n private async connectToMobiusSocket(): Promise<void> {\n const loggerContext = {\n file: CALLING_CLIENT_FILE,\n method: METHODS.CONNECT_TO_MOBIUS_SOCKET,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n if (!this.primaryWssMobiusUris.length) {\n log.warn(\n 'No WSS URIs available from Mobius discovery for primary, skipping socket connection',\n loggerContext\n );\n\n return;\n }\n\n // Attempt to establish the socket connection with mobius if primary wss urls are present\n // If wss url is not present for primary/backup, registration will be attempted with http even when feature flag is enabled for mobius socket\n for (const wssUri of this.primaryWssMobiusUris) {\n try {\n log.log(`Trying primary WSS URI: ${wssUri}`, loggerContext);\n // eslint-disable-next-line no-await-in-loop\n await this.apiRequest.connectToMobiusSocket(wssUri);\n log.log(\n `Successfully connected to Mobius socket on primary WSS URI: ${wssUri}`,\n loggerContext\n );\n\n return;\n } catch (err: unknown) {\n log.warn(`Primary WSS URI connection failed for ${wssUri}: ${err}`, loggerContext);\n }\n }\n\n log.warn('All primary WSS URI connection attempts failed', loggerContext);\n }\n\n private handleMobiusAsyncEvent = async (event?: MobiusAsyncEvent) => {\n const loggerContext = {\n file: CALLING_CLIENT_FILE,\n method: METHODS.HANDLE_MOBIUS_ASYNC_EVENT,\n };\n\n const eventType = event?.data.eventType;\n\n log.trace(\n `Mobius async event received - eventType: ${eventType ?? 'undefined'}`,\n loggerContext\n );\n\n if (!eventType) {\n log.warn('Dropping unsupported mobius socket payload', loggerContext);\n\n return;\n }\n\n if (eventType === MobiusEventType.REGISTRATION_DOWN) {\n log.warn(`Received ${eventType} event from Mobius.`, loggerContext);\n const line = Object.values(this.lineDict)[0];\n\n if (!line) {\n log.warn('No line found, skipping registration down event', loggerContext);\n\n return;\n }\n\n await line.registration.handleRegistrationDownEvent(event);\n\n this.metricManager.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.REGISTRATION_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n undefined,\n event?.trackingId,\n undefined,\n eventType\n );\n\n return;\n }\n\n this.callManager.dequeueWsEvents(event);\n\n log.trace(\n `Mobius async event dispatched to CallManager - eventType: ${eventType}`,\n loggerContext\n );\n };\n\n /**\n * Registers a listener/handler for ALL_CALLS_CLEARED\n * event emitted by callManager when all the calls\n * present on sdk are cleaned up.\n */\n private registerCallsClearedListener() {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.REGISTER_CALLS_CLEARED_LISTENER,\n });\n\n this.callManager.on(CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED, this.callsClearedHandler);\n }\n\n /**\n * Handler registered for ALL_CALLS_CLEARED event emitted by callManager.\n *\n * If re-register attempt was deferred earlier due to active call(s), then it\n * will be attempted here on receiving a notification from callManager that all\n * calls are cleaned up.\n */\n private callsClearedHandler = async () => {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.CALLS_CLEARED_HANDLER,\n });\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const {registration} = Object.values(this.lineDict)[0];\n\n if (!registration.isDeviceRegistered()) {\n await this.mutex.runExclusive(async () => {\n if (registration.isReconnectPending()) {\n log.info('All calls cleared, reconnecting', {\n file: CALLING_CLIENT_FILE,\n method: CALLS_CLEARED_HANDLER_UTIL,\n });\n await registration.reconnectOnFailure(CALLS_CLEARED_HANDLER_UTIL);\n }\n });\n }\n };\n\n /**\n * To get the current log Level.\n * @ignore\n */\n public getLoggingLevel(): LOGGER {\n return log.getLogLevel();\n }\n\n /**\n * To return the `sdkConnector` instance that was used during sdk initialisation.\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n\n private registerSessionsListener() {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.REGISTER_SESSIONS_LISTENER,\n });\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n async (event?: CallSessionEvent) => {\n if (event && event.data.userSessions.userSessions) {\n const sessionArr = event?.data.userSessions.userSessions;\n\n if (sessionArr.length === 1) {\n if (sessionArr[0].sessionType !== SessionType.WEBEX_CALLING) {\n return;\n }\n }\n\n for (let i = 0; i < sessionArr.length; i += 1) {\n if (sessionArr[i].sessionType !== SessionType.WEBEX_CALLING) {\n sessionArr.splice(i, 1);\n }\n }\n this.emit(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event as CallSessionEvent);\n }\n }\n );\n }\n\n /**\n * Creates line object inside calling client per user\n * NOTE: currently multiple lines are not supported\n */\n private async createLine(): Promise<void> {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.CREATE_LINE,\n });\n // When the Mobius socket is enabled, fall back to the HTTP URIs per group when that\n // group has no WSS URL, so registration is still attempted (primary and backup are\n // resolved independently). When the socket is disabled, always use the HTTP URIs.\n const socketEnabled = this.apiRequest.isSocketEnabled();\n const primaryUris =\n socketEnabled && this.primaryWssMobiusUris.length\n ? normalizeMobiusUris(this.primaryWssMobiusUris)\n : this.primaryMobiusUris;\n const backupUris =\n socketEnabled && this.backupWssMobiusUris.length\n ? normalizeMobiusUris(this.backupWssMobiusUris)\n : this.backupMobiusUris;\n\n const line = new Line(\n this.webex.internal.device.userId,\n this.webex.internal.device.url,\n this.mutex,\n primaryUris,\n backupUris,\n this.getLoggingLevel(),\n this.serviceData,\n this.sdkConfig?.jwe\n );\n\n this.lineDict[line.lineId] = line;\n }\n\n /**\n * Retrieves details of all the Line objects belonging to a User\n * NOTE: currently multiple lines are not supported\n */\n public getLines(): Record<string, ILine> {\n return this.lineDict;\n }\n\n /**\n * Fetches the list of devices for a given user from Mobius.\n */\n public async getDevices(userId?: string): Promise<DeviceType[]> {\n const userid = userId || this.webex.internal.device.userId;\n if (!userid) {\n throw new Error('userId is required to fetch devices');\n }\n\n log.info(METHOD_START_MESSAGE, {file: CALLING_CLIENT_FILE, method: METHODS.GET_DEVICES});\n\n const mobiusUrls = [...this.primaryMobiusUris, ...this.backupMobiusUris];\n if (mobiusUrls.length === 0) {\n throw new Error('Mobius URLs are not available');\n }\n\n let finalError;\n for (const mobiusUrl of mobiusUrls) {\n const normalizedMobiusUrl = mobiusUrl.replace(/\\/+$/, '/');\n const uri = `${normalizedMobiusUrl}${DEVICES_ENDPOINT_RESOURCE}?userid=${encodeURIComponent(\n userid\n )}`;\n try {\n // eslint-disable-next-line no-await-in-loop\n const response = (await this.webex.request({\n uri,\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n })) as WebexRequestPayload;\n\n if (response.statusCode !== 200) {\n throw new Error(`API call failed with ${response.statusCode}`);\n }\n\n const body = response.body as Devices;\n\n // Hydrate registration deviceInfo for deregister/restore flows\n Object.values(this.lineDict)[0].registration.setDeviceInfo(body);\n Object.values(this.lineDict)[0].registration.setActiveMobiusUrl(normalizedMobiusUrl);\n\n return body.devices ?? [];\n } catch (error) {\n finalError = error;\n }\n }\n\n log.error(`Failed to fetch devices for userId ${userId}: ${JSON.stringify(finalError)}`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_DEVICES,\n });\n\n throw finalError;\n }\n\n /**\n * Retrieves call objects for all the active calls present in the client\n */\n public getActiveCalls(): Record<string, ICall[]> {\n const activeCalls: Record<string, ICall[]> = {};\n const calls = this.callManager.getActiveCalls();\n Object.keys(calls).forEach((correlationId) => {\n const call = calls[correlationId];\n if (!activeCalls[call.lineId]) {\n activeCalls[call.lineId] = [];\n }\n activeCalls[call.lineId].push(call);\n });\n\n return activeCalls;\n }\n\n /**\n * Retrieves call object for the connected call in the client\n */\n public getConnectedCall(): ICall | undefined {\n let connectCall;\n const calls = this.callManager.getActiveCalls();\n\n Object.keys(calls).forEach((correlationId) => {\n if (calls[correlationId].isConnected() && !calls[correlationId].isHeld()) {\n connectCall = calls[correlationId];\n }\n });\n\n return connectCall;\n }\n\n /**\n * Indicates whether the Mobius WebSocket transport is currently connected.\n *\n * The `MOBIUS_SOCKET_CONNECTED` event is emitted during `init()`, so consumers that\n * subscribe afterwards may miss it; this lets them reconcile the current state. Returns\n * `false` when the WebSocket transport is not enabled.\n */\n public isMobiusSocketConnected(): boolean {\n return this.apiRequest.isSocketEnabled() && this.apiRequest.isSocketConnected();\n }\n\n /**\n * Uploads logs to help troubleshoot SDK issues.\n *\n * This method collects the current SDK logs including network requests, WebSocket\n * messages, and client-side events, then securely submits them to Webex's diagnostics\n * service. The returned tracking ID, feedbackID can be provided to Webex support for faster\n * issue resolution.\n * @returns Promise<UploadLogsResponse>\n * @throws Error\n */\n public async uploadLogs(): Promise<UploadLogsResponse> {\n const result = await uploadLogs({}, true);\n if (!result) {\n throw new Error('Failed to upload logs: No response received.');\n }\n\n return result;\n }\n}\n\n/**\n * Create the `CallingClient` instance using the `webex` object and callingSdk `config`\n * @param webex - A webex instance.\n * @param config - Config to start the CallingClient with.\n */\nexport const createClient = async (\n webex: WebexSDK,\n config?: CallingClientConfig\n): Promise<ICallingClient> => {\n const callingClientInstance = new CallingClient(webex, config);\n await callingClientInstance.init();\n\n return callingClientInstance;\n};\n"],"mappings":"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","ignoreList":[]}