@webex/calling 3.8.1 → 3.9.0-multi-llms.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/dist/CallHistory/CallHistory.js +51 -46
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +146 -147
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
  6. package/dist/CallHistory/constants.js.map +1 -1
  7. package/dist/CallHistory/types.js.map +1 -1
  8. package/dist/CallSettings/CallSettings.js +8 -8
  9. package/dist/CallSettings/CallSettings.js.map +1 -1
  10. package/dist/CallSettings/CallSettings.test.js +1 -1
  11. package/dist/CallSettings/CallSettings.test.js.map +1 -1
  12. package/dist/CallSettings/UcmBackendConnector.js +12 -11
  13. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  14. package/dist/CallSettings/UcmBackendConnector.test.js +9 -10
  15. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  16. package/dist/CallSettings/WxCallBackendConnector.js +68 -61
  17. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  18. package/dist/CallSettings/WxCallBackendConnector.test.js +168 -102
  19. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  20. package/dist/CallSettings/constants.js.map +1 -1
  21. package/dist/CallSettings/testFixtures.js.map +1 -1
  22. package/dist/CallSettings/types.js.map +1 -1
  23. package/dist/CallingClient/CallingClient.js +530 -219
  24. package/dist/CallingClient/CallingClient.js.map +1 -1
  25. package/dist/CallingClient/CallingClient.test.js +500 -291
  26. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  27. package/dist/CallingClient/callRecordFixtures.js.map +1 -1
  28. package/dist/CallingClient/calling/CallerId/index.js +2 -2
  29. package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
  30. package/dist/CallingClient/calling/CallerId/index.test.js +8 -7
  31. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
  32. package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
  33. package/dist/CallingClient/calling/call.js +369 -333
  34. package/dist/CallingClient/calling/call.js.map +1 -1
  35. package/dist/CallingClient/calling/call.test.js +411 -410
  36. package/dist/CallingClient/calling/call.test.js.map +1 -1
  37. package/dist/CallingClient/calling/callManager.js +3 -4
  38. package/dist/CallingClient/calling/callManager.js.map +1 -1
  39. package/dist/CallingClient/calling/callManager.test.js +67 -68
  40. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  41. package/dist/CallingClient/calling/index.js.map +1 -1
  42. package/dist/CallingClient/calling/types.js.map +1 -1
  43. package/dist/CallingClient/callingClientFixtures.js.map +1 -1
  44. package/dist/CallingClient/constants.js +11 -8
  45. package/dist/CallingClient/constants.js.map +1 -1
  46. package/dist/CallingClient/line/index.js +10 -11
  47. package/dist/CallingClient/line/index.js.map +1 -1
  48. package/dist/CallingClient/line/line.test.js +12 -17
  49. package/dist/CallingClient/line/line.test.js.map +1 -1
  50. package/dist/CallingClient/line/types.js.map +1 -1
  51. package/dist/CallingClient/registration/index.js.map +1 -1
  52. package/dist/CallingClient/registration/register.js +557 -442
  53. package/dist/CallingClient/registration/register.js.map +1 -1
  54. package/dist/CallingClient/registration/register.test.js +526 -395
  55. package/dist/CallingClient/registration/register.test.js.map +1 -1
  56. package/dist/CallingClient/registration/registerFixtures.js.map +1 -1
  57. package/dist/CallingClient/registration/types.js.map +1 -1
  58. package/dist/CallingClient/registration/webWorker.js +116 -0
  59. package/dist/CallingClient/registration/webWorker.js.map +1 -0
  60. package/dist/CallingClient/registration/webWorker.test.js +256 -0
  61. package/dist/CallingClient/registration/webWorker.test.js.map +1 -0
  62. package/dist/CallingClient/registration/webWorkerStr.js +15 -0
  63. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -0
  64. package/dist/CallingClient/types.js.map +1 -1
  65. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +142 -0
  66. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -0
  67. package/dist/Contacts/ContactsClient.js +244 -238
  68. package/dist/Contacts/ContactsClient.js.map +1 -1
  69. package/dist/Contacts/ContactsClient.test.js +89 -90
  70. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  71. package/dist/Contacts/constants.js +2 -2
  72. package/dist/Contacts/constants.js.map +1 -1
  73. package/dist/Contacts/contactFixtures.js.map +1 -1
  74. package/dist/Contacts/types.js.map +1 -1
  75. package/dist/Errors/catalog/CallError.js +2 -2
  76. package/dist/Errors/catalog/CallError.js.map +1 -1
  77. package/dist/Errors/catalog/CallingDeviceError.js +2 -2
  78. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
  79. package/dist/Errors/catalog/ExtendedError.js +3 -3
  80. package/dist/Errors/catalog/ExtendedError.js.map +1 -1
  81. package/dist/Errors/catalog/LineError.js +2 -2
  82. package/dist/Errors/catalog/LineError.js.map +1 -1
  83. package/dist/Errors/index.js.map +1 -1
  84. package/dist/Errors/types.js +2 -0
  85. package/dist/Errors/types.js.map +1 -1
  86. package/dist/Events/impl/index.js +2 -2
  87. package/dist/Events/impl/index.js.map +1 -1
  88. package/dist/Events/types.js.map +1 -1
  89. package/dist/Logger/index.js.map +1 -1
  90. package/dist/Logger/index.test.js.map +1 -1
  91. package/dist/Logger/types.js.map +1 -1
  92. package/dist/Metrics/index.js +175 -86
  93. package/dist/Metrics/index.js.map +1 -1
  94. package/dist/Metrics/index.test.js +70 -4
  95. package/dist/Metrics/index.test.js.map +1 -1
  96. package/dist/Metrics/types.js +15 -1
  97. package/dist/Metrics/types.js.map +1 -1
  98. package/dist/SDKConnector/index.js +0 -1
  99. package/dist/SDKConnector/index.js.map +1 -1
  100. package/dist/SDKConnector/index.test.js.map +1 -1
  101. package/dist/SDKConnector/types.js.map +1 -1
  102. package/dist/SDKConnector/utils.js.map +1 -1
  103. package/dist/SDKConnector/utils.test.js.map +1 -1
  104. package/dist/Voicemail/BroadworksBackendConnector.js +42 -39
  105. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  106. package/dist/Voicemail/BroadworksBackendConnector.test.js +119 -120
  107. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  108. package/dist/Voicemail/UcmBackendConnector.js +54 -47
  109. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  110. package/dist/Voicemail/UcmBackendConnector.test.js +73 -74
  111. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  112. package/dist/Voicemail/Voicemail.js +12 -11
  113. package/dist/Voicemail/Voicemail.js.map +1 -1
  114. package/dist/Voicemail/Voicemail.test.js +2 -2
  115. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  116. package/dist/Voicemail/WxCallBackendConnector.js +78 -70
  117. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  118. package/dist/Voicemail/WxCallBackendConnector.test.js +184 -185
  119. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  120. package/dist/Voicemail/constants.js.map +1 -1
  121. package/dist/Voicemail/types.js.map +1 -1
  122. package/dist/Voicemail/voicemailFixture.js.map +1 -1
  123. package/dist/api.js.map +1 -1
  124. package/dist/common/Utils.js +125 -99
  125. package/dist/common/Utils.js.map +1 -1
  126. package/dist/common/Utils.test.js +283 -143
  127. package/dist/common/Utils.test.js.map +1 -1
  128. package/dist/common/constants.js.map +1 -1
  129. package/dist/common/index.js.map +1 -1
  130. package/dist/common/testUtil.js +1 -1
  131. package/dist/common/testUtil.js.map +1 -1
  132. package/dist/common/types.js +8 -1
  133. package/dist/common/types.js.map +1 -1
  134. package/dist/index.js +5 -5
  135. package/dist/index.js.map +1 -1
  136. package/dist/module/CallHistory/CallHistory.js +4 -0
  137. package/dist/module/CallSettings/UcmBackendConnector.js +1 -0
  138. package/dist/module/CallSettings/WxCallBackendConnector.js +8 -1
  139. package/dist/module/CallingClient/CallingClient.js +199 -42
  140. package/dist/module/CallingClient/calling/call.js +79 -43
  141. package/dist/module/CallingClient/constants.js +10 -6
  142. package/dist/module/CallingClient/line/index.js +3 -3
  143. package/dist/module/CallingClient/registration/register.js +111 -72
  144. package/dist/module/CallingClient/registration/webWorker.js +60 -0
  145. package/dist/module/CallingClient/registration/webWorkerStr.js +93 -0
  146. package/dist/module/CallingClient/windowsChromiumIceWarmupUtils.js +59 -0
  147. package/dist/module/Contacts/ContactsClient.js +23 -17
  148. package/dist/module/Contacts/constants.js +1 -1
  149. package/dist/module/Errors/types.js +2 -0
  150. package/dist/module/Metrics/index.js +94 -33
  151. package/dist/module/Metrics/types.js +14 -0
  152. package/dist/module/Voicemail/BroadworksBackendConnector.js +3 -0
  153. package/dist/module/Voicemail/UcmBackendConnector.js +6 -0
  154. package/dist/module/Voicemail/WxCallBackendConnector.js +8 -0
  155. package/dist/module/common/Utils.js +37 -12
  156. package/dist/module/common/types.js +7 -0
  157. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  158. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  159. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  160. package/dist/types/CallSettings/types.d.ts +1 -1
  161. package/dist/types/CallSettings/types.d.ts.map +1 -1
  162. package/dist/types/CallingClient/CallingClient.d.ts +12 -1
  163. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  164. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  165. package/dist/types/CallingClient/calling/types.d.ts +2 -1
  166. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  167. package/dist/types/CallingClient/constants.d.ts +10 -6
  168. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  169. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  170. package/dist/types/CallingClient/registration/register.d.ts +2 -2
  171. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  172. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  173. package/dist/types/CallingClient/registration/webWorker.d.ts +3 -0
  174. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -0
  175. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +3 -0
  176. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -0
  177. package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts +5 -0
  178. package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts.map +1 -0
  179. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  180. package/dist/types/Contacts/constants.d.ts +1 -1
  181. package/dist/types/Contacts/constants.d.ts.map +1 -1
  182. package/dist/types/Errors/types.d.ts +2 -0
  183. package/dist/types/Errors/types.d.ts.map +1 -1
  184. package/dist/types/Metrics/index.d.ts.map +1 -1
  185. package/dist/types/Metrics/types.d.ts +20 -4
  186. package/dist/types/Metrics/types.d.ts.map +1 -1
  187. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  188. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  189. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  190. package/dist/types/common/Utils.d.ts.map +1 -1
  191. package/dist/types/common/types.d.ts +13 -0
  192. package/dist/types/common/types.d.ts.map +1 -1
  193. package/package.json +10 -8
