@webex/calling 3.0.0-next.18 → 3.0.0-next.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallingClient/calling/call.js +55 -22
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +424 -348
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +1 -1
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/module/CallingClient/calling/call.js +41 -17
- package/dist/types/CallingClient/calling/call.d.ts +1 -0
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -319,7 +319,7 @@ describe('Call Manager Tests with respect to calls', function () {
|
|
|
319
319
|
return (0, _Utils.waitForMsecs)(50);
|
|
320
320
|
case 12:
|
|
321
321
|
expect(patchMock).toHaveBeenCalledWith(_types2.MobiusCallState.ALERTING);
|
|
322
|
-
expect(warnSpy).toHaveBeenCalledWith('
|
|
322
|
+
expect(warnSpy).toHaveBeenCalledWith('Failed to signal call progression', {
|
|
323
323
|
file: 'call',
|
|
324
324
|
method: 'handleOutgoingCallAlerting'
|
|
325
325
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Utils","require","_types","_testUtil","_callManager","_types2","_call","_Logger","_interopRequireDefault","_types3","webex","getTestUtilsWebex","defaultServiceIndicator","ServiceIndicator","CALLING","mediaEvent","id","data","message","messageType","sdp","seq","version","callId","callUrl","deviceId","correlationId","eventType","timestamp","trackingId","alertType","headers","sequenceNumber","filterMessage","setupEvent","callerId","from","broadworksCorrelationInfo","disconnectEvent","causecode","cause","dest","type","CallType","URI","address","successResponseBody","statusCode","body","device","callData","callState","MobiusCallState","PROCEEDING","mockLineId","mockLine","lineId","describe","dummyResponse","patchMock","jest","spyOn","Call","prototype","setDisconnectReasonMock","deleteCallMock","initMediaConnectionMock","mediaRoapEventsListenerMock","mediaTrackListenerMock","postMediaMock","mockResolvedValue","mockReturnValue","callManager","beforeEach","getCallManager","removeAllListeners","LINE_EVENT_KEYS","INCOMING_CALL","expect","_keys","default","getActiveCalls","length","toBe","afterEach","calls","_values","forEach","call","end","it","toBeTruthy","callManagerNew","toMatchObject","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","updateLine","request","mockReturnValueOnce","createCall","CallDirection","OUTBOUND","sent","setCallId","getCallId","toStrictEqual","stop","_callee2","_callee2$","_context2","on","callObj","getBroadworksCorrelationInfo","waitForMsecs","toHaveBeenCalledWith","ALERTING","_callee3","_callee3$","_context3","_callee4","_callee4$","_context4","getCorrelationId","toHaveBeenCalled","_callee5","_callee5$","_context5","not","_callee6","warnSpy","_callee6$","_context6","mockRejectedValue","log","file","method","_callee8","_callee8$","_context8","_ref8","_callee7","mediaSpy","mediaClose","track","_callee7$","_context7","state","value","answer","localAudioTrack","CONNECTED","_x","apply","arguments","dummyCallId","funcSpy","callSpy","logSpy","_callee9","eventData","_callee9$","_context9","toHaveBeenLastCalledWith","_callee10","_callee10$","_context10","_callee11","_callee11$","_context11","_callee12","mediaOK","_callee12$","_context12","received","_callee13","_callee13$","_context13","_callee14","_callee14$","_context14","_callee15","_callee15$","_context15","_callee16","connectEvent","_callee16$","_context16","JSON","parse","_stringify","_callee17","answerEvent","_callee17$","_context17","_callee18","_callee18$","_context18"],"sources":["callManager.test.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable dot-notation */\nimport {waitForMsecs} from '../../common/Utils';\nimport {CallDirection, CallType, ServiceIndicator} from '../../common/types';\nimport {getTestUtilsWebex} from '../../common/testUtil';\nimport {getCallManager} from './callManager';\nimport {ICall, ICallManager, MobiusCallState} from './types';\nimport {Call} from './call';\nimport log from '../../Logger';\nimport {ILine} from '../line/types';\nimport {LINE_EVENT_KEYS} from '../../Events/types';\n\nconst webex = getTestUtilsWebex();\nconst defaultServiceIndicator = ServiceIndicator.CALLING;\n\nconst mediaEvent = {\n id: '73e6a2b2-968c-44ea-a536-e7702722f8d8',\n data: {\n message: {\n messageType: 'OFFER',\n sdp: 'v=0\\r\\no=BroadWorks 175625 1653906127914 IN IP4 207.182.171.180\\r\\ns=-\\r\\nc=IN IP4 207.182.171.180\\r\\nt=0 0\\r\\na=ice-lite\\r\\nm=audio 19564 UDP/TLS/RTP/SAVPF 99 9 0 8 18 102 101\\r\\na=sendrecv\\r\\na=rtpmap:99 opus/48000/2\\r\\na=rtpmap:9 G722/8000\\r\\na=rtpmap:0 PCMU/8000\\r\\na=rtpmap:8 PCMA/8000\\r\\na=rtpmap:18 G729/8000\\r\\na=fmtp:18 annexb=no\\r\\na=rtpmap:102 iLBC/8000\\r\\na=fmtp:102 mode=30\\r\\na=rtpmap:101 telephone-event/8000\\r\\na=rtcp-mux\\r\\na=setup:actpass\\r\\na=ssrc:379289707 cname:HC3h2tromqGgnGaf\\r\\na=ice-ufrag:mLbW\\r\\na=ice-pwd:Hct9MYtML1sedttd8fLCg9aJ\\r\\na=fingerprint:sha-256 5E:F5:3D:98:57:03:D7:73:8F:C3:D4:FC:EC:FE:7F:4D:04:D8:EE:2A:29:C4:9F:35:C5:0F:D1:2D:CE:E4:AE:AA\\r\\na=candidate:mse 1 UDP 2130706431 207.182.171.180 19564 typ host\\r\\na=candidate:mse 2 UDP 2130706430 207.182.171.180 19565 typ host',\n seq: 1,\n version: '2',\n },\n callId: 'f2e89262-7d9a-489f-b65d-3b56a31c7bfe',\n callUrl:\n '[https://wdm-intb.ciscospark.com/wdm/api/v1/devices/14ef3832-a7af-4457-a660-fd1918d627d0]',\n deviceId: '375b8503-f716-3407-853b-cd9a8c4419a7',\n correlationId: '',\n eventType: 'mobius.media',\n },\n timestamp: 1653906128188,\n trackingId: 'ROUTER_62949AD0-DB6E-01BB-595A-03158964595A',\n alertType: 'full',\n headers: {},\n sequenceNumber: 7,\n filterMessage: false,\n};\n\nconst setupEvent = {\n id: '3ee919c7-202d-4f8c-9b74-e5ee8a693dfa',\n data: {\n callerId: {\n 'x-broadworks-remote-party-info':\n 'userId=\"hkkcq0ekby@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865895;ext=5008;country-code=1\";externalId=652fe0c7-05ce-4acd-8bda-9a080830187f',\n from: '\"Bob Marley\" <sip:5008@207.182.171.130;user=phone>;tag=379221777-1653906128003-',\n },\n callId: 'f2e89262-7d9a-489f-b65d-3b56a31c7bfe',\n callUrl:\n '[https://wdm-intb.ciscospark.com/wdm/api/v1/devices/14ef3832-a7af-4457-a660-fd1918d627d0]',\n deviceId: '375b8503-f716-3407-853b-cd9a8c4419a7',\n correlationId: '',\n eventType: 'mobius.call',\n broadworksCorrelationInfo: 'Sample_broadworksCorrelationInfo',\n },\n timestamp: 1653906128159,\n trackingId: 'ROUTER_62949AD0-DB6E-01BB-595A-03158964595A',\n alertType: 'full',\n headers: {},\n sequenceNumber: 6,\n filterMessage: false,\n};\n\nconst disconnectEvent = {\n id: 'f3e37504-5867-48ea-8d67-4e82b3ce1755',\n data: {\n causecode: 0,\n cause: 'Normal disconnect',\n callId: 'cbfe802c-cc8d-407f-863d-0abf8d6cc497',\n callUrl:\n '[https://wdm-intb.ciscospark.com/wdm/api/v1/devices/5691641c-7f0c-47a4-b248-e585ebcf653d]',\n deviceId: 'b9270663-54c8-3540-b01f-ed807dc5f9e8',\n correlationId: '',\n eventType: 'mobius.calldisconnected',\n },\n timestamp: 1653925625934,\n trackingId: 'NA_fe7efbbc-de52-438c-a6c3-58e96db230ba',\n alertType: 'full',\n headers: {},\n sequenceNumber: 6,\n filterMessage: false,\n};\nconst deviceId = '55dfb53f-bed2-36da-8e85-cee7f02aa68e';\nconst dest = {\n type: CallType.URI,\n address: 'tel:5003',\n};\n\nconst successResponseBody = {\n statusCode: 200,\n body: {\n device: {\n deviceId: '8a67806f-fc4d-446b-a131-31e71ea5b010',\n correlationId: '8a67806f-fc4d-446b-a131-31e71ea5b011',\n },\n callId: '8a67806f-fc4d-446b-a131-31e71ea5b020',\n callData: {\n callState: MobiusCallState.PROCEEDING,\n },\n },\n};\n\nconst mockLineId = 'e4e8ee2a-a154-4e52-8f11-ef4cde2dce72';\nconst mockLine = {\n lineId: mockLineId,\n} as ILine;\n\ndescribe('Call Manager Tests with respect to calls', () => {\n const dummyResponse = {\n statusCode: 200,\n body: {\n device: {\n deviceId: '8a67806f-fc4d-446b-a131-31e71ea5b010',\n correlationId: '8a67806f-fc4d-446b-a131-31e71ea5b011',\n },\n },\n };\n\n const patchMock = jest.spyOn(Call.prototype as any, 'patch');\n const setDisconnectReasonMock = jest.spyOn(Call.prototype as any, 'setDisconnectReason');\n const deleteCallMock = jest.spyOn(Call.prototype as any, 'delete');\n const initMediaConnectionMock = jest.spyOn(Call.prototype as any, 'initMediaConnection');\n const mediaRoapEventsListenerMock = jest.spyOn(Call.prototype as any, 'mediaRoapEventsListener');\n const mediaTrackListenerMock = jest.spyOn(Call.prototype as any, 'mediaTrackListener');\n const postMediaMock = jest.spyOn(Call.prototype as any, 'postMedia');\n\n deleteCallMock.mockResolvedValue(dummyResponse); // Both are using dummy response\n setDisconnectReasonMock.mockReturnValue({});\n initMediaConnectionMock.mockReturnValue({});\n mediaRoapEventsListenerMock.mockReturnValue({});\n mediaTrackListenerMock.mockReturnValue({});\n postMediaMock.mockResolvedValue({});\n\n let callManager: ICallManager;\n\n beforeEach(() => {\n callManager = getCallManager(webex, defaultServiceIndicator);\n callManager.removeAllListeners(LINE_EVENT_KEYS.INCOMING_CALL);\n /* expect 0 calls at the beginning of each test as we are clearing calls at the end of every test case */\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(0);\n });\n\n afterEach(() => {\n /* lets clear all calls at the end of every test case */\n const calls = Object.values(callManager.getActiveCalls());\n\n calls.forEach((call) => {\n call.end();\n });\n });\n\n it('check instance of call manager', () => {\n expect(callManager).toBeTruthy();\n });\n\n it('Check whether callManager is singleton', () => {\n const callManagerNew = getCallManager(webex, defaultServiceIndicator);\n\n expect(callManager).toMatchObject(callManagerNew);\n });\n\n it('create a call using call manager', async () => {\n callManager.updateLine('8a67806f-fc4d-446b-a131-31e71ea5b010', mockLine);\n webex.request.mockReturnValueOnce({\n statusCode: 200,\n body: {\n device: {\n deviceId: '8a67806f-fc4d-446b-a131-31e71ea5b010',\n correlationId: '8a67806f-fc4d-446b-a131-31e71ea5b011',\n },\n callId: '8a67806f-fc4d-446b-a131-31e71ea5b020',\n callData: {\n callState: MobiusCallState.PROCEEDING,\n },\n },\n });\n\n expect(callManager).toBeTruthy();\n const call = await callManager.createCall(dest, CallDirection.OUTBOUND, deviceId, mockLineId);\n\n call.setCallId('8a67806f-fc4d-446b-a131-31e71ea5b020');\n\n expect(call).toBeTruthy();\n expect(call.getCallId()).toStrictEqual('8a67806f-fc4d-446b-a131-31e71ea5b020');\n expect(call.lineId).toStrictEqual(mockLineId);\n });\n\n it('Accept an incoming call from Mobius where Call Setup was the first message', async () => {\n callManager.updateLine('375b8503-f716-3407-853b-cd9a8c4419a7', mockLine);\n callManager.on(LINE_EVENT_KEYS.INCOMING_CALL, (callObj: ICall) => {\n expect(callObj.getCallId()).toStrictEqual(setupEvent.data.callId);\n expect(callObj.getBroadworksCorrelationInfo()).toStrictEqual(\n setupEvent.data.broadworksCorrelationInfo\n );\n expect(callObj.lineId).toStrictEqual(mockLineId);\n });\n patchMock.mockResolvedValue(dummyResponse);\n\n await callManager['dequeueWsEvents'](setupEvent);\n await waitForMsecs(50);\n await callManager['dequeueWsEvents'](mediaEvent);\n await waitForMsecs(50);\n\n expect(patchMock).toHaveBeenCalledWith(MobiusCallState.ALERTING);\n /* setUp event should create the call and count will be 1 for new call */\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(1);\n });\n\n it('Accept an incoming call from Mobius where Media Event was the first message', async () => {\n callManager.updateLine('8a67806f-fc4d-446b-a131-31e71ea5b010', mockLine);\n patchMock.mockResolvedValue(dummyResponse);\n callManager.on(LINE_EVENT_KEYS.INCOMING_CALL, (callObj: ICall) => {\n expect(callObj.getCallId()).toStrictEqual(setupEvent.data.callId);\n expect(callObj['remoteRoapMessage'].sdp).toStrictEqual(mediaEvent.data.message.sdp);\n });\n\n await callManager['dequeueWsEvents'](mediaEvent);\n /* check whether SDP is buffered */\n await callManager['dequeueWsEvents'](setupEvent);\n expect(patchMock).toHaveBeenCalledWith(MobiusCallState.ALERTING);\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(1);\n });\n\n it('Disconnect a call if received a Call Disconnect event', async () => {\n webex.request.mockReturnValueOnce(successResponseBody);\n\n /* lets add a call to disconnect it later */\n const call = await callManager.createCall(dest, CallDirection.OUTBOUND, deviceId, mockLineId);\n\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(1);\n /* clear the last added call */\n\n patchMock.mockResolvedValue(dummyResponse);\n disconnectEvent.data.correlationId = call.getCorrelationId();\n callManager['dequeueWsEvents'](disconnectEvent);\n\n /* Add a small delay , to simulate sending of Delete request and clearing from Call records */\n await waitForMsecs(50);\n\n expect(deleteCallMock).toHaveBeenCalled();\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(0);\n });\n\n it('Do not Disconnect a call if call has been disconnected already', async () => {\n webex.request.mockReturnValueOnce(successResponseBody);\n\n /* lets add a call to disconnect it later */\n await callManager.createCall(dest, CallDirection.OUTBOUND, deviceId, mockLineId);\n\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(1);\n /* clear the last added call */\n\n patchMock.mockResolvedValue(dummyResponse);\n disconnectEvent.data.correlationId = '1234';\n callManager['dequeueWsEvents'](disconnectEvent);\n\n /* Add a small delay , to simulate sending of Delete request and clearing from Call records */\n await waitForMsecs(50);\n\n expect(deleteCallMock).not.toHaveBeenCalled();\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(1);\n });\n\n it('Accept an incoming call but Outgoing patch request fails', async () => {\n callManager.updateLine('8a67806f-fc4d-446b-a131-31e71ea5b010', mockLine);\n /* Intentionally failing the Patch with 503 */\n dummyResponse.statusCode = 503;\n patchMock.mockRejectedValue(dummyResponse);\n\n const warnSpy = jest.spyOn(log, 'warn');\n\n await callManager['dequeueWsEvents'](mediaEvent);\n await waitForMsecs(50);\n await callManager['dequeueWsEvents'](setupEvent);\n await waitForMsecs(50);\n\n expect(patchMock).toHaveBeenCalledWith(MobiusCallState.ALERTING);\n expect(warnSpy).toHaveBeenCalledWith('Call Progress failed with Mobius', {\n file: 'call',\n method: 'handleOutgoingCallAlerting',\n });\n /* No calls should have been added as call progress failed */\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(0);\n });\n\n it('Walk through an End to End call', async () => {\n callManager.updateLine('8a67806f-fc4d-446b-a131-31e71ea5b010', mockLine);\n let call: ICall;\n\n callManager.on(LINE_EVENT_KEYS.INCOMING_CALL, async (callObj: ICall) => {\n expect(callObj.getCallId()).toStrictEqual(setupEvent.data.callId);\n call = callObj;\n await waitForMsecs(50);\n\n const mediaSpy = jest.spyOn(call['mediaConnection'], 'roapMessageReceived');\n const mediaClose = jest.spyOn(call['mediaConnection'], 'close').mockReturnValue({});\n\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(3);\n expect(call['callStateMachine'].state.value).toStrictEqual('S_SEND_CALL_PROGRESS');\n expect(patchMock).toHaveBeenCalledWith(MobiusCallState.ALERTING);\n\n /* Receive ROAP Offer */\n await callManager['dequeueWsEvents'](mediaEvent);\n await waitForMsecs(50);\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_RECV_ROAP_OFFER');\n\n const track = {} as MediaStreamTrack;\n\n /* User answers the call */\n await call.answer({localAudioTrack: track});\n await waitForMsecs(50);\n\n expect(call['callStateMachine'].state.value).toStrictEqual('S_SEND_CALL_CONNECT');\n expect(patchMock).toHaveBeenCalledWith(MobiusCallState.CONNECTED);\n expect(mediaSpy).toHaveBeenCalled(); /* We pass the offer to media connection */\n\n /* We are manually sending this event , ideally it will sent by MediaConnection. */\n call['sendMediaStateMachineEvt']({type: 'E_SEND_ROAP_ANSWER'});\n\n await waitForMsecs(50);\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_SEND_ROAP_ANSWER');\n\n /* Simulate ROAP_OK */\n mediaEvent.data.message.messageType = 'OK';\n await callManager['dequeueWsEvents'](mediaEvent);\n await waitForMsecs(50);\n\n expect(mediaSpy).toHaveBeenCalled();\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_ROAP_OK');\n expect(call['callStateMachine'].state.value).toStrictEqual('S_CALL_ESTABLISHED');\n\n /* Simulate ROAP Offer_request */\n mediaEvent.data.message.messageType = 'OFFER_REQUEST';\n await callManager['dequeueWsEvents'](mediaEvent);\n await waitForMsecs(50);\n expect(mediaSpy).toHaveBeenCalled();\n\n /* We are manually sending this event , ideally it will sent by Media Connection. */\n call['sendMediaStateMachineEvt']({type: 'E_SEND_ROAP_OFFER'});\n\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_SEND_ROAP_OFFER');\n\n /* Simulate ROAP Answer */\n mediaEvent.data.message.messageType = 'ANSWER';\n await callManager['dequeueWsEvents'](mediaEvent);\n await waitForMsecs(50);\n expect(mediaSpy).toHaveBeenCalled();\n\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_ROAP_OK');\n expect(call['callStateMachine'].state.value).toStrictEqual('S_CALL_ESTABLISHED');\n\n /* Start Call disconnect */\n disconnectEvent.data.correlationId = call.getCorrelationId();\n callManager['dequeueWsEvents'](disconnectEvent);\n await waitForMsecs(50);\n\n expect(deleteCallMock).toHaveBeenCalled();\n expect(mediaClose).toHaveBeenCalled();\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_ROAP_TEARDOWN');\n expect(call['callStateMachine'].state.value).toStrictEqual('S_CALL_CLEARED');\n\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(2);\n });\n\n patchMock.mockResolvedValue(dummyResponse);\n await callManager['dequeueWsEvents'](setupEvent);\n });\n});\n\ndescribe('Coverage for Events listener', () => {\n let callManager: ICallManager;\n let call: ICall;\n const dummyCallId = '8a67806f-fc4d-4469-a131-31e71ec5b011';\n\n webex.request.mockReturnValueOnce({\n statusCode: 200,\n body: {\n device: {\n deviceId: '8a67806f-fc4d-446b-a131-31e71ea5b010',\n correlationId: '8a67806f-fc4d-446b-a131-31e71ea5b011',\n },\n callId: '8a67806f-fc4d-446b-a131-31e71ea5b020',\n callData: {\n callState: MobiusCallState.PROCEEDING,\n },\n },\n });\n\n beforeEach(() => {\n callManager = getCallManager(webex, defaultServiceIndicator);\n callManager.removeAllListeners(LINE_EVENT_KEYS.INCOMING_CALL);\n call = callManager.createCall(dest, CallDirection.OUTBOUND, deviceId, mockLineId);\n call.setCallId(dummyCallId);\n setupEvent.data.correlationId = call.getCorrelationId();\n });\n\n const funcSpy = jest.spyOn(Call.prototype as any, 'sendMediaStateMachineEvt');\n const callSpy = jest.spyOn(Call.prototype as any, 'sendCallStateMachineEvt');\n const logSpy = jest.spyOn(log, 'log');\n\n it('When Offer is received', async () => {\n mediaEvent.data.callId = dummyCallId;\n\n await callManager['dequeueWsEvents'](mediaEvent);\n const eventData = {data: mediaEvent.data.message, type: 'E_RECV_ROAP_OFFER'};\n\n expect(funcSpy).toHaveBeenLastCalledWith(eventData);\n });\n\n it('When Answer is received', async () => {\n mediaEvent.data.message.messageType = 'ANSWER';\n await callManager['dequeueWsEvents'](mediaEvent);\n\n const eventData = {data: mediaEvent.data.message, type: 'E_RECV_ROAP_ANSWER'};\n\n expect(funcSpy).toHaveBeenCalledWith(eventData);\n });\n\n it('When Offer Request is received', async () => {\n mediaEvent.data.message.messageType = 'OFFER_REQUEST';\n await callManager['dequeueWsEvents'](mediaEvent);\n\n const eventData = {data: mediaEvent.data.message, type: 'E_RECV_ROAP_OFFER_REQUEST'};\n\n expect(funcSpy).toHaveBeenCalledWith(eventData);\n });\n\n it('When OK is received', async () => {\n mediaEvent.data.message.messageType = 'OK';\n await callManager['dequeueWsEvents'](mediaEvent);\n\n const mediaOK = {received: true, message: mediaEvent.data.message};\n const eventData = {data: mediaOK, type: 'E_ROAP_OK'};\n\n expect(funcSpy).toHaveBeenCalledWith(eventData);\n });\n\n it('When Error is Received', async () => {\n mediaEvent.data.message.messageType = 'ERROR';\n await callManager['dequeueWsEvents'](mediaEvent);\n\n expect(logSpy).toHaveBeenCalledWith('Received Error...', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n });\n\n it('When Unknown event is Received', async () => {\n mediaEvent.data.message.messageType = 'UNKNOWN';\n await callManager['dequeueWsEvents'](mediaEvent);\n\n expect(logSpy).toHaveBeenCalledWith('Unknown Media mobiusEvent: UNKNOWN ', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n });\n\n it('When Progress/Connect event is Received', async () => {\n setupEvent.data.eventType = 'mobius.callprogress';\n await callManager['dequeueWsEvents'](setupEvent);\n expect(callSpy).toHaveBeenCalledWith({type: 'E_RECV_CALL_PROGRESS', data: setupEvent.data});\n });\n\n it('Silently discard an event in the state machine', async () => {\n call['callStateMachine'].state.value = 'S_SEND_CALL_CONNECT';\n expect(call['callStateMachine'].state.value).toStrictEqual('S_SEND_CALL_CONNECT');\n\n const connectEvent = JSON.parse(JSON.stringify(setupEvent));\n\n connectEvent.data.eventType = 'mobius.callconnected';\n await callManager['dequeueWsEvents'](connectEvent);\n\n /* There should not be any state change */\n expect(call['callStateMachine'].state.value).toStrictEqual('S_SEND_CALL_CONNECT');\n });\n\n it('Silently discard an ROAP_ANSWER after being in ROAP_OK state', async () => {\n call['mediaStateMachine'].state.value = 'S_ROAP_OK';\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_ROAP_OK');\n\n const answerEvent = JSON.parse(JSON.stringify(mediaEvent));\n\n answerEvent.data.message.messageType = 'ANSWER';\n await callManager['dequeueWsEvents'](answerEvent);\n\n /* There should not be any state change */\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_ROAP_OK');\n });\n\n it('When Unknown Call event is Received', async () => {\n setupEvent.data.eventType = 'mobius.callunknown';\n await callManager['dequeueWsEvents'](setupEvent);\n expect(logSpy).toHaveBeenCalledWith('Unknown Call Event mobiusEvent: mobius.callunknown', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_Utils","require","_types","_testUtil","_callManager","_types2","_call","_Logger","_interopRequireDefault","_types3","webex","getTestUtilsWebex","defaultServiceIndicator","ServiceIndicator","CALLING","mediaEvent","id","data","message","messageType","sdp","seq","version","callId","callUrl","deviceId","correlationId","eventType","timestamp","trackingId","alertType","headers","sequenceNumber","filterMessage","setupEvent","callerId","from","broadworksCorrelationInfo","disconnectEvent","causecode","cause","dest","type","CallType","URI","address","successResponseBody","statusCode","body","device","callData","callState","MobiusCallState","PROCEEDING","mockLineId","mockLine","lineId","describe","dummyResponse","patchMock","jest","spyOn","Call","prototype","setDisconnectReasonMock","deleteCallMock","initMediaConnectionMock","mediaRoapEventsListenerMock","mediaTrackListenerMock","postMediaMock","mockResolvedValue","mockReturnValue","callManager","beforeEach","getCallManager","removeAllListeners","LINE_EVENT_KEYS","INCOMING_CALL","expect","_keys","default","getActiveCalls","length","toBe","afterEach","calls","_values","forEach","call","end","it","toBeTruthy","callManagerNew","toMatchObject","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","updateLine","request","mockReturnValueOnce","createCall","CallDirection","OUTBOUND","sent","setCallId","getCallId","toStrictEqual","stop","_callee2","_callee2$","_context2","on","callObj","getBroadworksCorrelationInfo","waitForMsecs","toHaveBeenCalledWith","ALERTING","_callee3","_callee3$","_context3","_callee4","_callee4$","_context4","getCorrelationId","toHaveBeenCalled","_callee5","_callee5$","_context5","not","_callee6","warnSpy","_callee6$","_context6","mockRejectedValue","log","file","method","_callee8","_callee8$","_context8","_ref8","_callee7","mediaSpy","mediaClose","track","_callee7$","_context7","state","value","answer","localAudioTrack","CONNECTED","_x","apply","arguments","dummyCallId","funcSpy","callSpy","logSpy","_callee9","eventData","_callee9$","_context9","toHaveBeenLastCalledWith","_callee10","_callee10$","_context10","_callee11","_callee11$","_context11","_callee12","mediaOK","_callee12$","_context12","received","_callee13","_callee13$","_context13","_callee14","_callee14$","_context14","_callee15","_callee15$","_context15","_callee16","connectEvent","_callee16$","_context16","JSON","parse","_stringify","_callee17","answerEvent","_callee17$","_context17","_callee18","_callee18$","_context18"],"sources":["callManager.test.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable dot-notation */\nimport {waitForMsecs} from '../../common/Utils';\nimport {CallDirection, CallType, ServiceIndicator} from '../../common/types';\nimport {getTestUtilsWebex} from '../../common/testUtil';\nimport {getCallManager} from './callManager';\nimport {ICall, ICallManager, MobiusCallState} from './types';\nimport {Call} from './call';\nimport log from '../../Logger';\nimport {ILine} from '../line/types';\nimport {LINE_EVENT_KEYS} from '../../Events/types';\n\nconst webex = getTestUtilsWebex();\nconst defaultServiceIndicator = ServiceIndicator.CALLING;\n\nconst mediaEvent = {\n id: '73e6a2b2-968c-44ea-a536-e7702722f8d8',\n data: {\n message: {\n messageType: 'OFFER',\n sdp: 'v=0\\r\\no=BroadWorks 175625 1653906127914 IN IP4 207.182.171.180\\r\\ns=-\\r\\nc=IN IP4 207.182.171.180\\r\\nt=0 0\\r\\na=ice-lite\\r\\nm=audio 19564 UDP/TLS/RTP/SAVPF 99 9 0 8 18 102 101\\r\\na=sendrecv\\r\\na=rtpmap:99 opus/48000/2\\r\\na=rtpmap:9 G722/8000\\r\\na=rtpmap:0 PCMU/8000\\r\\na=rtpmap:8 PCMA/8000\\r\\na=rtpmap:18 G729/8000\\r\\na=fmtp:18 annexb=no\\r\\na=rtpmap:102 iLBC/8000\\r\\na=fmtp:102 mode=30\\r\\na=rtpmap:101 telephone-event/8000\\r\\na=rtcp-mux\\r\\na=setup:actpass\\r\\na=ssrc:379289707 cname:HC3h2tromqGgnGaf\\r\\na=ice-ufrag:mLbW\\r\\na=ice-pwd:Hct9MYtML1sedttd8fLCg9aJ\\r\\na=fingerprint:sha-256 5E:F5:3D:98:57:03:D7:73:8F:C3:D4:FC:EC:FE:7F:4D:04:D8:EE:2A:29:C4:9F:35:C5:0F:D1:2D:CE:E4:AE:AA\\r\\na=candidate:mse 1 UDP 2130706431 207.182.171.180 19564 typ host\\r\\na=candidate:mse 2 UDP 2130706430 207.182.171.180 19565 typ host',\n seq: 1,\n version: '2',\n },\n callId: 'f2e89262-7d9a-489f-b65d-3b56a31c7bfe',\n callUrl:\n '[https://wdm-intb.ciscospark.com/wdm/api/v1/devices/14ef3832-a7af-4457-a660-fd1918d627d0]',\n deviceId: '375b8503-f716-3407-853b-cd9a8c4419a7',\n correlationId: '',\n eventType: 'mobius.media',\n },\n timestamp: 1653906128188,\n trackingId: 'ROUTER_62949AD0-DB6E-01BB-595A-03158964595A',\n alertType: 'full',\n headers: {},\n sequenceNumber: 7,\n filterMessage: false,\n};\n\nconst setupEvent = {\n id: '3ee919c7-202d-4f8c-9b74-e5ee8a693dfa',\n data: {\n callerId: {\n 'x-broadworks-remote-party-info':\n 'userId=\"hkkcq0ekby@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865895;ext=5008;country-code=1\";externalId=652fe0c7-05ce-4acd-8bda-9a080830187f',\n from: '\"Bob Marley\" <sip:5008@207.182.171.130;user=phone>;tag=379221777-1653906128003-',\n },\n callId: 'f2e89262-7d9a-489f-b65d-3b56a31c7bfe',\n callUrl:\n '[https://wdm-intb.ciscospark.com/wdm/api/v1/devices/14ef3832-a7af-4457-a660-fd1918d627d0]',\n deviceId: '375b8503-f716-3407-853b-cd9a8c4419a7',\n correlationId: '',\n eventType: 'mobius.call',\n broadworksCorrelationInfo: 'Sample_broadworksCorrelationInfo',\n },\n timestamp: 1653906128159,\n trackingId: 'ROUTER_62949AD0-DB6E-01BB-595A-03158964595A',\n alertType: 'full',\n headers: {},\n sequenceNumber: 6,\n filterMessage: false,\n};\n\nconst disconnectEvent = {\n id: 'f3e37504-5867-48ea-8d67-4e82b3ce1755',\n data: {\n causecode: 0,\n cause: 'Normal disconnect',\n callId: 'cbfe802c-cc8d-407f-863d-0abf8d6cc497',\n callUrl:\n '[https://wdm-intb.ciscospark.com/wdm/api/v1/devices/5691641c-7f0c-47a4-b248-e585ebcf653d]',\n deviceId: 'b9270663-54c8-3540-b01f-ed807dc5f9e8',\n correlationId: '',\n eventType: 'mobius.calldisconnected',\n },\n timestamp: 1653925625934,\n trackingId: 'NA_fe7efbbc-de52-438c-a6c3-58e96db230ba',\n alertType: 'full',\n headers: {},\n sequenceNumber: 6,\n filterMessage: false,\n};\nconst deviceId = '55dfb53f-bed2-36da-8e85-cee7f02aa68e';\nconst dest = {\n type: CallType.URI,\n address: 'tel:5003',\n};\n\nconst successResponseBody = {\n statusCode: 200,\n body: {\n device: {\n deviceId: '8a67806f-fc4d-446b-a131-31e71ea5b010',\n correlationId: '8a67806f-fc4d-446b-a131-31e71ea5b011',\n },\n callId: '8a67806f-fc4d-446b-a131-31e71ea5b020',\n callData: {\n callState: MobiusCallState.PROCEEDING,\n },\n },\n};\n\nconst mockLineId = 'e4e8ee2a-a154-4e52-8f11-ef4cde2dce72';\nconst mockLine = {\n lineId: mockLineId,\n} as ILine;\n\ndescribe('Call Manager Tests with respect to calls', () => {\n const dummyResponse = {\n statusCode: 200,\n body: {\n device: {\n deviceId: '8a67806f-fc4d-446b-a131-31e71ea5b010',\n correlationId: '8a67806f-fc4d-446b-a131-31e71ea5b011',\n },\n },\n };\n\n const patchMock = jest.spyOn(Call.prototype as any, 'patch');\n const setDisconnectReasonMock = jest.spyOn(Call.prototype as any, 'setDisconnectReason');\n const deleteCallMock = jest.spyOn(Call.prototype as any, 'delete');\n const initMediaConnectionMock = jest.spyOn(Call.prototype as any, 'initMediaConnection');\n const mediaRoapEventsListenerMock = jest.spyOn(Call.prototype as any, 'mediaRoapEventsListener');\n const mediaTrackListenerMock = jest.spyOn(Call.prototype as any, 'mediaTrackListener');\n const postMediaMock = jest.spyOn(Call.prototype as any, 'postMedia');\n\n deleteCallMock.mockResolvedValue(dummyResponse); // Both are using dummy response\n setDisconnectReasonMock.mockReturnValue({});\n initMediaConnectionMock.mockReturnValue({});\n mediaRoapEventsListenerMock.mockReturnValue({});\n mediaTrackListenerMock.mockReturnValue({});\n postMediaMock.mockResolvedValue({});\n\n let callManager: ICallManager;\n\n beforeEach(() => {\n callManager = getCallManager(webex, defaultServiceIndicator);\n callManager.removeAllListeners(LINE_EVENT_KEYS.INCOMING_CALL);\n /* expect 0 calls at the beginning of each test as we are clearing calls at the end of every test case */\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(0);\n });\n\n afterEach(() => {\n /* lets clear all calls at the end of every test case */\n const calls = Object.values(callManager.getActiveCalls());\n\n calls.forEach((call) => {\n call.end();\n });\n });\n\n it('check instance of call manager', () => {\n expect(callManager).toBeTruthy();\n });\n\n it('Check whether callManager is singleton', () => {\n const callManagerNew = getCallManager(webex, defaultServiceIndicator);\n\n expect(callManager).toMatchObject(callManagerNew);\n });\n\n it('create a call using call manager', async () => {\n callManager.updateLine('8a67806f-fc4d-446b-a131-31e71ea5b010', mockLine);\n webex.request.mockReturnValueOnce({\n statusCode: 200,\n body: {\n device: {\n deviceId: '8a67806f-fc4d-446b-a131-31e71ea5b010',\n correlationId: '8a67806f-fc4d-446b-a131-31e71ea5b011',\n },\n callId: '8a67806f-fc4d-446b-a131-31e71ea5b020',\n callData: {\n callState: MobiusCallState.PROCEEDING,\n },\n },\n });\n\n expect(callManager).toBeTruthy();\n const call = await callManager.createCall(dest, CallDirection.OUTBOUND, deviceId, mockLineId);\n\n call.setCallId('8a67806f-fc4d-446b-a131-31e71ea5b020');\n\n expect(call).toBeTruthy();\n expect(call.getCallId()).toStrictEqual('8a67806f-fc4d-446b-a131-31e71ea5b020');\n expect(call.lineId).toStrictEqual(mockLineId);\n });\n\n it('Accept an incoming call from Mobius where Call Setup was the first message', async () => {\n callManager.updateLine('375b8503-f716-3407-853b-cd9a8c4419a7', mockLine);\n callManager.on(LINE_EVENT_KEYS.INCOMING_CALL, (callObj: ICall) => {\n expect(callObj.getCallId()).toStrictEqual(setupEvent.data.callId);\n expect(callObj.getBroadworksCorrelationInfo()).toStrictEqual(\n setupEvent.data.broadworksCorrelationInfo\n );\n expect(callObj.lineId).toStrictEqual(mockLineId);\n });\n patchMock.mockResolvedValue(dummyResponse);\n\n await callManager['dequeueWsEvents'](setupEvent);\n await waitForMsecs(50);\n await callManager['dequeueWsEvents'](mediaEvent);\n await waitForMsecs(50);\n\n expect(patchMock).toHaveBeenCalledWith(MobiusCallState.ALERTING);\n /* setUp event should create the call and count will be 1 for new call */\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(1);\n });\n\n it('Accept an incoming call from Mobius where Media Event was the first message', async () => {\n callManager.updateLine('8a67806f-fc4d-446b-a131-31e71ea5b010', mockLine);\n patchMock.mockResolvedValue(dummyResponse);\n callManager.on(LINE_EVENT_KEYS.INCOMING_CALL, (callObj: ICall) => {\n expect(callObj.getCallId()).toStrictEqual(setupEvent.data.callId);\n expect(callObj['remoteRoapMessage'].sdp).toStrictEqual(mediaEvent.data.message.sdp);\n });\n\n await callManager['dequeueWsEvents'](mediaEvent);\n /* check whether SDP is buffered */\n await callManager['dequeueWsEvents'](setupEvent);\n expect(patchMock).toHaveBeenCalledWith(MobiusCallState.ALERTING);\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(1);\n });\n\n it('Disconnect a call if received a Call Disconnect event', async () => {\n webex.request.mockReturnValueOnce(successResponseBody);\n\n /* lets add a call to disconnect it later */\n const call = await callManager.createCall(dest, CallDirection.OUTBOUND, deviceId, mockLineId);\n\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(1);\n /* clear the last added call */\n\n patchMock.mockResolvedValue(dummyResponse);\n disconnectEvent.data.correlationId = call.getCorrelationId();\n callManager['dequeueWsEvents'](disconnectEvent);\n\n /* Add a small delay , to simulate sending of Delete request and clearing from Call records */\n await waitForMsecs(50);\n\n expect(deleteCallMock).toHaveBeenCalled();\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(0);\n });\n\n it('Do not Disconnect a call if call has been disconnected already', async () => {\n webex.request.mockReturnValueOnce(successResponseBody);\n\n /* lets add a call to disconnect it later */\n await callManager.createCall(dest, CallDirection.OUTBOUND, deviceId, mockLineId);\n\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(1);\n /* clear the last added call */\n\n patchMock.mockResolvedValue(dummyResponse);\n disconnectEvent.data.correlationId = '1234';\n callManager['dequeueWsEvents'](disconnectEvent);\n\n /* Add a small delay , to simulate sending of Delete request and clearing from Call records */\n await waitForMsecs(50);\n\n expect(deleteCallMock).not.toHaveBeenCalled();\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(1);\n });\n\n it('Accept an incoming call but Outgoing patch request fails', async () => {\n callManager.updateLine('8a67806f-fc4d-446b-a131-31e71ea5b010', mockLine);\n /* Intentionally failing the Patch with 503 */\n dummyResponse.statusCode = 503;\n patchMock.mockRejectedValue(dummyResponse);\n\n const warnSpy = jest.spyOn(log, 'warn');\n\n await callManager['dequeueWsEvents'](mediaEvent);\n await waitForMsecs(50);\n await callManager['dequeueWsEvents'](setupEvent);\n await waitForMsecs(50);\n\n expect(patchMock).toHaveBeenCalledWith(MobiusCallState.ALERTING);\n expect(warnSpy).toHaveBeenCalledWith('Failed to signal call progression', {\n file: 'call',\n method: 'handleOutgoingCallAlerting',\n });\n /* No calls should have been added as call progress failed */\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(0);\n });\n\n it('Walk through an End to End call', async () => {\n callManager.updateLine('8a67806f-fc4d-446b-a131-31e71ea5b010', mockLine);\n let call: ICall;\n\n callManager.on(LINE_EVENT_KEYS.INCOMING_CALL, async (callObj: ICall) => {\n expect(callObj.getCallId()).toStrictEqual(setupEvent.data.callId);\n call = callObj;\n await waitForMsecs(50);\n\n const mediaSpy = jest.spyOn(call['mediaConnection'], 'roapMessageReceived');\n const mediaClose = jest.spyOn(call['mediaConnection'], 'close').mockReturnValue({});\n\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(3);\n expect(call['callStateMachine'].state.value).toStrictEqual('S_SEND_CALL_PROGRESS');\n expect(patchMock).toHaveBeenCalledWith(MobiusCallState.ALERTING);\n\n /* Receive ROAP Offer */\n await callManager['dequeueWsEvents'](mediaEvent);\n await waitForMsecs(50);\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_RECV_ROAP_OFFER');\n\n const track = {} as MediaStreamTrack;\n\n /* User answers the call */\n await call.answer({localAudioTrack: track});\n await waitForMsecs(50);\n\n expect(call['callStateMachine'].state.value).toStrictEqual('S_SEND_CALL_CONNECT');\n expect(patchMock).toHaveBeenCalledWith(MobiusCallState.CONNECTED);\n expect(mediaSpy).toHaveBeenCalled(); /* We pass the offer to media connection */\n\n /* We are manually sending this event , ideally it will sent by MediaConnection. */\n call['sendMediaStateMachineEvt']({type: 'E_SEND_ROAP_ANSWER'});\n\n await waitForMsecs(50);\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_SEND_ROAP_ANSWER');\n\n /* Simulate ROAP_OK */\n mediaEvent.data.message.messageType = 'OK';\n await callManager['dequeueWsEvents'](mediaEvent);\n await waitForMsecs(50);\n\n expect(mediaSpy).toHaveBeenCalled();\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_ROAP_OK');\n expect(call['callStateMachine'].state.value).toStrictEqual('S_CALL_ESTABLISHED');\n\n /* Simulate ROAP Offer_request */\n mediaEvent.data.message.messageType = 'OFFER_REQUEST';\n await callManager['dequeueWsEvents'](mediaEvent);\n await waitForMsecs(50);\n expect(mediaSpy).toHaveBeenCalled();\n\n /* We are manually sending this event , ideally it will sent by Media Connection. */\n call['sendMediaStateMachineEvt']({type: 'E_SEND_ROAP_OFFER'});\n\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_SEND_ROAP_OFFER');\n\n /* Simulate ROAP Answer */\n mediaEvent.data.message.messageType = 'ANSWER';\n await callManager['dequeueWsEvents'](mediaEvent);\n await waitForMsecs(50);\n expect(mediaSpy).toHaveBeenCalled();\n\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_ROAP_OK');\n expect(call['callStateMachine'].state.value).toStrictEqual('S_CALL_ESTABLISHED');\n\n /* Start Call disconnect */\n disconnectEvent.data.correlationId = call.getCorrelationId();\n callManager['dequeueWsEvents'](disconnectEvent);\n await waitForMsecs(50);\n\n expect(deleteCallMock).toHaveBeenCalled();\n expect(mediaClose).toHaveBeenCalled();\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_ROAP_TEARDOWN');\n expect(call['callStateMachine'].state.value).toStrictEqual('S_CALL_CLEARED');\n\n expect(Object.keys(callManager.getActiveCalls()).length).toBe(2);\n });\n\n patchMock.mockResolvedValue(dummyResponse);\n await callManager['dequeueWsEvents'](setupEvent);\n });\n});\n\ndescribe('Coverage for Events listener', () => {\n let callManager: ICallManager;\n let call: ICall;\n const dummyCallId = '8a67806f-fc4d-4469-a131-31e71ec5b011';\n\n webex.request.mockReturnValueOnce({\n statusCode: 200,\n body: {\n device: {\n deviceId: '8a67806f-fc4d-446b-a131-31e71ea5b010',\n correlationId: '8a67806f-fc4d-446b-a131-31e71ea5b011',\n },\n callId: '8a67806f-fc4d-446b-a131-31e71ea5b020',\n callData: {\n callState: MobiusCallState.PROCEEDING,\n },\n },\n });\n\n beforeEach(() => {\n callManager = getCallManager(webex, defaultServiceIndicator);\n callManager.removeAllListeners(LINE_EVENT_KEYS.INCOMING_CALL);\n call = callManager.createCall(dest, CallDirection.OUTBOUND, deviceId, mockLineId);\n call.setCallId(dummyCallId);\n setupEvent.data.correlationId = call.getCorrelationId();\n });\n\n const funcSpy = jest.spyOn(Call.prototype as any, 'sendMediaStateMachineEvt');\n const callSpy = jest.spyOn(Call.prototype as any, 'sendCallStateMachineEvt');\n const logSpy = jest.spyOn(log, 'log');\n\n it('When Offer is received', async () => {\n mediaEvent.data.callId = dummyCallId;\n\n await callManager['dequeueWsEvents'](mediaEvent);\n const eventData = {data: mediaEvent.data.message, type: 'E_RECV_ROAP_OFFER'};\n\n expect(funcSpy).toHaveBeenLastCalledWith(eventData);\n });\n\n it('When Answer is received', async () => {\n mediaEvent.data.message.messageType = 'ANSWER';\n await callManager['dequeueWsEvents'](mediaEvent);\n\n const eventData = {data: mediaEvent.data.message, type: 'E_RECV_ROAP_ANSWER'};\n\n expect(funcSpy).toHaveBeenCalledWith(eventData);\n });\n\n it('When Offer Request is received', async () => {\n mediaEvent.data.message.messageType = 'OFFER_REQUEST';\n await callManager['dequeueWsEvents'](mediaEvent);\n\n const eventData = {data: mediaEvent.data.message, type: 'E_RECV_ROAP_OFFER_REQUEST'};\n\n expect(funcSpy).toHaveBeenCalledWith(eventData);\n });\n\n it('When OK is received', async () => {\n mediaEvent.data.message.messageType = 'OK';\n await callManager['dequeueWsEvents'](mediaEvent);\n\n const mediaOK = {received: true, message: mediaEvent.data.message};\n const eventData = {data: mediaOK, type: 'E_ROAP_OK'};\n\n expect(funcSpy).toHaveBeenCalledWith(eventData);\n });\n\n it('When Error is Received', async () => {\n mediaEvent.data.message.messageType = 'ERROR';\n await callManager['dequeueWsEvents'](mediaEvent);\n\n expect(logSpy).toHaveBeenCalledWith('Received Error...', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n });\n\n it('When Unknown event is Received', async () => {\n mediaEvent.data.message.messageType = 'UNKNOWN';\n await callManager['dequeueWsEvents'](mediaEvent);\n\n expect(logSpy).toHaveBeenCalledWith('Unknown Media mobiusEvent: UNKNOWN ', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n });\n\n it('When Progress/Connect event is Received', async () => {\n setupEvent.data.eventType = 'mobius.callprogress';\n await callManager['dequeueWsEvents'](setupEvent);\n expect(callSpy).toHaveBeenCalledWith({type: 'E_RECV_CALL_PROGRESS', data: setupEvent.data});\n });\n\n it('Silently discard an event in the state machine', async () => {\n call['callStateMachine'].state.value = 'S_SEND_CALL_CONNECT';\n expect(call['callStateMachine'].state.value).toStrictEqual('S_SEND_CALL_CONNECT');\n\n const connectEvent = JSON.parse(JSON.stringify(setupEvent));\n\n connectEvent.data.eventType = 'mobius.callconnected';\n await callManager['dequeueWsEvents'](connectEvent);\n\n /* There should not be any state change */\n expect(call['callStateMachine'].state.value).toStrictEqual('S_SEND_CALL_CONNECT');\n });\n\n it('Silently discard an ROAP_ANSWER after being in ROAP_OK state', async () => {\n call['mediaStateMachine'].state.value = 'S_ROAP_OK';\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_ROAP_OK');\n\n const answerEvent = JSON.parse(JSON.stringify(mediaEvent));\n\n answerEvent.data.message.messageType = 'ANSWER';\n await callManager['dequeueWsEvents'](answerEvent);\n\n /* There should not be any state change */\n expect(call['mediaStateMachine'].state.value).toStrictEqual('S_ROAP_OK');\n });\n\n it('When Unknown Call event is Received', async () => {\n setupEvent.data.eventType = 'mobius.callunknown';\n await callManager['dequeueWsEvents'](setupEvent);\n expect(logSpy).toHaveBeenCalledWith('Unknown Call Event mobiusEvent: mobius.callunknown', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n });\n});\n"],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ export class Call extends Eventing {
|
|
|
31
31
|
mediaConnection;
|
|
32
32
|
earlyMedia;
|
|
33
33
|
connected;
|
|
34
|
+
mediaInactivity;
|
|
34
35
|
callerInfo;
|
|
35
36
|
localRoapMessage;
|
|
36
37
|
mobiusUrl;
|
|
@@ -72,6 +73,7 @@ export class Call extends Eventing {
|
|
|
72
73
|
this.correlationId = uuid();
|
|
73
74
|
this.deleteCb = deleteCb;
|
|
74
75
|
this.connected = false;
|
|
76
|
+
this.mediaInactivity = false;
|
|
75
77
|
this.held = false;
|
|
76
78
|
this.earlyMedia = false;
|
|
77
79
|
this.callerInfo = {};
|
|
@@ -79,7 +81,7 @@ export class Call extends Eventing {
|
|
|
79
81
|
this.mobiusUrl = activeUrl;
|
|
80
82
|
this.receivedRoapOKSeq = 0;
|
|
81
83
|
this.mediaNegotiationCompleted = false;
|
|
82
|
-
log.info(`
|
|
84
|
+
log.info(`Webex Calling Url:- ${this.mobiusUrl}`, {
|
|
83
85
|
file: CALL_FILE,
|
|
84
86
|
method: 'constructor',
|
|
85
87
|
});
|
|
@@ -577,7 +579,7 @@ export class Call extends Eventing {
|
|
|
577
579
|
this.setCallId(response.body.callId);
|
|
578
580
|
}
|
|
579
581
|
catch (e) {
|
|
580
|
-
log.warn('
|
|
582
|
+
log.warn('Failed to setup the call', {
|
|
581
583
|
file: CALL_FILE,
|
|
582
584
|
method: this.handleOutgoingCallSetup.name,
|
|
583
585
|
});
|
|
@@ -614,7 +616,7 @@ export class Call extends Eventing {
|
|
|
614
616
|
}
|
|
615
617
|
}
|
|
616
618
|
catch (e) {
|
|
617
|
-
log.warn('
|
|
619
|
+
log.warn('Failed to put the call on hold', {
|
|
618
620
|
file: CALL_FILE,
|
|
619
621
|
method: this.handleCallHold.name,
|
|
620
622
|
});
|
|
@@ -651,7 +653,7 @@ export class Call extends Eventing {
|
|
|
651
653
|
}
|
|
652
654
|
}
|
|
653
655
|
catch (e) {
|
|
654
|
-
log.warn('
|
|
656
|
+
log.warn('Failed to resume the call', {
|
|
655
657
|
file: CALL_FILE,
|
|
656
658
|
method: this.handleCallResume.name,
|
|
657
659
|
});
|
|
@@ -735,7 +737,7 @@ export class Call extends Eventing {
|
|
|
735
737
|
});
|
|
736
738
|
}
|
|
737
739
|
catch (err) {
|
|
738
|
-
log.warn('
|
|
740
|
+
log.warn('Failed to signal call progression', {
|
|
739
741
|
file: CALL_FILE,
|
|
740
742
|
method: this.handleOutgoingCallAlerting.name,
|
|
741
743
|
});
|
|
@@ -771,15 +773,15 @@ export class Call extends Eventing {
|
|
|
771
773
|
return;
|
|
772
774
|
}
|
|
773
775
|
try {
|
|
776
|
+
this.mediaConnection.roapMessageReceived(this.remoteRoapMessage);
|
|
774
777
|
const res = await this.patch(MobiusCallState.CONNECTED);
|
|
775
778
|
log.log(`PATCH response: ${res.statusCode}`, {
|
|
776
779
|
file: CALL_FILE,
|
|
777
780
|
method: this.handleOutgoingCallConnect.name,
|
|
778
781
|
});
|
|
779
|
-
this.mediaConnection.roapMessageReceived(this.remoteRoapMessage);
|
|
780
782
|
}
|
|
781
783
|
catch (err) {
|
|
782
|
-
log.warn('
|
|
784
|
+
log.warn('Failed to connect the call', {
|
|
783
785
|
file: CALL_FILE,
|
|
784
786
|
method: this.handleOutgoingCallConnect.name,
|
|
785
787
|
});
|
|
@@ -805,7 +807,7 @@ export class Call extends Eventing {
|
|
|
805
807
|
});
|
|
806
808
|
}
|
|
807
809
|
catch (e) {
|
|
808
|
-
log.warn('
|
|
810
|
+
log.warn('Failed to delete the call', {
|
|
809
811
|
file: CALL_FILE,
|
|
810
812
|
method: this.handleIncomingCallDisconnect.name,
|
|
811
813
|
});
|
|
@@ -832,7 +834,7 @@ export class Call extends Eventing {
|
|
|
832
834
|
});
|
|
833
835
|
}
|
|
834
836
|
catch (e) {
|
|
835
|
-
log.warn('
|
|
837
|
+
log.warn('Failed to delete the call', {
|
|
836
838
|
file: CALL_FILE,
|
|
837
839
|
method: this.handleOutgoingCallDisconnect.name,
|
|
838
840
|
});
|
|
@@ -909,7 +911,7 @@ export class Call extends Eventing {
|
|
|
909
911
|
});
|
|
910
912
|
}
|
|
911
913
|
catch (e) {
|
|
912
|
-
log.warn('
|
|
914
|
+
log.warn('Failed to delete the call', {
|
|
913
915
|
file: CALL_FILE,
|
|
914
916
|
method: this.handleUnknownState.name,
|
|
915
917
|
});
|
|
@@ -985,7 +987,7 @@ export class Call extends Eventing {
|
|
|
985
987
|
}
|
|
986
988
|
}
|
|
987
989
|
catch (err) {
|
|
988
|
-
log.warn('
|
|
990
|
+
log.warn('Failed to process MediaOk request', {
|
|
989
991
|
file: CALL_FILE,
|
|
990
992
|
method: 'handleRoapEstablished',
|
|
991
993
|
});
|
|
@@ -1039,7 +1041,7 @@ export class Call extends Eventing {
|
|
|
1039
1041
|
});
|
|
1040
1042
|
}
|
|
1041
1043
|
catch (err) {
|
|
1042
|
-
log.warn('Failed to communicate ROAP error
|
|
1044
|
+
log.warn('Failed to communicate ROAP error to Webex Calling', {
|
|
1043
1045
|
file: CALL_FILE,
|
|
1044
1046
|
method: this.handleRoapError.name,
|
|
1045
1047
|
});
|
|
@@ -1080,7 +1082,7 @@ export class Call extends Eventing {
|
|
|
1080
1082
|
});
|
|
1081
1083
|
}
|
|
1082
1084
|
catch (err) {
|
|
1083
|
-
log.warn('
|
|
1085
|
+
log.warn('Failed to process MediaOk request', {
|
|
1084
1086
|
file: CALL_FILE,
|
|
1085
1087
|
method: this.handleOutgoingRoapOffer.name,
|
|
1086
1088
|
});
|
|
@@ -1109,7 +1111,7 @@ export class Call extends Eventing {
|
|
|
1109
1111
|
});
|
|
1110
1112
|
}
|
|
1111
1113
|
catch (err) {
|
|
1112
|
-
log.warn('
|
|
1114
|
+
log.warn('Failed to send MediaAnswer request', {
|
|
1113
1115
|
file: CALL_FILE,
|
|
1114
1116
|
method: this.handleOutgoingRoapAnswer.name,
|
|
1115
1117
|
});
|
|
@@ -1206,7 +1208,11 @@ export class Call extends Eventing {
|
|
|
1206
1208
|
});
|
|
1207
1209
|
};
|
|
1208
1210
|
setDisconnectReason() {
|
|
1209
|
-
if (this.
|
|
1211
|
+
if (this.mediaInactivity) {
|
|
1212
|
+
this.disconnectReason.code = DisconnectCode.MEDIA_INACTIVITY;
|
|
1213
|
+
this.disconnectReason.cause = DisconnectCause.MEDIA_INACTIVITY;
|
|
1214
|
+
}
|
|
1215
|
+
else if (this.connected || this.direction === CallDirection.OUTBOUND) {
|
|
1210
1216
|
this.disconnectReason.code = DisconnectCode.NORMAL;
|
|
1211
1217
|
this.disconnectReason.cause = DisconnectCause.NORMAL;
|
|
1212
1218
|
}
|
|
@@ -1220,6 +1226,15 @@ export class Call extends Eventing {
|
|
|
1220
1226
|
};
|
|
1221
1227
|
async answer(localAudioStream) {
|
|
1222
1228
|
const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];
|
|
1229
|
+
if (!localAudioTrack) {
|
|
1230
|
+
log.warn(`Did not find a local track while answering the call ${this.getCorrelationId()}`, {
|
|
1231
|
+
file: CALL_FILE,
|
|
1232
|
+
method: 'answer',
|
|
1233
|
+
});
|
|
1234
|
+
this.mediaInactivity = true;
|
|
1235
|
+
this.sendCallStateMachineEvt({ type: 'E_SEND_CALL_DISCONNECT' });
|
|
1236
|
+
return;
|
|
1237
|
+
}
|
|
1223
1238
|
localAudioTrack.enabled = true;
|
|
1224
1239
|
if (!this.mediaConnection) {
|
|
1225
1240
|
this.initMediaConnection(localAudioTrack);
|
|
@@ -1236,6 +1251,15 @@ export class Call extends Eventing {
|
|
|
1236
1251
|
}
|
|
1237
1252
|
async dial(localAudioStream) {
|
|
1238
1253
|
const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];
|
|
1254
|
+
if (!localAudioTrack) {
|
|
1255
|
+
log.warn(`Did not find a local track while dialling the call ${this.getCorrelationId()}`, {
|
|
1256
|
+
file: CALL_FILE,
|
|
1257
|
+
method: 'dial',
|
|
1258
|
+
});
|
|
1259
|
+
this.deleteCb(this.getCorrelationId());
|
|
1260
|
+
this.emit(CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());
|
|
1261
|
+
return;
|
|
1262
|
+
}
|
|
1239
1263
|
localAudioTrack.enabled = true;
|
|
1240
1264
|
if (!this.mediaConnection) {
|
|
1241
1265
|
this.initMediaConnection(localAudioTrack);
|
|
@@ -1276,7 +1300,7 @@ export class Call extends Eventing {
|
|
|
1276
1300
|
});
|
|
1277
1301
|
};
|
|
1278
1302
|
async patch(state) {
|
|
1279
|
-
log.info(`Send a PATCH for ${state} to
|
|
1303
|
+
log.info(`Send a PATCH for ${state} to Webex Calling`, {
|
|
1280
1304
|
file: CALL_FILE,
|
|
1281
1305
|
method: this.patch.name,
|
|
1282
1306
|
});
|
|
@@ -1437,7 +1461,7 @@ export class Call extends Eventing {
|
|
|
1437
1461
|
return parseMediaQualityStatistics(stats);
|
|
1438
1462
|
}
|
|
1439
1463
|
async postMedia(roapMessage) {
|
|
1440
|
-
log.log('Posting message to
|
|
1464
|
+
log.log('Posting message to Webex Calling', {
|
|
1441
1465
|
file: CALL_FILE,
|
|
1442
1466
|
method: this.postMedia.name,
|
|
1443
1467
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../../src/CallingClient/calling/call.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EAGtB,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAEL,WAAW,EACX,aAAa,EACb,MAAM,EACN,aAAa,EACb,kBAAkB,EAElB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAyB5B,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAEL,YAAY,EACZ,SAAS,EACT,cAAc,EAGd,SAAS,EAET,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAgB,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,oBAAoB,EAGpB,gBAAgB,EAChB,KAAK,EAGL,YAAY,EAOZ,UAAU,EAGV,YAAY,EACb,MAAM,SAAS,CAAC;AAWjB,qBAAa,IAAK,SAAQ,QAAQ,CAAC,cAAc,CAAE,YAAW,KAAK;IACjE,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,SAAS,CAAgB;IAEjC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,QAAQ,CAAS;IAElB,MAAM,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,gBAAgB,CAAC;IAEzB,OAAO,CAAC,iBAAiB,CAAC;IAE1B,OAAO,CAAC,GAAG,CAAS;IAIb,eAAe,CAAC,EAAE,GAAG,CAAC;IAE7B,OAAO,CAAC,UAAU,CAAU;IAE5B,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,UAAU,CAAqB;IAEvC,OAAO,CAAC,gBAAgB,CAAc;IAEtC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,iBAAiB,CAAqB;IAE9C,OAAO,CAAC,QAAQ,CAAuB;IAEvC,OAAO,CAAC,QAAQ,CAAY;IAE5B,OAAO,CAAC,YAAY,CAAC,CAAe;IAGpC,OAAO,CAAC,0BAA0B,CAAC,CAAiB;IAEpD,OAAO,CAAC,KAAK,CAAU;IAEvB,OAAO,CAAC,IAAI,CAAU;IAEtB,OAAO,CAAC,aAAa,CAAiB;IAEtC,OAAO,CAAC,yBAAyB,CAAC,CAAS;IAE3C,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,yBAAyB,CAAU;IAE3C,OAAO,CAAC,iBAAiB,CAAS;IAO3B,OAAO;IASP,WAAW;IASX,MAAM;gBAQX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../../src/CallingClient/calling/call.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED