@webex/calling 3.11.0-webex-services-ready.1 → 3.12.0-mobius-socket.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallHistory/CallHistory.js +68 -51
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +489 -165
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +207 -6
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/calling/call.js +20 -16
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +467 -387
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.js +53 -32
- package/dist/CallingClient/calling/callManager.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +35 -0
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/calling/types.js +2 -0
- package/dist/CallingClient/calling/types.js.map +1 -1
- package/dist/CallingClient/constants.js +11 -3
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/line.test.js +15 -0
- package/dist/CallingClient/line/line.test.js.map +1 -1
- package/dist/CallingClient/registration/register.js +114 -71
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +21 -12
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/CallingClient/registration/types.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.js +2 -0
- package/dist/CallingClient/registration/webWorker.js.map +1 -1
- package/dist/CallingClient/types.js.map +1 -1
- package/dist/CallingClient/utils/constants.js +46 -0
- package/dist/CallingClient/utils/constants.js.map +1 -0
- package/dist/CallingClient/utils/index.js +63 -0
- package/dist/CallingClient/utils/index.js.map +1 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.js +106 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -0
- package/dist/CallingClient/utils/request.js +267 -0
- package/dist/CallingClient/utils/request.js.map +1 -0
- package/dist/CallingClient/utils/types.js +7 -0
- package/dist/CallingClient/utils/types.js.map +1 -0
- package/dist/CallingClient/utils/wsFeatureFlag.js +20 -0
- package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -0
- package/dist/Events/types.js +1 -11
- package/dist/Events/types.js.map +1 -1
- package/dist/SDKConnector/index.js +32 -0
- package/dist/SDKConnector/index.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/common/Utils.js +69 -10
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/testUtil.js +5 -0
- package/dist/common/testUtil.js.map +1 -1
- package/dist/common/types.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +28 -17
- package/dist/module/CallingClient/CallingClient.js +157 -4
- package/dist/module/CallingClient/calling/call.js +12 -8
- package/dist/module/CallingClient/calling/callManager.js +29 -10
- package/dist/module/CallingClient/calling/types.js +2 -0
- package/dist/module/CallingClient/constants.js +8 -0
- package/dist/module/CallingClient/registration/register.js +46 -16
- package/dist/module/CallingClient/utils/constants.js +30 -0
- package/dist/module/CallingClient/utils/index.js +5 -0
- package/dist/module/CallingClient/utils/mobiusSocketMapper.js +56 -0
- package/dist/module/CallingClient/utils/request.js +112 -0
- package/dist/module/CallingClient/utils/types.js +1 -0
- package/dist/module/CallingClient/utils/wsFeatureFlag.js +5 -0
- package/dist/module/Events/types.js +0 -10
- package/dist/module/SDKConnector/index.js +17 -0
- package/dist/module/common/Utils.js +35 -4
- package/dist/module/common/testUtil.js +3 -0
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts +10 -1
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts +1 -0
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/callManager.d.ts +5 -4
- package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/types.d.ts +21 -9
- package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +8 -0
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +3 -1
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/types.d.ts +2 -1
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
- package/dist/types/CallingClient/types.d.ts +3 -1
- package/dist/types/CallingClient/types.d.ts.map +1 -1
- package/dist/types/CallingClient/utils/constants.d.ts +30 -0
- package/dist/types/CallingClient/utils/constants.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/index.d.ts +6 -0
- package/dist/types/CallingClient/utils/index.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts +4 -0
- package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/request.d.ts +20 -0
- package/dist/types/CallingClient/utils/request.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/types.d.ts +23 -0
- package/dist/types/CallingClient/utils/types.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts +4 -0
- package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -0
- package/dist/types/Events/types.d.ts +0 -10
- package/dist/types/Events/types.d.ts.map +1 -1
- package/dist/types/SDKConnector/index.d.ts +2 -0
- package/dist/types/SDKConnector/index.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +11 -0
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts +4 -1
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +3 -0
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +5 -0
- package/dist/types/common/types.d.ts.map +1 -1
- package/package.json +8 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_asyncMutex","require","_testUtil","_registerFixtures","_common","_types","_types2","_","_interopRequireDefault","utils","_interopRequireWildcard","_SDKConnector","_constants","_types3","regUtils","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","jest","spyOn","mockResolvedValue","undefined","describe","mutex","Mutex","webex","getTestUtilsWebex","SDKConnector","setWebex","defaultServiceData","indicator","ServiceIndicator","CALLING","domain","createRegistrationSpy","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","primaryMobiusUris","fn","primary","backupMobiusUris","backup","userId","internal","device","clientDeviceUri","url","mockJwe","guestServiceData","GUEST_CALLING","guestName","handleErrorSpy","global","fetch","request","clearAllMocks","line","mockRegistrationBody","getMockDeviceInfo","discoveryBody","primaryUrl","concat","uris","registrationPayload","statusCode","body","beforeEach","Line","LOGGER","INFO","afterEach","clearAllTimers","useRealTimers","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_context","prev","next","useFakeTimers","mockReturnValue","expect","toBeCalledOnceWith","any","anything","getStatus","toEqual","RegistrationStatus","IDLE","register","getMockRequestTemplate","serviceData","uri","method","not","toBeCalled","ACTIVE","getActiveMobiusUrl","getLoggingLevel","getDeviceId","deviceId","callManager","lineDict","mockClear","advanceTimersByTime","_promise","resolve","stop","_callee2","guestLine","_context2","jwe","_callee3","_context3","LINE_EVENTS","ERROR","mockRejectedValue","on","error","message","toBe","waitForMsecs","INACTIVE","file","REGISTRATION_FILE","_callee4","_context4","mockReturnValueOnce","deregister","createCallSpy","makeCall","address","type","CallType","URI","CallDirection","OUTBOUND","lineId","toBeTruthy","getCall","getCorrelationId","direction","toStrictEqual","end","destination","done","toBeUndefined","assertions","toBeCalledWith","String"],"sources":["line.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport {\n getMobiusDiscoveryResponse,\n getMockDeviceInfo,\n getMockRequestTemplate,\n getTestUtilsWebex,\n} from '../../common/testUtil';\nimport {URL} from '../registration/registerFixtures';\nimport {filterMobiusUris} from '../../common';\nimport {\n CallDirection,\n CallType,\n MobiusServers,\n RegistrationStatus,\n ServiceIndicator,\n WebexRequestPayload,\n} from '../../common/types';\nimport {LINE_EVENTS} from './types';\nimport Line from '.';\nimport * as utils from '../../common/Utils';\nimport SDKConnector from '../../SDKConnector';\nimport {REGISTRATION_FILE} from '../constants';\nimport {LOGGER} from '../../Logger/types';\nimport * as regUtils from '../registration/register';\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('Line Tests', () => {\n const mutex = new Mutex();\n const webex = getTestUtilsWebex();\n SDKConnector.setWebex(webex);\n\n const defaultServiceData = {indicator: ServiceIndicator.CALLING, domain: ''};\n const createRegistrationSpy = jest.spyOn(regUtils, 'createRegistration');\n\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mockJwe = 'mockJwe';\n const guestServiceData = {\n indicator: ServiceIndicator.GUEST_CALLING,\n domain: '',\n guestName: 'testUser',\n };\n\n const handleErrorSpy = jest.spyOn(utils, 'handleRegistrationErrors');\n // Simulate node fetch by adding the mock webex.request\n global.fetch = webex.request;\n\n jest.clearAllMocks();\n\n describe('Line Registration tests', () => {\n let line;\n const mockRegistrationBody = getMockDeviceInfo();\n\n const discoveryBody: MobiusServers = getMobiusDiscoveryResponse();\n const primaryUrl = `${discoveryBody.primary.uris[0]}/calling/web/`;\n\n const registrationPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockRegistrationBody,\n });\n\n beforeEach(() => {\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n jest.useRealTimers();\n line.removeAllListeners();\n });\n\n it('verify successful Registration cases and keepalive', async () => {\n jest.useFakeTimers();\n webex.request.mockReturnValue(registrationPayload);\n\n expect(createRegistrationSpy).toBeCalledOnceWith(\n webex,\n defaultServiceData,\n expect.any(Mutex),\n expect.anything(),\n LOGGER.INFO,\n undefined\n );\n expect(line.getStatus()).toEqual(RegistrationStatus.IDLE);\n await line.register();\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n body: {\n userId,\n clientDeviceUri,\n serviceData: defaultServiceData,\n },\n uri: `${primaryUrl}device`,\n method: 'POST',\n });\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n expect(line.getActiveMobiusUrl()).toEqual(primaryUrl);\n expect(line.getLoggingLevel()).toEqual(LOGGER.INFO);\n expect(line.getDeviceId()).toEqual(mockRegistrationBody.device.deviceId);\n expect(line.callManager.lineDict[mockRegistrationBody.device.deviceId]).toEqual(line);\n\n webex.request.mockClear();\n\n jest.advanceTimersByTime(30 * 1000);\n await Promise.resolve();\n\n jest.useRealTimers();\n });\n\n it('verify successful Registration cases and keepalive for a guest user', async () => {\n createRegistrationSpy.mockClear();\n const guestLine = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO,\n guestServiceData,\n mockJwe\n );\n jest.useFakeTimers();\n webex.request.mockReturnValue(registrationPayload);\n\n expect(createRegistrationSpy).toBeCalledOnceWith(\n webex,\n guestServiceData,\n expect.any(Mutex),\n expect.anything(),\n LOGGER.INFO,\n mockJwe\n );\n expect(guestLine.getStatus()).toEqual(RegistrationStatus.IDLE);\n await guestLine.register();\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n body: {\n userId,\n clientDeviceUri,\n serviceData: {...guestServiceData, jwe: mockJwe},\n },\n uri: `${primaryUrl}device`,\n method: 'POST',\n });\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(guestLine.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n expect(guestLine.getActiveMobiusUrl()).toEqual(primaryUrl);\n expect(guestLine.getLoggingLevel()).toEqual(LOGGER.INFO);\n expect(guestLine.getDeviceId()).toEqual(mockRegistrationBody.device.deviceId);\n\n webex.request.mockClear();\n\n jest.advanceTimersByTime(30 * 1000);\n await Promise.resolve();\n\n jest.useRealTimers();\n });\n\n it('verify failure Registration cases all requests fail ', async () => {\n line.removeAllListeners(LINE_EVENTS.ERROR);\n\n webex.request.mockRejectedValue({\n statusCode: 401,\n });\n\n line.on(LINE_EVENTS.ERROR, (error) => {\n expect(error.message).toBe(\n 'User is unauthorized due to an expired token. Sign out, then sign back in.'\n );\n });\n\n expect(line.getStatus()).toBe(RegistrationStatus.IDLE);\n line.register();\n await utils.waitForMsecs(20);\n\n expect(line.getStatus()).toBe(RegistrationStatus.INACTIVE);\n expect(handleErrorSpy).toBeCalledOnceWith(\n expect.anything(),\n expect.anything(),\n {\n file: REGISTRATION_FILE,\n method: 'triggerRegistration',\n },\n expect.anything(),\n expect.anything()\n );\n });\n\n it('verify successful de-registration cases', async () => {\n webex.request.mockReturnValueOnce(registrationPayload);\n\n expect(line.getStatus()).toEqual(RegistrationStatus.IDLE);\n await line.register();\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n\n await line.deregister();\n expect(line.getStatus()).toEqual(RegistrationStatus.IDLE);\n });\n });\n\n describe('Line calling tests', () => {\n let line;\n\n beforeEach(() => {\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n jest.useRealTimers();\n line.removeAllListeners();\n });\n it('Return a successful call object while making call', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '5003', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:5003',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(line.getCall(call ? call.getCorrelationId() : '')).toBe(call);\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n call?.end();\n });\n\n it('Return a successful call object while making call to FAC codes', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '*25', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:*25',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n call?.end();\n });\n\n it('Remove spaces from dialled number while making call', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '+91 123 456 7890', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:+911234567890',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n expect(call ? call.destination.address : undefined).toStrictEqual('tel:+911234567890');\n call?.end();\n });\n\n it('Remove hyphen from dialled number while making call', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '123-456-7890', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:1234567890',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n expect(call ? call.destination.address : undefined).toStrictEqual('tel:1234567890');\n call?.end();\n });\n\n it('attempt to create call with incorrect number format 1', (done) => {\n // There may be other listeners , which may create race\n line.removeAllListeners(LINE_EVENTS.ERROR);\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n\n line.on(LINE_EVENTS.ERROR, (error) => {\n expect(error.message).toBe(\n 'An invalid phone number was detected. Check the number and try again.'\n );\n done();\n });\n try {\n const call = line.makeCall({address: 'select#$@^^', type: CallType.URI});\n\n expect(call).toBeUndefined();\n expect(createCallSpy).not.toBeCalledOnceWith({});\n } catch (error) {\n done(error);\n }\n });\n\n it('attempt to create call with incorrect number format 2', (done) => {\n expect.assertions(4);\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n\n line.on(LINE_EVENTS.ERROR, (error) => {\n expect(error.message).toBe(\n 'An invalid phone number was detected. Check the number and try again.'\n );\n done();\n });\n\n try {\n const call = line.makeCall({address: '+1@8883332505', type: CallType.URI});\n\n expect(call).toBeUndefined();\n expect(createCallSpy).not.toBeCalledOnceWith({});\n } catch (error) {\n done(error);\n }\n });\n\n it('attempt to create call with guest calling service indicator', () => {\n expect.assertions(2);\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n\n // Mocking the serviceData to have GUEST_CALLING indicator\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO,\n {indicator: ServiceIndicator.GUEST_CALLING}\n );\n const call = line.makeCall();\n\n expect(call).toBeTruthy();\n expect(createCallSpy).toBeCalledWith(CallDirection.OUTBOUND, undefined, expect.any(String));\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_asyncMutex","require","_testUtil","_registerFixtures","_common","_types","_types2","_","_interopRequireDefault","utils","_interopRequireWildcard","_SDKConnector","_constants","_types3","regUtils","_request","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","jest","mock","getMobiusSocketInstance","fn","mockReturnValue","sendWssRequest","spyOn","mockResolvedValue","undefined","describe","mutex","Mutex","webex","getTestUtilsWebex","SDKConnector","setWebex","beforeEach","APIRequest","resetInstance","getInstance","isMobiusSocketEnabled","defaultServiceData","indicator","ServiceIndicator","CALLING","domain","createRegistrationSpy","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","primaryMobiusUris","primary","backupMobiusUris","backup","userId","internal","device","clientDeviceUri","url","mockJwe","guestServiceData","GUEST_CALLING","guestName","handleErrorSpy","global","fetch","request","clearAllMocks","line","mockRegistrationBody","getMockDeviceInfo","discoveryBody","primaryUrl","concat","uris","registrationPayload","statusCode","body","Line","LOGGER","INFO","afterEach","clearAllTimers","useRealTimers","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_context","prev","next","useFakeTimers","expect","toBeCalledOnceWith","any","anything","getStatus","toEqual","RegistrationStatus","IDLE","register","getMockRequestTemplate","serviceData","uri","method","not","toBeCalled","ACTIVE","getActiveMobiusUrl","getLoggingLevel","getDeviceId","deviceId","callManager","lineDict","mockClear","advanceTimersByTime","_promise","resolve","stop","_callee2","guestLine","_context2","jwe","_callee3","_context3","LINE_EVENTS","ERROR","mockRejectedValue","on","error","message","toBe","waitForMsecs","INACTIVE","file","REGISTRATION_FILE","_callee4","_context4","mockReturnValueOnce","deregister","createCallSpy","makeCall","address","type","CallType","URI","CallDirection","OUTBOUND","lineId","toBeTruthy","getCall","getCorrelationId","direction","toStrictEqual","end","destination","done","toBeUndefined","assertions","toBeCalledWith","String"],"sources":["line.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport {\n getMobiusDiscoveryResponse,\n getMockDeviceInfo,\n getMockRequestTemplate,\n getTestUtilsWebex,\n} from '../../common/testUtil';\nimport {URL} from '../registration/registerFixtures';\nimport {filterMobiusUris} from '../../common';\nimport {\n CallDirection,\n CallType,\n MobiusServers,\n RegistrationStatus,\n ServiceIndicator,\n WebexRequestPayload,\n} from '../../common/types';\nimport {LINE_EVENTS} from './types';\nimport Line from '.';\nimport * as utils from '../../common/Utils';\nimport SDKConnector from '../../SDKConnector';\nimport {REGISTRATION_FILE} from '../constants';\nimport {LOGGER} from '../../Logger/types';\nimport * as regUtils from '../registration/register';\nimport {APIRequest} from '../utils/request';\n\njest.mock('@webex/internal-plugin-mobius-socket', () => ({\n getMobiusSocketInstance: jest.fn().mockReturnValue({\n sendWssRequest: jest.fn(),\n }),\n}));\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('Line Tests', () => {\n const mutex = new Mutex();\n const webex = getTestUtilsWebex();\n SDKConnector.setWebex(webex);\n\n beforeEach(() => {\n APIRequest.resetInstance();\n APIRequest.getInstance({webex, isMobiusSocketEnabled: false});\n });\n\n const defaultServiceData = {indicator: ServiceIndicator.CALLING, domain: ''};\n const createRegistrationSpy = jest.spyOn(regUtils, 'createRegistration');\n\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mockJwe = 'mockJwe';\n const guestServiceData = {\n indicator: ServiceIndicator.GUEST_CALLING,\n domain: '',\n guestName: 'testUser',\n };\n\n const handleErrorSpy = jest.spyOn(utils, 'handleRegistrationErrors');\n // Simulate node fetch by adding the mock webex.request\n global.fetch = webex.request;\n\n jest.clearAllMocks();\n\n describe('Line Registration tests', () => {\n let line;\n const mockRegistrationBody = getMockDeviceInfo();\n\n const discoveryBody: MobiusServers = getMobiusDiscoveryResponse();\n const primaryUrl = `${discoveryBody.primary.uris[0]}/calling/web/`;\n\n const registrationPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockRegistrationBody,\n });\n\n beforeEach(() => {\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n jest.useRealTimers();\n line.removeAllListeners();\n });\n\n it('verify successful Registration cases and keepalive', async () => {\n jest.useFakeTimers();\n webex.request.mockReturnValue(registrationPayload);\n\n expect(createRegistrationSpy).toBeCalledOnceWith(\n webex,\n defaultServiceData,\n expect.any(Mutex),\n expect.anything(),\n LOGGER.INFO,\n undefined\n );\n expect(line.getStatus()).toEqual(RegistrationStatus.IDLE);\n await line.register();\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n body: {\n userId,\n clientDeviceUri,\n serviceData: defaultServiceData,\n },\n uri: `${primaryUrl}device`,\n method: 'POST',\n });\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n expect(line.getActiveMobiusUrl()).toEqual(primaryUrl);\n expect(line.getLoggingLevel()).toEqual(LOGGER.INFO);\n expect(line.getDeviceId()).toEqual(mockRegistrationBody.device.deviceId);\n expect(line.callManager.lineDict[mockRegistrationBody.device.deviceId]).toEqual(line);\n\n webex.request.mockClear();\n\n jest.advanceTimersByTime(30 * 1000);\n await Promise.resolve();\n\n jest.useRealTimers();\n });\n\n it('verify successful Registration cases and keepalive for a guest user', async () => {\n createRegistrationSpy.mockClear();\n const guestLine = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO,\n guestServiceData,\n mockJwe\n );\n jest.useFakeTimers();\n webex.request.mockReturnValue(registrationPayload);\n\n expect(createRegistrationSpy).toBeCalledOnceWith(\n webex,\n guestServiceData,\n expect.any(Mutex),\n expect.anything(),\n LOGGER.INFO,\n mockJwe\n );\n expect(guestLine.getStatus()).toEqual(RegistrationStatus.IDLE);\n await guestLine.register();\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n body: {\n userId,\n clientDeviceUri,\n serviceData: {...guestServiceData, jwe: mockJwe},\n },\n uri: `${primaryUrl}device`,\n method: 'POST',\n });\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(guestLine.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n expect(guestLine.getActiveMobiusUrl()).toEqual(primaryUrl);\n expect(guestLine.getLoggingLevel()).toEqual(LOGGER.INFO);\n expect(guestLine.getDeviceId()).toEqual(mockRegistrationBody.device.deviceId);\n\n webex.request.mockClear();\n\n jest.advanceTimersByTime(30 * 1000);\n await Promise.resolve();\n\n jest.useRealTimers();\n });\n\n it('verify failure Registration cases all requests fail ', async () => {\n line.removeAllListeners(LINE_EVENTS.ERROR);\n\n webex.request.mockRejectedValue({\n statusCode: 401,\n });\n\n line.on(LINE_EVENTS.ERROR, (error) => {\n expect(error.message).toBe(\n 'User is unauthorized due to an expired token. Sign out, then sign back in.'\n );\n });\n\n expect(line.getStatus()).toBe(RegistrationStatus.IDLE);\n line.register();\n await utils.waitForMsecs(20);\n\n expect(line.getStatus()).toBe(RegistrationStatus.INACTIVE);\n expect(handleErrorSpy).toBeCalledOnceWith(\n expect.anything(),\n expect.anything(),\n {\n file: REGISTRATION_FILE,\n method: 'triggerRegistration',\n },\n expect.anything(),\n expect.anything()\n );\n });\n\n it('verify successful de-registration cases', async () => {\n webex.request.mockReturnValueOnce(registrationPayload);\n\n expect(line.getStatus()).toEqual(RegistrationStatus.IDLE);\n await line.register();\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n\n await line.deregister();\n expect(line.getStatus()).toEqual(RegistrationStatus.IDLE);\n });\n });\n\n describe('Line calling tests', () => {\n let line;\n\n beforeEach(() => {\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n jest.useRealTimers();\n line.removeAllListeners();\n });\n it('Return a successful call object while making call', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '5003', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:5003',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(line.getCall(call ? call.getCorrelationId() : '')).toBe(call);\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n call?.end();\n });\n\n it('Return a successful call object while making call to FAC codes', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '*25', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:*25',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n call?.end();\n });\n\n it('Remove spaces from dialled number while making call', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '+91 123 456 7890', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:+911234567890',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n expect(call ? call.destination.address : undefined).toStrictEqual('tel:+911234567890');\n call?.end();\n });\n\n it('Remove hyphen from dialled number while making call', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '123-456-7890', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:1234567890',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n expect(call ? call.destination.address : undefined).toStrictEqual('tel:1234567890');\n call?.end();\n });\n\n it('attempt to create call with incorrect number format 1', (done) => {\n // There may be other listeners , which may create race\n line.removeAllListeners(LINE_EVENTS.ERROR);\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n\n line.on(LINE_EVENTS.ERROR, (error) => {\n expect(error.message).toBe(\n 'An invalid phone number was detected. Check the number and try again.'\n );\n done();\n });\n try {\n const call = line.makeCall({address: 'select#$@^^', type: CallType.URI});\n\n expect(call).toBeUndefined();\n expect(createCallSpy).not.toBeCalledOnceWith({});\n } catch (error) {\n done(error);\n }\n });\n\n it('attempt to create call with incorrect number format 2', (done) => {\n expect.assertions(4);\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n\n line.on(LINE_EVENTS.ERROR, (error) => {\n expect(error.message).toBe(\n 'An invalid phone number was detected. Check the number and try again.'\n );\n done();\n });\n\n try {\n const call = line.makeCall({address: '+1@8883332505', type: CallType.URI});\n\n expect(call).toBeUndefined();\n expect(createCallSpy).not.toBeCalledOnceWith({});\n } catch (error) {\n done(error);\n }\n });\n\n it('attempt to create call with guest calling service indicator', () => {\n expect.assertions(2);\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n\n // Mocking the serviceData to have GUEST_CALLING indicator\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO,\n {indicator: ServiceIndicator.GUEST_CALLING}\n );\n const call = line.makeCall();\n\n expect(call).toBeTruthy();\n expect(createCallSpy).toBeCalledWith(CallDirection.OUTBOUND, undefined, expect.any(String));\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,11 +19,11 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regene
|
|
|
19
19
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
20
20
|
var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
|
|
21
21
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
22
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
22
23
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
23
24
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
24
25
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
25
26
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
26
|
-
var _uuid = require("uuid");
|
|
27
27
|
var _constants = require("../../common/constants");
|
|
28
28
|
var _common = require("../../common");
|
|
29
29
|
var _webWorkerStr = _interopRequireDefault(require("./webWorkerStr"));
|
|
@@ -35,6 +35,7 @@ var _SDKConnector = _interopRequireDefault(require("../../SDKConnector"));
|
|
|
35
35
|
var _types2 = require("../../common/types");
|
|
36
36
|
var _constants2 = require("../constants");
|
|
37
37
|
var _types3 = require("../line/types");
|
|
38
|
+
var _request = require("../utils/request");
|
|
38
39
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof _Symbol && r[_Symbol$iterator] || r["@@iterator"]; if (!t) { if (_Array$isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
39
40
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? _Array$from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
40
41
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
@@ -73,6 +74,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
73
74
|
(0, _defineProperty2.default)(this, "retryAfter", void 0);
|
|
74
75
|
(0, _defineProperty2.default)(this, "scheduled429Retry", false);
|
|
75
76
|
(0, _defineProperty2.default)(this, "webWorker", void 0);
|
|
77
|
+
(0, _defineProperty2.default)(this, "apiRequest", void 0);
|
|
76
78
|
this.jwe = jwe;
|
|
77
79
|
this.sdkConnector = _SDKConnector.default;
|
|
78
80
|
this.serviceData = serviceData;
|
|
@@ -93,6 +95,9 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
93
95
|
this.lineEmitter = lineEmitter;
|
|
94
96
|
this.primaryMobiusUris = [];
|
|
95
97
|
this.backupMobiusUris = [];
|
|
98
|
+
this.apiRequest = _request.APIRequest.getInstance({
|
|
99
|
+
webex: this.webex
|
|
100
|
+
});
|
|
96
101
|
}
|
|
97
102
|
return (0, _createClass2.default)(Registration, [{
|
|
98
103
|
key: "getFailoverCacheKey",
|
|
@@ -183,6 +188,21 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
183
188
|
this.activeMobiusUrl = url;
|
|
184
189
|
this.callManager.updateActiveMobius(url);
|
|
185
190
|
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Populate deviceInfo using a devices response body.
|
|
194
|
+
*/
|
|
195
|
+
}, {
|
|
196
|
+
key: "setDeviceInfo",
|
|
197
|
+
value: function setDeviceInfo(devicesInfo) {
|
|
198
|
+
var _devicesInfo$devices = (0, _slicedToArray2.default)(devicesInfo.devices, 1),
|
|
199
|
+
device = _devicesInfo$devices[0];
|
|
200
|
+
this.deviceInfo = {
|
|
201
|
+
userId: devicesInfo.userId,
|
|
202
|
+
device: device,
|
|
203
|
+
devices: devicesInfo.devices
|
|
204
|
+
};
|
|
205
|
+
}
|
|
186
206
|
}, {
|
|
187
207
|
key: "setMobiusServers",
|
|
188
208
|
value: function setMobiusServers(primaryMobiusUris, backupMobiusUris) {
|
|
@@ -202,36 +222,33 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
202
222
|
key: "deleteRegistration",
|
|
203
223
|
value: (function () {
|
|
204
224
|
var _deleteRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(url, deviceId, deviceUrl) {
|
|
205
|
-
var
|
|
206
|
-
var response, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0;
|
|
225
|
+
var response, requestObj, _t2;
|
|
207
226
|
return _regenerator.default.wrap(function (_context2) {
|
|
208
227
|
while (1) switch (_context2.prev = _context2.next) {
|
|
209
228
|
case 0:
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
229
|
+
requestObj = {
|
|
230
|
+
uri: "".concat(url).concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "/").concat(deviceId),
|
|
231
|
+
method: _types2.HTTP_METHODS.DELETE,
|
|
232
|
+
headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, deviceUrl), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
|
|
233
|
+
service: _types2.ALLOWED_SERVICES.MOBIUS
|
|
234
|
+
};
|
|
235
|
+
if (this.apiRequest.isSocketEnabled()) {
|
|
236
|
+
// @ts-ignore - body is added for mobius wss support, it is not used for mobius http
|
|
237
|
+
requestObj.body = {
|
|
238
|
+
deviceId: deviceId
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
_context2.prev = 1;
|
|
222
242
|
_context2.next = 2;
|
|
223
|
-
return
|
|
224
|
-
method: _t4,
|
|
225
|
-
headers: _t9
|
|
226
|
-
});
|
|
243
|
+
return this.apiRequest.makeRequest(requestObj);
|
|
227
244
|
case 2:
|
|
228
245
|
response = _context2.sent;
|
|
229
246
|
_context2.next = 4;
|
|
230
247
|
break;
|
|
231
248
|
case 3:
|
|
232
249
|
_context2.prev = 3;
|
|
233
|
-
|
|
234
|
-
_Logger.default.warn("Delete failed with Mobius: ".concat((0, _stringify.default)(
|
|
250
|
+
_t2 = _context2["catch"](1);
|
|
251
|
+
_Logger.default.warn("Delete failed with Mobius: ".concat((0, _stringify.default)(_t2)), {
|
|
235
252
|
file: _constants2.REGISTRATION_FILE,
|
|
236
253
|
method: _constants2.METHODS.DELETE_REGISTRATION
|
|
237
254
|
});
|
|
@@ -240,12 +257,12 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
240
257
|
case 4:
|
|
241
258
|
this.setStatus(_types2.RegistrationStatus.INACTIVE);
|
|
242
259
|
this.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
|
|
243
|
-
return _context2.abrupt("return",
|
|
260
|
+
return _context2.abrupt("return", response);
|
|
244
261
|
case 5:
|
|
245
262
|
case "end":
|
|
246
263
|
return _context2.stop();
|
|
247
264
|
}
|
|
248
|
-
}, _callee2, this, [[
|
|
265
|
+
}, _callee2, this, [[1, 3]]);
|
|
249
266
|
}));
|
|
250
267
|
function deleteRegistration(_x, _x2, _x3) {
|
|
251
268
|
return _deleteRegistration.apply(this, arguments);
|
|
@@ -272,7 +289,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
272
289
|
jwe: this.jwe
|
|
273
290
|
}) : this.serviceData
|
|
274
291
|
};
|
|
275
|
-
return _context3.abrupt("return", this.
|
|
292
|
+
return _context3.abrupt("return", this.apiRequest.makeRequest({
|
|
276
293
|
uri: "".concat(url, "device"),
|
|
277
294
|
method: _types2.HTTP_METHODS.POST,
|
|
278
295
|
headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, deviceInfo.clientDeviceUri), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
|
|
@@ -654,7 +671,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
654
671
|
case 4:
|
|
655
672
|
(0, _common.emitFinalFailure)(function (clientError) {
|
|
656
673
|
_this3.lineEmitter(_types3.LINE_EVENTS.ERROR, undefined, clientError);
|
|
657
|
-
}, loggerContext);
|
|
674
|
+
}, loggerContext, interval < 0 ? 'Timer threshold exceeded during failover' : undefined);
|
|
658
675
|
case 5:
|
|
659
676
|
case "end":
|
|
660
677
|
return _context11.stop();
|
|
@@ -682,7 +699,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
682
699
|
key: "isPrimaryActive",
|
|
683
700
|
value: function () {
|
|
684
701
|
var _isPrimaryActive = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12() {
|
|
685
|
-
var status, _iterator, _step, mobiusUrl, baseUri, response, _ref7, statusCode,
|
|
702
|
+
var status, _iterator, _step, mobiusUrl, baseUri, response, _ref7, statusCode, _t3, _t4;
|
|
686
703
|
return _regenerator.default.wrap(function (_context12) {
|
|
687
704
|
while (1) switch (_context12.prev = _context12.next) {
|
|
688
705
|
case 0:
|
|
@@ -696,7 +713,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
696
713
|
}
|
|
697
714
|
mobiusUrl = _step.value;
|
|
698
715
|
_context12.prev = 3;
|
|
699
|
-
baseUri = mobiusUrl.replace(_constants2.URL_ENDPOINT, '/'); // eslint-disable-next-line no-await-in-loop
|
|
716
|
+
baseUri = mobiusUrl.replace(_constants2.URL_ENDPOINT, '/').replace('wss://', 'https://'); // eslint-disable-next-line no-await-in-loop
|
|
700
717
|
_context12.next = 4;
|
|
701
718
|
return this.webex.request({
|
|
702
719
|
uri: "".concat(baseUri, "ping"),
|
|
@@ -722,8 +739,8 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
722
739
|
break;
|
|
723
740
|
case 6:
|
|
724
741
|
_context12.prev = 6;
|
|
725
|
-
|
|
726
|
-
_Logger.default.warn("Ping failed for primary Mobius: ".concat(mobiusUrl, " with error: ").concat((0, _stringify.default)(
|
|
742
|
+
_t3 = _context12["catch"](3);
|
|
743
|
+
_Logger.default.warn("Ping failed for primary Mobius: ".concat(mobiusUrl, " with error: ").concat((0, _stringify.default)(_t3)), {
|
|
727
744
|
file: _constants2.REGISTRATION_FILE,
|
|
728
745
|
method: _constants2.FAILBACK_UTIL
|
|
729
746
|
});
|
|
@@ -736,8 +753,8 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
736
753
|
break;
|
|
737
754
|
case 9:
|
|
738
755
|
_context12.prev = 9;
|
|
739
|
-
|
|
740
|
-
_iterator.e(
|
|
756
|
+
_t4 = _context12["catch"](1);
|
|
757
|
+
_iterator.e(_t4);
|
|
741
758
|
case 10:
|
|
742
759
|
_context12.prev = 10;
|
|
743
760
|
_iterator.f();
|
|
@@ -837,7 +854,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
837
854
|
while (1) switch (_context14.prev = _context14.next) {
|
|
838
855
|
case 0:
|
|
839
856
|
if (!_this5.isFailbackRequired()) {
|
|
840
|
-
_context14.next =
|
|
857
|
+
_context14.next = 12;
|
|
841
858
|
break;
|
|
842
859
|
}
|
|
843
860
|
_context14.next = 1;
|
|
@@ -845,7 +862,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
845
862
|
case 1:
|
|
846
863
|
primaryServerStatus = _context14.sent;
|
|
847
864
|
if (!((0, _keys.default)(_this5.callManager.getActiveCalls()).length === 0 && primaryServerStatus)) {
|
|
848
|
-
_context14.next =
|
|
865
|
+
_context14.next = 11;
|
|
849
866
|
break;
|
|
850
867
|
}
|
|
851
868
|
_Logger.default.info("Attempting failback to primary.", {
|
|
@@ -855,50 +872,60 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
855
872
|
_context14.next = 2;
|
|
856
873
|
return _this5.deregister();
|
|
857
874
|
case 2:
|
|
875
|
+
if (!_this5.apiRequest.isSocketEnabled()) {
|
|
876
|
+
_context14.next = 3;
|
|
877
|
+
break;
|
|
878
|
+
}
|
|
858
879
|
_context14.next = 3;
|
|
859
|
-
return _this5.
|
|
880
|
+
return _this5.apiRequest.disconnectFromMobiusSocket({
|
|
881
|
+
code: 3050,
|
|
882
|
+
reason: 'done (permanent)'
|
|
883
|
+
});
|
|
860
884
|
case 3:
|
|
885
|
+
_context14.next = 4;
|
|
886
|
+
return _this5.attemptRegistrationWithServers(_constants2.FAILBACK_UTIL);
|
|
887
|
+
case 4:
|
|
861
888
|
abort = _context14.sent;
|
|
862
889
|
if (!(_this5.scheduled429Retry || abort || _this5.isDeviceRegistered())) {
|
|
863
|
-
_context14.next =
|
|
890
|
+
_context14.next = 5;
|
|
864
891
|
break;
|
|
865
892
|
}
|
|
866
893
|
return _context14.abrupt("return");
|
|
867
|
-
case 4:
|
|
868
|
-
_context14.next = 5;
|
|
869
|
-
return _this5.restorePreviousRegistration(_constants2.FAILBACK_UTIL);
|
|
870
894
|
case 5:
|
|
895
|
+
_context14.next = 6;
|
|
896
|
+
return _this5.restorePreviousRegistration(_constants2.FAILBACK_UTIL);
|
|
897
|
+
case 6:
|
|
871
898
|
abortNew = _context14.sent;
|
|
872
899
|
if (!abortNew) {
|
|
873
|
-
_context14.next =
|
|
900
|
+
_context14.next = 7;
|
|
874
901
|
break;
|
|
875
902
|
}
|
|
876
903
|
_this5.clearFailbackTimer();
|
|
877
904
|
return _context14.abrupt("return");
|
|
878
|
-
case
|
|
905
|
+
case 7:
|
|
879
906
|
if (_this5.isDeviceRegistered()) {
|
|
880
|
-
_context14.next =
|
|
907
|
+
_context14.next = 9;
|
|
881
908
|
break;
|
|
882
909
|
}
|
|
883
|
-
_context14.next =
|
|
910
|
+
_context14.next = 8;
|
|
884
911
|
return _this5.restartRegistration(_this5.executeFailback.name);
|
|
885
|
-
case 7:
|
|
886
|
-
_context14.next = 9;
|
|
887
|
-
break;
|
|
888
912
|
case 8:
|
|
913
|
+
_context14.next = 10;
|
|
914
|
+
break;
|
|
915
|
+
case 9:
|
|
889
916
|
_this5.failbackTimer = undefined;
|
|
890
917
|
_this5.initiateFailback();
|
|
891
|
-
case 9:
|
|
892
|
-
_context14.next = 11;
|
|
893
|
-
break;
|
|
894
918
|
case 10:
|
|
919
|
+
_context14.next = 12;
|
|
920
|
+
break;
|
|
921
|
+
case 11:
|
|
895
922
|
_Logger.default.info('Active calls present or primary Mobius is down, deferring failback to next cycle.', {
|
|
896
923
|
file: _constants2.REGISTRATION_FILE,
|
|
897
924
|
method: _this5.executeFailback.name
|
|
898
925
|
});
|
|
899
926
|
_this5.failbackTimer = undefined;
|
|
900
927
|
_this5.initiateFailback();
|
|
901
|
-
case
|
|
928
|
+
case 12:
|
|
902
929
|
case "end":
|
|
903
930
|
return _context14.stop();
|
|
904
931
|
}
|
|
@@ -1208,7 +1235,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1208
1235
|
_loop,
|
|
1209
1236
|
_ret,
|
|
1210
1237
|
_args22 = arguments,
|
|
1211
|
-
|
|
1238
|
+
_t6;
|
|
1212
1239
|
return _regenerator.default.wrap(function (_context22) {
|
|
1213
1240
|
while (1) switch (_context22.prev = _context22.next) {
|
|
1214
1241
|
case 0:
|
|
@@ -1235,7 +1262,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1235
1262
|
_context22.prev = 3;
|
|
1236
1263
|
_loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
|
|
1237
1264
|
var _this8$backupMobiusUr;
|
|
1238
|
-
var url, serverType, _this8$deviceInfo$dev, _resp$headers, _resp$headers$trackin, _resp$headers2, _this8$deviceInfo$dev2, resp, body,
|
|
1265
|
+
var url, serverType, _this8$deviceInfo$dev, _resp$headers, _resp$headers$trackin, _resp$headers2, _this8$deviceInfo$dev2, wssNormalizedUrl, resp, body, _t5;
|
|
1239
1266
|
return _regenerator.default.wrap(function (_context21) {
|
|
1240
1267
|
while (1) switch (_context21.prev = _context21.next) {
|
|
1241
1268
|
case 0:
|
|
@@ -1249,10 +1276,17 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1249
1276
|
file: _constants2.REGISTRATION_FILE,
|
|
1250
1277
|
method: _constants2.REGISTER_UTIL
|
|
1251
1278
|
});
|
|
1252
|
-
|
|
1279
|
+
if (!_this8.apiRequest.isSocketEnabled()) {
|
|
1280
|
+
_context21.next = 2;
|
|
1281
|
+
break;
|
|
1282
|
+
}
|
|
1283
|
+
wssNormalizedUrl = url.endsWith('/') ? url.slice(0, -1) : url; // eslint-disable-next-line no-await-in-loop
|
|
1253
1284
|
_context21.next = 2;
|
|
1254
|
-
return _this8.
|
|
1285
|
+
return _this8.apiRequest.connectToMobiusSocket(wssNormalizedUrl);
|
|
1255
1286
|
case 2:
|
|
1287
|
+
_context21.next = 3;
|
|
1288
|
+
return _this8.postRegistration(url);
|
|
1289
|
+
case 3:
|
|
1256
1290
|
resp = _context21.sent;
|
|
1257
1291
|
_this8.clearFailoverState();
|
|
1258
1292
|
_this8.deviceInfo = resp.body;
|
|
@@ -1269,11 +1303,17 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1269
1303
|
_this8.startKeepaliveTimer((_this8$deviceInfo$dev2 = _this8.deviceInfo.device) === null || _this8$deviceInfo$dev2 === void 0 ? void 0 : _this8$deviceInfo$dev2.uri, _this8.deviceInfo.keepaliveInterval, serverType);
|
|
1270
1304
|
_this8.initiateFailback();
|
|
1271
1305
|
return _context21.abrupt("return", 0);
|
|
1272
|
-
case
|
|
1273
|
-
_context21.prev =
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1306
|
+
case 4:
|
|
1307
|
+
_context21.prev = 4;
|
|
1308
|
+
_t5 = _context21["catch"](1);
|
|
1309
|
+
_context21.next = 5;
|
|
1310
|
+
return _this8.apiRequest.disconnectFromMobiusSocket({
|
|
1311
|
+
code: 3050,
|
|
1312
|
+
reason: 'done (permanent)'
|
|
1313
|
+
});
|
|
1314
|
+
case 5:
|
|
1315
|
+
body = _t5; // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-unused-vars
|
|
1316
|
+
_context21.next = 6;
|
|
1277
1317
|
return (0, _common.handleRegistrationErrors)(body, function (clientError, finalError) {
|
|
1278
1318
|
var _body$headers$trackin, _body$headers;
|
|
1279
1319
|
if (finalError) {
|
|
@@ -1288,10 +1328,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1288
1328
|
}, function (retryAfter, retryCaller) {
|
|
1289
1329
|
return _this8.handle429Retry(retryAfter, retryCaller);
|
|
1290
1330
|
}, _this8.restoreRegistrationCallBack());
|
|
1291
|
-
case
|
|
1331
|
+
case 6:
|
|
1292
1332
|
abort = _context21.sent;
|
|
1293
1333
|
if (!(_this8.registrationStatus === _types2.RegistrationStatus.ACTIVE)) {
|
|
1294
|
-
_context21.next =
|
|
1334
|
+
_context21.next = 7;
|
|
1295
1335
|
break;
|
|
1296
1336
|
}
|
|
1297
1337
|
_Logger.default.info("[".concat(caller, "] : Device is already restored, active mobius url: ").concat(_this8.activeMobiusUrl), {
|
|
@@ -1299,22 +1339,22 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1299
1339
|
method: _this8.attemptRegistrationWithServers.name
|
|
1300
1340
|
});
|
|
1301
1341
|
return _context21.abrupt("return", 0);
|
|
1302
|
-
case
|
|
1342
|
+
case 7:
|
|
1303
1343
|
if (!abort) {
|
|
1304
|
-
_context21.next =
|
|
1344
|
+
_context21.next = 9;
|
|
1305
1345
|
break;
|
|
1306
1346
|
}
|
|
1307
1347
|
_this8.setStatus(_types2.RegistrationStatus.INACTIVE);
|
|
1308
1348
|
// eslint-disable-next-line no-await-in-loop
|
|
1309
|
-
_context21.next =
|
|
1349
|
+
_context21.next = 8;
|
|
1310
1350
|
return (0, _common.uploadLogs)();
|
|
1311
|
-
case
|
|
1351
|
+
case 8:
|
|
1312
1352
|
return _context21.abrupt("return", 0);
|
|
1313
|
-
case
|
|
1353
|
+
case 9:
|
|
1314
1354
|
case "end":
|
|
1315
1355
|
return _context21.stop();
|
|
1316
1356
|
}
|
|
1317
|
-
}, _loop, null, [[1,
|
|
1357
|
+
}, _loop, null, [[1, 4]]);
|
|
1318
1358
|
});
|
|
1319
1359
|
_iterator2.s();
|
|
1320
1360
|
case 4:
|
|
@@ -1338,8 +1378,8 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1338
1378
|
break;
|
|
1339
1379
|
case 8:
|
|
1340
1380
|
_context22.prev = 8;
|
|
1341
|
-
|
|
1342
|
-
_iterator2.e(
|
|
1381
|
+
_t6 = _context22["catch"](3);
|
|
1382
|
+
_iterator2.e(_t6);
|
|
1343
1383
|
case 9:
|
|
1344
1384
|
_context22.prev = 9;
|
|
1345
1385
|
_iterator2.f();
|
|
@@ -1519,7 +1559,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1519
1559
|
key: "deregister",
|
|
1520
1560
|
value: function () {
|
|
1521
1561
|
var _deregister = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
|
1522
|
-
var _this$deviceInfo$devi, _this$deviceInfo$devi2,
|
|
1562
|
+
var _this$deviceInfo$devi, _this$deviceInfo$devi2, _t7;
|
|
1523
1563
|
return _regenerator.default.wrap(function (_context26) {
|
|
1524
1564
|
while (1) switch (_context26.prev = _context26.next) {
|
|
1525
1565
|
case 0:
|
|
@@ -1535,8 +1575,8 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1535
1575
|
break;
|
|
1536
1576
|
case 2:
|
|
1537
1577
|
_context26.prev = 2;
|
|
1538
|
-
|
|
1539
|
-
_Logger.default.warn("Delete failed with Mobius: ".concat((0, _stringify.default)(
|
|
1578
|
+
_t7 = _context26["catch"](0);
|
|
1579
|
+
_Logger.default.warn("Delete failed with Mobius: ".concat((0, _stringify.default)(_t7)), {
|
|
1540
1580
|
file: _constants2.REGISTRATION_FILE,
|
|
1541
1581
|
method: _constants2.METHODS.DEREGISTER
|
|
1542
1582
|
});
|
|
@@ -1593,6 +1633,9 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1593
1633
|
};
|
|
1594
1634
|
var stringToReplace = "".concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "/").concat(restoreData.devices[0].deviceId);
|
|
1595
1635
|
var uri = restoreData.devices[0].uri.replace(stringToReplace, '');
|
|
1636
|
+
if (this.apiRequest.isSocketEnabled()) {
|
|
1637
|
+
uri = uri.replace('https://', 'wss://');
|
|
1638
|
+
}
|
|
1596
1639
|
this.setActiveMobiusUrl(uri);
|
|
1597
1640
|
this.registrationStatus = _types2.RegistrationStatus.ACTIVE;
|
|
1598
1641
|
return true;
|