@webex/calling 3.10.0-next.8 → 3.10.0-wxc-disconnect.1

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 (96) hide show
  1. package/dist/CallHistory/CallHistory.js +41 -42
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +5 -120
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallSettings/UcmBackendConnector.js +6 -6
  6. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  7. package/dist/CallSettings/UcmBackendConnector.test.js +1 -2
  8. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  9. package/dist/CallSettings/WxCallBackendConnector.js +43 -38
  10. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  11. package/dist/CallSettings/WxCallBackendConnector.test.js +1 -4
  12. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  13. package/dist/CallingClient/CallingClient.js +207 -161
  14. package/dist/CallingClient/CallingClient.js.map +1 -1
  15. package/dist/CallingClient/CallingClient.test.js +290 -152
  16. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  17. package/dist/CallingClient/calling/call.js +53 -50
  18. package/dist/CallingClient/calling/call.js.map +1 -1
  19. package/dist/CallingClient/calling/call.test.js +51 -93
  20. package/dist/CallingClient/calling/call.test.js.map +1 -1
  21. package/dist/CallingClient/calling/callManager.test.js +1 -1
  22. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  23. package/dist/CallingClient/registration/register.js +4 -5
  24. package/dist/CallingClient/registration/register.js.map +1 -1
  25. package/dist/CallingClient/registration/webWorker.js +3 -3
  26. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  27. package/dist/CallingClient/registration/webWorkerStr.js +1 -1
  28. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
  29. package/dist/Contacts/ContactsClient.js +45 -39
  30. package/dist/Contacts/ContactsClient.js.map +1 -1
  31. package/dist/Contacts/ContactsClient.test.js +3 -4
  32. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  33. package/dist/Events/impl/index.js +1 -1
  34. package/dist/Events/impl/index.js.map +1 -1
  35. package/dist/Logger/index.js +3 -3
  36. package/dist/Logger/index.js.map +1 -1
  37. package/dist/Logger/index.test.js +1 -1
  38. package/dist/Logger/index.test.js.map +1 -1
  39. package/dist/SDKConnector/types.js.map +1 -1
  40. package/dist/Voicemail/BroadworksBackendConnector.js +54 -47
  41. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  42. package/dist/Voicemail/BroadworksBackendConnector.test.js +2 -10
  43. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  44. package/dist/Voicemail/UcmBackendConnector.js +32 -29
  45. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  46. package/dist/Voicemail/Voicemail.js +102 -77
  47. package/dist/Voicemail/Voicemail.js.map +1 -1
  48. package/dist/Voicemail/WxCallBackendConnector.js +59 -46
  49. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  50. package/dist/Voicemail/WxCallBackendConnector.test.js +18 -44
  51. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  52. package/dist/common/Utils.js +2 -2
  53. package/dist/common/Utils.js.map +1 -1
  54. package/dist/common/Utils.test.js +8 -4
  55. package/dist/common/Utils.test.js.map +1 -1
  56. package/dist/common/testUtil.js +1 -2
  57. package/dist/common/testUtil.js.map +1 -1
  58. package/dist/module/CallHistory/CallHistory.js +11 -20
  59. package/dist/module/CallSettings/UcmBackendConnector.js +2 -1
  60. package/dist/module/CallSettings/WxCallBackendConnector.js +15 -10
  61. package/dist/module/CallingClient/CallingClient.js +123 -83
  62. package/dist/module/CallingClient/calling/call.js +23 -17
  63. package/dist/module/CallingClient/registration/register.js +3 -3
  64. package/dist/module/CallingClient/registration/webWorker.js +2 -2
  65. package/dist/module/CallingClient/registration/webWorkerStr.js +2 -2
  66. package/dist/module/Contacts/ContactsClient.js +25 -19
  67. package/dist/module/Events/impl/index.js +1 -1
  68. package/dist/module/Logger/index.js +2 -2
  69. package/dist/module/Voicemail/BroadworksBackendConnector.js +18 -10
  70. package/dist/module/Voicemail/UcmBackendConnector.js +11 -7
  71. package/dist/module/Voicemail/Voicemail.js +68 -42
  72. package/dist/module/Voicemail/WxCallBackendConnector.js +28 -14
  73. package/dist/module/common/Utils.js +2 -2
  74. package/dist/module/common/testUtil.js +0 -1
  75. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  76. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  77. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  78. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  79. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  80. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  81. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  82. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  83. package/dist/types/Contacts/ContactsClient.d.ts +0 -1
  84. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  85. package/dist/types/Logger/index.d.ts +2 -1
  86. package/dist/types/Logger/index.d.ts.map +1 -1
  87. package/dist/types/SDKConnector/types.d.ts +0 -10
  88. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  89. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  90. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  91. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  92. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  93. package/dist/types/common/Utils.d.ts.map +1 -1
  94. package/dist/types/common/testUtil.d.ts +0 -1
  95. package/dist/types/common/testUtil.d.ts.map +1 -1
  96. package/package.json +4 -4
