@webex/calling 3.9.0-next.8 → 3.9.0-next.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallHistory/CallHistory.js +51 -46
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/CallHistory.test.js +146 -147
- package/dist/CallHistory/CallHistory.test.js.map +1 -1
- package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
- package/dist/CallHistory/constants.js.map +1 -1
- package/dist/CallHistory/types.js.map +1 -1
- package/dist/CallSettings/CallSettings.js +8 -8
- package/dist/CallSettings/CallSettings.js.map +1 -1
- package/dist/CallSettings/CallSettings.test.js +1 -1
- package/dist/CallSettings/CallSettings.test.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.js +12 -11
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +9 -10
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.js +66 -59
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.test.js +108 -109
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/constants.js.map +1 -1
- package/dist/CallSettings/testFixtures.js.map +1 -1
- package/dist/CallSettings/types.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +142 -85
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +184 -173
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/callRecordFixtures.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/index.js +2 -2
- package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/index.test.js +8 -7
- package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
- package/dist/CallingClient/calling/call.js +343 -320
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +405 -406
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.js +3 -4
- package/dist/CallingClient/calling/callManager.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +67 -68
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/calling/index.js.map +1 -1
- package/dist/CallingClient/calling/types.js.map +1 -1
- package/dist/CallingClient/callingClientFixtures.js.map +1 -1
- package/dist/CallingClient/constants.js +2 -1
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/index.js +7 -7
- package/dist/CallingClient/line/index.js.map +1 -1
- package/dist/CallingClient/line/line.test.js +6 -6
- package/dist/CallingClient/line/line.test.js.map +1 -1
- package/dist/CallingClient/line/types.js.map +1 -1
- package/dist/CallingClient/registration/index.js.map +1 -1
- package/dist/CallingClient/registration/register.js +239 -230
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +172 -173
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/CallingClient/registration/registerFixtures.js.map +1 -1
- package/dist/CallingClient/registration/types.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.js +5 -4
- package/dist/CallingClient/registration/webWorker.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.test.js +14 -14
- package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
- package/dist/CallingClient/types.js.map +1 -1
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +2 -6
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +244 -238
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +89 -90
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Contacts/constants.js +2 -2
- package/dist/Contacts/constants.js.map +1 -1
- package/dist/Contacts/contactFixtures.js.map +1 -1
- package/dist/Contacts/types.js.map +1 -1
- package/dist/Errors/catalog/CallError.js +2 -2
- package/dist/Errors/catalog/CallError.js.map +1 -1
- package/dist/Errors/catalog/CallingDeviceError.js +2 -2
- package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
- package/dist/Errors/catalog/ExtendedError.js +3 -3
- package/dist/Errors/catalog/ExtendedError.js.map +1 -1
- package/dist/Errors/catalog/LineError.js +2 -2
- package/dist/Errors/catalog/LineError.js.map +1 -1
- package/dist/Errors/index.js.map +1 -1
- package/dist/Errors/types.js.map +1 -1
- package/dist/Events/impl/index.js +2 -2
- package/dist/Events/impl/index.js.map +1 -1
- package/dist/Events/types.js.map +1 -1
- package/dist/Logger/index.js.map +1 -1
- package/dist/Logger/index.test.js.map +1 -1
- package/dist/Logger/types.js.map +1 -1
- package/dist/Metrics/index.js +109 -46
- package/dist/Metrics/index.js.map +1 -1
- package/dist/Metrics/index.test.js.map +1 -1
- package/dist/Metrics/types.js +8 -1
- package/dist/Metrics/types.js.map +1 -1
- package/dist/SDKConnector/index.js +0 -1
- package/dist/SDKConnector/index.js.map +1 -1
- package/dist/SDKConnector/index.test.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/SDKConnector/utils.js.map +1 -1
- package/dist/SDKConnector/utils.test.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.js +42 -39
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.test.js +119 -120
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.js +54 -47
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.test.js +73 -74
- package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/Voicemail.js +12 -11
- package/dist/Voicemail/Voicemail.js.map +1 -1
- package/dist/Voicemail/Voicemail.test.js +2 -2
- package/dist/Voicemail/Voicemail.test.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js +78 -70
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.test.js +184 -185
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/constants.js.map +1 -1
- package/dist/Voicemail/types.js.map +1 -1
- package/dist/Voicemail/voicemailFixture.js.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/common/Utils.js +80 -63
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +95 -104
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/index.js.map +1 -1
- package/dist/common/testUtil.js +1 -1
- package/dist/common/testUtil.js.map +1 -1
- package/dist/common/types.js.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +4 -0
- package/dist/module/CallSettings/UcmBackendConnector.js +1 -0
- package/dist/module/CallSettings/WxCallBackendConnector.js +7 -0
- package/dist/module/CallingClient/CallingClient.js +62 -20
- package/dist/module/CallingClient/calling/call.js +66 -43
- package/dist/module/CallingClient/constants.js +2 -1
- package/dist/module/CallingClient/registration/register.js +6 -3
- package/dist/module/CallingClient/registration/webWorker.js +2 -1
- package/dist/module/CallingClient/windowsChromiumIceWarmupUtils.js +1 -4
- package/dist/module/Contacts/ContactsClient.js +23 -17
- package/dist/module/Contacts/constants.js +1 -1
- package/dist/module/Metrics/index.js +42 -0
- package/dist/module/Metrics/types.js +7 -0
- package/dist/module/Voicemail/BroadworksBackendConnector.js +3 -0
- package/dist/module/Voicemail/UcmBackendConnector.js +6 -0
- package/dist/module/Voicemail/WxCallBackendConnector.js +8 -0
- package/dist/module/common/Utils.js +22 -8
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +2 -1
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorker.d.ts +2 -1
- package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
- package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts +2 -4
- package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Contacts/constants.d.ts +1 -1
- package/dist/types/Contacts/constants.d.ts.map +1 -1
- package/dist/types/Metrics/index.d.ts.map +1 -1
- package/dist/types/Metrics/types.d.ts +10 -2
- package/dist/types/Metrics/types.d.ts.map +1 -1
- package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/package.json +7 -5
|
@@ -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","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","F","s","done","value","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","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","_callee2","registration","wrap","_callee2$","_context2","prev","log","info","METHOD_START_MESSAGE","file","CALLING_CLIENT_FILE","method","METHODS","CALLS_CLEARED_HANDLER","_values","lineDict","isDeviceRegistered","mutex","runExclusive","_callee","_callee$","_context","isReconnectPending","CALLS_CLEARED_HANDLER_UTIL","reconnectOnFailure","stop","sdkConnector","SDKConnector","getWebex","_config$logger","setWebex","logger","level","setWebexLogger","Mutex","sdkConfig","serviceData","indicator","ServiceIndicator","CALLING","domain","logLevel","LOGGER","ERROR","setLogger","validateServiceData","callManager","getCallManager","metricManager","getMetricManager","mediaEngine","adaptedLogger","_len","args","_key","join","error","_len2","_key2","warn","_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","_callee3","_callee3$","_context3","windowsChromiumIceWarmup","iceServers","urls","timeoutMs","t0","concat","getMobiusServers","createLine","detectNetworkChange","init","_detectNetworkChange","_callee5","_this2","retry","line","_callee5$","_context5","DETECT_NETWORK_CHANGE","setInterval","_callee4","_callee4$","_context4","mercury","connected","_keys","getActiveCalls","clearKeepaliveTimer","getStatus","RegistrationStatus","IDLE","handleConnectionRestoration","sent","NETWORK_FLAP_TIMEOUT","_getClientRegionInfo","_callee6","_this3","abort","regionInfo","_iterator","_step","_loop","_ret","_callee6$","_context7","GET_CLIENT_REGION_INFO","temp","myIP","response","clientRegionInfo","extendedError","_loop$","_context6","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","body","ipv4","DISCOVERY_URL","addAuthHeader","clientRegion","countryCode","abrupt","Error","handleCallingClientErrors","clientError","_headers$trackingId","_headers3","submitRegistrationMetric","METRIC_EVENT","REGISTRATION_ERROR","REG_ACTION","REGISTER","METRIC_TYPE","BEHAVIORAL","GET_MOBIUS_SERVERS_UTIL","trackingId","undefined","emit","CALLING_CLIENT_EVENT_KEYS","v","delegateYield","t1","finish","getClientRegionInfo","_getMobiusServers","_callee7","_this$sdkConfig3","_this$sdkConfig3$disc","_this$sdkConfig4","_this$sdkConfig4$disc","_this4","useDefault","_this$sdkConfig5","_this$sdkConfig5$disc","_this$sdkConfig6","_this$sdkConfig6$disc","mobiusServers","mobiusUris","_callee7$","_context8","GET_MOBIUS_SERVERS","discovery","country","region","filterMobiusUris","primary","backup","_headers$trackingId2","_headers5","REGISTER_CALLS_CLEARED_LISTENER","on","ALL_CALLS_CLEARED","callsClearedHandler","getLoggingLevel","getLogLevel","getSDKConnector","_this5","REGISTER_SESSIONS_LISTENER","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","_ref4","_callee8","event","sessionArr","_callee8$","_context9","data","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x","_createLine","_callee9","_this$sdkConfig7","_this$sdkConfig8","_callee9$","_context10","CREATE_LINE","Line","userId","jwe","lineId","getLines","activeCalls","calls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","_uploadLogs2","_callee10","_callee10$","_context11","uploadLogs","Eventing","createClient","_ref5","_callee11","callingClientInstance","_callee11$","_context12","_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, LogContext} 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 NETWORK_FLAP_TIMEOUT,\n API_V1,\n MOBIUS_US_PROD,\n MOBIUS_EU_PROD,\n MOBIUS_US_INT,\n MOBIUS_EU_INT,\n METHODS,\n} from './constants';\nimport Line from './line';\nimport {ILine} from './line/types';\nimport {METRIC_EVENT, REG_ACTION, METRIC_TYPE, IMetricManager} 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 /**\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 // async calls required to run after constructor\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 try {\n await windowsChromiumIceWarmup({\n iceServers: [\n {urls: 'stun:stun01a-us.bcld.webex.com:5004'},\n {urls: 'stun:stun02a-us.bcld.webex.com:5004'},\n ],\n timeoutMs: 1000,\n });\n log.info(`ICE warmup completed`, '' as LogContext);\n } catch (err) {\n log.warn(`ICE warmup failed: ${err}`, '' as LogContext);\n }\n\n await this.getMobiusServers();\n await this.createLine();\n\n /* Better to run the timer once rather than after every registration */\n this.detectNetworkChange();\n }\n\n /**\n * Register callbacks for network changes.\n */\n private async detectNetworkChange() {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.DETECT_NETWORK_CHANGE,\n });\n let retry = false;\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 line = Object.values(this.lineDict)[0];\n\n setInterval(async () => {\n if (\n !this.webex.internal.mercury.connected &&\n !retry &&\n !Object.keys(this.callManager.getActiveCalls()).length\n ) {\n log.warn(`Network has flapped, waiting for mercury connection to be up`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.DETECT_NETWORK_CHANGE,\n });\n\n line.registration.clearKeepaliveTimer();\n\n retry = true;\n }\n\n if (retry && this.webex.internal.mercury.connected) {\n if (line.getStatus() !== RegistrationStatus.IDLE) {\n retry = await line.registration.handleConnectionRestoration(retry);\n } else {\n retry = false;\n }\n }\n }, NETWORK_FLAP_TIMEOUT);\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 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 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 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 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 '' as LogContext\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}?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('Mobius Server found for the region', '' as LogContext);\n const mobiusServers = temp.body as MobiusServers;\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 log.info(\n `Final list of Mobius Servers, primary: ${mobiusUris.primary} and backup: ${mobiusUris.backup}`,\n '' as LogContext\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 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 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 '' as LogContext\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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"}
|
|
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","_callee2","registration","wrap","_callee2$","_context2","prev","log","info","METHOD_START_MESSAGE","file","CALLING_CLIENT_FILE","method","METHODS","CALLS_CLEARED_HANDLER","_values","lineDict","isDeviceRegistered","mutex","runExclusive","_callee","_callee$","_context","isReconnectPending","CALLS_CLEARED_HANDLER_UTIL","reconnectOnFailure","stop","sdkConnector","SDKConnector","getWebex","_config$logger","setWebex","logger","level","setWebexLogger","Mutex","sdkConfig","serviceData","indicator","ServiceIndicator","CALLING","domain","logLevel","LOGGER","ERROR","setLogger","validateServiceData","callManager","getCallManager","metricManager","getMetricManager","mediaEngine","adaptedLogger","_len","args","_key","join","error","_len2","_key2","warn","_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","_callee3","_window","_window$navigator","ua","_callee3$","_context3","window","navigator","userAgent","toLowerCase","includes","windowsChromiumIceWarmup","iceServers","timeoutMs","t0","concat","getMobiusServers","createLine","detectNetworkChange","init","_detectNetworkChange","_callee5","_this2","retry","line","_callee5$","_context5","DETECT_NETWORK_CHANGE","setInterval","_callee4","_callee4$","_context4","mercury","connected","_keys","getActiveCalls","clearKeepaliveTimer","getStatus","RegistrationStatus","IDLE","handleConnectionRestoration","sent","NETWORK_FLAP_TIMEOUT","_getClientRegionInfo","_callee6","_this3","abort","regionInfo","_iterator","_step","_loop","_ret","_callee6$","_context7","GET_CLIENT_REGION_INFO","_temp$headers","_response$headers","_response$headers2","_response$headers$tra","_response$headers3","temp","myIP","response","clientRegionInfo","extendedError","_loop$","_context6","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","METRIC_EVENT","MOBIUS_DISCOVERY","MOBIUS_SERVER_ACTION","REGION_INFO","METRIC_TYPE","BEHAVIORAL","abrupt","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","delegateYield","t1","finish","getClientRegionInfo","_getMobiusServers","_callee7","_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","_callee7$","_context8","GET_MOBIUS_SERVERS","discovery","country","region","submitMobiusServersMetric","MOBIUS_SERVERS","filterMobiusUris","primary","backup","_headers$trackingId2","_headers5","REGISTER_CALLS_CLEARED_LISTENER","on","ALL_CALLS_CLEARED","callsClearedHandler","getLoggingLevel","getLogLevel","getSDKConnector","_this5","REGISTER_SESSIONS_LISTENER","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","_ref4","_callee8","event","sessionArr","_callee8$","_context9","data","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x","_createLine","_callee9","_this$sdkConfig7","_this$sdkConfig8","_callee9$","_context0","CREATE_LINE","Line","userId","jwe","lineId","getLines","activeCalls","calls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","_uploadLogs2","_callee0","result","_callee0$","_context1","Eventing","createClient","_ref5","_callee1","callingClientInstance","_callee1$","_context10","_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 NETWORK_FLAP_TIMEOUT,\n API_V1,\n MOBIUS_US_PROD,\n MOBIUS_EU_PROD,\n MOBIUS_US_INT,\n MOBIUS_EU_INT,\n METHODS,\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 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 /**\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 // async calls required to run after constructor\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 /* Better to run the timer once rather than after every registration */\n this.detectNetworkChange();\n }\n\n /**\n * Register callbacks for network changes.\n */\n private async detectNetworkChange() {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.DETECT_NETWORK_CHANGE,\n });\n let retry = false;\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 line = Object.values(this.lineDict)[0];\n\n setInterval(async () => {\n if (\n !this.webex.internal.mercury.connected &&\n !retry &&\n !Object.keys(this.callManager.getActiveCalls()).length\n ) {\n log.warn(`Network has flapped, waiting for mercury connection to be up`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.DETECT_NETWORK_CHANGE,\n });\n\n line.registration.clearKeepaliveTimer();\n\n retry = true;\n }\n\n if (retry && this.webex.internal.mercury.connected) {\n if (line.getStatus() !== RegistrationStatus.IDLE) {\n retry = await line.registration.handleConnectionRestoration(retry);\n } else {\n retry = false;\n }\n }\n }, NETWORK_FLAP_TIMEOUT);\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":[]}
|