@webex/calling 3.9.0-next.6 → 3.9.0-next.7
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/CallingClient/CallingClient.js +26 -6
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +90 -0
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/constants.js +1 -0
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +146 -0
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -0
- package/dist/module/CallingClient/CallingClient.js +14 -0
- package/dist/module/CallingClient/constants.js +1 -0
- package/dist/module/CallingClient/windowsChromiumIceWarmupUtils.js +62 -0
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +1 -0
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts +7 -0
- package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_asyncMutex","require","Media","_interopRequireWildcard","_types","_testUtil","_types2","_types3","_Logger","_interopRequireDefault","_CallingClient","_Utils","utils","_callManager","_constants","_callRecordFixtures","_callingClientFixtures","_line","_registerFixtures","_constants2","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","global","crypto","randomUUID","jest","spyOn","mockResolvedValue","undefined","describe","handleErrorSpy","setLoggerSpy","webex","getTestUtilsWebex","internal","services","mockCatalogUS","defaultServiceIndicator","ServiceIndicator","CALLING","callManager","getCallManager","logSpy","log","warnSpy","originalProcessNextTick","process","nextTick","flushPromises","_promise","resolve","afterAll","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","urlSpy","callingClient","wrap","_callee$","_context","prev","next","_hostCatalog","mockCatalogEU","window","mockImplementation","url","URL","createClient","logger","level","LOGGER","INFO","sent","expect","toHaveBeenCalledWith","toStrictEqual","mockEUServiceHosts","mockRestore","stop","_callee2","_callee2$","_context2","_serviceUrls","mobius","toHaveBeenCalledTimes","mockUSServiceHosts","afterEach","_callee4","_callee4$","_context4","_callee3","_callee3$","_context3","toBeTruthy","not","toThrow","Error","_callee6","serviceDataObj","_callee6$","_context6","indicator","domain","_callee5","_callee5$","_context5","serviceData","_callee7","_callee7$","_context7","t0","message","toEqual","assertions","_callee8","_callee8$","_context8","_callee10","_callee10$","_context10","_callee9","_callee9$","_context9","_callee11","_callee11$","_context11","CONTACT_CENTER","_callee13","_callee13$","_context13","_callee12","_callee12$","_context12","_callee14","_callee14$","_context14","getLoggingLevel","clearAllTimers","clearAllMocks","useRealTimers","_callee15","_callee15$","_context15","request","mockResolvedValueOnce","ipPayload","regionPayload","discoveryPayload","toBeCalledTimes","primaryMobiusUris","primaryUrl","toBeCalled","nthCalledWith","method","getMockRequestTemplate","uri","concat","URL_ENDPOINT","IP_ENDPOINT","DISCOVERY_URL","myIP","addAuthHeader","headers","SPARK_USER_AGENT","regionBody","clientRegion","countryCode","_callee16","failurePayload","_callee16$","_context16","statusCode","mockRejectedValue","toBeCalledWith","anything","file","CALLING_CLIENT_FILE","_callee17","_callee17$","_context17","mockRejectedValueOnce","toBeCalledOnceWith","_callee18","_callee18$","_context18","_callee19","_callee19$","_context19","_callee20","infoSpy","_callee20$","_context20","mockReset","discovery","region","country","METHOD_START_MESSAGE","toHaveBeenCalled","mobiusCluster","checkCluster","_ref21","_callee21","mockServiceHosts","mockCatalog","_callee21$","_context21","_x","_x2","each","_ref22","_callee22","clusterName","_callee22$","_context22","abrupt","mockIntServiceHosts","mockCatalogUSInt","mockEUIntServiceHosts","mockCatalogEUInt","_x3","line","reg","restoreSpy","deRegSpy","restartRegisterSpy","registerSpy","beforeEach","_callee23","_callee23$","_context23","useFakeTimers","registrationPayload","_values","lineDict","registration","register","_callee24","_callee24$","_context24","mockClear","getStatus","RegistrationStatus","ACTIVE","mercury","connected","advanceTimersByTime","NETWORK_FLAP_TIMEOUT","NETWORK_CHANGE_DETECTION_UTIL","info","REGISTRATION_FILE","getActiveMobiusUrl","_callee25","mockRegistrationBody","successPayload","_callee25$","_context25","body","getMockDeviceInfo","_callee26","handleConnectionRestoreSpy","_callee26$","_context26","setStatus","IDLE","_callee27","_callee27$","_context27","createCall","_keys","getActiveCalls","toBe","_callee28","_callee28$","_context28","getLines","mutex","Mutex","userId","device","clientDeviceUri","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","fn","primary","backupMobiusUris","backup","beforeAll","_callee29","calls","_callee29$","_context29","Line","end","getSDKConnector","getWebex","makeCall","address","type","CallType","URI","getConnectedCall","mockCall","mockCall2","state","value","mockActiveCalls","mockCorrelationId","mockCorrelationId2","mockReturnValue","mockDeviceId","lineId","mockDeviceId2","mockCall3","mockCorrelationId3","mockLineId","mockLineId2","mockOn","on","_callee30","_callee30$","_context30","done","CALLING_CLIENT_EVENT_KEYS","USER_SESSION_INFO","event","data","MOCK_SESSION_EVENT","mock","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","userSessions","MOCK_MULTIPLE_SESSIONS_EVENT"],"sources":["CallingClient.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {\n getTestUtilsWebex,\n getMockRequestTemplate,\n getMockDeviceInfo,\n getMobiusDiscoveryResponse,\n} from '../common/testUtil';\nimport {CallType, RegistrationStatus, ServiceIndicator, WebexRequestPayload} from '../common/types';\n/* eslint-disable dot-notation */\nimport {CALLING_CLIENT_EVENT_KEYS, CallSessionEvent, MOBIUS_EVENT_KEYS} from '../Events/types';\nimport log from '../Logger';\nimport {createClient} from './CallingClient';\nimport {ICallingClient} from './types';\nimport * as utils from '../common/Utils';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n DISCOVERY_URL,\n IP_ENDPOINT,\n NETWORK_CHANGE_DETECTION_UTIL,\n NETWORK_FLAP_TIMEOUT,\n REGISTRATION_FILE,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n} from './constants';\nimport {MOCK_MULTIPLE_SESSIONS_EVENT, MOCK_SESSION_EVENT} from './callRecordFixtures';\nimport {ILine} from './line/types';\nimport {\n ipPayload,\n regionBody,\n regionPayload,\n primaryUrl,\n discoveryPayload,\n registrationPayload,\n myIP,\n mockEUServiceHosts,\n mockIntServiceHosts,\n mockEUIntServiceHosts,\n mockCatalogEU,\n mockCatalogUSInt,\n mockCatalogUS,\n mockCatalogEUInt,\n mockUSServiceHosts,\n} from './callingClientFixtures';\nimport Line from './line';\nimport {filterMobiusUris} from '../common/Utils';\nimport {URL} from './registration/registerFixtures';\nimport {ICall} from './calling/types';\nimport {ServiceHost} from '../SDKConnector/types';\nimport {METHOD_START_MESSAGE} from '../common/constants';\n\nglobal.crypto = {\n randomUUID: () => '12345678-1234-5678-1234-567812345678',\n} as unknown as Crypto;\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('CallingClient Tests', () => {\n // Common initializers\n\n const handleErrorSpy = jest.spyOn(utils, 'handleCallingClientErrors');\n const setLoggerSpy = jest.spyOn(Media, 'setLogger');\n const webex = getTestUtilsWebex();\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n const defaultServiceIndicator = ServiceIndicator.CALLING;\n const callManager = getCallManager(webex, defaultServiceIndicator);\n\n const logSpy = jest.spyOn(log, 'info');\n const warnSpy = jest.spyOn(log, 'warn');\n\n const originalProcessNextTick = process.nextTick;\n function flushPromises() {\n return new Promise((resolve) => {\n originalProcessNextTick(resolve);\n });\n }\n\n describe('CallingClient pick Mobius cluster using Service Host Tests', () => {\n afterAll(() => {\n callManager.removeAllListeners();\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n });\n\n it('should set mobiusServiceHost correctly when URL is valid', async () => {\n webex.internal.services._hostCatalog = mockCatalogEU;\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1';\n const urlSpy = jest.spyOn(window, 'URL').mockImplementation((url) => new window.URL(url));\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(urlSpy).toHaveBeenCalledWith(\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1'\n );\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockEUServiceHosts);\n\n urlSpy.mockRestore();\n });\n\n it('should use default mobius service host when Service URL is invalid', async () => {\n webex.internal.services._hostCatalog = mockCatalogUS;\n webex.internal.services._serviceUrls.mobius = 'invalid-url';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(setLoggerSpy).toHaveBeenCalledTimes(1);\n expect(callingClient['mobiusClusters']).toStrictEqual(mockUSServiceHosts);\n });\n });\n\n describe('ServiceData tests', () => {\n let callingClient: ICallingClient | undefined;\n\n afterEach(() => {\n callManager.removeAllListeners();\n callingClient = undefined;\n });\n\n /**\n * No input sdk config to callingClient, it should default to service type\n * calling and empty domain value.\n */\n it('Verify valid calling serviceData with no input sdk config', async () => {\n expect(async () => {\n callingClient = await createClient(webex);\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying empty string for\n * both indicator and domain in it.\n *\n * It should default to service type calling and empty domain value.\n *\n */\n it('Verify invalid empty service indicator, empty domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: '', domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying invalid value for indicator\n * and valid domain type string for domain field in it.\n *\n * It should throw error and abort execution as indicator value is invalid.\n *\n * INDICATOR value MUST MATCH with one of the values in ServiceIndicator enum.\n */\n it('Verify invalid service indicator, valid domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: 'test', domain: 'test.example.com'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual(\n 'Invalid service indicator, Allowed values are: calling, contactcenter and guestcalling'\n );\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', but an invalid domain type string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type calling is allowed to be empty but if it carries a non-empty\n * string then it must be of valid domain type.\n */\n it('CALLING: verify invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: 'test'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', and an empty string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'calling' is allowed to be empty.\n */\n it('CALLING: verify valid empty service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter', but an empty string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify empty invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CONTACT_CENTER, domain: ''};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter' , and a valid domain type string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify valid service domain', async () => {\n const serviceDataObj = {\n indicator: ServiceIndicator.CONTACT_CENTER,\n domain: 'test.example.com',\n };\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n it('Get current log level', async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(callingClient).toBeTruthy();\n expect(callingClient.getLoggingLevel).toBeTruthy();\n expect(callingClient.getLoggingLevel()).toEqual(LOGGER.INFO);\n });\n });\n\n describe('Mobius Server discovery tests', () => {\n let callingClient;\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify successful mobius server url discovery', async () => {\n webex.request\n .mockResolvedValueOnce(ipPayload)\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(3);\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}${IP_ENDPOINT}`,\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n uri: `${DISCOVERY_URL}/${myIP}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(webex.request).nthCalledWith(3, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n });\n });\n\n it('case when region discovery fails', async () => {\n const failurePayload = {\n statusCode: 500,\n };\n\n webex.request.mockRejectedValue(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).nthCalledWith(1, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-us-east-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(webex.request).nthCalledWith(2, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-ca-central-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(webex.request).nthCalledWith(3, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(webex.request).nthCalledWith(4, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-ap-southeast-2.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n ''\n );\n });\n\n it('case when /myIP failed with 401', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: 'https://mobius-us-east-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n ''\n );\n });\n\n it('when region discovery succeeds but region based mobius url discovery fails', async () => {\n const failurePayload = {\n statusCode: 500,\n };\n\n webex.request\n .mockResolvedValueOnce(ipPayload)\n .mockResolvedValueOnce(regionPayload)\n .mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n expect(webex.request).toBeCalledTimes(3);\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}${IP_ENDPOINT}`,\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n uri: `${DISCOVERY_URL}/${myIP}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n ''\n );\n });\n\n it('case when discovery failed with 401', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockResolvedValueOnce(ipPayload).mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).nthCalledWith(1, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-us-east-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n uri: `${DISCOVERY_URL}/${myIP}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n ''\n );\n });\n\n it('Verify successful mobius server url discovery after initializing callingClient through a config', async () => {\n const infoSpy = jest.spyOn(log, 'info');\n infoSpy.mockReset();\n webex.request.mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {\n discovery: {\n region: 'AP-SOUTHEAST',\n country: 'IN',\n },\n logger: {\n level: LOGGER.INFO,\n },\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: 'CallingClient',\n method: 'getMobiusServers',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n method: 'GET',\n });\n\n expect(handleErrorSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('Testing each cluster present withing host catalog', () => {\n const mobiusCluster = [\n 'mobius-eu-central-1.prod.infra.webex.com',\n 'mobius-us-east-1.int.infra.webex.com',\n 'mobius-eu-central-1.int.infra.webex.com',\n ];\n\n const checkCluster = async (\n mockServiceHosts: ServiceHost[],\n mockCatalog: Record<string, ServiceHost[]>\n ) => {\n webex.internal.services._hostCatalog = mockCatalog;\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockServiceHosts);\n };\n\n it.each(mobiusCluster)('%s', async (clusterName) => {\n switch (clusterName) {\n case 'mobius-eu-central-1.prod.infra.webex.com':\n checkCluster(mockEUServiceHosts, mockCatalogEU);\n break;\n case 'mobius-us-east-1.int.infra.webex.com':\n checkCluster(mockIntServiceHosts, mockCatalogUSInt);\n break;\n case 'mobius-eu-central-1.int.infra.webex.com':\n checkCluster(mockEUIntServiceHosts, mockCatalogEUInt);\n break;\n default:\n break;\n }\n });\n });\n\n describe('Network activity detection tests', () => {\n let callingClient;\n let line;\n let reg;\n let restoreSpy;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let deRegSpy;\n let restartRegisterSpy;\n let registerSpy;\n\n beforeEach(async () => {\n jest.useFakeTimers();\n\n webex.request\n .mockResolvedValueOnce(ipPayload)\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload)\n .mockResolvedValueOnce(registrationPayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n line = Object.values(callingClient.lineDict)[0] as ILine;\n reg = line.registration;\n await line.register();\n\n deRegSpy = jest.spyOn(line.registration, 'deregister');\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n restartRegisterSpy = jest.spyOn(reg, 'restartRegistration');\n registerSpy = jest.spyOn(reg, 'attemptRegistrationWithServers');\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('detect a network flap in mercury connection', async () => {\n warnSpy.mockClear();\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n\n /* Set mercury connection to be down and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = false;\n\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n /* We should be detecting the network flap */\n expect(warnSpy).toBeCalledOnceWith(\n 'Network has flapped, waiting for mercury connection to be up',\n {file: CALLING_CLIENT_FILE, method: NETWORK_CHANGE_DETECTION_UTIL}\n );\n\n /* Set mercury connection to be up and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = true;\n\n logSpy.mockReset();\n\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n await flushPromises();\n\n log.info('Mercury connection is up again, re-registering with Webex Calling if needed', {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n });\n\n /* We should be detecting the network recovery */\n expect(logSpy).toHaveBeenCalledWith(\n 'Mercury connection is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(webex.request).toHaveBeenCalledTimes(6);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n });\n\n it('Simulate a network flap with no active calls and re-verify registration: Restore Failure', async () => {\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 500,\n body: '',\n });\n\n const mockRegistrationBody = getMockDeviceInfo();\n const successPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockRegistrationBody,\n });\n\n webex.request.mockRejectedValueOnce(failurePayload).mockResolvedValueOnce(successPayload);\n\n /* Set mercury connection to be down and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = false;\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n /* We should be detecting the network flap */\n expect(warnSpy).toBeCalledWith(\n 'Network has flapped, waiting for mercury connection to be up',\n {file: CALLING_CLIENT_FILE, method: NETWORK_CHANGE_DETECTION_UTIL}\n );\n\n /* Set mercury connection to be up and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = true;\n\n logSpy.mockReset();\n\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n await flushPromises();\n\n log.info('Mercury connection is up again, re-registering with Webex Calling if needed', {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n });\n\n /* We should be detecting the network recovery */\n expect(logSpy).toBeCalledWith(\n 'Mercury connection is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(webex.request).toHaveBeenCalledTimes(6);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n });\n\n it('Simulate a network flap before initial registration is done', async () => {\n warnSpy.mockClear();\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n reg.setStatus(RegistrationStatus.IDLE);\n\n /* Set mercury connection to be down and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = false;\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n /* We should be detecting the network flap */\n expect(warnSpy).toBeCalledOnceWith(\n 'Network has flapped, waiting for mercury connection to be up',\n {file: CALLING_CLIENT_FILE, method: NETWORK_CHANGE_DETECTION_UTIL}\n );\n\n /* Set mercury connection to be up and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = true;\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n await flushPromises();\n\n /* We should be detecting the network recovery */\n expect(logSpy).not.toBeCalledWith(\n 'Mercury connection is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n\n /*\n * When initial registration is not done, network flap\n * will not trigger de-registration/registration\n */\n expect(handleConnectionRestoreSpy).not.toBeCalledOnceWith();\n });\n\n it('Simulate a network flap with 1 active call', async () => {\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n\n /** create a new call */\n reg.callManager.createCall();\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(1);\n\n /* Set mercury connection to be down and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = false;\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n await flushPromises();\n\n /* We should be detecting the network flap */\n expect(warnSpy).not.toBeCalledOnceWith(\n 'Network has flapped, waiting for mercury connection to be up',\n {file: CALLING_CLIENT_FILE, method: 'handleConnectionRestoration'}\n );\n\n /* Set mercury connection to be up and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = true;\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n await flushPromises();\n\n /* We should be detecting the network recovery */\n expect(logSpy).not.toBeCalledOnceWith(\n 'Mercury connection is up again, re-registering with Webex Calling if needed',\n {file: REGISTRATION_FILE, method: 'handleConnectionRestoration'}\n );\n\n expect(registerSpy).not.toBeCalledWith(true);\n });\n });\n\n describe('Line creation tests', () => {\n let callingClient;\n let line;\n\n beforeEach(async () => {\n callingClient = await createClient(webex);\n line = Object.values(callingClient.lineDict)[0];\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify line dict successfully created', () => {\n expect(callingClient.lineDict).toBeTruthy();\n expect(line).toBeTruthy();\n expect(Object.keys(callingClient.lineDict).length).toEqual(1);\n });\n\n it('verify getLines response', () => {\n expect(callingClient.getLines).toBeTruthy();\n expect(callingClient.getLines()).toEqual(callingClient.lineDict);\n });\n });\n\n // Calling related test cases\n describe('Calling tests', () => {\n const mutex = new Mutex();\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n\n let callingClient;\n let line: Line;\n\n beforeAll(async () => {\n callingClient = await createClient(webex);\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n const calls = Object.values(callManager.getActiveCalls());\n calls.forEach((call) => {\n call.end();\n });\n });\n\n afterAll(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify calling client object', () => {\n expect(callingClient.getSDKConnector().getWebex().internal.device.userId).toBe(\n '8a67806f-fc4d-446b-a131-31e71ea5b0e9'\n );\n });\n\n it('returns undefined when there is no connected call', () => {\n line.register();\n line.makeCall({address: '123456', type: CallType.URI});\n expect(callingClient.getConnectedCall()).toEqual(undefined);\n });\n\n it('returns the connected call', () => {\n line.register();\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n // Connected call\n mockCall['connected'] = true;\n mockCall['earlyMedia'] = false;\n mockCall['callStateMachine'].state.value = 'S_CALL_ESTABLISHED';\n\n // Held call\n mockCall2['connected'] = true;\n mockCall2['held'] = true;\n mockCall2['earlyMedia'] = false;\n mockCall2['callStateMachine'].state.value = 'S_CALL_HOLD';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getConnectedCall()).toEqual(mockCall);\n });\n it('returns all active calls', () => {\n callingClient.lineDict = {\n mockDeviceId: {lineId: 'mockLineId'} as ILine,\n mockDeviceId2: {lineId: 'mockLineId2'} as ILine,\n };\n\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n const mockCall3 = line.makeCall({address: '9101', type: CallType.URI});\n\n mockCall.lineId = 'mockLineId';\n mockCall2.lineId = 'mockLineId2';\n mockCall3.lineId = 'mockLineId2';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n mockCorrelationId3: mockCall3 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getActiveCalls()).toEqual({\n mockLineId: [mockCall],\n mockLineId2: [mockCall2, mockCall3],\n });\n });\n });\n\n describe('Call Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callingClient: ICallingClient;\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify the recent user session event ', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_SESSION_EVENT);\n });\n\n it('drop the recent user session if there is no webex calling type', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data.userSessions.userSessions.length).toEqual(1);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_MULTIPLE_SESSIONS_EVENT);\n });\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_asyncMutex","require","Media","_interopRequireWildcard","_types","_testUtil","_types2","_types3","_Logger","_interopRequireDefault","_CallingClient","_Utils","utils","_callManager","_constants","_callRecordFixtures","_callingClientFixtures","_line","_registerFixtures","_constants2","_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","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","global","crypto","randomUUID","jest","spyOn","mockResolvedValue","undefined","describe","handleErrorSpy","setLoggerSpy","webex","getTestUtilsWebex","internal","services","mockCatalogUS","defaultServiceIndicator","ServiceIndicator","CALLING","callManager","getCallManager","logSpy","log","warnSpy","originalProcessNextTick","process","nextTick","flushPromises","_promise","resolve","afterAll","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","urlSpy","callingClient","wrap","_callee$","_context","prev","next","_hostCatalog","mockCatalogEU","window","mockImplementation","url","URL","createClient","logger","level","LOGGER","INFO","sent","expect","toHaveBeenCalledWith","toStrictEqual","mockEUServiceHosts","mockRestore","stop","_callee2","_callee2$","_context2","_serviceUrls","mobius","toHaveBeenCalledTimes","mockUSServiceHosts","afterEach","_callee4","_callee4$","_context4","_callee3","_callee3$","_context3","toBeTruthy","not","toThrow","Error","_callee6","serviceDataObj","_callee6$","_context6","indicator","domain","_callee5","_callee5$","_context5","serviceData","_callee7","_callee7$","_context7","t0","message","toEqual","assertions","_callee8","_callee8$","_context8","_callee10","_callee10$","_context10","_callee9","_callee9$","_context9","_callee11","_callee11$","_context11","CONTACT_CENTER","_callee13","_callee13$","_context13","_callee12","_callee12$","_context12","_callee14","_callee14$","_context14","getLoggingLevel","clearAllTimers","clearAllMocks","useRealTimers","_callee15","_callee15$","_context15","request","mockResolvedValueOnce","ipPayload","regionPayload","discoveryPayload","toBeCalledTimes","primaryMobiusUris","primaryUrl","toBeCalled","nthCalledWith","method","getMockRequestTemplate","uri","concat","URL_ENDPOINT","IP_ENDPOINT","DISCOVERY_URL","myIP","addAuthHeader","headers","SPARK_USER_AGENT","regionBody","clientRegion","countryCode","_callee16","failurePayload","_callee16$","_context16","statusCode","mockRejectedValue","toBeCalledWith","anything","file","CALLING_CLIENT_FILE","_callee17","_callee17$","_context17","mockRejectedValueOnce","toBeCalledOnceWith","_callee18","_callee18$","_context18","_callee19","_callee19$","_context19","_callee20","infoSpy","_callee20$","_context20","mockReset","discovery","region","country","METHOD_START_MESSAGE","toHaveBeenCalled","mobiusCluster","checkCluster","_ref21","_callee21","mockServiceHosts","mockCatalog","_callee21$","_context21","_x","_x2","each","_ref22","_callee22","clusterName","_callee22$","_context22","abrupt","mockIntServiceHosts","mockCatalogUSInt","mockEUIntServiceHosts","mockCatalogEUInt","_x3","line","reg","restoreSpy","deRegSpy","restartRegisterSpy","registerSpy","beforeEach","_callee23","_callee23$","_context23","useFakeTimers","registrationPayload","_values","lineDict","registration","register","_callee24","_callee24$","_context24","mockClear","getStatus","RegistrationStatus","ACTIVE","mercury","connected","advanceTimersByTime","NETWORK_FLAP_TIMEOUT","NETWORK_CHANGE_DETECTION_UTIL","info","REGISTRATION_FILE","getActiveMobiusUrl","_callee25","mockRegistrationBody","successPayload","_callee25$","_context25","body","getMockDeviceInfo","_callee26","handleConnectionRestoreSpy","_callee26$","_context26","setStatus","IDLE","_callee27","_callee27$","_context27","createCall","_keys","getActiveCalls","toBe","_callee28","_callee28$","_context28","getLines","mutex","Mutex","userId","device","clientDeviceUri","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","fn","primary","backupMobiusUris","backup","beforeAll","_callee29","calls","_callee29$","_context29","Line","end","getSDKConnector","getWebex","makeCall","address","type","CallType","URI","getConnectedCall","mockCall","mockCall2","state","value","mockActiveCalls","mockCorrelationId","mockCorrelationId2","mockReturnValue","mockDeviceId","lineId","mockDeviceId2","mockCall3","mockCorrelationId3","mockLineId","mockLineId2","mockOn","on","_callee30","_callee30$","_context30","done","CALLING_CLIENT_EVENT_KEYS","USER_SESSION_INFO","event","data","MOCK_SESSION_EVENT","mock","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","userSessions","MOCK_MULTIPLE_SESSIONS_EVENT","origRTCPeerConnection","_class","RTCPeerConnection","_classCallCheck2","constructor","instances","_createClass2","key","createDataChannel","addTransceiver","createOffer","sdp","setLocalDescription","desc","localDescription","setRemoteDescription","remoteDescription","createAnswer","addIceCandidate","close","addEventListener","removeEventListener","_callee31","_callee31$","_context31","windowsChromiumIceWarmup","resolves"],"sources":["CallingClient.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {\n getTestUtilsWebex,\n getMockRequestTemplate,\n getMockDeviceInfo,\n getMobiusDiscoveryResponse,\n} from '../common/testUtil';\nimport {CallType, RegistrationStatus, ServiceIndicator, WebexRequestPayload} from '../common/types';\n/* eslint-disable dot-notation */\nimport {CALLING_CLIENT_EVENT_KEYS, CallSessionEvent, MOBIUS_EVENT_KEYS} from '../Events/types';\nimport log from '../Logger';\nimport {createClient} from './CallingClient';\nimport {ICallingClient} from './types';\nimport * as utils from '../common/Utils';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n DISCOVERY_URL,\n IP_ENDPOINT,\n NETWORK_CHANGE_DETECTION_UTIL,\n NETWORK_FLAP_TIMEOUT,\n REGISTRATION_FILE,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n} from './constants';\nimport {MOCK_MULTIPLE_SESSIONS_EVENT, MOCK_SESSION_EVENT} from './callRecordFixtures';\nimport {ILine} from './line/types';\nimport {\n ipPayload,\n regionBody,\n regionPayload,\n primaryUrl,\n discoveryPayload,\n registrationPayload,\n myIP,\n mockEUServiceHosts,\n mockIntServiceHosts,\n mockEUIntServiceHosts,\n mockCatalogEU,\n mockCatalogUSInt,\n mockCatalogUS,\n mockCatalogEUInt,\n mockUSServiceHosts,\n} from './callingClientFixtures';\nimport Line from './line';\nimport {filterMobiusUris} from '../common/Utils';\nimport {URL} from './registration/registerFixtures';\nimport {ICall} from './calling/types';\nimport {ServiceHost} from '../SDKConnector/types';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\n\nglobal.crypto = {\n randomUUID: () => '12345678-1234-5678-1234-567812345678',\n} as unknown as Crypto;\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('CallingClient Tests', () => {\n // Common initializers\n\n const handleErrorSpy = jest.spyOn(utils, 'handleCallingClientErrors');\n const setLoggerSpy = jest.spyOn(Media, 'setLogger');\n const webex = getTestUtilsWebex();\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n const defaultServiceIndicator = ServiceIndicator.CALLING;\n const callManager = getCallManager(webex, defaultServiceIndicator);\n\n const logSpy = jest.spyOn(log, 'info');\n const warnSpy = jest.spyOn(log, 'warn');\n\n const originalProcessNextTick = process.nextTick;\n function flushPromises() {\n return new Promise((resolve) => {\n originalProcessNextTick(resolve);\n });\n }\n\n describe('CallingClient pick Mobius cluster using Service Host Tests', () => {\n afterAll(() => {\n callManager.removeAllListeners();\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n });\n\n it('should set mobiusServiceHost correctly when URL is valid', async () => {\n webex.internal.services._hostCatalog = mockCatalogEU;\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1';\n const urlSpy = jest.spyOn(window, 'URL').mockImplementation((url) => new window.URL(url));\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(urlSpy).toHaveBeenCalledWith(\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1'\n );\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockEUServiceHosts);\n\n urlSpy.mockRestore();\n });\n\n it('should use default mobius service host when Service URL is invalid', async () => {\n webex.internal.services._hostCatalog = mockCatalogUS;\n webex.internal.services._serviceUrls.mobius = 'invalid-url';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(setLoggerSpy).toHaveBeenCalledTimes(1);\n expect(callingClient['mobiusClusters']).toStrictEqual(mockUSServiceHosts);\n });\n });\n\n describe('ServiceData tests', () => {\n let callingClient: ICallingClient | undefined;\n\n afterEach(() => {\n callManager.removeAllListeners();\n callingClient = undefined;\n });\n\n /**\n * No input sdk config to callingClient, it should default to service type\n * calling and empty domain value.\n */\n it('Verify valid calling serviceData with no input sdk config', async () => {\n expect(async () => {\n callingClient = await createClient(webex);\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying empty string for\n * both indicator and domain in it.\n *\n * It should default to service type calling and empty domain value.\n *\n */\n it('Verify invalid empty service indicator, empty domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: '', domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying invalid value for indicator\n * and valid domain type string for domain field in it.\n *\n * It should throw error and abort execution as indicator value is invalid.\n *\n * INDICATOR value MUST MATCH with one of the values in ServiceIndicator enum.\n */\n it('Verify invalid service indicator, valid domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: 'test', domain: 'test.example.com'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual(\n 'Invalid service indicator, Allowed values are: calling, contactcenter and guestcalling'\n );\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', but an invalid domain type string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type calling is allowed to be empty but if it carries a non-empty\n * string then it must be of valid domain type.\n */\n it('CALLING: verify invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: 'test'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', and an empty string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'calling' is allowed to be empty.\n */\n it('CALLING: verify valid empty service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter', but an empty string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify empty invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CONTACT_CENTER, domain: ''};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter' , and a valid domain type string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify valid service domain', async () => {\n const serviceDataObj = {\n indicator: ServiceIndicator.CONTACT_CENTER,\n domain: 'test.example.com',\n };\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n it('Get current log level', async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(callingClient).toBeTruthy();\n expect(callingClient.getLoggingLevel).toBeTruthy();\n expect(callingClient.getLoggingLevel()).toEqual(LOGGER.INFO);\n });\n });\n\n describe('Mobius Server discovery tests', () => {\n let callingClient;\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify successful mobius server url discovery', async () => {\n webex.request\n .mockResolvedValueOnce(ipPayload)\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(3);\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}${IP_ENDPOINT}`,\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n uri: `${DISCOVERY_URL}/${myIP}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(webex.request).nthCalledWith(3, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n });\n });\n\n it('case when region discovery fails', async () => {\n const failurePayload = {\n statusCode: 500,\n };\n\n webex.request.mockRejectedValue(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).nthCalledWith(1, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-us-east-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(webex.request).nthCalledWith(2, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-ca-central-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(webex.request).nthCalledWith(3, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(webex.request).nthCalledWith(4, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-ap-southeast-2.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n ''\n );\n });\n\n it('case when /myIP failed with 401', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: 'https://mobius-us-east-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n ''\n );\n });\n\n it('when region discovery succeeds but region based mobius url discovery fails', async () => {\n const failurePayload = {\n statusCode: 500,\n };\n\n webex.request\n .mockResolvedValueOnce(ipPayload)\n .mockResolvedValueOnce(regionPayload)\n .mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n expect(webex.request).toBeCalledTimes(3);\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}${IP_ENDPOINT}`,\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n uri: `${DISCOVERY_URL}/${myIP}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n ''\n );\n });\n\n it('case when discovery failed with 401', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockResolvedValueOnce(ipPayload).mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).nthCalledWith(1, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-us-east-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n uri: `${DISCOVERY_URL}/${myIP}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n ''\n );\n });\n\n it('Verify successful mobius server url discovery after initializing callingClient through a config', async () => {\n const infoSpy = jest.spyOn(log, 'info');\n infoSpy.mockReset();\n webex.request.mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {\n discovery: {\n region: 'AP-SOUTHEAST',\n country: 'IN',\n },\n logger: {\n level: LOGGER.INFO,\n },\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: 'CallingClient',\n method: 'getMobiusServers',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n method: 'GET',\n });\n\n expect(handleErrorSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('Testing each cluster present withing host catalog', () => {\n const mobiusCluster = [\n 'mobius-eu-central-1.prod.infra.webex.com',\n 'mobius-us-east-1.int.infra.webex.com',\n 'mobius-eu-central-1.int.infra.webex.com',\n ];\n\n const checkCluster = async (\n mockServiceHosts: ServiceHost[],\n mockCatalog: Record<string, ServiceHost[]>\n ) => {\n webex.internal.services._hostCatalog = mockCatalog;\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockServiceHosts);\n };\n\n it.each(mobiusCluster)('%s', async (clusterName) => {\n switch (clusterName) {\n case 'mobius-eu-central-1.prod.infra.webex.com':\n checkCluster(mockEUServiceHosts, mockCatalogEU);\n break;\n case 'mobius-us-east-1.int.infra.webex.com':\n checkCluster(mockIntServiceHosts, mockCatalogUSInt);\n break;\n case 'mobius-eu-central-1.int.infra.webex.com':\n checkCluster(mockEUIntServiceHosts, mockCatalogEUInt);\n break;\n default:\n break;\n }\n });\n });\n\n describe('Network activity detection tests', () => {\n let callingClient;\n let line;\n let reg;\n let restoreSpy;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let deRegSpy;\n let restartRegisterSpy;\n let registerSpy;\n\n beforeEach(async () => {\n jest.useFakeTimers();\n\n webex.request\n .mockResolvedValueOnce(ipPayload)\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload)\n .mockResolvedValueOnce(registrationPayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n line = Object.values(callingClient.lineDict)[0] as ILine;\n reg = line.registration;\n await line.register();\n\n deRegSpy = jest.spyOn(line.registration, 'deregister');\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n restartRegisterSpy = jest.spyOn(reg, 'restartRegistration');\n registerSpy = jest.spyOn(reg, 'attemptRegistrationWithServers');\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('detect a network flap in mercury connection', async () => {\n warnSpy.mockClear();\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n\n /* Set mercury connection to be down and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = false;\n\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n /* We should be detecting the network flap */\n expect(warnSpy).toBeCalledOnceWith(\n 'Network has flapped, waiting for mercury connection to be up',\n {file: CALLING_CLIENT_FILE, method: NETWORK_CHANGE_DETECTION_UTIL}\n );\n\n /* Set mercury connection to be up and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = true;\n\n logSpy.mockReset();\n\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n await flushPromises();\n\n log.info('Mercury connection is up again, re-registering with Webex Calling if needed', {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n });\n\n /* We should be detecting the network recovery */\n expect(logSpy).toHaveBeenCalledWith(\n 'Mercury connection is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(webex.request).toHaveBeenCalledTimes(6);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n });\n\n it('Simulate a network flap with no active calls and re-verify registration: Restore Failure', async () => {\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n\n const failurePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 500,\n body: '',\n });\n\n const mockRegistrationBody = getMockDeviceInfo();\n const successPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockRegistrationBody,\n });\n\n webex.request.mockRejectedValueOnce(failurePayload).mockResolvedValueOnce(successPayload);\n\n /* Set mercury connection to be down and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = false;\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n /* We should be detecting the network flap */\n expect(warnSpy).toBeCalledWith(\n 'Network has flapped, waiting for mercury connection to be up',\n {file: CALLING_CLIENT_FILE, method: NETWORK_CHANGE_DETECTION_UTIL}\n );\n\n /* Set mercury connection to be up and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = true;\n\n logSpy.mockReset();\n\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n await flushPromises();\n\n log.info('Mercury connection is up again, re-registering with Webex Calling if needed', {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n });\n\n /* We should be detecting the network recovery */\n expect(logSpy).toBeCalledWith(\n 'Mercury connection is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(webex.request).toHaveBeenCalledTimes(6);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n });\n\n it('Simulate a network flap before initial registration is done', async () => {\n warnSpy.mockClear();\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n reg.setStatus(RegistrationStatus.IDLE);\n\n /* Set mercury connection to be down and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = false;\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n /* We should be detecting the network flap */\n expect(warnSpy).toBeCalledOnceWith(\n 'Network has flapped, waiting for mercury connection to be up',\n {file: CALLING_CLIENT_FILE, method: NETWORK_CHANGE_DETECTION_UTIL}\n );\n\n /* Set mercury connection to be up and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = true;\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n await flushPromises();\n\n /* We should be detecting the network recovery */\n expect(logSpy).not.toBeCalledWith(\n 'Mercury connection is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n\n /*\n * When initial registration is not done, network flap\n * will not trigger de-registration/registration\n */\n expect(handleConnectionRestoreSpy).not.toBeCalledOnceWith();\n });\n\n it('Simulate a network flap with 1 active call', async () => {\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n\n /** create a new call */\n reg.callManager.createCall();\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(1);\n\n /* Set mercury connection to be down and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = false;\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n await flushPromises();\n\n /* We should be detecting the network flap */\n expect(warnSpy).not.toBeCalledOnceWith(\n 'Network has flapped, waiting for mercury connection to be up',\n {file: CALLING_CLIENT_FILE, method: 'handleConnectionRestoration'}\n );\n\n /* Set mercury connection to be up and execute a delay of 2.5 seconds */\n webex.internal.mercury.connected = true;\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 500);\n\n await flushPromises();\n\n /* We should be detecting the network recovery */\n expect(logSpy).not.toBeCalledOnceWith(\n 'Mercury connection is up again, re-registering with Webex Calling if needed',\n {file: REGISTRATION_FILE, method: 'handleConnectionRestoration'}\n );\n\n expect(registerSpy).not.toBeCalledWith(true);\n });\n });\n\n describe('Line creation tests', () => {\n let callingClient;\n let line;\n\n beforeEach(async () => {\n callingClient = await createClient(webex);\n line = Object.values(callingClient.lineDict)[0];\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify line dict successfully created', () => {\n expect(callingClient.lineDict).toBeTruthy();\n expect(line).toBeTruthy();\n expect(Object.keys(callingClient.lineDict).length).toEqual(1);\n });\n\n it('verify getLines response', () => {\n expect(callingClient.getLines).toBeTruthy();\n expect(callingClient.getLines()).toEqual(callingClient.lineDict);\n });\n });\n\n // Calling related test cases\n describe('Calling tests', () => {\n const mutex = new Mutex();\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n\n let callingClient;\n let line: Line;\n\n beforeAll(async () => {\n callingClient = await createClient(webex);\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n const calls = Object.values(callManager.getActiveCalls());\n calls.forEach((call) => {\n call.end();\n });\n });\n\n afterAll(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify calling client object', () => {\n expect(callingClient.getSDKConnector().getWebex().internal.device.userId).toBe(\n '8a67806f-fc4d-446b-a131-31e71ea5b0e9'\n );\n });\n\n it('returns undefined when there is no connected call', () => {\n line.register();\n line.makeCall({address: '123456', type: CallType.URI});\n expect(callingClient.getConnectedCall()).toEqual(undefined);\n });\n\n it('returns the connected call', () => {\n line.register();\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n // Connected call\n mockCall['connected'] = true;\n mockCall['earlyMedia'] = false;\n mockCall['callStateMachine'].state.value = 'S_CALL_ESTABLISHED';\n\n // Held call\n mockCall2['connected'] = true;\n mockCall2['held'] = true;\n mockCall2['earlyMedia'] = false;\n mockCall2['callStateMachine'].state.value = 'S_CALL_HOLD';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getConnectedCall()).toEqual(mockCall);\n });\n it('returns all active calls', () => {\n callingClient.lineDict = {\n mockDeviceId: {lineId: 'mockLineId'} as ILine,\n mockDeviceId2: {lineId: 'mockLineId2'} as ILine,\n };\n\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n const mockCall3 = line.makeCall({address: '9101', type: CallType.URI});\n\n mockCall.lineId = 'mockLineId';\n mockCall2.lineId = 'mockLineId2';\n mockCall3.lineId = 'mockLineId2';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n mockCorrelationId3: mockCall3 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getActiveCalls()).toEqual({\n mockLineId: [mockCall],\n mockLineId2: [mockCall2, mockCall3],\n });\n });\n });\n\n describe('Call Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callingClient: ICallingClient;\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify the recent user session event ', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_SESSION_EVENT);\n });\n\n it('drop the recent user session if there is no webex calling type', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data.userSessions.userSessions.length).toEqual(1);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_MULTIPLE_SESSIONS_EVENT);\n });\n });\n\n describe('windowsChromiumIceWarmup', () => {\n let origRTCPeerConnection: any;\n\n beforeAll(() => {\n origRTCPeerConnection = global.RTCPeerConnection;\n // Minimal mock for RTCPeerConnection\n global.RTCPeerConnection = class {\n static instances: any[] = [];\n iceGatheringState = 'complete';\n localDescription = null;\n remoteDescription = null;\n onicecandidate: ((e: any) => void) | null = null;\n constructor() {\n (this.constructor as any).instances.push(this);\n }\n\n createDataChannel() {\n return {};\n }\n\n addTransceiver() {\n return {};\n }\n\n createOffer() {\n return Promise.resolve({sdp: 'offer', type: 'offer'});\n }\n\n setLocalDescription(desc: any) {\n this.localDescription = desc;\n\n return Promise.resolve();\n }\n\n setRemoteDescription(desc: any) {\n this.remoteDescription = desc;\n\n return Promise.resolve();\n }\n\n createAnswer() {\n return Promise.resolve({sdp: 'answer', type: 'answer'});\n }\n\n addIceCandidate() {\n return Promise.resolve();\n }\n\n close() {}\n addEventListener() {}\n removeEventListener() {}\n };\n });\n\n afterAll(() => {\n global.RTCPeerConnection = origRTCPeerConnection;\n });\n\n it('should complete without throwing', async () => {\n await expect(windowsChromiumIceWarmup({})).resolves.not.toThrow();\n });\n });\n});\n"],"mappings":"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"}
|
|
@@ -157,6 +157,7 @@ var METHODS = exports.METHODS = {
|
|
|
157
157
|
HANDLE_OUTGOING_ROAP_ANSWER: 'handleOutgoingRoapAnswer',
|
|
158
158
|
HANDLE_INCOMING_ROAP_OFFER: 'handleIncomingRoapOffer',
|
|
159
159
|
HANDLE_INCOMING_ROAP_ANSWER: 'handleIncomingRoapAnswer',
|
|
160
|
+
INIT: 'init',
|
|
160
161
|
FORCE_SEND_STATS_REPORT: 'forceSendStatsReport',
|
|
161
162
|
UPDATE_ACTIVE_MOBIUS: 'updateActiveMobius',
|
|
162
163
|
DEQUEUE_WS_EVENTS: 'dequeueWsEvents',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VERSION","exports","USER_AGENT_VERSION","REPO_NAME","CALLING_USER_AGENT","concat","CALL_ENDPOINT_RESOURCE","CALL_STATUS_RESOURCE","CALLS_ENDPOINT_RESOURCE","CISCO_DEVICE_URL","CRLF","DEFAULT_KEEPALIVE_INTERVAL","DEFAULT_LOCAL_CALL_ID","DEFAULT_REHOMING_INTERVAL_MAX","DEFAULT_REHOMING_INTERVAL_MIN","DEFAULT_SESSION_TIMER","DEVICES_ENDPOINT_RESOURCE","DISCOVERY_URL","DUMMY_METRICS","Dur","Pkt","Oct","LatePkt","LostPkt","AvgJit","VQMetrics","VoRxCodec","VoPktSizeMs","maxJitter","VoOneWayDelayMs","networkType","hwType","VoTxCodec","rtpBitRate","DUMMY_MOBIUS_URL","IP_ENDPOINT","INITIAL_SEQ_NUMBER","MEDIA_ENDPOINT_RESOURCE","NETWORK_FLAP_TIMEOUT","CALL_HOLD_SERVICE","CALL_TRANSFER_SERVICE","HOLD_ENDPOINT","TRANSFER_ENDPOINT","RESUME_ENDPOINT","SPARK_USER_AGENT","REGISTER_RETRY_TIMEOUT","SUPPLEMENTARY_SERVICES_TIMEOUT","API_V1","URL_ENDPOINT","VALID_PHONE_REGEX","WEB_AGENT","WEBEX","WEBEX_WEB_CLIENT","CALLER_ID_FILE","UTILS_FILE","CALLING_CLIENT_FILE","LINE_FILE","CALL_FILE","CALL_MANAGER_FILE","METRIC_FILE","REGISTRATION_FILE","CODEC_ID","MEDIA_ID","RTC_ICE_CANDIDATE_PAIR","LOCAL_CANDIDATE_ID","RTC_ICE_CANDIDATE","NETWORK_TYPE","RTC_CODEC","INBOUND_CODEC_MATCH","OUTBOUND_CODEC_MATCH","MIME_TYPE","REMOTE_INBOUND_RTP","TOTAL_ROUND_TRIP_TIME","ROUND_TRIP_TIME_MEASUREMENTS","INBOUND_RTP","OUTBOUND_RTP","PACKETS_RECEIVED","PACKETS_SENT","PACKETS_LOST","PACKETS_DISCARDED","JITTER_BUFFER_DELAY","JITTER_BUFFER_EMITTED_COUNT","TIMESTAMP","TYPE","TRANSPORT","TARGET_BIT_RATE","MEDIA_SOURCE","BYTES_RECEIVED","BYTES_SENT","SELECTED_CANDIDATE_PAIR_ID","TOTAL_SAMPLES_DURATION","RTP_RX_STAT","RTP_TX_STAT","BASE_REG_TIMER_MFACTOR","BASE_REG_RETRY_TIMER_VAL_IN_SEC","SEC_TO_MSEC_MFACTOR","MINUTES_TO_SEC_MFACTOR","REG_RANDOM_T_FACTOR_UPPER_LIMIT","REG_TRY_BACKUP_TIMER_VAL_IN_SEC","REG_FAILBACK_429_MAX_RETRIES","RETRY_TIMER_UPPER_LIMIT","REGISTRATION_UTIL","REGISTER_UTIL","GET_MOBIUS_SERVERS_UTIL","KEEPALIVE_UTIL","FAILBACK_UTIL","REG_429_RETRY_UTIL","FAILOVER_UTIL","NETWORK_CHANGE_DETECTION_UTIL","CALLS_CLEARED_HANDLER_UTIL","RECONNECT_UTIL","NOISE_REDUCTION_EFFECT","MOBIUS_US_PROD","MOBIUS_EU_PROD","MOBIUS_US_INT","MOBIUS_EU_INT","ICE_CANDIDATES_TIMEOUT","METHODS","CONSTRUCTOR","CREATE_CALL","HANDLE_INCOMING_CALL_SETUP","HANDLE_OUTGOING_CALL_SETUP","HANDLE_CALL_HOLD","HANDLE_CALL_RESUME","HANDLE_INCOMING_CALL_PROGRESS","HANDLE_INCOMING_ROAP_OFFER_REQUEST","HANDLE_OUTGOING_CALL_ALERTING","HANDLE_INCOMING_CALL_CONNECT","HANDLE_OUTGOING_CALL_CONNECT","HANDLE_INCOMING_CALL_DISCONNECT","HANDLE_OUTGOING_CALL_DISCONNECT","HANDLE_CALL_ESTABLISHED","HANDLE_UNKNOWN_STATE","HANDLE_TIMEOUT","GET_EMITTER_CALLBACK","HANDLE_ROAP_ESTABLISHED","HANDLE_ROAP_ERROR","HANDLE_OUTGOING_ROAP_OFFER","HANDLE_OUTGOING_ROAP_ANSWER","HANDLE_INCOMING_ROAP_OFFER","HANDLE_INCOMING_ROAP_ANSWER","FORCE_SEND_STATS_REPORT","UPDATE_ACTIVE_MOBIUS","DEQUEUE_WS_EVENTS","GET_CALL","GET_ACTIVE_CALLS","UPDATE_LINE","GET_LINE_ID","INIT_MEDIA_CONNECTION","GET_DIRECTION","GET_CALL_ID","GET_CORRELATION_ID","SEND_CALL_STATE_MACHINE_EVT","SEND_MEDIA_STATE_MACHINE_EVT","SET_CALL_ID","SET_DISCONNECT_REASON","GET_DISCONNECT_REASON","ANSWER","DIAL","POST","PATCH","POST_SS_REQUEST","POST_STATUS","COMPLETE_TRANSFER","GET_CALL_STATS","POST_MEDIA","MEDIA_ROAP_EVENTS_LISTENER","MEDIA_TRACK_LISTENER","ON_EFFECT_ENABLED","ON_EFFECT_DISABLED","UPDATE_TRACK","REGISTER_EFFECT_LISTENER","UNREGISTER_LISTENERS","REGISTER_LISTENERS","DELETE","SUBMIT_CALL_ERROR_METRIC","HANDLE_MID_CALL_EVENT","GET_CALLER_INFO","END","DO_HOLD_RESUME","START_CALLER_ID_RESOLUTION","SEND_DIGIT","MUTE","IS_MUTED","IS_CONNECTED","IS_HELD","UPDATE_MEDIA","SET_BROADWORKS_CORRELATION_INFO","GET_BROADWORKS_CORRELATION_INFO","GET_CALL_RTP_STATS","REGISTER","DEREGISTER","NORMALIZE_LINE","LINE_EMITTER","GET_LOGGING_LEVEL","GET_ACTIVE_MOBIUS_URL","GET_STATUS","GET_DEVICE_ID","MAKE_CALL","INCOMING_CALL_LISTENER","SET_MOBIUS_SERVERS","HANDLE_CONNECTION_RESTORATION","RECONNECT_ON_FAILURE","DETECT_NETWORK_CHANGE","GET_CLIENT_REGION_INFO","GET_MOBIUS_SERVERS","REGISTER_CALLS_CLEARED_LISTENER","CALLS_CLEARED_HANDLER","REGISTER_SESSIONS_LISTENER","CREATE_LINE","GET_LINES","UPLOAD_LOGS","GET_SDK_CONNECTOR","GET_CONNECTED_CALL"],"sources":["constants.ts"],"sourcesContent":["export const VERSION = 'unknown';\nexport const USER_AGENT_VERSION = 'beta';\nexport const REPO_NAME = 'webex-calling';\nexport const CALLING_USER_AGENT = `${REPO_NAME}/${USER_AGENT_VERSION}`;\nexport const CALL_ENDPOINT_RESOURCE = 'call';\nexport const CALL_STATUS_RESOURCE = 'status';\nexport const CALLS_ENDPOINT_RESOURCE = 'calls';\nexport const CISCO_DEVICE_URL = 'cisco-device-url';\nexport const CRLF = '\\r\\n';\nexport const DEFAULT_KEEPALIVE_INTERVAL = 30;\nexport const DEFAULT_LOCAL_CALL_ID = 'DefaultLocalId';\nexport const DEFAULT_REHOMING_INTERVAL_MAX = 120;\nexport const DEFAULT_REHOMING_INTERVAL_MIN = 60;\nexport const DEFAULT_SESSION_TIMER = 1000 * 60 * 10;\nexport const DEVICES_ENDPOINT_RESOURCE = 'devices';\nexport const DISCOVERY_URL = 'https://ds.ciscospark.com/v1/region';\nexport const DUMMY_METRICS = {\n 'rtp-rxstat': {\n Dur: 0,\n Pkt: 0,\n Oct: 0,\n LatePkt: 0,\n LostPkt: 0,\n AvgJit: 0,\n VQMetrics: {\n VoRxCodec: 'unknown',\n VoPktSizeMs: 0,\n maxJitter: 0,\n VoOneWayDelayMs: 0,\n networkType: 'unknown',\n hwType: 'unknown',\n },\n },\n 'rtp-txstat': {\n Dur: 0,\n Pkt: 0,\n Oct: 0,\n VQMetrics: {\n VoTxCodec: 'unknown',\n rtpBitRate: 0,\n },\n },\n};\nexport const DUMMY_MOBIUS_URL = 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\nexport const IP_ENDPOINT = 'myip';\nexport const INITIAL_SEQ_NUMBER = 1;\nexport const MEDIA_ENDPOINT_RESOURCE = 'media';\nexport const NETWORK_FLAP_TIMEOUT = 2000;\nexport const CALL_HOLD_SERVICE = 'callhold';\nexport const CALL_TRANSFER_SERVICE = 'calltransfer';\nexport const HOLD_ENDPOINT = 'hold';\nexport const TRANSFER_ENDPOINT = 'commit';\nexport const RESUME_ENDPOINT = 'resume';\nexport const SPARK_USER_AGENT = 'spark-user-agent';\nexport const REGISTER_RETRY_TIMEOUT = 10000;\nexport const SUPPLEMENTARY_SERVICES_TIMEOUT = 10000;\nexport const API_V1 = '/api/v1';\nexport const URL_ENDPOINT = '/calling/web/';\nexport const VALID_PHONE_REGEX = /[\\d\\s()*#+.-]+/;\nexport const WEB_AGENT = '(web)';\nexport const WEBEX = 'webex';\nexport const WEBEX_WEB_CLIENT = 'webex-web-client';\nexport const CALLER_ID_FILE = 'CallerId';\nexport const UTILS_FILE = 'utils';\nexport const CALLING_CLIENT_FILE = 'CallingClient';\nexport const LINE_FILE = 'line';\nexport const CALL_FILE = 'call';\nexport const CALL_MANAGER_FILE = 'callManager';\nexport const METRIC_FILE = 'metric';\nexport const REGISTRATION_FILE = 'register';\nexport const CODEC_ID = 'codecId';\nexport const MEDIA_ID = 'id';\nexport const RTC_ICE_CANDIDATE_PAIR = 'RTCIceCandidatePair_';\nexport const LOCAL_CANDIDATE_ID = 'localCandidateId';\nexport const RTC_ICE_CANDIDATE = 'RTCIceCandidate_';\nexport const NETWORK_TYPE = 'networkType';\nexport const RTC_CODEC = 'RTCCodec_';\nexport const INBOUND_CODEC_MATCH = 'CIT01_';\nexport const OUTBOUND_CODEC_MATCH = 'COT01_';\nexport const MIME_TYPE = 'mimeType';\nexport const REMOTE_INBOUND_RTP = 'remote-inbound-rtp';\nexport const TOTAL_ROUND_TRIP_TIME = 'totalRoundTripTime';\nexport const ROUND_TRIP_TIME_MEASUREMENTS = 'roundTripTimeMeasurements';\nexport const INBOUND_RTP = 'inbound-rtp';\nexport const OUTBOUND_RTP = 'outbound-rtp';\nexport const PACKETS_RECEIVED = 'packetsReceived';\nexport const PACKETS_SENT = 'packetsSent';\nexport const PACKETS_LOST = 'packetsLost';\nexport const PACKETS_DISCARDED = 'packetsDiscarded';\nexport const JITTER_BUFFER_DELAY = 'jitterBufferDelay';\nexport const JITTER_BUFFER_EMITTED_COUNT = 'jitterBufferEmittedCount';\nexport const TIMESTAMP = 'timestamp';\nexport const TYPE = 'type';\nexport const TRANSPORT = 'transport';\nexport const TARGET_BIT_RATE = 'targetBitrate';\nexport const MEDIA_SOURCE = 'media-source';\nexport const BYTES_RECEIVED = 'bytesReceived';\nexport const BYTES_SENT = 'bytesSent';\nexport const SELECTED_CANDIDATE_PAIR_ID = 'selectedCandidatePairId';\nexport const TOTAL_SAMPLES_DURATION = 'totalSamplesDuration';\nexport const RTP_RX_STAT = 'rtp-rxstat';\nexport const RTP_TX_STAT = 'rtp-txstat';\nexport const BASE_REG_TIMER_MFACTOR = 2;\nexport const BASE_REG_RETRY_TIMER_VAL_IN_SEC = 30;\nexport const SEC_TO_MSEC_MFACTOR = 1000;\nexport const MINUTES_TO_SEC_MFACTOR = 60;\nexport const REG_RANDOM_T_FACTOR_UPPER_LIMIT = 10000;\nexport const REG_TRY_BACKUP_TIMER_VAL_IN_SEC = 114;\nexport const REG_FAILBACK_429_MAX_RETRIES = 5;\nexport const RETRY_TIMER_UPPER_LIMIT = 60;\nexport const REGISTRATION_UTIL = 'triggerRegistration';\nexport const REGISTER_UTIL = 'attemptRegistrationWithServers';\nexport const GET_MOBIUS_SERVERS_UTIL = 'getMobiusServers';\nexport const KEEPALIVE_UTIL = 'startKeepaliveTimer';\nexport const FAILBACK_UTIL = 'executeFailback';\nexport const REG_429_RETRY_UTIL = 'handle429Retry';\nexport const FAILOVER_UTIL = 'startFailoverTimer';\nexport const NETWORK_CHANGE_DETECTION_UTIL = 'detectNetworkChange';\nexport const CALLS_CLEARED_HANDLER_UTIL = 'callsClearedHandler';\nexport const RECONNECT_UTIL = 'reconnectOnFailure';\nexport const NOISE_REDUCTION_EFFECT = 'noise-reduction-effect';\nexport const MOBIUS_US_PROD = 'mobius-us-east-1.prod.infra.webex.com';\nexport const MOBIUS_EU_PROD = 'mobius-eu-central-1.prod.infra.webex.com';\nexport const MOBIUS_US_INT = 'mobius-us-east-1.int.infra.webex.com';\nexport const MOBIUS_EU_INT = 'mobius-eu-central-1.int.infra.webex.com';\nexport const ICE_CANDIDATES_TIMEOUT = 3000;\n// Define constants for method names\nexport const METHODS = {\n CONSTRUCTOR: 'constructor',\n CREATE_CALL: 'createCall',\n HANDLE_INCOMING_CALL_SETUP: 'handleIncomingCallSetup',\n HANDLE_OUTGOING_CALL_SETUP: 'handleOutgoingCallSetup',\n HANDLE_CALL_HOLD: 'handleCallHold',\n HANDLE_CALL_RESUME: 'handleCallResume',\n HANDLE_INCOMING_CALL_PROGRESS: 'handleIncomingCallProgress',\n HANDLE_INCOMING_ROAP_OFFER_REQUEST: 'handleIncomingRoapOfferRequest',\n HANDLE_OUTGOING_CALL_ALERTING: 'handleOutgoingCallAlerting',\n HANDLE_INCOMING_CALL_CONNECT: 'handleIncomingCallConnect',\n HANDLE_OUTGOING_CALL_CONNECT: 'handleOutgoingCallConnect',\n HANDLE_INCOMING_CALL_DISCONNECT: 'handleIncomingCallDisconnect',\n HANDLE_OUTGOING_CALL_DISCONNECT: 'handleOutgoingCallDisconnect',\n HANDLE_CALL_ESTABLISHED: 'handleCallEstablished',\n HANDLE_UNKNOWN_STATE: 'handleUnknownState',\n HANDLE_TIMEOUT: 'handleTimeout',\n GET_EMITTER_CALLBACK: 'getEmitterCallback',\n HANDLE_ROAP_ESTABLISHED: 'handleRoapEstablished',\n HANDLE_ROAP_ERROR: 'handleRoapError',\n HANDLE_OUTGOING_ROAP_OFFER: 'handleOutgoingRoapOffer',\n HANDLE_OUTGOING_ROAP_ANSWER: 'handleOutgoingRoapAnswer',\n HANDLE_INCOMING_ROAP_OFFER: 'handleIncomingRoapOffer',\n HANDLE_INCOMING_ROAP_ANSWER: 'handleIncomingRoapAnswer',\n FORCE_SEND_STATS_REPORT: 'forceSendStatsReport',\n UPDATE_ACTIVE_MOBIUS: 'updateActiveMobius',\n DEQUEUE_WS_EVENTS: 'dequeueWsEvents',\n GET_CALL: 'getCall',\n GET_ACTIVE_CALLS: 'getActiveCalls',\n UPDATE_LINE: 'updateLine',\n GET_LINE_ID: 'getLineId',\n INIT_MEDIA_CONNECTION: 'initMediaConnection',\n GET_DIRECTION: 'getDirection',\n GET_CALL_ID: 'getCallId',\n GET_CORRELATION_ID: 'getCorrelationId',\n SEND_CALL_STATE_MACHINE_EVT: 'sendCallStateMachineEvt',\n SEND_MEDIA_STATE_MACHINE_EVT: 'sendMediaStateMachineEvt',\n SET_CALL_ID: 'setCallId',\n SET_DISCONNECT_REASON: 'setDisconnectReason',\n GET_DISCONNECT_REASON: 'getDisconnectReason',\n ANSWER: 'answer',\n DIAL: 'dial',\n POST: 'post',\n PATCH: 'patch',\n POST_SS_REQUEST: 'postSSRequest',\n POST_STATUS: 'postStatus',\n COMPLETE_TRANSFER: 'completeTransfer',\n GET_CALL_STATS: 'getCallStats',\n POST_MEDIA: 'postMedia',\n MEDIA_ROAP_EVENTS_LISTENER: 'mediaRoapEventsListener',\n MEDIA_TRACK_LISTENER: 'mediaTrackListener',\n ON_EFFECT_ENABLED: 'onEffectEnabled',\n ON_EFFECT_DISABLED: 'onEffectDisabled',\n UPDATE_TRACK: 'updateTrack',\n REGISTER_EFFECT_LISTENER: 'registerEffectListener',\n UNREGISTER_LISTENERS: 'unregisterListeners',\n REGISTER_LISTENERS: 'registerListeners',\n DELETE: 'delete',\n SUBMIT_CALL_ERROR_METRIC: 'submitCallErrorMetric',\n HANDLE_MID_CALL_EVENT: 'handleMidCallEvent',\n GET_CALLER_INFO: 'getCallerInfo',\n END: 'end',\n DO_HOLD_RESUME: 'doHoldResume',\n START_CALLER_ID_RESOLUTION: 'startCallerIdResolution',\n SEND_DIGIT: 'sendDigit',\n MUTE: 'mute',\n IS_MUTED: 'isMuted',\n IS_CONNECTED: 'isConnected',\n IS_HELD: 'isHeld',\n UPDATE_MEDIA: 'updateMedia',\n SET_BROADWORKS_CORRELATION_INFO: 'setBroadworksCorrelationInfo',\n GET_BROADWORKS_CORRELATION_INFO: 'getBroadworksCorrelationInfo',\n GET_CALL_RTP_STATS: 'getCallRtpStats',\n REGISTER: 'register',\n DEREGISTER: 'deregister',\n NORMALIZE_LINE: 'normalizeLine',\n LINE_EMITTER: 'lineEmitter',\n GET_LOGGING_LEVEL: 'getLoggingLevel',\n GET_ACTIVE_MOBIUS_URL: 'getActiveMobiusUrl',\n GET_STATUS: 'getStatus',\n GET_DEVICE_ID: 'getDeviceId',\n MAKE_CALL: 'makeCall',\n INCOMING_CALL_LISTENER: 'incomingCallListener',\n SET_MOBIUS_SERVERS: 'setMobiusServers',\n HANDLE_CONNECTION_RESTORATION: 'handleConnectionRestoration',\n RECONNECT_ON_FAILURE: 'reconnectOnFailure',\n DETECT_NETWORK_CHANGE: 'detectNetworkChange',\n GET_CLIENT_REGION_INFO: 'getClientRegionInfo',\n GET_MOBIUS_SERVERS: 'getMobiusServers',\n REGISTER_CALLS_CLEARED_LISTENER: 'registerCallsClearedListener',\n CALLS_CLEARED_HANDLER: 'callsClearedHandler',\n REGISTER_SESSIONS_LISTENER: 'registerSessionsListener',\n CREATE_LINE: 'createLine',\n GET_LINES: 'getLines',\n UPLOAD_LOGS: 'uploadLogs',\n GET_SDK_CONNECTOR: 'getSDKConnector',\n GET_CONNECTED_CALL: 'getConnectedCall',\n};\n"],"mappings":";;;;;;;;AAAO,IAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,SAAS;AACzB,IAAME,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAG,MAAM;AACjC,IAAMC,SAAS,GAAAF,OAAA,CAAAE,SAAA,GAAG,eAAe;AACjC,IAAMC,kBAAkB,GAAAH,OAAA,CAAAG,kBAAA,MAAAC,MAAA,CAAMF,SAAS,OAAAE,MAAA,CAAIH,kBAAkB,CAAE;AAC/D,IAAMI,sBAAsB,GAAAL,OAAA,CAAAK,sBAAA,GAAG,MAAM;AACrC,IAAMC,oBAAoB,GAAAN,OAAA,CAAAM,oBAAA,GAAG,QAAQ;AACrC,IAAMC,uBAAuB,GAAAP,OAAA,CAAAO,uBAAA,GAAG,OAAO;AACvC,IAAMC,gBAAgB,GAAAR,OAAA,CAAAQ,gBAAA,GAAG,kBAAkB;AAC3C,IAAMC,IAAI,GAAAT,OAAA,CAAAS,IAAA,GAAG,MAAM;AACnB,IAAMC,0BAA0B,GAAAV,OAAA,CAAAU,0BAAA,GAAG,EAAE;AACrC,IAAMC,qBAAqB,GAAAX,OAAA,CAAAW,qBAAA,GAAG,gBAAgB;AAC9C,IAAMC,6BAA6B,GAAAZ,OAAA,CAAAY,6BAAA,GAAG,GAAG;AACzC,IAAMC,6BAA6B,GAAAb,OAAA,CAAAa,6BAAA,GAAG,EAAE;AACxC,IAAMC,qBAAqB,GAAAd,OAAA,CAAAc,qBAAA,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE;AAC5C,IAAMC,yBAAyB,GAAAf,OAAA,CAAAe,yBAAA,GAAG,SAAS;AAC3C,IAAMC,aAAa,GAAAhB,OAAA,CAAAgB,aAAA,GAAG,qCAAqC;AAC3D,IAAMC,aAAa,GAAAjB,OAAA,CAAAiB,aAAA,GAAG;EAC3B,YAAY,EAAE;IACZC,GAAG,EAAE,CAAC;IACNC,GAAG,EAAE,CAAC;IACNC,GAAG,EAAE,CAAC;IACNC,OAAO,EAAE,CAAC;IACVC,OAAO,EAAE,CAAC;IACVC,MAAM,EAAE,CAAC;IACTC,SAAS,EAAE;MACTC,SAAS,EAAE,SAAS;MACpBC,WAAW,EAAE,CAAC;MACdC,SAAS,EAAE,CAAC;MACZC,eAAe,EAAE,CAAC;MAClBC,WAAW,EAAE,SAAS;MACtBC,MAAM,EAAE;IACV;EACF,CAAC;EACD,YAAY,EAAE;IACZZ,GAAG,EAAE,CAAC;IACNC,GAAG,EAAE,CAAC;IACNC,GAAG,EAAE,CAAC;IACNI,SAAS,EAAE;MACTO,SAAS,EAAE,SAAS;MACpBC,UAAU,EAAE;IACd;EACF;AACF,CAAC;AACM,IAAMC,gBAAgB,GAAAjC,OAAA,CAAAiC,gBAAA,GAAG,uDAAuD;AAChF,IAAMC,WAAW,GAAAlC,OAAA,CAAAkC,WAAA,GAAG,MAAM;AAC1B,IAAMC,kBAAkB,GAAAnC,OAAA,CAAAmC,kBAAA,GAAG,CAAC;AAC5B,IAAMC,uBAAuB,GAAApC,OAAA,CAAAoC,uBAAA,GAAG,OAAO;AACvC,IAAMC,oBAAoB,GAAArC,OAAA,CAAAqC,oBAAA,GAAG,IAAI;AACjC,IAAMC,iBAAiB,GAAAtC,OAAA,CAAAsC,iBAAA,GAAG,UAAU;AACpC,IAAMC,qBAAqB,GAAAvC,OAAA,CAAAuC,qBAAA,GAAG,cAAc;AAC5C,IAAMC,aAAa,GAAAxC,OAAA,CAAAwC,aAAA,GAAG,MAAM;AAC5B,IAAMC,iBAAiB,GAAAzC,OAAA,CAAAyC,iBAAA,GAAG,QAAQ;AAClC,IAAMC,eAAe,GAAA1C,OAAA,CAAA0C,eAAA,GAAG,QAAQ;AAChC,IAAMC,gBAAgB,GAAA3C,OAAA,CAAA2C,gBAAA,GAAG,kBAAkB;AAC3C,IAAMC,sBAAsB,GAAA5C,OAAA,CAAA4C,sBAAA,GAAG,KAAK;AACpC,IAAMC,8BAA8B,GAAA7C,OAAA,CAAA6C,8BAAA,GAAG,KAAK;AAC5C,IAAMC,MAAM,GAAA9C,OAAA,CAAA8C,MAAA,GAAG,SAAS;AACxB,IAAMC,YAAY,GAAA/C,OAAA,CAAA+C,YAAA,GAAG,eAAe;AACpC,IAAMC,iBAAiB,GAAAhD,OAAA,CAAAgD,iBAAA,GAAG,gBAAgB;AAC1C,IAAMC,SAAS,GAAAjD,OAAA,CAAAiD,SAAA,GAAG,OAAO;AACzB,IAAMC,KAAK,GAAAlD,OAAA,CAAAkD,KAAA,GAAG,OAAO;AACrB,IAAMC,gBAAgB,GAAAnD,OAAA,CAAAmD,gBAAA,GAAG,kBAAkB;AAC3C,IAAMC,cAAc,GAAApD,OAAA,CAAAoD,cAAA,GAAG,UAAU;AACjC,IAAMC,UAAU,GAAArD,OAAA,CAAAqD,UAAA,GAAG,OAAO;AAC1B,IAAMC,mBAAmB,GAAAtD,OAAA,CAAAsD,mBAAA,GAAG,eAAe;AAC3C,IAAMC,SAAS,GAAAvD,OAAA,CAAAuD,SAAA,GAAG,MAAM;AACxB,IAAMC,SAAS,GAAAxD,OAAA,CAAAwD,SAAA,GAAG,MAAM;AACxB,IAAMC,iBAAiB,GAAAzD,OAAA,CAAAyD,iBAAA,GAAG,aAAa;AACvC,IAAMC,WAAW,GAAA1D,OAAA,CAAA0D,WAAA,GAAG,QAAQ;AAC5B,IAAMC,iBAAiB,GAAA3D,OAAA,CAAA2D,iBAAA,GAAG,UAAU;AACpC,IAAMC,QAAQ,GAAA5D,OAAA,CAAA4D,QAAA,GAAG,SAAS;AAC1B,IAAMC,QAAQ,GAAA7D,OAAA,CAAA6D,QAAA,GAAG,IAAI;AACrB,IAAMC,sBAAsB,GAAA9D,OAAA,CAAA8D,sBAAA,GAAG,sBAAsB;AACrD,IAAMC,kBAAkB,GAAA/D,OAAA,CAAA+D,kBAAA,GAAG,kBAAkB;AAC7C,IAAMC,iBAAiB,GAAAhE,OAAA,CAAAgE,iBAAA,GAAG,kBAAkB;AAC5C,IAAMC,YAAY,GAAAjE,OAAA,CAAAiE,YAAA,GAAG,aAAa;AAClC,IAAMC,SAAS,GAAAlE,OAAA,CAAAkE,SAAA,GAAG,WAAW;AAC7B,IAAMC,mBAAmB,GAAAnE,OAAA,CAAAmE,mBAAA,GAAG,QAAQ;AACpC,IAAMC,oBAAoB,GAAApE,OAAA,CAAAoE,oBAAA,GAAG,QAAQ;AACrC,IAAMC,SAAS,GAAArE,OAAA,CAAAqE,SAAA,GAAG,UAAU;AAC5B,IAAMC,kBAAkB,GAAAtE,OAAA,CAAAsE,kBAAA,GAAG,oBAAoB;AAC/C,IAAMC,qBAAqB,GAAAvE,OAAA,CAAAuE,qBAAA,GAAG,oBAAoB;AAClD,IAAMC,4BAA4B,GAAAxE,OAAA,CAAAwE,4BAAA,GAAG,2BAA2B;AAChE,IAAMC,WAAW,GAAAzE,OAAA,CAAAyE,WAAA,GAAG,aAAa;AACjC,IAAMC,YAAY,GAAA1E,OAAA,CAAA0E,YAAA,GAAG,cAAc;AACnC,IAAMC,gBAAgB,GAAA3E,OAAA,CAAA2E,gBAAA,GAAG,iBAAiB;AAC1C,IAAMC,YAAY,GAAA5E,OAAA,CAAA4E,YAAA,GAAG,aAAa;AAClC,IAAMC,YAAY,GAAA7E,OAAA,CAAA6E,YAAA,GAAG,aAAa;AAClC,IAAMC,iBAAiB,GAAA9E,OAAA,CAAA8E,iBAAA,GAAG,kBAAkB;AAC5C,IAAMC,mBAAmB,GAAA/E,OAAA,CAAA+E,mBAAA,GAAG,mBAAmB;AAC/C,IAAMC,2BAA2B,GAAAhF,OAAA,CAAAgF,2BAAA,GAAG,0BAA0B;AAC9D,IAAMC,SAAS,GAAAjF,OAAA,CAAAiF,SAAA,GAAG,WAAW;AAC7B,IAAMC,IAAI,GAAAlF,OAAA,CAAAkF,IAAA,GAAG,MAAM;AACnB,IAAMC,SAAS,GAAAnF,OAAA,CAAAmF,SAAA,GAAG,WAAW;AAC7B,IAAMC,eAAe,GAAApF,OAAA,CAAAoF,eAAA,GAAG,eAAe;AACvC,IAAMC,YAAY,GAAArF,OAAA,CAAAqF,YAAA,GAAG,cAAc;AACnC,IAAMC,cAAc,GAAAtF,OAAA,CAAAsF,cAAA,GAAG,eAAe;AACtC,IAAMC,UAAU,GAAAvF,OAAA,CAAAuF,UAAA,GAAG,WAAW;AAC9B,IAAMC,0BAA0B,GAAAxF,OAAA,CAAAwF,0BAAA,GAAG,yBAAyB;AAC5D,IAAMC,sBAAsB,GAAAzF,OAAA,CAAAyF,sBAAA,GAAG,sBAAsB;AACrD,IAAMC,WAAW,GAAA1F,OAAA,CAAA0F,WAAA,GAAG,YAAY;AAChC,IAAMC,WAAW,GAAA3F,OAAA,CAAA2F,WAAA,GAAG,YAAY;AAChC,IAAMC,sBAAsB,GAAA5F,OAAA,CAAA4F,sBAAA,GAAG,CAAC;AAChC,IAAMC,+BAA+B,GAAA7F,OAAA,CAAA6F,+BAAA,GAAG,EAAE;AAC1C,IAAMC,mBAAmB,GAAA9F,OAAA,CAAA8F,mBAAA,GAAG,IAAI;AAChC,IAAMC,sBAAsB,GAAA/F,OAAA,CAAA+F,sBAAA,GAAG,EAAE;AACjC,IAAMC,+BAA+B,GAAAhG,OAAA,CAAAgG,+BAAA,GAAG,KAAK;AAC7C,IAAMC,+BAA+B,GAAAjG,OAAA,CAAAiG,+BAAA,GAAG,GAAG;AAC3C,IAAMC,4BAA4B,GAAAlG,OAAA,CAAAkG,4BAAA,GAAG,CAAC;AACtC,IAAMC,uBAAuB,GAAAnG,OAAA,CAAAmG,uBAAA,GAAG,EAAE;AAClC,IAAMC,iBAAiB,GAAApG,OAAA,CAAAoG,iBAAA,GAAG,qBAAqB;AAC/C,IAAMC,aAAa,GAAArG,OAAA,CAAAqG,aAAA,GAAG,gCAAgC;AACtD,IAAMC,uBAAuB,GAAAtG,OAAA,CAAAsG,uBAAA,GAAG,kBAAkB;AAClD,IAAMC,cAAc,GAAAvG,OAAA,CAAAuG,cAAA,GAAG,qBAAqB;AAC5C,IAAMC,aAAa,GAAAxG,OAAA,CAAAwG,aAAA,GAAG,iBAAiB;AACvC,IAAMC,kBAAkB,GAAAzG,OAAA,CAAAyG,kBAAA,GAAG,gBAAgB;AAC3C,IAAMC,aAAa,GAAA1G,OAAA,CAAA0G,aAAA,GAAG,oBAAoB;AAC1C,IAAMC,6BAA6B,GAAA3G,OAAA,CAAA2G,6BAAA,GAAG,qBAAqB;AAC3D,IAAMC,0BAA0B,GAAA5G,OAAA,CAAA4G,0BAAA,GAAG,qBAAqB;AACxD,IAAMC,cAAc,GAAA7G,OAAA,CAAA6G,cAAA,GAAG,oBAAoB;AAC3C,IAAMC,sBAAsB,GAAA9G,OAAA,CAAA8G,sBAAA,GAAG,wBAAwB;AACvD,IAAMC,cAAc,GAAA/G,OAAA,CAAA+G,cAAA,GAAG,uCAAuC;AAC9D,IAAMC,cAAc,GAAAhH,OAAA,CAAAgH,cAAA,GAAG,0CAA0C;AACjE,IAAMC,aAAa,GAAAjH,OAAA,CAAAiH,aAAA,GAAG,sCAAsC;AAC5D,IAAMC,aAAa,GAAAlH,OAAA,CAAAkH,aAAA,GAAG,yCAAyC;AAC/D,IAAMC,sBAAsB,GAAAnH,OAAA,CAAAmH,sBAAA,GAAG,IAAI;AAC1C;AACO,IAAMC,OAAO,GAAApH,OAAA,CAAAoH,OAAA,GAAG;EACrBC,WAAW,EAAE,aAAa;EAC1BC,WAAW,EAAE,YAAY;EACzBC,0BAA0B,EAAE,yBAAyB;EACrDC,0BAA0B,EAAE,yBAAyB;EACrDC,gBAAgB,EAAE,gBAAgB;EAClCC,kBAAkB,EAAE,kBAAkB;EACtCC,6BAA6B,EAAE,4BAA4B;EAC3DC,kCAAkC,EAAE,gCAAgC;EACpEC,6BAA6B,EAAE,4BAA4B;EAC3DC,4BAA4B,EAAE,2BAA2B;EACzDC,4BAA4B,EAAE,2BAA2B;EACzDC,+BAA+B,EAAE,8BAA8B;EAC/DC,+BAA+B,EAAE,8BAA8B;EAC/DC,uBAAuB,EAAE,uBAAuB;EAChDC,oBAAoB,EAAE,oBAAoB;EAC1CC,cAAc,EAAE,eAAe;EAC/BC,oBAAoB,EAAE,oBAAoB;EAC1CC,uBAAuB,EAAE,uBAAuB;EAChDC,iBAAiB,EAAE,iBAAiB;EACpCC,0BAA0B,EAAE,yBAAyB;EACrDC,2BAA2B,EAAE,0BAA0B;EACvDC,0BAA0B,EAAE,yBAAyB;EACrDC,2BAA2B,EAAE,0BAA0B;EACvDC,uBAAuB,EAAE,sBAAsB;EAC/CC,oBAAoB,EAAE,oBAAoB;EAC1CC,iBAAiB,EAAE,iBAAiB;EACpCC,QAAQ,EAAE,SAAS;EACnBC,gBAAgB,EAAE,gBAAgB;EAClCC,WAAW,EAAE,YAAY;EACzBC,WAAW,EAAE,WAAW;EACxBC,qBAAqB,EAAE,qBAAqB;EAC5CC,aAAa,EAAE,cAAc;EAC7BC,WAAW,EAAE,WAAW;EACxBC,kBAAkB,EAAE,kBAAkB;EACtCC,2BAA2B,EAAE,yBAAyB;EACtDC,4BAA4B,EAAE,0BAA0B;EACxDC,WAAW,EAAE,WAAW;EACxBC,qBAAqB,EAAE,qBAAqB;EAC5CC,qBAAqB,EAAE,qBAAqB;EAC5CC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,eAAe;EAChCC,WAAW,EAAE,YAAY;EACzBC,iBAAiB,EAAE,kBAAkB;EACrCC,cAAc,EAAE,cAAc;EAC9BC,UAAU,EAAE,WAAW;EACvBC,0BAA0B,EAAE,yBAAyB;EACrDC,oBAAoB,EAAE,oBAAoB;EAC1CC,iBAAiB,EAAE,iBAAiB;EACpCC,kBAAkB,EAAE,kBAAkB;EACtCC,YAAY,EAAE,aAAa;EAC3BC,wBAAwB,EAAE,wBAAwB;EAClDC,oBAAoB,EAAE,qBAAqB;EAC3CC,kBAAkB,EAAE,mBAAmB;EACvCC,MAAM,EAAE,QAAQ;EAChBC,wBAAwB,EAAE,uBAAuB;EACjDC,qBAAqB,EAAE,oBAAoB;EAC3CC,eAAe,EAAE,eAAe;EAChCC,GAAG,EAAE,KAAK;EACVC,cAAc,EAAE,cAAc;EAC9BC,0BAA0B,EAAE,yBAAyB;EACrDC,UAAU,EAAE,WAAW;EACvBC,IAAI,EAAE,MAAM;EACZC,QAAQ,EAAE,SAAS;EACnBC,YAAY,EAAE,aAAa;EAC3BC,OAAO,EAAE,QAAQ;EACjBC,YAAY,EAAE,aAAa;EAC3BC,+BAA+B,EAAE,8BAA8B;EAC/DC,+BAA+B,EAAE,8BAA8B;EAC/DC,kBAAkB,EAAE,iBAAiB;EACrCC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,YAAY;EACxBC,cAAc,EAAE,eAAe;EAC/BC,YAAY,EAAE,aAAa;EAC3BC,iBAAiB,EAAE,iBAAiB;EACpCC,qBAAqB,EAAE,oBAAoB;EAC3CC,UAAU,EAAE,WAAW;EACvBC,aAAa,EAAE,aAAa;EAC5BC,SAAS,EAAE,UAAU;EACrBC,sBAAsB,EAAE,sBAAsB;EAC9CC,kBAAkB,EAAE,kBAAkB;EACtCC,6BAA6B,EAAE,6BAA6B;EAC5DC,oBAAoB,EAAE,oBAAoB;EAC1CC,qBAAqB,EAAE,qBAAqB;EAC5CC,sBAAsB,EAAE,qBAAqB;EAC7CC,kBAAkB,EAAE,kBAAkB;EACtCC,+BAA+B,EAAE,8BAA8B;EAC/DC,qBAAqB,EAAE,qBAAqB;EAC5CC,0BAA0B,EAAE,0BAA0B;EACtDC,WAAW,EAAE,YAAY;EACzBC,SAAS,EAAE,UAAU;EACrBC,WAAW,EAAE,YAAY;EACzBC,iBAAiB,EAAE,iBAAiB;EACpCC,kBAAkB,EAAE;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"names":["VERSION","exports","USER_AGENT_VERSION","REPO_NAME","CALLING_USER_AGENT","concat","CALL_ENDPOINT_RESOURCE","CALL_STATUS_RESOURCE","CALLS_ENDPOINT_RESOURCE","CISCO_DEVICE_URL","CRLF","DEFAULT_KEEPALIVE_INTERVAL","DEFAULT_LOCAL_CALL_ID","DEFAULT_REHOMING_INTERVAL_MAX","DEFAULT_REHOMING_INTERVAL_MIN","DEFAULT_SESSION_TIMER","DEVICES_ENDPOINT_RESOURCE","DISCOVERY_URL","DUMMY_METRICS","Dur","Pkt","Oct","LatePkt","LostPkt","AvgJit","VQMetrics","VoRxCodec","VoPktSizeMs","maxJitter","VoOneWayDelayMs","networkType","hwType","VoTxCodec","rtpBitRate","DUMMY_MOBIUS_URL","IP_ENDPOINT","INITIAL_SEQ_NUMBER","MEDIA_ENDPOINT_RESOURCE","NETWORK_FLAP_TIMEOUT","CALL_HOLD_SERVICE","CALL_TRANSFER_SERVICE","HOLD_ENDPOINT","TRANSFER_ENDPOINT","RESUME_ENDPOINT","SPARK_USER_AGENT","REGISTER_RETRY_TIMEOUT","SUPPLEMENTARY_SERVICES_TIMEOUT","API_V1","URL_ENDPOINT","VALID_PHONE_REGEX","WEB_AGENT","WEBEX","WEBEX_WEB_CLIENT","CALLER_ID_FILE","UTILS_FILE","CALLING_CLIENT_FILE","LINE_FILE","CALL_FILE","CALL_MANAGER_FILE","METRIC_FILE","REGISTRATION_FILE","CODEC_ID","MEDIA_ID","RTC_ICE_CANDIDATE_PAIR","LOCAL_CANDIDATE_ID","RTC_ICE_CANDIDATE","NETWORK_TYPE","RTC_CODEC","INBOUND_CODEC_MATCH","OUTBOUND_CODEC_MATCH","MIME_TYPE","REMOTE_INBOUND_RTP","TOTAL_ROUND_TRIP_TIME","ROUND_TRIP_TIME_MEASUREMENTS","INBOUND_RTP","OUTBOUND_RTP","PACKETS_RECEIVED","PACKETS_SENT","PACKETS_LOST","PACKETS_DISCARDED","JITTER_BUFFER_DELAY","JITTER_BUFFER_EMITTED_COUNT","TIMESTAMP","TYPE","TRANSPORT","TARGET_BIT_RATE","MEDIA_SOURCE","BYTES_RECEIVED","BYTES_SENT","SELECTED_CANDIDATE_PAIR_ID","TOTAL_SAMPLES_DURATION","RTP_RX_STAT","RTP_TX_STAT","BASE_REG_TIMER_MFACTOR","BASE_REG_RETRY_TIMER_VAL_IN_SEC","SEC_TO_MSEC_MFACTOR","MINUTES_TO_SEC_MFACTOR","REG_RANDOM_T_FACTOR_UPPER_LIMIT","REG_TRY_BACKUP_TIMER_VAL_IN_SEC","REG_FAILBACK_429_MAX_RETRIES","RETRY_TIMER_UPPER_LIMIT","REGISTRATION_UTIL","REGISTER_UTIL","GET_MOBIUS_SERVERS_UTIL","KEEPALIVE_UTIL","FAILBACK_UTIL","REG_429_RETRY_UTIL","FAILOVER_UTIL","NETWORK_CHANGE_DETECTION_UTIL","CALLS_CLEARED_HANDLER_UTIL","RECONNECT_UTIL","NOISE_REDUCTION_EFFECT","MOBIUS_US_PROD","MOBIUS_EU_PROD","MOBIUS_US_INT","MOBIUS_EU_INT","ICE_CANDIDATES_TIMEOUT","METHODS","CONSTRUCTOR","CREATE_CALL","HANDLE_INCOMING_CALL_SETUP","HANDLE_OUTGOING_CALL_SETUP","HANDLE_CALL_HOLD","HANDLE_CALL_RESUME","HANDLE_INCOMING_CALL_PROGRESS","HANDLE_INCOMING_ROAP_OFFER_REQUEST","HANDLE_OUTGOING_CALL_ALERTING","HANDLE_INCOMING_CALL_CONNECT","HANDLE_OUTGOING_CALL_CONNECT","HANDLE_INCOMING_CALL_DISCONNECT","HANDLE_OUTGOING_CALL_DISCONNECT","HANDLE_CALL_ESTABLISHED","HANDLE_UNKNOWN_STATE","HANDLE_TIMEOUT","GET_EMITTER_CALLBACK","HANDLE_ROAP_ESTABLISHED","HANDLE_ROAP_ERROR","HANDLE_OUTGOING_ROAP_OFFER","HANDLE_OUTGOING_ROAP_ANSWER","HANDLE_INCOMING_ROAP_OFFER","HANDLE_INCOMING_ROAP_ANSWER","INIT","FORCE_SEND_STATS_REPORT","UPDATE_ACTIVE_MOBIUS","DEQUEUE_WS_EVENTS","GET_CALL","GET_ACTIVE_CALLS","UPDATE_LINE","GET_LINE_ID","INIT_MEDIA_CONNECTION","GET_DIRECTION","GET_CALL_ID","GET_CORRELATION_ID","SEND_CALL_STATE_MACHINE_EVT","SEND_MEDIA_STATE_MACHINE_EVT","SET_CALL_ID","SET_DISCONNECT_REASON","GET_DISCONNECT_REASON","ANSWER","DIAL","POST","PATCH","POST_SS_REQUEST","POST_STATUS","COMPLETE_TRANSFER","GET_CALL_STATS","POST_MEDIA","MEDIA_ROAP_EVENTS_LISTENER","MEDIA_TRACK_LISTENER","ON_EFFECT_ENABLED","ON_EFFECT_DISABLED","UPDATE_TRACK","REGISTER_EFFECT_LISTENER","UNREGISTER_LISTENERS","REGISTER_LISTENERS","DELETE","SUBMIT_CALL_ERROR_METRIC","HANDLE_MID_CALL_EVENT","GET_CALLER_INFO","END","DO_HOLD_RESUME","START_CALLER_ID_RESOLUTION","SEND_DIGIT","MUTE","IS_MUTED","IS_CONNECTED","IS_HELD","UPDATE_MEDIA","SET_BROADWORKS_CORRELATION_INFO","GET_BROADWORKS_CORRELATION_INFO","GET_CALL_RTP_STATS","REGISTER","DEREGISTER","NORMALIZE_LINE","LINE_EMITTER","GET_LOGGING_LEVEL","GET_ACTIVE_MOBIUS_URL","GET_STATUS","GET_DEVICE_ID","MAKE_CALL","INCOMING_CALL_LISTENER","SET_MOBIUS_SERVERS","HANDLE_CONNECTION_RESTORATION","RECONNECT_ON_FAILURE","DETECT_NETWORK_CHANGE","GET_CLIENT_REGION_INFO","GET_MOBIUS_SERVERS","REGISTER_CALLS_CLEARED_LISTENER","CALLS_CLEARED_HANDLER","REGISTER_SESSIONS_LISTENER","CREATE_LINE","GET_LINES","UPLOAD_LOGS","GET_SDK_CONNECTOR","GET_CONNECTED_CALL"],"sources":["constants.ts"],"sourcesContent":["export const VERSION = 'unknown';\nexport const USER_AGENT_VERSION = 'beta';\nexport const REPO_NAME = 'webex-calling';\nexport const CALLING_USER_AGENT = `${REPO_NAME}/${USER_AGENT_VERSION}`;\nexport const CALL_ENDPOINT_RESOURCE = 'call';\nexport const CALL_STATUS_RESOURCE = 'status';\nexport const CALLS_ENDPOINT_RESOURCE = 'calls';\nexport const CISCO_DEVICE_URL = 'cisco-device-url';\nexport const CRLF = '\\r\\n';\nexport const DEFAULT_KEEPALIVE_INTERVAL = 30;\nexport const DEFAULT_LOCAL_CALL_ID = 'DefaultLocalId';\nexport const DEFAULT_REHOMING_INTERVAL_MAX = 120;\nexport const DEFAULT_REHOMING_INTERVAL_MIN = 60;\nexport const DEFAULT_SESSION_TIMER = 1000 * 60 * 10;\nexport const DEVICES_ENDPOINT_RESOURCE = 'devices';\nexport const DISCOVERY_URL = 'https://ds.ciscospark.com/v1/region';\nexport const DUMMY_METRICS = {\n 'rtp-rxstat': {\n Dur: 0,\n Pkt: 0,\n Oct: 0,\n LatePkt: 0,\n LostPkt: 0,\n AvgJit: 0,\n VQMetrics: {\n VoRxCodec: 'unknown',\n VoPktSizeMs: 0,\n maxJitter: 0,\n VoOneWayDelayMs: 0,\n networkType: 'unknown',\n hwType: 'unknown',\n },\n },\n 'rtp-txstat': {\n Dur: 0,\n Pkt: 0,\n Oct: 0,\n VQMetrics: {\n VoTxCodec: 'unknown',\n rtpBitRate: 0,\n },\n },\n};\nexport const DUMMY_MOBIUS_URL = 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\nexport const IP_ENDPOINT = 'myip';\nexport const INITIAL_SEQ_NUMBER = 1;\nexport const MEDIA_ENDPOINT_RESOURCE = 'media';\nexport const NETWORK_FLAP_TIMEOUT = 2000;\nexport const CALL_HOLD_SERVICE = 'callhold';\nexport const CALL_TRANSFER_SERVICE = 'calltransfer';\nexport const HOLD_ENDPOINT = 'hold';\nexport const TRANSFER_ENDPOINT = 'commit';\nexport const RESUME_ENDPOINT = 'resume';\nexport const SPARK_USER_AGENT = 'spark-user-agent';\nexport const REGISTER_RETRY_TIMEOUT = 10000;\nexport const SUPPLEMENTARY_SERVICES_TIMEOUT = 10000;\nexport const API_V1 = '/api/v1';\nexport const URL_ENDPOINT = '/calling/web/';\nexport const VALID_PHONE_REGEX = /[\\d\\s()*#+.-]+/;\nexport const WEB_AGENT = '(web)';\nexport const WEBEX = 'webex';\nexport const WEBEX_WEB_CLIENT = 'webex-web-client';\nexport const CALLER_ID_FILE = 'CallerId';\nexport const UTILS_FILE = 'utils';\nexport const CALLING_CLIENT_FILE = 'CallingClient';\nexport const LINE_FILE = 'line';\nexport const CALL_FILE = 'call';\nexport const CALL_MANAGER_FILE = 'callManager';\nexport const METRIC_FILE = 'metric';\nexport const REGISTRATION_FILE = 'register';\nexport const CODEC_ID = 'codecId';\nexport const MEDIA_ID = 'id';\nexport const RTC_ICE_CANDIDATE_PAIR = 'RTCIceCandidatePair_';\nexport const LOCAL_CANDIDATE_ID = 'localCandidateId';\nexport const RTC_ICE_CANDIDATE = 'RTCIceCandidate_';\nexport const NETWORK_TYPE = 'networkType';\nexport const RTC_CODEC = 'RTCCodec_';\nexport const INBOUND_CODEC_MATCH = 'CIT01_';\nexport const OUTBOUND_CODEC_MATCH = 'COT01_';\nexport const MIME_TYPE = 'mimeType';\nexport const REMOTE_INBOUND_RTP = 'remote-inbound-rtp';\nexport const TOTAL_ROUND_TRIP_TIME = 'totalRoundTripTime';\nexport const ROUND_TRIP_TIME_MEASUREMENTS = 'roundTripTimeMeasurements';\nexport const INBOUND_RTP = 'inbound-rtp';\nexport const OUTBOUND_RTP = 'outbound-rtp';\nexport const PACKETS_RECEIVED = 'packetsReceived';\nexport const PACKETS_SENT = 'packetsSent';\nexport const PACKETS_LOST = 'packetsLost';\nexport const PACKETS_DISCARDED = 'packetsDiscarded';\nexport const JITTER_BUFFER_DELAY = 'jitterBufferDelay';\nexport const JITTER_BUFFER_EMITTED_COUNT = 'jitterBufferEmittedCount';\nexport const TIMESTAMP = 'timestamp';\nexport const TYPE = 'type';\nexport const TRANSPORT = 'transport';\nexport const TARGET_BIT_RATE = 'targetBitrate';\nexport const MEDIA_SOURCE = 'media-source';\nexport const BYTES_RECEIVED = 'bytesReceived';\nexport const BYTES_SENT = 'bytesSent';\nexport const SELECTED_CANDIDATE_PAIR_ID = 'selectedCandidatePairId';\nexport const TOTAL_SAMPLES_DURATION = 'totalSamplesDuration';\nexport const RTP_RX_STAT = 'rtp-rxstat';\nexport const RTP_TX_STAT = 'rtp-txstat';\nexport const BASE_REG_TIMER_MFACTOR = 2;\nexport const BASE_REG_RETRY_TIMER_VAL_IN_SEC = 30;\nexport const SEC_TO_MSEC_MFACTOR = 1000;\nexport const MINUTES_TO_SEC_MFACTOR = 60;\nexport const REG_RANDOM_T_FACTOR_UPPER_LIMIT = 10000;\nexport const REG_TRY_BACKUP_TIMER_VAL_IN_SEC = 114;\nexport const REG_FAILBACK_429_MAX_RETRIES = 5;\nexport const RETRY_TIMER_UPPER_LIMIT = 60;\nexport const REGISTRATION_UTIL = 'triggerRegistration';\nexport const REGISTER_UTIL = 'attemptRegistrationWithServers';\nexport const GET_MOBIUS_SERVERS_UTIL = 'getMobiusServers';\nexport const KEEPALIVE_UTIL = 'startKeepaliveTimer';\nexport const FAILBACK_UTIL = 'executeFailback';\nexport const REG_429_RETRY_UTIL = 'handle429Retry';\nexport const FAILOVER_UTIL = 'startFailoverTimer';\nexport const NETWORK_CHANGE_DETECTION_UTIL = 'detectNetworkChange';\nexport const CALLS_CLEARED_HANDLER_UTIL = 'callsClearedHandler';\nexport const RECONNECT_UTIL = 'reconnectOnFailure';\nexport const NOISE_REDUCTION_EFFECT = 'noise-reduction-effect';\nexport const MOBIUS_US_PROD = 'mobius-us-east-1.prod.infra.webex.com';\nexport const MOBIUS_EU_PROD = 'mobius-eu-central-1.prod.infra.webex.com';\nexport const MOBIUS_US_INT = 'mobius-us-east-1.int.infra.webex.com';\nexport const MOBIUS_EU_INT = 'mobius-eu-central-1.int.infra.webex.com';\nexport const ICE_CANDIDATES_TIMEOUT = 3000;\n// Define constants for method names\nexport const METHODS = {\n CONSTRUCTOR: 'constructor',\n CREATE_CALL: 'createCall',\n HANDLE_INCOMING_CALL_SETUP: 'handleIncomingCallSetup',\n HANDLE_OUTGOING_CALL_SETUP: 'handleOutgoingCallSetup',\n HANDLE_CALL_HOLD: 'handleCallHold',\n HANDLE_CALL_RESUME: 'handleCallResume',\n HANDLE_INCOMING_CALL_PROGRESS: 'handleIncomingCallProgress',\n HANDLE_INCOMING_ROAP_OFFER_REQUEST: 'handleIncomingRoapOfferRequest',\n HANDLE_OUTGOING_CALL_ALERTING: 'handleOutgoingCallAlerting',\n HANDLE_INCOMING_CALL_CONNECT: 'handleIncomingCallConnect',\n HANDLE_OUTGOING_CALL_CONNECT: 'handleOutgoingCallConnect',\n HANDLE_INCOMING_CALL_DISCONNECT: 'handleIncomingCallDisconnect',\n HANDLE_OUTGOING_CALL_DISCONNECT: 'handleOutgoingCallDisconnect',\n HANDLE_CALL_ESTABLISHED: 'handleCallEstablished',\n HANDLE_UNKNOWN_STATE: 'handleUnknownState',\n HANDLE_TIMEOUT: 'handleTimeout',\n GET_EMITTER_CALLBACK: 'getEmitterCallback',\n HANDLE_ROAP_ESTABLISHED: 'handleRoapEstablished',\n HANDLE_ROAP_ERROR: 'handleRoapError',\n HANDLE_OUTGOING_ROAP_OFFER: 'handleOutgoingRoapOffer',\n HANDLE_OUTGOING_ROAP_ANSWER: 'handleOutgoingRoapAnswer',\n HANDLE_INCOMING_ROAP_OFFER: 'handleIncomingRoapOffer',\n HANDLE_INCOMING_ROAP_ANSWER: 'handleIncomingRoapAnswer',\n INIT: 'init',\n FORCE_SEND_STATS_REPORT: 'forceSendStatsReport',\n UPDATE_ACTIVE_MOBIUS: 'updateActiveMobius',\n DEQUEUE_WS_EVENTS: 'dequeueWsEvents',\n GET_CALL: 'getCall',\n GET_ACTIVE_CALLS: 'getActiveCalls',\n UPDATE_LINE: 'updateLine',\n GET_LINE_ID: 'getLineId',\n INIT_MEDIA_CONNECTION: 'initMediaConnection',\n GET_DIRECTION: 'getDirection',\n GET_CALL_ID: 'getCallId',\n GET_CORRELATION_ID: 'getCorrelationId',\n SEND_CALL_STATE_MACHINE_EVT: 'sendCallStateMachineEvt',\n SEND_MEDIA_STATE_MACHINE_EVT: 'sendMediaStateMachineEvt',\n SET_CALL_ID: 'setCallId',\n SET_DISCONNECT_REASON: 'setDisconnectReason',\n GET_DISCONNECT_REASON: 'getDisconnectReason',\n ANSWER: 'answer',\n DIAL: 'dial',\n POST: 'post',\n PATCH: 'patch',\n POST_SS_REQUEST: 'postSSRequest',\n POST_STATUS: 'postStatus',\n COMPLETE_TRANSFER: 'completeTransfer',\n GET_CALL_STATS: 'getCallStats',\n POST_MEDIA: 'postMedia',\n MEDIA_ROAP_EVENTS_LISTENER: 'mediaRoapEventsListener',\n MEDIA_TRACK_LISTENER: 'mediaTrackListener',\n ON_EFFECT_ENABLED: 'onEffectEnabled',\n ON_EFFECT_DISABLED: 'onEffectDisabled',\n UPDATE_TRACK: 'updateTrack',\n REGISTER_EFFECT_LISTENER: 'registerEffectListener',\n UNREGISTER_LISTENERS: 'unregisterListeners',\n REGISTER_LISTENERS: 'registerListeners',\n DELETE: 'delete',\n SUBMIT_CALL_ERROR_METRIC: 'submitCallErrorMetric',\n HANDLE_MID_CALL_EVENT: 'handleMidCallEvent',\n GET_CALLER_INFO: 'getCallerInfo',\n END: 'end',\n DO_HOLD_RESUME: 'doHoldResume',\n START_CALLER_ID_RESOLUTION: 'startCallerIdResolution',\n SEND_DIGIT: 'sendDigit',\n MUTE: 'mute',\n IS_MUTED: 'isMuted',\n IS_CONNECTED: 'isConnected',\n IS_HELD: 'isHeld',\n UPDATE_MEDIA: 'updateMedia',\n SET_BROADWORKS_CORRELATION_INFO: 'setBroadworksCorrelationInfo',\n GET_BROADWORKS_CORRELATION_INFO: 'getBroadworksCorrelationInfo',\n GET_CALL_RTP_STATS: 'getCallRtpStats',\n REGISTER: 'register',\n DEREGISTER: 'deregister',\n NORMALIZE_LINE: 'normalizeLine',\n LINE_EMITTER: 'lineEmitter',\n GET_LOGGING_LEVEL: 'getLoggingLevel',\n GET_ACTIVE_MOBIUS_URL: 'getActiveMobiusUrl',\n GET_STATUS: 'getStatus',\n GET_DEVICE_ID: 'getDeviceId',\n MAKE_CALL: 'makeCall',\n INCOMING_CALL_LISTENER: 'incomingCallListener',\n SET_MOBIUS_SERVERS: 'setMobiusServers',\n HANDLE_CONNECTION_RESTORATION: 'handleConnectionRestoration',\n RECONNECT_ON_FAILURE: 'reconnectOnFailure',\n DETECT_NETWORK_CHANGE: 'detectNetworkChange',\n GET_CLIENT_REGION_INFO: 'getClientRegionInfo',\n GET_MOBIUS_SERVERS: 'getMobiusServers',\n REGISTER_CALLS_CLEARED_LISTENER: 'registerCallsClearedListener',\n CALLS_CLEARED_HANDLER: 'callsClearedHandler',\n REGISTER_SESSIONS_LISTENER: 'registerSessionsListener',\n CREATE_LINE: 'createLine',\n GET_LINES: 'getLines',\n UPLOAD_LOGS: 'uploadLogs',\n GET_SDK_CONNECTOR: 'getSDKConnector',\n GET_CONNECTED_CALL: 'getConnectedCall',\n};\n"],"mappings":"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"}
|