@@ -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","mock","originalModule","requireActual","uploadLogs","fn","mockImplementation","_promise","resolve","undefined","handleCallingClientErrors","spyOn","mockResolvedValue","describe","handleErrorSpy","setLoggerSpy","webex","getTestUtilsWebex","internal","services","mockCatalogUS","defaultServiceIndicator","ServiceIndicator","CALLING","callManager","getCallManager","logSpy","log","warnSpy","originalProcessNextTick","process","nextTick","flushPromises","afterAll","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","urlSpy","callingClient","wrap","_callee$","_context","prev","next","_hostCatalog","mockCatalogEU","window","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","mockRejectedValueOnce","toBeCalledWith","anything","file","CALLING_CLIENT_FILE","_callee17","_callee17$","_context17","_callee18","infoSpy","_callee18$","_context18","mockReset","discovery","region","country","METHOD_START_MESSAGE","toBeCalledOnceWith","toHaveBeenCalled","mobiusCluster","checkCluster","_ref19","_callee19","mockServiceHosts","mockCatalog","_callee19$","_context19","_x","_x2","each","_ref20","_callee20","clusterName","_callee20$","_context20","abrupt","mockIntServiceHosts","mockCatalogUSInt","mockEUIntServiceHosts","mockCatalogEUInt","_x3","line","reg","restoreSpy","deRegSpy","restartRegisterSpy","registerSpy","beforeEach","_callee21","_callee21$","_context21","useFakeTimers","registrationPayload","_values","lineDict","registration","register","_callee22","_callee22$","_context22","getStatus","RegistrationStatus","ACTIVE","mercury","connected","advanceTimersByTime","NETWORK_FLAP_TIMEOUT","NETWORK_CHANGE_DETECTION_UTIL","info","REGISTRATION_FILE","getActiveMobiusUrl","_callee23","mockRegistrationBody","successPayload","_callee23$","_context23","body","getMockDeviceInfo","_callee24","handleConnectionRestoreSpy","_callee24$","_context24","setStatus","IDLE","_callee25","_callee25$","_context25","createCall","_keys","getActiveCalls","toBe","_callee26","_callee26$","_context26","getLines","mutex","Mutex","userId","device","clientDeviceUri","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","primary","backupMobiusUris","backup","beforeAll","_callee27","calls","_callee27$","_context27","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","_callee28","_callee28$","_context28","done","CALLING_CLIENT_EVENT_KEYS","USER_SESSION_INFO","event","data","MOCK_SESSION_EVENT","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.mock('../common/Utils', () => {\n const originalModule = jest.requireActual('../common/Utils');\n\n return {\n ...originalModule,\n uploadLogs: jest.fn().mockImplementation(() => Promise.resolve(undefined)),\n handleCallingClientErrors: jest.fn(),\n };\n});\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.mockRejectedValueOnce(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('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('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 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 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","_types4","_windowsChromiumIceWarmupUtils","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","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","infoSpy","log","logSpy","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","_callee0","_callee0$","_context0","_callee9","_callee9$","_context9","_callee1","_callee1$","_context1","CONTACT_CENTER","_callee11","_callee11$","_context11","_callee10","_callee10$","_context10","_callee12","_callee12$","_context12","getLoggingLevel","clearAllTimers","clearAllMocks","useRealTimers","_callee13","_callee13$","_context13","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","_callee14","failurePayload","_callee14$","_context14","statusCode","mockRejectedValue","toBeCalledWith","anything","file","CALLING_CLIENT_FILE","objectContaining","_callee15","_callee15$","_context15","mockRejectedValueOnce","toBeCalledOnceWith","_callee16","_callee16$","_context16","_callee17","_callee17$","_context17","_callee18","_callee18$","_context18","mockReset","discovery","region","country","METHOD_START_MESSAGE","toHaveBeenCalled","mobiusCluster","checkCluster","_ref19","_callee19","mockServiceHosts","mockCatalog","_callee19$","_context19","_x","_x2","each","_ref20","_callee20","clusterName","_callee20$","_context20","abrupt","mockIntServiceHosts","mockCatalogUSInt","mockEUIntServiceHosts","mockCatalogEUInt","_x3","line","beforeEach","_callee21","_callee21$","_context21","_values","lineDict","_keys","getLines","reg","windowEventSpy","deRegSpy","restoreSpy","restartRegisterSpy","registerSpy","metricSpy","_callee22","_callee22$","_context22","useFakeTimers","registrationPayload","registration","register","callCollection","_callee23","g","clearKeepaliveSpy","offlineCb","_callee23$","_context23","fetch","fn","mock","calls","stringContaining","toBe","_callee24","_callee24$","_context24","any","_callee25","onlineCb","_callee25$","_context25","String","_callee26","mercuryOfflineCb","_callee26$","_context26","mercury","on","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","_callee27","handleConnectionRestoreSpy","mercuryOnlineCb","_callee27$","_context27","advanceTimersByTime","NETWORK_FLAP_TIMEOUT","REGISTRATION_FILE","getActiveMobiusUrl","NETWORK_FLAP","_callee28","_callee28$","_context28","setStatus","RegistrationStatus","IDLE","_callee29","callKeepaliveSpy","deleteSpy","_callee29$","_context29","createCall","getActiveCalls","state","value","_callee30","_callee30$","_context30","MERCURY_UP","mutex","Mutex","userId","device","clientDeviceUri","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","primary","backupMobiusUris","backup","beforeAll","_callee31","_callee31$","_context31","Line","end","getSDKConnector","getWebex","makeCall","address","type","CallType","URI","getConnectedCall","mockCall","mockCall2","mockActiveCalls","mockCorrelationId","mockCorrelationId2","mockReturnValue","mockDeviceId","lineId","mockDeviceId2","mockCall3","mockCorrelationId3","mockLineId","mockLineId2","mockOn","_callee32","_callee32$","_context32","done","CALLING_CLIENT_EVENT_KEYS","USER_SESSION_INFO","event","data","MOCK_SESSION_EVENT","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","_callee33","_callee33$","_context33","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 getMobiusDiscoveryResponse,\n} from '../common/testUtil';\nimport {CallType, RegistrationStatus, ServiceIndicator} 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_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 {METRIC_EVENT, CONNECTION_ACTION, METRIC_TYPE} from '../Metrics/types';\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 infoSpy = jest.spyOn(log, 'info');\n const logSpy = jest.spyOn(log, 'log');\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 expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\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 expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\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 expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\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 expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n })\n );\n });\n\n it('Verify successful mobius server url discovery after initializing callingClient through a config', async () => {\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('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 describe('Connectivity and Mercury event handlers', () => {\n let callingClient: ICallingClient;\n let line;\n let reg;\n let windowEventSpy: jest.SpyInstance;\n let deRegSpy;\n let restoreSpy;\n let restartRegisterSpy;\n let registerSpy;\n let metricSpy;\n\n beforeEach(async () => {\n jest.useFakeTimers();\n webex.request\n .mockResolvedValueOnce(ipPayload)\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload)\n .mockResolvedValueOnce(registrationPayload);\n\n windowEventSpy = jest.spyOn(window, 'addEventListener');\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(reg, 'deregister');\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n restartRegisterSpy = jest.spyOn(reg, 'restartRegistration');\n registerSpy = jest.spyOn(reg, 'attemptRegistrationWithServers');\n metricSpy = jest.spyOn(callingClient['metricManager'], 'submitConnectionMetrics');\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callingClient['callManager'].callCollection = {};\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('window offline handler sets networkDown and clears keepalive when network is unreachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockRejectedValueOnce(new Error('network fail'));\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Network connectivity probe failed'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n }\n );\n expect(callingClient['isNetworkDown']).toBe(true);\n expect(clearKeepaliveSpy).toHaveBeenCalled();\n });\n\n it('window offline handler does not clear keepalive when network is reachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockResolvedValueOnce({});\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(g.fetch).toHaveBeenCalledWith(\n 'https://www.google.com/generate_204',\n expect.any(Object)\n );\n expect(callingClient['isNetworkDown']).toBe(false);\n expect(clearKeepaliveSpy).not.toHaveBeenCalled();\n });\n\n it('window online handler sets networkUpTimestamp and logs', async () => {\n const onlineCb = windowEventSpy.mock.calls[0][1];\n await onlineCb();\n\n expect(callingClient['networkUpTimestamp']).toEqual(expect.any(String));\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: 'handleNetworkOnline',\n });\n });\n\n it('mercury offline submits metrics and sets timestamp', async () => {\n const mercuryOfflineCb = webex.internal.mercury.on.mock.calls[1][1];\n await mercuryOfflineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Mercury down, waiting for connection to be up'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'handleMercuryOffline',\n }\n );\n expect(callingClient['mercuryDownTimestamp']).toEqual(expect.any(String));\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n ''\n );\n });\n\n it('handles reconnection with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).toHaveBeenCalledWith(true);\n expect(logSpy).toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).toHaveBeenCalledWith();\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('no reconnection for idle registration with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n reg.setStatus(RegistrationStatus.IDLE);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).not.toHaveBeenCalledWith(true);\n expect(logSpy).not.toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).not.toHaveBeenCalledWith();\n expect(restoreSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('handle calls status check once mercury comes back up after a network flap', async () => {\n callingClient['isNetworkDown'] = true;\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n\n it('handle calls status check once mercury comes back up with stable network', async () => {\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\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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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","WEBEX_CALL_SESSION","id","durationSecs","self","name","phoneNumber","url","sessionId","sessionType","SessionType","WEBEX_CALLING","startTime","endTime","direction","disposition","Disposition","INITIATED","other","isPrivate","callbackAddress","durationSeconds","joinedDurationSeconds","participantCount","links","locusUrl","conversationUrl","isDeleted","isPMR","correlationIds","SPARK_CALL_SESSION","SPARK","MOCK_SESSION_EVENT","exports","data","userSessions","statusCode","eventType","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","timestamp","trackingId","MOCK_MULTIPLE_SESSIONS_EVENT"],"sources":["callRecordFixtures.ts"],"sourcesContent":["import {CallSessionEvent, SessionType, Disposition, MOBIUS_EVENT_KEYS} from '../Events/types';\n\nconst WEBEX_CALL_SESSION = {\n id: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n durationSecs: 438,\n self: {\n id: 'a24027e7-9b6e-4047-a950-42f4492148ec',\n name: 'Mark',\n phoneNumber: '123456',\n },\n url: 'https://janus-a.wbx2.com/janus/api/v1/history/userSessions/d74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionId: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionType: SessionType.WEBEX_CALLING,\n startTime: '2022-08-02T10:45:21.565Z',\n endTime: '2022-08-02T10:53:01.624Z',\n direction: 'OUTGOING',\n disposition: Disposition.INITIATED,\n other: {\n id: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n name: 'test',\n isPrivate: false,\n callbackAddress: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n phoneNumber: '123456679',\n },\n durationSeconds: 438,\n joinedDurationSeconds: 457,\n participantCount: 2,\n links: {\n locusUrl: 'https://locus-a.wbx2.com/locus/api/v1/loci/f5dbe4da-663b-3f73-a2fc-3a2fb0f12080',\n conversationUrl:\n 'https://conv-a.wbx2.com/conversation/api/v1/conversations/c9252ff0-9de2-11ec-a582-59d00c02cca9',\n callbackAddress: '123-456-7890',\n },\n\n isDeleted: false,\n isPMR: false,\n correlationIds: ['58ea6cd9-852b-4a77-957f-e704c8b0e63e'],\n};\n\nconst SPARK_CALL_SESSION = {\n id: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n durationSecs: 438,\n self: {\n id: 'a24027e7-9b6e-4047-a950-42f4492148ec',\n name: 'Mark',\n phoneNumber: '123456',\n },\n url: 'https://janus-a.wbx2.com/janus/api/v1/history/userSessions/d74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionId: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionType: SessionType.SPARK,\n startTime: '2022-08-02T10:45:21.565Z',\n endTime: '2022-08-02T10:53:01.624Z',\n direction: 'OUTGOING',\n disposition: Disposition.INITIATED,\n other: {\n id: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n name: 'test',\n isPrivate: false,\n callbackAddress: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n phoneNumber: '123456679',\n },\n durationSeconds: 438,\n joinedDurationSeconds: 457,\n participantCount: 2,\n links: {\n locusUrl: 'https://locus-a.wbx2.com/locus/api/v1/loci/f5dbe4da-663b-3f73-a2fc-3a2fb0f12080',\n conversationUrl:\n 'https://conv-a.wbx2.com/conversation/api/v1/conversations/c9252ff0-9de2-11ec-a582-59d00c02cca9',\n callbackAddress: '123-456-7890',\n },\n\n isDeleted: false,\n isPMR: false,\n correlationIds: ['58ea6cd9-852b-4a77-957f-e704c8b0e63e'],\n};\n\nexport const MOCK_SESSION_EVENT: CallSessionEvent = {\n id: 'id',\n data: {\n userSessions: {\n userSessions: [WEBEX_CALL_SESSION],\n statusCode: 0,\n },\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n },\n timestamp: 12345,\n trackingId: 'tracking-id',\n};\n\nexport const MOCK_MULTIPLE_SESSIONS_EVENT: CallSessionEvent = {\n id: 'id',\n data: {\n userSessions: {\n userSessions: [WEBEX_CALL_SESSION, SPARK_CALL_SESSION],\n statusCode: 0,\n },\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n },\n timestamp: 12345,\n trackingId: 'tracking-id',\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_types","require","WEBEX_CALL_SESSION","id","durationSecs","self","name","phoneNumber","url","sessionId","sessionType","SessionType","WEBEX_CALLING","startTime","endTime","direction","disposition","Disposition","INITIATED","other","isPrivate","callbackAddress","durationSeconds","joinedDurationSeconds","participantCount","links","locusUrl","conversationUrl","isDeleted","isPMR","correlationIds","SPARK_CALL_SESSION","SPARK","MOCK_SESSION_EVENT","exports","data","userSessions","statusCode","eventType","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","timestamp","trackingId","MOCK_MULTIPLE_SESSIONS_EVENT"],"sources":["callRecordFixtures.ts"],"sourcesContent":["import {CallSessionEvent, SessionType, Disposition, MOBIUS_EVENT_KEYS} from '../Events/types';\n\nconst WEBEX_CALL_SESSION = {\n id: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n durationSecs: 438,\n self: {\n id: 'a24027e7-9b6e-4047-a950-42f4492148ec',\n name: 'Mark',\n phoneNumber: '123456',\n },\n url: 'https://janus-a.wbx2.com/janus/api/v1/history/userSessions/d74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionId: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionType: SessionType.WEBEX_CALLING,\n startTime: '2022-08-02T10:45:21.565Z',\n endTime: '2022-08-02T10:53:01.624Z',\n direction: 'OUTGOING',\n disposition: Disposition.INITIATED,\n other: {\n id: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n name: 'test',\n isPrivate: false,\n callbackAddress: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n phoneNumber: '123456679',\n },\n durationSeconds: 438,\n joinedDurationSeconds: 457,\n participantCount: 2,\n links: {\n locusUrl: 'https://locus-a.wbx2.com/locus/api/v1/loci/f5dbe4da-663b-3f73-a2fc-3a2fb0f12080',\n conversationUrl:\n 'https://conv-a.wbx2.com/conversation/api/v1/conversations/c9252ff0-9de2-11ec-a582-59d00c02cca9',\n callbackAddress: '123-456-7890',\n },\n\n isDeleted: false,\n isPMR: false,\n correlationIds: ['58ea6cd9-852b-4a77-957f-e704c8b0e63e'],\n};\n\nconst SPARK_CALL_SESSION = {\n id: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n durationSecs: 438,\n self: {\n id: 'a24027e7-9b6e-4047-a950-42f4492148ec',\n name: 'Mark',\n phoneNumber: '123456',\n },\n url: 'https://janus-a.wbx2.com/janus/api/v1/history/userSessions/d74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionId: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionType: SessionType.SPARK,\n startTime: '2022-08-02T10:45:21.565Z',\n endTime: '2022-08-02T10:53:01.624Z',\n direction: 'OUTGOING',\n disposition: Disposition.INITIATED,\n other: {\n id: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n name: 'test',\n isPrivate: false,\n callbackAddress: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n phoneNumber: '123456679',\n },\n durationSeconds: 438,\n joinedDurationSeconds: 457,\n participantCount: 2,\n links: {\n locusUrl: 'https://locus-a.wbx2.com/locus/api/v1/loci/f5dbe4da-663b-3f73-a2fc-3a2fb0f12080',\n conversationUrl:\n 'https://conv-a.wbx2.com/conversation/api/v1/conversations/c9252ff0-9de2-11ec-a582-59d00c02cca9',\n callbackAddress: '123-456-7890',\n },\n\n isDeleted: false,\n isPMR: false,\n correlationIds: ['58ea6cd9-852b-4a77-957f-e704c8b0e63e'],\n};\n\nexport const MOCK_SESSION_EVENT: CallSessionEvent = {\n id: 'id',\n data: {\n userSessions: {\n userSessions: [WEBEX_CALL_SESSION],\n statusCode: 0,\n },\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n },\n timestamp: 12345,\n trackingId: 'tracking-id',\n};\n\nexport const MOCK_MULTIPLE_SESSIONS_EVENT: CallSessionEvent = {\n id: 'id',\n data: {\n userSessions: {\n userSessions: [WEBEX_CALL_SESSION, SPARK_CALL_SESSION],\n statusCode: 0,\n },\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n },\n timestamp: 12345,\n trackingId: 'tracking-id',\n};\n"],"mappings":"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","ignoreList":[]}
@@ -52,7 +52,7 @@ var CallerId = exports.CallerId = /*#__PURE__*/function () {
52
52
  (0, _createClass2.default)(CallerId, [{
53
53
  key: "resolveCallerId",
54
54
  value: (function () {
55
- var _resolveCallerId = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(filter) {
55
+ var _resolveCallerId = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(filter) {
56
56
  var displayResult, isChanged;
57
57
  return _regenerator.default.wrap(function _callee$(_context) {
58
58
  while (1) switch (_context.prev = _context.next) {
@@ -120,7 +120,7 @@ var CallerId = exports.CallerId = /*#__PURE__*/function () {
120
120
  }, {
121
121
  key: "parseRemotePartyInfo",
122
122
  value: (function () {
123
- var _parseRemotePartyInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(data) {
123
+ var _parseRemotePartyInfo = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(data) {
124
124
  var lastToken, externalId;
125
125
  return _regenerator.default.wrap(function _callee2$(_context2) {
126
126
  while (1) switch (_context2.prev = _context2.next) {
@@ -1 +1 @@
1
- {"version":3,"names":["_index","_interopRequireDefault","require","_constants","_SDKConnector","_common","CallerId","exports","webex","emitter","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","callerInfo","getWebex","setWebex","_createClass2","key","value","_resolveCallerId","_asyncToGenerator2","_regenerator","mark","_callee","filter","displayResult","isChanged","wrap","_callee$","_context","prev","next","resolveCallerIdDisplay","sent","name","log","info","file","CALLER_ID_FILE","method","num","avatarSrc","id","stop","resolveCallerId","_x","apply","arguments","_parseRemotePartyInfo","_callee2","data","lastToken","externalId","_callee2$","_context2","split","slice","includes","concat","warn","parseRemotePartyInfo","_x2","parseSipUri","paid","result","nameMatch","replace","trim","substring","indexOf","length","phoneMatch","match","VALID_PHONE_REGEX","fetchCallerDetails","callerId","undefined","from","createCallerId","emitterCb"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\nimport {CallerIdInfo} from '../../../Events/types';\nimport {ISDKConnector, WebexSDK} from '../../../SDKConnector/types';\nimport {DisplayInformation} from '../../../common/types';\nimport log from '../../../Logger/index';\nimport {CALLER_ID_FILE, VALID_PHONE_REGEX} from '../../constants';\n\nimport SDKConnector from '../../../SDKConnector';\nimport {ICallerId} from './types';\nimport {CallEmitterCallBack} from '../types';\nimport {resolveCallerIdDisplay} from '../../../common';\n\n/**\n *\n */\nexport class CallerId implements ICallerId {\n private webex: WebexSDK;\n\n private callerInfo: DisplayInformation;\n\n private sdkConnector: ISDKConnector;\n\n private emitter: CallEmitterCallBack;\n\n /**\n * Start the callerId instance.\n *\n * @param webex -.\n * @param callObj -.\n * @param emitter -.\n */\n constructor(webex: WebexSDK, emitter: CallEmitterCallBack) {\n this.sdkConnector = SDKConnector;\n this.callerInfo = {} as DisplayInformation;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.emitter = emitter;\n }\n\n /**\n * The handler which processes the data received from the SCIM query\n * performed through externalId.\n *\n * @param filter - A filter to be used for query.\n */\n private async resolveCallerId(filter: string) {\n const displayResult = (await resolveCallerIdDisplay(filter)) as DisplayInformation;\n let isChanged = false;\n\n /* It makes sense to emit only if the resolution gives different results than what we already have.\n * Note that results gathered from the SCIM Query is always given preference.\n */\n if (displayResult.name && this.callerInfo.name !== displayResult.name) {\n log.info('Updating Name after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.name = displayResult.name;\n isChanged = true;\n }\n\n if (displayResult.num && this.callerInfo.num !== displayResult.num) {\n log.info('Updating Number after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.num = displayResult.num;\n isChanged = true;\n }\n\n if (!this.callerInfo.avatarSrc || this.callerInfo.avatarSrc !== displayResult.avatarSrc) {\n log.info('Updating Avatar Id after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.avatarSrc = displayResult.avatarSrc;\n isChanged = true;\n }\n\n if (!this.callerInfo.id || this.callerInfo.id !== displayResult.id) {\n log.info('Updating User Id after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.id = displayResult.id;\n isChanged = true;\n }\n\n if (isChanged) {\n this.emitter(this.callerInfo);\n }\n }\n\n /**\n * Remote party Id parser.\n *\n * @param data - Entire URI string.\n */\n private async parseRemotePartyInfo(data: string) {\n /* External Id will be the last token if at all it exists */\n const lastToken = data.split(';').slice(-1)[0];\n\n if (lastToken.includes('externalId')) {\n const externalId = lastToken.split('=')[1];\n\n log.info(`externalId retrieved: ${externalId}`, {\n file: CALLER_ID_FILE,\n method: 'parseRemotePartyInfo',\n });\n\n this.resolveCallerId(`id eq \"${externalId}\"`);\n } else {\n log.warn(`externalId not found!`, {\n file: CALLER_ID_FILE,\n method: 'parseRemotePartyInfo',\n });\n }\n }\n\n /**\n * Parser for SIP Uris.\n *\n * @param paid - Entire sip uri. Can be PA-Id or From header.\n * @returns - a collection of name and number.\n * @example\n * const paid1 = '\"John O' Connor - (Guest)\" <sip:1234567890@domain>';\n * const result1 = parseSipUri(paid1);\n * result1.name = \"John O' Connor - (Guest)\"\n * result1.num = \"1234567890\"\n */\n private parseSipUri(paid: string): DisplayInformation {\n const result = {} as DisplayInformation;\n\n // Extract name\n const nameMatch = paid.split('<')[0].replace(/\"/g, '');\n if (nameMatch) {\n result.name = nameMatch.trim();\n } else {\n log.warn(`Name field not found!`, {\n file: CALLER_ID_FILE,\n method: 'parseSipUri',\n });\n }\n\n // Extract number\n const data = paid.split('@')[0].replace(/\"/g, '');\n const num = data.substring(data.indexOf(':') + 1, data.length);\n const phoneMatch = num.match(VALID_PHONE_REGEX);\n\n if (phoneMatch && phoneMatch[0].length === num.length) {\n result.num = num;\n } else {\n log.warn(`Number field not found!`, {\n file: CALLER_ID_FILE,\n method: 'parseSipUri',\n });\n }\n\n return result;\n }\n\n /**\n * The main entrypoint of the Caller-Id instance.\n * It returns intermediate name and number and starts the\n * caller Id resolution in background.\n *\n * @param callerId - CallerId data passed to us by Call Instance.\n * @returns - A collection of name and number.\n */\n public fetchCallerDetails(callerId: CallerIdInfo) {\n /* resetting previously set fields */\n this.callerInfo.id = undefined;\n this.callerInfo.avatarSrc = undefined;\n this.callerInfo.name = undefined;\n this.callerInfo.num = undefined;\n\n if ('p-asserted-identity' in callerId) {\n log.info('Parsing p-asserted-identity within remote party information', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n const result = this.parseSipUri(callerId['p-asserted-identity'] as string);\n\n /* For P-Asserted-Identity, we update the callerInfo blindly, as it is of highest preference */\n this.callerInfo.name = result.name;\n this.callerInfo.num = result.num;\n }\n\n if (callerId.from) {\n log.info('Parsing from header within the remote party information', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n\n const result = this.parseSipUri(callerId.from);\n\n /* For From header , we should only update if not filled already by P-Asserted-Identity */\n if (!this.callerInfo.name && result.name) {\n log.info('Updating name field from From header', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n this.callerInfo.name = result.name;\n }\n\n if (!this.callerInfo.num && result.num) {\n log.info('Updating number field from From header', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n this.callerInfo.num = result.num;\n }\n }\n\n /* Emit the intermediate CallerId */\n\n if (this.callerInfo.name || this.callerInfo.num) {\n this.emitter(this.callerInfo);\n }\n\n /* We need to parse x-broadworks-remote-party-info if present asynchronously */\n if ('x-broadworks-remote-party-info' in callerId) {\n log.info('Parsing x-broadworks-remote-party-info within remote party information', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n\n this.parseRemotePartyInfo(callerId['x-broadworks-remote-party-info'] as string);\n }\n\n return this.callerInfo;\n }\n}\n\n/**\n * To create CallerId instance.\n *\n * @param webex -.\n * @param emitterCb -.\n */\nexport const createCallerId = (webex: WebexSDK, emitterCb: CallEmitterCallBack): ICallerId =>\n new CallerId(webex, emitterCb);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_index","_interopRequireDefault","require","_constants","_SDKConnector","_common","CallerId","exports","webex","emitter","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","callerInfo","getWebex","setWebex","_createClass2","key","value","_resolveCallerId","_asyncToGenerator2","_regenerator","mark","_callee","filter","displayResult","isChanged","wrap","_callee$","_context","prev","next","resolveCallerIdDisplay","sent","name","log","info","file","CALLER_ID_FILE","method","num","avatarSrc","id","stop","resolveCallerId","_x","apply","arguments","_parseRemotePartyInfo","_callee2","data","lastToken","externalId","_callee2$","_context2","split","slice","includes","concat","warn","parseRemotePartyInfo","_x2","parseSipUri","paid","result","nameMatch","replace","trim","substring","indexOf","length","phoneMatch","match","VALID_PHONE_REGEX","fetchCallerDetails","callerId","undefined","from","createCallerId","emitterCb"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\nimport {CallerIdInfo} from '../../../Events/types';\nimport {ISDKConnector, WebexSDK} from '../../../SDKConnector/types';\nimport {DisplayInformation} from '../../../common/types';\nimport log from '../../../Logger/index';\nimport {CALLER_ID_FILE, VALID_PHONE_REGEX} from '../../constants';\n\nimport SDKConnector from '../../../SDKConnector';\nimport {ICallerId} from './types';\nimport {CallEmitterCallBack} from '../types';\nimport {resolveCallerIdDisplay} from '../../../common';\n\n/**\n *\n */\nexport class CallerId implements ICallerId {\n private webex: WebexSDK;\n\n private callerInfo: DisplayInformation;\n\n private sdkConnector: ISDKConnector;\n\n private emitter: CallEmitterCallBack;\n\n /**\n * Start the callerId instance.\n *\n * @param webex -.\n * @param callObj -.\n * @param emitter -.\n */\n constructor(webex: WebexSDK, emitter: CallEmitterCallBack) {\n this.sdkConnector = SDKConnector;\n this.callerInfo = {} as DisplayInformation;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.emitter = emitter;\n }\n\n /**\n * The handler which processes the data received from the SCIM query\n * performed through externalId.\n *\n * @param filter - A filter to be used for query.\n */\n private async resolveCallerId(filter: string) {\n const displayResult = (await resolveCallerIdDisplay(filter)) as DisplayInformation;\n let isChanged = false;\n\n /* It makes sense to emit only if the resolution gives different results than what we already have.\n * Note that results gathered from the SCIM Query is always given preference.\n */\n if (displayResult.name && this.callerInfo.name !== displayResult.name) {\n log.info('Updating Name after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.name = displayResult.name;\n isChanged = true;\n }\n\n if (displayResult.num && this.callerInfo.num !== displayResult.num) {\n log.info('Updating Number after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.num = displayResult.num;\n isChanged = true;\n }\n\n if (!this.callerInfo.avatarSrc || this.callerInfo.avatarSrc !== displayResult.avatarSrc) {\n log.info('Updating Avatar Id after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.avatarSrc = displayResult.avatarSrc;\n isChanged = true;\n }\n\n if (!this.callerInfo.id || this.callerInfo.id !== displayResult.id) {\n log.info('Updating User Id after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.id = displayResult.id;\n isChanged = true;\n }\n\n if (isChanged) {\n this.emitter(this.callerInfo);\n }\n }\n\n /**\n * Remote party Id parser.\n *\n * @param data - Entire URI string.\n */\n private async parseRemotePartyInfo(data: string) {\n /* External Id will be the last token if at all it exists */\n const lastToken = data.split(';').slice(-1)[0];\n\n if (lastToken.includes('externalId')) {\n const externalId = lastToken.split('=')[1];\n\n log.info(`externalId retrieved: ${externalId}`, {\n file: CALLER_ID_FILE,\n method: 'parseRemotePartyInfo',\n });\n\n this.resolveCallerId(`id eq \"${externalId}\"`);\n } else {\n log.warn(`externalId not found!`, {\n file: CALLER_ID_FILE,\n method: 'parseRemotePartyInfo',\n });\n }\n }\n\n /**\n * Parser for SIP Uris.\n *\n * @param paid - Entire sip uri. Can be PA-Id or From header.\n * @returns - a collection of name and number.\n * @example\n * const paid1 = '\"John O' Connor - (Guest)\" <sip:1234567890@domain>';\n * const result1 = parseSipUri(paid1);\n * result1.name = \"John O' Connor - (Guest)\"\n * result1.num = \"1234567890\"\n */\n private parseSipUri(paid: string): DisplayInformation {\n const result = {} as DisplayInformation;\n\n // Extract name\n const nameMatch = paid.split('<')[0].replace(/\"/g, '');\n if (nameMatch) {\n result.name = nameMatch.trim();\n } else {\n log.warn(`Name field not found!`, {\n file: CALLER_ID_FILE,\n method: 'parseSipUri',\n });\n }\n\n // Extract number\n const data = paid.split('@')[0].replace(/\"/g, '');\n const num = data.substring(data.indexOf(':') + 1, data.length);\n const phoneMatch = num.match(VALID_PHONE_REGEX);\n\n if (phoneMatch && phoneMatch[0].length === num.length) {\n result.num = num;\n } else {\n log.warn(`Number field not found!`, {\n file: CALLER_ID_FILE,\n method: 'parseSipUri',\n });\n }\n\n return result;\n }\n\n /**\n * The main entrypoint of the Caller-Id instance.\n * It returns intermediate name and number and starts the\n * caller Id resolution in background.\n *\n * @param callerId - CallerId data passed to us by Call Instance.\n * @returns - A collection of name and number.\n */\n public fetchCallerDetails(callerId: CallerIdInfo) {\n /* resetting previously set fields */\n this.callerInfo.id = undefined;\n this.callerInfo.avatarSrc = undefined;\n this.callerInfo.name = undefined;\n this.callerInfo.num = undefined;\n\n if ('p-asserted-identity' in callerId) {\n log.info('Parsing p-asserted-identity within remote party information', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n const result = this.parseSipUri(callerId['p-asserted-identity'] as string);\n\n /* For P-Asserted-Identity, we update the callerInfo blindly, as it is of highest preference */\n this.callerInfo.name = result.name;\n this.callerInfo.num = result.num;\n }\n\n if (callerId.from) {\n log.info('Parsing from header within the remote party information', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n\n const result = this.parseSipUri(callerId.from);\n\n /* For From header , we should only update if not filled already by P-Asserted-Identity */\n if (!this.callerInfo.name && result.name) {\n log.info('Updating name field from From header', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n this.callerInfo.name = result.name;\n }\n\n if (!this.callerInfo.num && result.num) {\n log.info('Updating number field from From header', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n this.callerInfo.num = result.num;\n }\n }\n\n /* Emit the intermediate CallerId */\n\n if (this.callerInfo.name || this.callerInfo.num) {\n this.emitter(this.callerInfo);\n }\n\n /* We need to parse x-broadworks-remote-party-info if present asynchronously */\n if ('x-broadworks-remote-party-info' in callerId) {\n log.info('Parsing x-broadworks-remote-party-info within remote party information', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n\n this.parseRemotePartyInfo(callerId['x-broadworks-remote-party-info'] as string);\n }\n\n return this.callerInfo;\n }\n}\n\n/**\n * To create CallerId instance.\n *\n * @param webex -.\n * @param emitterCb -.\n */\nexport const createCallerId = (webex: WebexSDK, emitterCb: CallEmitterCallBack): ICallerId =>\n new CallerId(webex, emitterCb);\n"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/pr
7
7
  var _testUtil = require("../../../common/testUtil");
8
8
  var _ = require(".");
9
9
  var _Logger = _interopRequireDefault(require("../../../Logger"));
10
+ var _constants = require("../../constants");
10
11
  /* eslint-disable dot-notation */
11
12
 
12
13
  var waitForMsecs = function waitForMsecs(msec) {
@@ -89,7 +90,7 @@ describe('CallerId tests', function () {
89
90
  /* Follow tests will follow different combinations of the headers.
90
91
  * We will check whether the priority order is followed or not.
91
92
  */
92
- it(' When PA-ID, From header is present along with x-broad-works, ', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
93
+ it(' When PA-ID, From header is present along with x-broad-works, ', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
93
94
  var dummyCallerId, output;
94
95
  return _regenerator.default.wrap(function _callee$(_context) {
95
96
  while (1) switch (_context.prev = _context.next) {
@@ -117,7 +118,7 @@ describe('CallerId tests', function () {
117
118
  }
118
119
  }, _callee);
119
120
  })));
120
- it(' When PA-ID ,From header is present along with x-broad-works , but name in PAI is missing', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
121
+ it(' When PA-ID ,From header is present along with x-broad-works , but name in PAI is missing', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
121
122
  var dummyCallerId, output;
122
123
  return _regenerator.default.wrap(function _callee2$(_context2) {
123
124
  while (1) switch (_context2.prev = _context2.next) {
@@ -146,7 +147,7 @@ describe('CallerId tests', function () {
146
147
  }
147
148
  }, _callee2);
148
149
  })));
149
- it(' When PA-ID ,From header is present along with x-broad-works , but name, number in PAI is missing', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
150
+ it(' When PA-ID ,From header is present along with x-broad-works , but name, number in PAI is missing', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
150
151
  var dummyCallerId, output;
151
152
  return _regenerator.default.wrap(function _callee3$(_context3) {
152
153
  while (1) switch (_context3.prev = _context3.next) {
@@ -175,7 +176,7 @@ describe('CallerId tests', function () {
175
176
  }
176
177
  }, _callee3);
177
178
  })));
178
- it(' When PA-ID is present but From header is absent', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
179
+ it(' When PA-ID is present but From header is absent', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
179
180
  var dummyCallerId, output;
180
181
  return _regenerator.default.wrap(function _callee4$(_context4) {
181
182
  while (1) switch (_context4.prev = _context4.next) {
@@ -203,7 +204,7 @@ describe('CallerId tests', function () {
203
204
  }
204
205
  }, _callee4);
205
206
  })));
206
- it(' When PA-ID, From header is present but x-broad-works does not have externalId, ', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
207
+ it(' When PA-ID, From header is present but x-broad-works does not have externalId, ', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
207
208
  var dummyCallerId, output;
208
209
  return _regenerator.default.wrap(function _callee5$(_context5) {
209
210
  while (1) switch (_context5.prev = _context5.next) {
@@ -232,7 +233,7 @@ describe('CallerId tests', function () {
232
233
  }
233
234
  }, _callee5);
234
235
  })));
235
- it(' When PA-ID, From header is present along with x-broad-works but SCIM query fails, ', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
236
+ it(' When PA-ID, From header is present along with x-broad-works but SCIM query fails, ', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
236
237
  var dummyCallerId, warnSpy, output;
237
238
  return _regenerator.default.wrap(function _callee6$(_context6) {
238
239
  while (1) switch (_context6.prev = _context6.next) {
@@ -255,7 +256,7 @@ describe('CallerId tests', function () {
255
256
  return waitForMsecs(50);
256
257
  case 8:
257
258
  expect(warnSpy).toHaveBeenCalledWith('Error response: - 404', {
258
- file: 'utils',
259
+ file: _constants.UTILS_FILE,
259
260
  method: 'resolveCallerIdDisplay'
260
261
  });
261
262