@@ -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","_t","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","_createSuper","_isNativeReflectConstruct","_getPrototypeOf2","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Boolean","prototype","valueOf","CallingClient","exports","_Eventing","_inherits2","_super","webex","config","_this$sdkConfig","_this$sdkConfig$servi","_this$sdkConfig2","_this$sdkConfig2$logg","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_asyncToGenerator2","_regenerator","mark","_callee","line","wrap","_callee$","_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","_callee3$","_context3","MERCURY_ONLINE","setInterval","_callee2","_callee2$","_context2","_keys","callManager","getActiveCalls","clearInterval","getStatus","RegistrationStatus","IDLE","handleConnectionRestoration","NETWORK_FLAP_TIMEOUT","checkCallStatus","NETWORK_FLAP","MERCURY_UP","_callee5","_callee5$","_context5","CALLS_CLEARED_HANDLER","isDeviceRegistered","mutex","runExclusive","_callee4","_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","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","_createClass2","key","_init","_callee6","_window","_window$navigator","ua","_callee6$","_context6","window","navigator","userAgent","toLowerCase","includes","windowsChromiumIceWarmup","iceServers","timeoutMs","t0","concat","getMobiusServers","createLine","setupNetworkEventListeners","init","_checkNetworkReachability","_callee7","controller","timeoutId","_callee7$","_context7","AbortController","setTimeout","abort","fetch","cache","mode","signal","clearTimeout","abrupt","_checkCallStatus","_callee8","loggerContext","calls","_iterator","_step","_loop","_callee8$","_context9","_loop$","_context8","postStatus","then","catch","err","sendCallStateMachineEvt","type","delegateYield","t1","finish","_this2","addEventListener","handleNetworkOnline","handleNetworkOffline","mercury","on","handleMercuryOffline","handleMercuryOnline","_getClientRegionInfo","_callee9","_this3","regionInfo","_response$headers","_response$headers$tra","_response$headers2","response","clientRegionInfo","_callee9$","_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","_callee0$","_context10","GET_MOBIUS_SERVERS","discovery","country","region","_serviceUrls","mobius","_activeServices","_response$headers3","_response$headers$tra2","_response$headers4","mobiusServers","mobiusUris","_loop2$","_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","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","_callee1$","_context11","data","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x","_createLine","_callee10","_this$sdkConfig7","_this$sdkConfig8","_callee10$","_context12","CREATE_LINE","Line","userId","jwe","lineId","getLines","activeCalls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","_uploadLogs2","_callee11","result","_callee11$","_context13","Error","Eventing","createClient","_ref7","_callee12","callingClientInstance","_callee12$","_context14","_x2","_x3"],"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} 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} 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 * 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","_Logger","_callManager","_constants2","_line","_types4","_Metrics","_windowsChromiumIceWarmupUtils","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","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","_createSuper","_isNativeReflectConstruct","_getPrototypeOf2","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Boolean","prototype","valueOf","CallingClient","exports","_Eventing","_inherits2","_super","webex","config","_this$sdkConfig","_this$sdkConfig$servi","_this$sdkConfig2","_this$sdkConfig2$logg","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_asyncToGenerator2","_regenerator","mark","_callee","line","wrap","_callee$","_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","_callee3$","_context3","MERCURY_ONLINE","setInterval","_callee2","_callee2$","_context2","_keys","callManager","getActiveCalls","clearInterval","getStatus","RegistrationStatus","IDLE","handleConnectionRestoration","NETWORK_FLAP_TIMEOUT","checkCallStatus","NETWORK_FLAP","MERCURY_UP","_callee5","_callee5$","_context5","CALLS_CLEARED_HANDLER","isDeviceRegistered","mutex","runExclusive","_callee4","_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","args","_key","join","error","_len2","_key2","_len3","_key3","_len4","_key4","trace","_len5","_key5","debug","_len6","_key6","primaryMobiusUris","backupMobiusUris","mobiusServiceHost","URL","internal","services","_serviceUrls","mobius","host","_hostCatalog","mobiusClusters","MOBIUS_US_PROD","MOBIUS_EU_PROD","MOBIUS_US_INT","MOBIUS_EU_INT","mobiusObject","_services","find","item","serviceName","serviceUrls","baseUrl","mobiusHost","registerSessionsListener","registerCallsClearedListener","_createClass2","key","_init","_callee6","_window","_window$navigator","ua","_callee6$","_context6","window","navigator","userAgent","toLowerCase","includes","windowsChromiumIceWarmup","iceServers","timeoutMs","t0","concat","getMobiusServers","createLine","setupNetworkEventListeners","init","_checkNetworkReachability","_callee7","controller","timeoutId","_callee7$","_context7","AbortController","setTimeout","abort","fetch","cache","mode","signal","clearTimeout","abrupt","_checkCallStatus","_callee8","loggerContext","calls","_iterator","_step","_loop","_callee8$","_context9","_loop$","_context8","postStatus","then","catch","err","sendCallStateMachineEvt","type","delegateYield","t1","finish","_this2","addEventListener","handleNetworkOnline","handleNetworkOffline","mercury","on","handleMercuryOffline","handleMercuryOnline","_getClientRegionInfo","_callee9","_this3","regionInfo","_iterator2","_step2","_loop2","_ret","_callee9$","_context1","GET_CLIENT_REGION_INFO","_temp$headers","_response$headers","_response$headers2","_response$headers$tra","_response$headers3","temp","myIP","response","clientRegionInfo","extendedError","_loop2$","_context0","API_V1","request","uri","URL_ENDPOINT","IP_ENDPOINT","HTTP_METHODS","GET","headers","CISCO_DEVICE_URL","device","url","SPARK_USER_AGENT","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","trackingid","body","ipv4","DISCOVERY_URL","addAuthHeader","clientRegion","countryCode","submitRegionInfoMetric","MOBIUS_DISCOVERY","MOBIUS_SERVER_ACTION","REGION_INFO","Error","handleCallingClientErrors","clientError","_headers$trackingId","_headers3","submitRegistrationMetric","REGISTRATION_ERROR","REG_ACTION","REGISTER","GET_MOBIUS_SERVERS_UTIL","trackingId","undefined","emit","CALLING_CLIENT_EVENT_KEYS","uploadLogs","v","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","_response$headers4","_response$headers$tra2","_response$headers5","mobiusServers","mobiusUris","_callee0$","_context10","GET_MOBIUS_SERVERS","discovery","country","region","submitMobiusServersMetric","MOBIUS_SERVERS","filterMobiusUris","primary","backup","_headers$trackingId2","_headers5","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","_callee1$","_context11","data","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x","_createLine","_callee10","_this$sdkConfig7","_this$sdkConfig8","_callee10$","_context12","CREATE_LINE","Line","userId","jwe","lineId","getLines","activeCalls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","_uploadLogs2","_callee11","result","_callee11$","_context13","Eventing","createClient","_ref7","_callee12","callingClientInstance","_callee12$","_context14","_x2","_x3"],"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 ExtendedError from 'Errors/catalog/ExtendedError';\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 IpInfo,\n MobiusServers,\n WebexRequestPayload,\n RegistrationStatus,\n UploadLogsResponse,\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 IP_ENDPOINT,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n API_V1,\n MOBIUS_US_PROD,\n MOBIUS_EU_PROD,\n MOBIUS_US_INT,\n MOBIUS_EU_INT,\n METHODS,\n NETWORK_FLAP_TIMEOUT,\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 let mobiusServiceHost = '';\n try {\n mobiusServiceHost = new URL(this.webex.internal.services._serviceUrls.mobius).host;\n } catch (error) {\n log.warn(`Failed to parse mobius service URL`, {\n file: CALLING_CLIENT_FILE,\n method: this.constructor.name,\n });\n }\n\n // TODO: This is a temp fix - https://jira-eng-sjc12.cisco.com/jira/browse/CAI-6809\n if (this.webex.internal.services._hostCatalog) {\n this.mobiusClusters =\n (mobiusServiceHost && this.webex.internal.services._hostCatalog[mobiusServiceHost]) ||\n this.webex.internal.services._hostCatalog[MOBIUS_US_PROD] ||\n this.webex.internal.services._hostCatalog[MOBIUS_EU_PROD] ||\n this.webex.internal.services._hostCatalog[MOBIUS_US_INT] ||\n this.webex.internal.services._hostCatalog[MOBIUS_EU_INT];\n } else {\n // @ts-ignore\n const mobiusObject = this.webex.internal.services._services.find(\n // @ts-ignore\n (item) => item.serviceName === 'mobius'\n );\n this.mobiusClusters = [mobiusObject.serviceUrls[0].baseUrl];\n }\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 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\n try {\n // eslint-disable-next-line no-await-in-loop\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.mobiusHost}${URL_ENDPOINT}${IP_ENDPOINT}`,\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(`Response trackingId: ${temp?.headers?.trackingid}`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_CLIENT_REGION_INFO,\n });\n\n const myIP = (temp.body as IpInfo).ipv4;\n\n // eslint-disable-next-line no-await-in-loop\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${DISCOVERY_URL}/${myIP}`,\n method: HTTP_METHODS.GET,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_CLIENT_REGION_INFO,\n });\n\n const clientRegionInfo = response.body as ClientRegionInfo;\n\n regionInfo.clientRegion = clientRegionInfo?.clientRegion\n ? clientRegionInfo.clientRegion\n : '';\n\n regionInfo.countryCode = clientRegionInfo?.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 // Metrics for region info - trying clusters in loop\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\n break;\n } catch (err: unknown) {\n const extendedError = new Error(\n `Failed to get client region info: ${err}`\n ) as ExtendedError;\n log.error(extendedError, {\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 // eslint-disable-next-line no-await-in-loop\n await uploadLogs();\n\n return regionInfo;\n }\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 = this.webex.internal.services._serviceUrls.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 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 } catch (err: unknown) {\n const extendedError = new Error(`Failed to get Mobius servers: ${err}`) as ExtendedError;\n log.error(extendedError, {\n method: METHODS.GET_MOBIUS_SERVERS,\n file: CALLING_CLIENT_FILE,\n });\n\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 // Upload logs on final error\n await uploadLogs();\n }\n\n useDefault = true;\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 * Retrieves call objects for all the active calls present in the client\n */\n public getActiveCalls(): Record<string, ICall[]> {\n const activeCalls = {};\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":[]}