@webex/calling 3.12.0-next.83 → 3.12.0-next.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/CallingClient/CallingClient.js +13 -13
  2. package/dist/CallingClient/CallingClient.js.map +1 -1
  3. package/dist/CallingClient/calling/call.js +45 -9
  4. package/dist/CallingClient/calling/call.js.map +1 -1
  5. package/dist/CallingClient/calling/call.test.js +544 -454
  6. package/dist/CallingClient/calling/call.test.js.map +1 -1
  7. package/dist/CallingClient/calling/callManager.js +25 -4
  8. package/dist/CallingClient/calling/callManager.js.map +1 -1
  9. package/dist/CallingClient/calling/callManager.test.js +17 -0
  10. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  11. package/dist/CallingClient/calling/types.js +3 -0
  12. package/dist/CallingClient/calling/types.js.map +1 -1
  13. package/dist/CallingClient/constants.js +4 -2
  14. package/dist/CallingClient/constants.js.map +1 -1
  15. package/dist/CallingClient/types.js +7 -0
  16. package/dist/CallingClient/types.js.map +1 -1
  17. package/dist/index.js +6 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/module/CallingClient/CallingClient.js +1 -1
  20. package/dist/module/CallingClient/calling/call.js +20 -4
  21. package/dist/module/CallingClient/calling/callManager.js +12 -4
  22. package/dist/module/CallingClient/constants.js +1 -0
  23. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  24. package/dist/types/CallingClient/calling/call.d.ts +5 -3
  25. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  26. package/dist/types/CallingClient/calling/callManager.d.ts +5 -3
  27. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  28. package/dist/types/CallingClient/calling/types.d.ts +4 -0
  29. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  30. package/dist/types/CallingClient/constants.d.ts +1 -0
  31. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  32. package/dist/types/CallingClient/types.d.ts +3 -2
  33. package/dist/types/CallingClient/types.d.ts.map +1 -1
  34. package/dist/types/index.d.ts +1 -1
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/package.json +1 -1
@@ -37,8 +37,9 @@ var CallManager = exports.CallManager = /*#__PURE__*/function (_Eventing) {
37
37
  /**
38
38
  * @param webex -.
39
39
  * @param indicator - Service Indicator.
40
+ * @param iceGatheringConfig - Optional ICE candidate gathering configuration.
40
41
  */
41
- function CallManager(webex, indicator) {
42
+ function CallManager(webex, indicator, iceGatheringConfig) {
42
43
  var _this;
43
44
  (0, _classCallCheck2.default)(this, CallManager);
44
45
  _this = _callSuper(this, CallManager);
@@ -50,6 +51,7 @@ var CallManager = exports.CallManager = /*#__PURE__*/function (_Eventing) {
50
51
  (0, _defineProperty2.default)(_this, "lineDict", void 0);
51
52
  (0, _defineProperty2.default)(_this, "apiRequest", void 0);
52
53
  (0, _defineProperty2.default)(_this, "isMobiusSocketListenerRegistered", false);
54
+ (0, _defineProperty2.default)(_this, "iceGatheringConfig", void 0);
53
55
  /**
54
56
  * @param direction -.
55
57
  * @param deviceId -.
@@ -73,7 +75,7 @@ var CallManager = exports.CallManager = /*#__PURE__*/function (_Eventing) {
73
75
  method: _constants2.METHODS.CREATE_CALL
74
76
  });
75
77
  }
76
- }, _this.serviceIndicator, destination);
78
+ }, _this.serviceIndicator, destination, _this.iceGatheringConfig);
77
79
  _this.callCollection[newCall.getCorrelationId()] = newCall;
78
80
  _Logger.default.log("New call created with correlationId: ".concat(newCall.getCorrelationId()), {});
79
81
  _Logger.default.info("ADD:: Added corelationId: ".concat(newCall.getCorrelationId(), " to CallManager , Number of call records now:- ").concat((0, _keys.default)(_this.getActiveCalls()).length), {});
@@ -93,6 +95,7 @@ var CallManager = exports.CallManager = /*#__PURE__*/function (_Eventing) {
93
95
  });
94
96
  _this.sdkConnector = _SDKConnector.default;
95
97
  _this.serviceIndicator = indicator;
98
+ _this.iceGatheringConfig = iceGatheringConfig;
96
99
  if (!_this.sdkConnector.getWebex()) {
97
100
  _SDKConnector.default.setWebex(webex);
98
101
  }
@@ -495,15 +498,33 @@ var CallManager = exports.CallManager = /*#__PURE__*/function (_Eventing) {
495
498
  value: function getLineId(deviceId) {
496
499
  return this.lineDict[deviceId].lineId;
497
500
  }
501
+
502
+ /**
503
+ * Updates the ICE candidate gathering configuration applied to newly created calls.
504
+ *
505
+ * The {@link CallManager} is a module-level singleton that may be first constructed by a
506
+ * collaborator (e.g. line or registration) that does not have the SDK config. This lets the
507
+ * `CallingClient` seed the config on the shared instance regardless of construction order.
508
+ *
509
+ * @param iceGatheringConfig - The ICE candidate gathering configuration.
510
+ */
511
+ }, {
512
+ key: "setIceGatheringConfig",
513
+ value: function setIceGatheringConfig(iceGatheringConfig) {
514
+ this.iceGatheringConfig = iceGatheringConfig;
515
+ }
498
516
  }]);
499
517
  }(_impl.Eventing);
500
518
  /**
501
519
  * @param webex -.
502
520
  * @param indicator - Service Indicator.
521
+ * @param iceGatheringConfig - Optional ICE candidate gathering configuration.
503
522
  */
504
- var getCallManager = exports.getCallManager = function getCallManager(webex, indicator) {
523
+ var getCallManager = exports.getCallManager = function getCallManager(webex, indicator, iceGatheringConfig) {
505
524
  if (!callManager) {
506
- callManager = new CallManager(webex, indicator);
525
+ callManager = new CallManager(webex, indicator, iceGatheringConfig);
526
+ } else if (iceGatheringConfig) {
527
+ callManager.setIceGatheringConfig(iceGatheringConfig);
507
528
  }
508
529
  return callManager;
509
530
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_request","require","_constants","_constants2","_types","_impl","_SDKConnector","_interopRequireDefault","_types2","_types3","_call4","_Logger","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","callManager","CallManager","exports","_Eventing","webex","indicator","_this","_classCallCheck2","_defineProperty2","direction","deviceId","lineId","destination","log","info","concat","METHOD_START_MESSAGE","file","CALL_MANAGER_FILE","method","METHODS","CREATE_CALL","newCall","createCall","activeMobiusUrl","correlationId","callCollection","activeCalls","_keys","getActiveCalls","length","getCorrelationId","emit","CALLING_CLIENT_EVENT_KEYS","ALL_CALLS_CLEARED","serviceIndicator","sdkConnector","SDKConnector","getWebex","setWebex","lineDict","apiRequest","APIRequest","getInstance","listenForWsEvents","_inherits2","_createClass2","key","value","updateActiveMobius","url","UPDATE_ACTIVE_MOBIUS","_this2","socketEnabled","isSocketEnabled","isMobiusSocketListenerRegistered","registerListener","_ref","_asyncToGenerator2","_regenerator","mark","_callee","event","wrap","_context","prev","next","dequeueWsEvents","stop","_x","arguments","REGISTER_SESSIONS_LISTENER","unregisterListener","_this3","DEQUEUE_WS_EVENTS","mobiusEvent","_ref2","data","callId","eventType","MobiusEventType","CALL_SETUP","midCallService","forEach","midCallEvent","getCall","handleMidCallEvent","newId","find","id","getCallId","getLineId","CallDirection","INBOUND","setCallId","broadworksCorrelationInfo","setBroadworksCorrelationInfo","callerId","startCallerIdResolution","LINE_EVENT_KEYS","INCOMING_CALL","sendCallStateMachineEvt","type","CALL_PROGRESS","CALL_INFO","CALL_MEDIA","activeCall","_mobiusEvent$data$mes","_mobiusEvent$data$mes2","_mobiusEvent$data$mes3","_mobiusEvent$data$mes4","_mobiusEvent$data$mes5","message","sdp","messageType","seq","version","mediaState","MediaState","OFFER","sendMediaStateMachineEvt","ANSWER","OFFER_REQUEST","OK","mediaOk","received","ERROR","CALL_CONNECTED","CALL_DISCONNECTED","updateLine","line","UPDATE_LINE","Eventing","getCallManager"],"sources":["callManager.ts"],"sourcesContent":["/* eslint-disable dot-notation */\n/* eslint-disable valid-jsdoc */\nimport {APIRequest} from '../utils/request';\nimport {METHOD_START_MESSAGE} from '../../common/constants';\nimport {CALL_MANAGER_FILE, METHODS} from '../constants';\nimport {CALLING_CLIENT_EVENT_KEYS, CallEventTypes, LINE_EVENT_KEYS} from '../../Events/types';\nimport {Eventing} from '../../Events/impl';\nimport SDKConnector from '../../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {CallDetails, CallDirection, CorrelationId, ServiceIndicator} from '../../common/types';\nimport {\n ICall,\n ICallManager,\n MediaState,\n MidCallEvent,\n MobiusAsyncEvent,\n MobiusCallData,\n MobiusEventType,\n} from './types';\nimport {createCall} from './call';\nimport log from '../../Logger';\nimport {ILine} from '../line/types';\n\nlet callManager: ICallManager;\n\n/**\n *\n */\nexport class CallManager extends Eventing<CallEventTypes> implements ICallManager {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private callCollection: Record<CorrelationId, ICall>;\n\n private activeMobiusUrl!: string;\n\n private serviceIndicator: ServiceIndicator;\n\n private lineDict: Record<string, ILine>;\n\n private apiRequest: APIRequest;\n\n private isMobiusSocketListenerRegistered = false;\n\n /**\n * @param webex -.\n * @param indicator - Service Indicator.\n */\n constructor(webex: WebexSDK, indicator: ServiceIndicator) {\n super();\n this.sdkConnector = SDKConnector;\n this.serviceIndicator = indicator;\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.lineDict = {};\n this.webex = this.sdkConnector.getWebex();\n this.apiRequest = APIRequest.getInstance({webex: this.webex});\n this.callCollection = {};\n this.activeMobiusUrl = '';\n this.listenForWsEvents();\n }\n\n /**\n * @param direction -.\n * @param deviceId -.\n * @param destination -.\n */\n public createCall = (\n direction: CallDirection,\n deviceId: string,\n lineId: string,\n destination?: CallDetails\n ): ICall => {\n log.info(`${METHOD_START_MESSAGE} with ${direction}, ${deviceId} and ${lineId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.CREATE_CALL,\n });\n log.log('Creating call object', {});\n const newCall = createCall(\n this.activeMobiusUrl,\n this.webex,\n direction,\n deviceId,\n lineId,\n (correlationId: CorrelationId) => {\n delete this.callCollection[correlationId];\n const activeCalls = Object.keys(this.getActiveCalls()).length;\n\n log.info(\n `DELETE:: Deleted corelationId: ${newCall.getCorrelationId()} from CallManager, Number of call records :- ${activeCalls}`,\n {}\n );\n if (activeCalls === 0) {\n /* Notify CallingClient when all calls are cleared. */\n this.emit(CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED);\n log.log('All calls have been cleared', {\n file: CALL_MANAGER_FILE,\n method: METHODS.CREATE_CALL,\n });\n }\n },\n this.serviceIndicator,\n destination\n );\n\n this.callCollection[newCall.getCorrelationId()] = newCall;\n log.log(`New call created with correlationId: ${newCall.getCorrelationId()}`, {});\n log.info(\n `ADD:: Added corelationId: ${newCall.getCorrelationId()} to CallManager , Number of call records now:- ${\n Object.keys(this.getActiveCalls()).length\n }`,\n {}\n );\n\n return newCall;\n };\n\n /**\n * Update Active Mobius Url.\n *\n * @param url - Mobius Url.\n */\n public updateActiveMobius(url: string) {\n this.activeMobiusUrl = url;\n log.log(`Successfully updated active Mobius URL to: ${url}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.UPDATE_ACTIVE_MOBIUS,\n });\n\n /*\n * The active transport is resolved per Mobius server group during registration: a\n * group with no WSS URL falls back to HTTP even while the Mobius socket feature is\n * enabled, so the final transport is only known once registration succeeds. Re-align\n * the Mobius event source with that transport now that the device has registered.\n */\n this.listenForWsEvents();\n }\n\n /**\n * Aligns the Mobius event source with the active transport.\n *\n * Call events reach {@link dequeueWsEvents} over one of two paths:\n * - HTTP transport: a Mercury `event:mobius` listener owned by this CallManager.\n * - WebSocket transport: CallingClient forwards Mobius socket events to dequeueWsEvents().\n *\n * Because the transport can fall back from WSS to HTTP per server group during\n * registration, this is invoked both at construction and whenever the active Mobius\n * URL changes. It registers the Mercury listener for HTTP and removes it for the\n * WebSocket transport, and is idempotent so repeated calls do not duplicate listeners.\n */\n private listenForWsEvents() {\n const socketEnabled = this.apiRequest.isSocketEnabled();\n\n if (!socketEnabled && !this.isMobiusSocketListenerRegistered) {\n this.sdkConnector.registerListener('event:mobius', async (event) => {\n this.dequeueWsEvents(event);\n });\n this.isMobiusSocketListenerRegistered = true;\n log.info('Successfully registered listener for Mobius events', {\n file: CALL_MANAGER_FILE,\n method: METHODS.REGISTER_SESSIONS_LISTENER,\n });\n } else if (socketEnabled && this.isMobiusSocketListenerRegistered) {\n this.sdkConnector.unregisterListener('event:mobius');\n this.isMobiusSocketListenerRegistered = false;\n log.info('Unregistered Mercury listener for Mobius events; using WebSocket transport', {\n file: CALL_MANAGER_FILE,\n method: METHODS.REGISTER_SESSIONS_LISTENER,\n });\n }\n }\n\n /**\n * This a Queue where Mobius Events are reported by the underlying Mercury\n * Connection. We handle the events in the order they are posted here. New call\n * Objects are generated from here.\n *\n * @param event - Mobius Events.\n */\n public dequeueWsEvents(event: MobiusAsyncEvent | unknown) {\n log.info(`${METHOD_START_MESSAGE} with event ${event}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n const mobiusEvent = event as MobiusAsyncEvent;\n\n const {callId, correlationId} = mobiusEvent.data as MobiusCallData;\n\n switch (mobiusEvent.data.eventType) {\n case MobiusEventType.CALL_SETUP: {\n log.log(`Received call Setup message for call: ${callId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n /* Check whether MidCall or not */\n if (mobiusEvent.data.midCallService) {\n mobiusEvent.data.midCallService.forEach((midCallEvent: MidCallEvent) => {\n const call = this.getCall(correlationId);\n\n if (call) {\n call.handleMidCallEvent(midCallEvent);\n } else {\n log.info(\n `Dropping midcall event of type: ${midCallEvent.eventType} as it doesn't match with any existing call`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n }\n });\n\n return;\n }\n /* Check if the Call.Media was processed before Call.Setup.\n * In that case , the Call Object is already created while processing\n * Media message.\n */\n\n const newId = (Object.keys(this.callCollection) as Array<string>).find(\n (id) => this.callCollection[id].getCallId() === callId\n );\n let newCall: ICall;\n\n if (!newId) {\n /* This means it's a new call ...\n * Create an incoming call object and add to our records\n */\n const lineId = this.getLineId(mobiusEvent.data.deviceId);\n newCall = this.createCall(\n CallDirection.INBOUND,\n mobiusEvent.data.deviceId,\n lineId,\n {} as CallDetails\n );\n log.log(\n `New incoming call created with correlationId from Call Setup message: ${newCall.getCorrelationId()}`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n newCall.setCallId(callId);\n if (mobiusEvent.data.broadworksCorrelationInfo) {\n log.info(\n `Found broadworksCorrelationInfo: ${mobiusEvent.data.broadworksCorrelationInfo}`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n newCall.setBroadworksCorrelationInfo(mobiusEvent.data.broadworksCorrelationInfo);\n }\n } else {\n log.info(\n `Found the call Object with a matching callId: ${callId} from our records with correlationId: ${newId}`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n newCall = this.getCall(newId);\n }\n\n if (mobiusEvent.data.callerId) {\n log.info('Processing Caller-Id data', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n newCall.startCallerIdResolution(mobiusEvent.data.callerId);\n }\n /* Signal Line */\n\n this.emit(LINE_EVENT_KEYS.INCOMING_CALL, newCall);\n\n newCall.sendCallStateMachineEvt({type: 'E_RECV_CALL_SETUP', data: mobiusEvent.data});\n\n break;\n }\n case MobiusEventType.CALL_PROGRESS: {\n log.log(`Received call progress mobiusEvent for call: ${correlationId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n const call = this.getCall(correlationId);\n\n if (mobiusEvent.data.callerId) {\n log.info('Processing Caller-Id data', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n call.startCallerIdResolution(mobiusEvent.data.callerId);\n }\n\n call.sendCallStateMachineEvt({type: 'E_RECV_CALL_PROGRESS', data: mobiusEvent.data});\n break;\n }\n case MobiusEventType.CALL_INFO: {\n log.log(`Received call info mobiusEvent for call: ${correlationId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n const call = this.getCall(correlationId);\n\n if (call && mobiusEvent.data.callerId) {\n log.info('Processing Caller-Id data', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n call.startCallerIdResolution(mobiusEvent.data.callerId);\n }\n break;\n }\n case MobiusEventType.CALL_MEDIA: {\n log.log(`Received call media mobiusEvent for call: ${correlationId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n\n let activeCall: ICall;\n\n if (correlationId) {\n /* The Call.Media message had correlation id (Except the first message) */\n activeCall = this.getCall(correlationId);\n } else {\n /* This is possibly the first Media message for the call.\n * We should scan our record to see if we can find a call with\n * this callId.\n */\n\n const newId = (Object.keys(this.callCollection) as Array<string>).find(\n (id) => this.callCollection[id].getCallId() === callId\n );\n\n if (newId) {\n /* Call.Media arrived after Call.Setup but the correlationId was Null. */\n\n log.info(\n `Found the call Object with a matching callId: ${callId} from our records with correlationId: ${newId}`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n activeCall = this.getCall(newId);\n } else {\n /* If Call.Media arrived before Call.Setup , we create the Call Object here */\n\n const lineId = this.getLineId(mobiusEvent.data.deviceId);\n activeCall = this.createCall(\n CallDirection.INBOUND,\n mobiusEvent.data.deviceId,\n lineId,\n {} as CallDetails\n );\n log.log(\n `New incoming call created with correlationId from ROAP Message: ${activeCall.getCorrelationId()}`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n activeCall.setCallId(callId);\n }\n }\n\n if (activeCall) {\n /* Only Handle if the call is present */\n\n log.info(`SDP from mobius ${mobiusEvent.data.message?.sdp}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n log.log(\n `ROAP message from mobius with type: ${mobiusEvent.data.message?.messageType}, seq: ${mobiusEvent.data.message?.seq} , version: ${mobiusEvent.data.message?.version}`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n const mediaState = mobiusEvent.data.message?.messageType;\n\n switch (mediaState) {\n case MediaState.OFFER: {\n log.log('Received OFFER', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n activeCall.sendMediaStateMachineEvt({\n type: 'E_RECV_ROAP_OFFER',\n data: mobiusEvent.data.message,\n });\n break;\n }\n case MediaState.ANSWER: {\n log.log('Received ANSWER', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n activeCall.sendMediaStateMachineEvt({\n type: 'E_RECV_ROAP_ANSWER',\n data: mobiusEvent.data.message,\n });\n break;\n }\n case MediaState.OFFER_REQUEST: {\n log.log('Received OFFER_REQUEST', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n activeCall.sendMediaStateMachineEvt({\n type: 'E_RECV_ROAP_OFFER_REQUEST',\n data: mobiusEvent.data.message,\n });\n break;\n }\n case MediaState.OK: {\n log.log('Received OK', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n const mediaOk = {\n received: true,\n message: mobiusEvent.data.message,\n };\n\n activeCall.sendMediaStateMachineEvt({\n type: 'E_ROAP_OK',\n data: mediaOk,\n });\n break;\n }\n case MediaState.ERROR: {\n log.log('Received Error...', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n break;\n }\n default: {\n log.log(`Unknown Media mobiusEvent: ${mediaState} `, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n }\n }\n } else {\n log.info(`CorrelationId: ${correlationId} doesn't exist , discarding..`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n // TODO: Maybe add a queue for these mobiusEvents per callID and handle them once the call is setup ?\n }\n break;\n }\n case MobiusEventType.CALL_CONNECTED: {\n log.log(`Received call connect for call: ${correlationId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n const call = this.getCall(correlationId);\n\n call.sendCallStateMachineEvt({type: 'E_RECV_CALL_CONNECT', data: mobiusEvent.data});\n\n break;\n }\n case MobiusEventType.CALL_DISCONNECTED: {\n log.log(`Received call disconnect for call: ${correlationId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n const call = this.getCall(correlationId);\n\n if (call) {\n call.sendCallStateMachineEvt({type: 'E_RECV_CALL_DISCONNECT'});\n }\n break;\n }\n default: {\n log.log(`Unknown Call Event mobiusEvent: ${mobiusEvent.data.eventType}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n }\n }\n }\n\n /**\n * @param correlationId -.\n */\n public getCall = (correlationId: CorrelationId): ICall => {\n return this.callCollection[correlationId];\n };\n\n /**\n *\n */\n public getActiveCalls = (): Record<string, ICall> => {\n return this.callCollection;\n };\n\n /**\n * Adds line instance to lineDict\n */\n public updateLine(deviceId: string, line: ILine) {\n this.lineDict[deviceId] = line;\n log.log(`Successfully updated line for deviceId: ${deviceId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.UPDATE_LINE,\n });\n }\n\n /**\n * Retrieves line id\n */\n private getLineId(deviceId: string) {\n return this.lineDict[deviceId].lineId;\n }\n}\n\n/**\n * @param webex -.\n * @param indicator - Service Indicator.\n */\nexport const getCallManager = (webex: WebexSDK, indicator: ServiceIndicator): ICallManager => {\n if (!callManager) {\n callManager = new CallManager(webex, indicator);\n }\n\n return callManager;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_request","require","_constants","_constants2","_types","_impl","_SDKConnector","_interopRequireDefault","_types2","_types3","_call4","_Logger","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","callManager","CallManager","exports","_Eventing","webex","indicator","iceGatheringConfig","_this","_classCallCheck2","_defineProperty2","direction","deviceId","lineId","destination","log","info","concat","METHOD_START_MESSAGE","file","CALL_MANAGER_FILE","method","METHODS","CREATE_CALL","newCall","createCall","activeMobiusUrl","correlationId","callCollection","activeCalls","_keys","getActiveCalls","length","getCorrelationId","emit","CALLING_CLIENT_EVENT_KEYS","ALL_CALLS_CLEARED","serviceIndicator","sdkConnector","SDKConnector","getWebex","setWebex","lineDict","apiRequest","APIRequest","getInstance","listenForWsEvents","_inherits2","_createClass2","key","value","updateActiveMobius","url","UPDATE_ACTIVE_MOBIUS","_this2","socketEnabled","isSocketEnabled","isMobiusSocketListenerRegistered","registerListener","_ref","_asyncToGenerator2","_regenerator","mark","_callee","event","wrap","_context","prev","next","dequeueWsEvents","stop","_x","arguments","REGISTER_SESSIONS_LISTENER","unregisterListener","_this3","DEQUEUE_WS_EVENTS","mobiusEvent","_ref2","data","callId","eventType","MobiusEventType","CALL_SETUP","midCallService","forEach","midCallEvent","getCall","handleMidCallEvent","newId","find","id","getCallId","getLineId","CallDirection","INBOUND","setCallId","broadworksCorrelationInfo","setBroadworksCorrelationInfo","callerId","startCallerIdResolution","LINE_EVENT_KEYS","INCOMING_CALL","sendCallStateMachineEvt","type","CALL_PROGRESS","CALL_INFO","CALL_MEDIA","activeCall","_mobiusEvent$data$mes","_mobiusEvent$data$mes2","_mobiusEvent$data$mes3","_mobiusEvent$data$mes4","_mobiusEvent$data$mes5","message","sdp","messageType","seq","version","mediaState","MediaState","OFFER","sendMediaStateMachineEvt","ANSWER","OFFER_REQUEST","OK","mediaOk","received","ERROR","CALL_CONNECTED","CALL_DISCONNECTED","updateLine","line","UPDATE_LINE","setIceGatheringConfig","Eventing","getCallManager"],"sources":["callManager.ts"],"sourcesContent":["/* eslint-disable dot-notation */\n/* eslint-disable valid-jsdoc */\nimport {APIRequest} from '../utils/request';\nimport {METHOD_START_MESSAGE} from '../../common/constants';\nimport {CALL_MANAGER_FILE, METHODS} from '../constants';\nimport {CALLING_CLIENT_EVENT_KEYS, CallEventTypes, LINE_EVENT_KEYS} from '../../Events/types';\nimport {Eventing} from '../../Events/impl';\nimport SDKConnector from '../../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {CallDetails, CallDirection, CorrelationId, ServiceIndicator} from '../../common/types';\nimport {\n ICall,\n ICallManager,\n IceGatheringConfig,\n MediaState,\n MidCallEvent,\n MobiusAsyncEvent,\n MobiusCallData,\n MobiusEventType,\n} from './types';\nimport {createCall} from './call';\nimport log from '../../Logger';\nimport {ILine} from '../line/types';\n\nlet callManager: ICallManager;\n\n/**\n *\n */\nexport class CallManager extends Eventing<CallEventTypes> implements ICallManager {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private callCollection: Record<CorrelationId, ICall>;\n\n private activeMobiusUrl!: string;\n\n private serviceIndicator: ServiceIndicator;\n\n private lineDict: Record<string, ILine>;\n\n private apiRequest: APIRequest;\n\n private isMobiusSocketListenerRegistered = false;\n\n private iceGatheringConfig?: IceGatheringConfig;\n\n /**\n * @param webex -.\n * @param indicator - Service Indicator.\n * @param iceGatheringConfig - Optional ICE candidate gathering configuration.\n */\n constructor(\n webex: WebexSDK,\n indicator: ServiceIndicator,\n iceGatheringConfig?: IceGatheringConfig\n ) {\n super();\n this.sdkConnector = SDKConnector;\n this.serviceIndicator = indicator;\n this.iceGatheringConfig = iceGatheringConfig;\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.lineDict = {};\n this.webex = this.sdkConnector.getWebex();\n this.apiRequest = APIRequest.getInstance({webex: this.webex});\n this.callCollection = {};\n this.activeMobiusUrl = '';\n this.listenForWsEvents();\n }\n\n /**\n * @param direction -.\n * @param deviceId -.\n * @param destination -.\n */\n public createCall = (\n direction: CallDirection,\n deviceId: string,\n lineId: string,\n destination?: CallDetails\n ): ICall => {\n log.info(`${METHOD_START_MESSAGE} with ${direction}, ${deviceId} and ${lineId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.CREATE_CALL,\n });\n log.log('Creating call object', {});\n const newCall = createCall(\n this.activeMobiusUrl,\n this.webex,\n direction,\n deviceId,\n lineId,\n (correlationId: CorrelationId) => {\n delete this.callCollection[correlationId];\n const activeCalls = Object.keys(this.getActiveCalls()).length;\n\n log.info(\n `DELETE:: Deleted corelationId: ${newCall.getCorrelationId()} from CallManager, Number of call records :- ${activeCalls}`,\n {}\n );\n if (activeCalls === 0) {\n /* Notify CallingClient when all calls are cleared. */\n this.emit(CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED);\n log.log('All calls have been cleared', {\n file: CALL_MANAGER_FILE,\n method: METHODS.CREATE_CALL,\n });\n }\n },\n this.serviceIndicator,\n destination,\n this.iceGatheringConfig\n );\n\n this.callCollection[newCall.getCorrelationId()] = newCall;\n log.log(`New call created with correlationId: ${newCall.getCorrelationId()}`, {});\n log.info(\n `ADD:: Added corelationId: ${newCall.getCorrelationId()} to CallManager , Number of call records now:- ${\n Object.keys(this.getActiveCalls()).length\n }`,\n {}\n );\n\n return newCall;\n };\n\n /**\n * Update Active Mobius Url.\n *\n * @param url - Mobius Url.\n */\n public updateActiveMobius(url: string) {\n this.activeMobiusUrl = url;\n log.log(`Successfully updated active Mobius URL to: ${url}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.UPDATE_ACTIVE_MOBIUS,\n });\n\n /*\n * The active transport is resolved per Mobius server group during registration: a\n * group with no WSS URL falls back to HTTP even while the Mobius socket feature is\n * enabled, so the final transport is only known once registration succeeds. Re-align\n * the Mobius event source with that transport now that the device has registered.\n */\n this.listenForWsEvents();\n }\n\n /**\n * Aligns the Mobius event source with the active transport.\n *\n * Call events reach {@link dequeueWsEvents} over one of two paths:\n * - HTTP transport: a Mercury `event:mobius` listener owned by this CallManager.\n * - WebSocket transport: CallingClient forwards Mobius socket events to dequeueWsEvents().\n *\n * Because the transport can fall back from WSS to HTTP per server group during\n * registration, this is invoked both at construction and whenever the active Mobius\n * URL changes. It registers the Mercury listener for HTTP and removes it for the\n * WebSocket transport, and is idempotent so repeated calls do not duplicate listeners.\n */\n private listenForWsEvents() {\n const socketEnabled = this.apiRequest.isSocketEnabled();\n\n if (!socketEnabled && !this.isMobiusSocketListenerRegistered) {\n this.sdkConnector.registerListener('event:mobius', async (event) => {\n this.dequeueWsEvents(event);\n });\n this.isMobiusSocketListenerRegistered = true;\n log.info('Successfully registered listener for Mobius events', {\n file: CALL_MANAGER_FILE,\n method: METHODS.REGISTER_SESSIONS_LISTENER,\n });\n } else if (socketEnabled && this.isMobiusSocketListenerRegistered) {\n this.sdkConnector.unregisterListener('event:mobius');\n this.isMobiusSocketListenerRegistered = false;\n log.info('Unregistered Mercury listener for Mobius events; using WebSocket transport', {\n file: CALL_MANAGER_FILE,\n method: METHODS.REGISTER_SESSIONS_LISTENER,\n });\n }\n }\n\n /**\n * This a Queue where Mobius Events are reported by the underlying Mercury\n * Connection. We handle the events in the order they are posted here. New call\n * Objects are generated from here.\n *\n * @param event - Mobius Events.\n */\n public dequeueWsEvents(event: MobiusAsyncEvent | unknown) {\n log.info(`${METHOD_START_MESSAGE} with event ${event}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n const mobiusEvent = event as MobiusAsyncEvent;\n\n const {callId, correlationId} = mobiusEvent.data as MobiusCallData;\n\n switch (mobiusEvent.data.eventType) {\n case MobiusEventType.CALL_SETUP: {\n log.log(`Received call Setup message for call: ${callId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n /* Check whether MidCall or not */\n if (mobiusEvent.data.midCallService) {\n mobiusEvent.data.midCallService.forEach((midCallEvent: MidCallEvent) => {\n const call = this.getCall(correlationId);\n\n if (call) {\n call.handleMidCallEvent(midCallEvent);\n } else {\n log.info(\n `Dropping midcall event of type: ${midCallEvent.eventType} as it doesn't match with any existing call`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n }\n });\n\n return;\n }\n /* Check if the Call.Media was processed before Call.Setup.\n * In that case , the Call Object is already created while processing\n * Media message.\n */\n\n const newId = (Object.keys(this.callCollection) as Array<string>).find(\n (id) => this.callCollection[id].getCallId() === callId\n );\n let newCall: ICall;\n\n if (!newId) {\n /* This means it's a new call ...\n * Create an incoming call object and add to our records\n */\n const lineId = this.getLineId(mobiusEvent.data.deviceId);\n newCall = this.createCall(\n CallDirection.INBOUND,\n mobiusEvent.data.deviceId,\n lineId,\n {} as CallDetails\n );\n log.log(\n `New incoming call created with correlationId from Call Setup message: ${newCall.getCorrelationId()}`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n newCall.setCallId(callId);\n if (mobiusEvent.data.broadworksCorrelationInfo) {\n log.info(\n `Found broadworksCorrelationInfo: ${mobiusEvent.data.broadworksCorrelationInfo}`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n newCall.setBroadworksCorrelationInfo(mobiusEvent.data.broadworksCorrelationInfo);\n }\n } else {\n log.info(\n `Found the call Object with a matching callId: ${callId} from our records with correlationId: ${newId}`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n newCall = this.getCall(newId);\n }\n\n if (mobiusEvent.data.callerId) {\n log.info('Processing Caller-Id data', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n newCall.startCallerIdResolution(mobiusEvent.data.callerId);\n }\n /* Signal Line */\n\n this.emit(LINE_EVENT_KEYS.INCOMING_CALL, newCall);\n\n newCall.sendCallStateMachineEvt({type: 'E_RECV_CALL_SETUP', data: mobiusEvent.data});\n\n break;\n }\n case MobiusEventType.CALL_PROGRESS: {\n log.log(`Received call progress mobiusEvent for call: ${correlationId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n const call = this.getCall(correlationId);\n\n if (mobiusEvent.data.callerId) {\n log.info('Processing Caller-Id data', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n call.startCallerIdResolution(mobiusEvent.data.callerId);\n }\n\n call.sendCallStateMachineEvt({type: 'E_RECV_CALL_PROGRESS', data: mobiusEvent.data});\n break;\n }\n case MobiusEventType.CALL_INFO: {\n log.log(`Received call info mobiusEvent for call: ${correlationId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n const call = this.getCall(correlationId);\n\n if (call && mobiusEvent.data.callerId) {\n log.info('Processing Caller-Id data', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n call.startCallerIdResolution(mobiusEvent.data.callerId);\n }\n break;\n }\n case MobiusEventType.CALL_MEDIA: {\n log.log(`Received call media mobiusEvent for call: ${correlationId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n\n let activeCall: ICall;\n\n if (correlationId) {\n /* The Call.Media message had correlation id (Except the first message) */\n activeCall = this.getCall(correlationId);\n } else {\n /* This is possibly the first Media message for the call.\n * We should scan our record to see if we can find a call with\n * this callId.\n */\n\n const newId = (Object.keys(this.callCollection) as Array<string>).find(\n (id) => this.callCollection[id].getCallId() === callId\n );\n\n if (newId) {\n /* Call.Media arrived after Call.Setup but the correlationId was Null. */\n\n log.info(\n `Found the call Object with a matching callId: ${callId} from our records with correlationId: ${newId}`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n activeCall = this.getCall(newId);\n } else {\n /* If Call.Media arrived before Call.Setup , we create the Call Object here */\n\n const lineId = this.getLineId(mobiusEvent.data.deviceId);\n activeCall = this.createCall(\n CallDirection.INBOUND,\n mobiusEvent.data.deviceId,\n lineId,\n {} as CallDetails\n );\n log.log(\n `New incoming call created with correlationId from ROAP Message: ${activeCall.getCorrelationId()}`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n activeCall.setCallId(callId);\n }\n }\n\n if (activeCall) {\n /* Only Handle if the call is present */\n\n log.info(`SDP from mobius ${mobiusEvent.data.message?.sdp}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n log.log(\n `ROAP message from mobius with type: ${mobiusEvent.data.message?.messageType}, seq: ${mobiusEvent.data.message?.seq} , version: ${mobiusEvent.data.message?.version}`,\n {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n }\n );\n const mediaState = mobiusEvent.data.message?.messageType;\n\n switch (mediaState) {\n case MediaState.OFFER: {\n log.log('Received OFFER', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n activeCall.sendMediaStateMachineEvt({\n type: 'E_RECV_ROAP_OFFER',\n data: mobiusEvent.data.message,\n });\n break;\n }\n case MediaState.ANSWER: {\n log.log('Received ANSWER', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n activeCall.sendMediaStateMachineEvt({\n type: 'E_RECV_ROAP_ANSWER',\n data: mobiusEvent.data.message,\n });\n break;\n }\n case MediaState.OFFER_REQUEST: {\n log.log('Received OFFER_REQUEST', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n activeCall.sendMediaStateMachineEvt({\n type: 'E_RECV_ROAP_OFFER_REQUEST',\n data: mobiusEvent.data.message,\n });\n break;\n }\n case MediaState.OK: {\n log.log('Received OK', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n const mediaOk = {\n received: true,\n message: mobiusEvent.data.message,\n };\n\n activeCall.sendMediaStateMachineEvt({\n type: 'E_ROAP_OK',\n data: mediaOk,\n });\n break;\n }\n case MediaState.ERROR: {\n log.log('Received Error...', {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n break;\n }\n default: {\n log.log(`Unknown Media mobiusEvent: ${mediaState} `, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n }\n }\n } else {\n log.info(`CorrelationId: ${correlationId} doesn't exist , discarding..`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n // TODO: Maybe add a queue for these mobiusEvents per callID and handle them once the call is setup ?\n }\n break;\n }\n case MobiusEventType.CALL_CONNECTED: {\n log.log(`Received call connect for call: ${correlationId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n const call = this.getCall(correlationId);\n\n call.sendCallStateMachineEvt({type: 'E_RECV_CALL_CONNECT', data: mobiusEvent.data});\n\n break;\n }\n case MobiusEventType.CALL_DISCONNECTED: {\n log.log(`Received call disconnect for call: ${correlationId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n const call = this.getCall(correlationId);\n\n if (call) {\n call.sendCallStateMachineEvt({type: 'E_RECV_CALL_DISCONNECT'});\n }\n break;\n }\n default: {\n log.log(`Unknown Call Event mobiusEvent: ${mobiusEvent.data.eventType}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.DEQUEUE_WS_EVENTS,\n });\n }\n }\n }\n\n /**\n * @param correlationId -.\n */\n public getCall = (correlationId: CorrelationId): ICall => {\n return this.callCollection[correlationId];\n };\n\n /**\n *\n */\n public getActiveCalls = (): Record<string, ICall> => {\n return this.callCollection;\n };\n\n /**\n * Adds line instance to lineDict\n */\n public updateLine(deviceId: string, line: ILine) {\n this.lineDict[deviceId] = line;\n log.log(`Successfully updated line for deviceId: ${deviceId}`, {\n file: CALL_MANAGER_FILE,\n method: METHODS.UPDATE_LINE,\n });\n }\n\n /**\n * Retrieves line id\n */\n private getLineId(deviceId: string) {\n return this.lineDict[deviceId].lineId;\n }\n\n /**\n * Updates the ICE candidate gathering configuration applied to newly created calls.\n *\n * The {@link CallManager} is a module-level singleton that may be first constructed by a\n * collaborator (e.g. line or registration) that does not have the SDK config. This lets the\n * `CallingClient` seed the config on the shared instance regardless of construction order.\n *\n * @param iceGatheringConfig - The ICE candidate gathering configuration.\n */\n public setIceGatheringConfig(iceGatheringConfig?: IceGatheringConfig) {\n this.iceGatheringConfig = iceGatheringConfig;\n }\n}\n\n/**\n * @param webex -.\n * @param indicator - Service Indicator.\n * @param iceGatheringConfig - Optional ICE candidate gathering configuration.\n */\nexport const getCallManager = (\n webex: WebexSDK,\n indicator: ServiceIndicator,\n iceGatheringConfig?: IceGatheringConfig\n): ICallManager => {\n if (!callManager) {\n callManager = new CallManager(webex, indicator, iceGatheringConfig);\n } else if (iceGatheringConfig) {\n (callManager as CallManager).setIceGatheringConfig(iceGatheringConfig);\n }\n\n return callManager;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -168,6 +168,23 @@ describe('Call Manager Tests with respect to calls', function () {
168
168
  var callManagerNew = (0, _callManager.getCallManager)(webex, defaultServiceIndicator);
169
169
  expect(callManager).toMatchObject(callManagerNew);
170
170
  });
171
+ it('threads iceGathering config from getCallManager into newly created calls', function () {
172
+ var iceGatheringConfig = {
173
+ reduceTimeoutForIceLite: true,
174
+ iceLiteTimeout: 750
175
+ };
176
+
177
+ /* getCallManager returns the existing singleton but refreshes the ice gathering config on it. */
178
+ var configuredManager = (0, _callManager.getCallManager)(webex, defaultServiceIndicator, iceGatheringConfig);
179
+ expect(configuredManager).toBe(callManager);
180
+ expect(configuredManager['iceGatheringConfig']).toEqual(iceGatheringConfig);
181
+ var call = configuredManager.createCall(_types.CallDirection.OUTBOUND, deviceId, mockLineId, dest);
182
+ expect(call['iceGatheringConfig']).toEqual(iceGatheringConfig);
183
+ call.end();
184
+
185
+ /* Restore the singleton config so it does not leak into subsequent tests. */
186
+ configuredManager['setIceGatheringConfig'](undefined);
187
+ });
171
188
  it('create a call using call manager', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
172
189
  var logSpy, call;
173
190
  return _regenerator.default.wrap(function (_context) {
@@ -1 +1 @@
1
- {"version":3,"names":["_Utils","_interopRequireWildcard","require","utils","_types","_testUtil","_callManager","_types2","_call","_Logger","_interopRequireDefault","_types3","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","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","registrationDownEvent","type","eventId","deviceInfo","userId","device","uri","status","dest","CallType","URI","address","successResponseBody","statusCode","body","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","getActiveCalls","length","toBe","afterEach","calls","_values","forEach","end","it","toBeTruthy","callManagerNew","toMatchObject","_asyncToGenerator2","_regenerator","mark","_callee","logSpy","wrap","_context","prev","next","updateLine","request","mockReturnValueOnce","log","createCall","CallDirection","OUTBOUND","sent","setCallId","getCallId","toStrictEqual","toHaveBeenCalledWith","stop","_callee2","_context2","on","callObj","getBroadworksCorrelationInfo","waitForMsecs","ALERTING","_callee3","_context3","_callee4","_context4","getCorrelationId","toHaveBeenCalled","_callee5","_context5","not","_callee6","_mediaEvent$data$mess","_mediaEvent$data$mess2","_mediaEvent$data$mess3","errorSpy","uploadLogsSpy","_context6","mockRejectedValue","concat","_stringify","file","method","objectContaining","_callee8","_context8","_ref8","_callee7","mediaSpy","mediaClose","track","_context7","state","value","answer","localAudioTrack","CONNECTED","_x","apply","arguments","dummyCallId","clearAllMocks","funcSpy","callSpy","_callee9","eventData","_context9","_callee0","_context0","_callee1","_context1","_callee10","mediaOK","_context10","received","_callee11","_mediaEvent$data$mess4","_mediaEvent$data$mess5","_mediaEvent$data$mess6","_mediaEvent$data$mess7","infoSpy","_context11","_callee12","_mediaEvent$data$mess8","_mediaEvent$data$mess9","_mediaEvent$data$mess0","_mediaEvent$data$mess1","_context12","_callee13","_context13","_callee14","connectEvent","_context14","JSON","parse","_callee15","answerEvent","_context15","_callee16","_context16","_callee17","_context17","mercuryOnSpy","mercuryOffSpy","isSocketEnabledSpy","httpUrl","wssUrl","getMobiusListenerWrapper","_mercuryOnSpy$mock$ca","mock","find","internal","mercury","off","mockClear","mockRestore","updateActiveMobius","any","Function","_callee18","dequeueSpy","mobiusListenerWrapper","_context18","mockImplementation","undefined"],"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';\nimport * as utils from '../../common/Utils';\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};\n\nconst registrationDownEvent = {\n type: 'async_event',\n trackingId: 'SRV_bb000000-0000-0000-0000-000000000007',\n eventId: 'a7b8c9d0-e1f2-3456-abcd-567890123456',\n data: {\n eventType: 'registration.down',\n deviceInfo: {\n userId: '44533573-f6aa-429d-b4fe-58aa04a2b636',\n device: {\n deviceId: '334f3d50-1d26-4712-93f1-4972390cc565',\n uri: 'https://mobius-a.wbx2.com/api/v1/calling/web/devices/334f3d50-1d26-4712-93f1-4972390cc565',\n status: 'inactive',\n },\n },\n },\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 const logSpy = jest.spyOn(log, 'log');\n\n expect(callManager).toBeTruthy();\n const call = await callManager.createCall(CallDirection.OUTBOUND, deviceId, mockLineId, dest);\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 expect(logSpy).toHaveBeenCalledWith('Creating call object', {});\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(CallDirection.OUTBOUND, deviceId, mockLineId, dest);\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 errorSpy = jest.spyOn(log, 'error');\n const logSpy = jest.spyOn(log, 'log');\n const uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\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(errorSpy).toHaveBeenCalledWith(\n `Failed to signal call progression: ${JSON.stringify(dummyResponse)}`,\n {\n file: 'call',\n method: 'handleOutgoingCallAlerting',\n }\n );\n expect(logSpy).toHaveBeenCalledWith(\n `Received call media mobiusEvent for call: ${mediaEvent.data.correlationId}`,\n expect.objectContaining({\n file: 'callManager',\n method: 'dequeueWsEvents',\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n `ROAP message from mobius with type: ${mediaEvent.data.message?.messageType}, seq: ${mediaEvent.data.message?.seq} , version: ${mediaEvent.data.message?.version}`,\n expect.objectContaining({\n file: 'callManager',\n method: 'dequeueWsEvents',\n })\n );\n expect(uploadLogsSpy).toHaveBeenCalled();\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 jest.clearAllMocks();\n\n callManager = getCallManager(webex, defaultServiceIndicator);\n callManager.removeAllListeners(LINE_EVENT_KEYS.INCOMING_CALL);\n call = callManager.createCall(CallDirection.OUTBOUND, deviceId, mockLineId, dest);\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 jest.clearAllMocks();\n await callManager['dequeueWsEvents'](mediaEvent);\n const eventData = {data: mediaEvent.data.message, type: 'E_RECV_ROAP_OFFER'};\n expect(funcSpy).toHaveBeenCalledWith(eventData);\n });\n\n it('When Answer is received', async () => {\n mediaEvent.data.message.messageType = 'ANSWER';\n jest.clearAllMocks();\n\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 jest.clearAllMocks();\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 jest.clearAllMocks();\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 jest.clearAllMocks();\n const infoSpy = jest.spyOn(log, 'info');\n await callManager['dequeueWsEvents'](mediaEvent);\n\n expect(logSpy).toHaveBeenCalledWith(\n `Received call media mobiusEvent for call: ${mediaEvent.data.correlationId}`,\n {\n file: 'callManager',\n method: 'dequeueWsEvents',\n }\n );\n expect(logSpy).toHaveBeenCalledWith(\n `ROAP message from mobius with type: ${mediaEvent.data.message?.messageType}, seq: ${mediaEvent.data.message?.seq} , version: ${mediaEvent.data.message?.version}`,\n {\n file: 'callManager',\n method: 'dequeueWsEvents',\n }\n );\n expect(logSpy).toHaveBeenCalledWith('Received Error...', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n expect(infoSpy).toHaveBeenCalledWith(`SDP from mobius ${mediaEvent.data.message?.sdp}`, {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n });\n\n it('When Unknown event is Received', async () => {\n mediaEvent.data.message.messageType = 'UNKNOWN';\n jest.clearAllMocks();\n const infoSpy = jest.spyOn(log, 'info');\n await callManager['dequeueWsEvents'](mediaEvent);\n\n expect(logSpy).toHaveBeenCalledWith(\n `Received call media mobiusEvent for call: ${mediaEvent.data.correlationId}`,\n {\n file: 'callManager',\n method: 'dequeueWsEvents',\n }\n );\n expect(logSpy).toHaveBeenCalledWith(\n `ROAP message from mobius with type: ${mediaEvent.data.message?.messageType}, seq: ${mediaEvent.data.message?.seq} , version: ${mediaEvent.data.message?.version}`,\n {\n file: 'callManager',\n method: 'dequeueWsEvents',\n }\n );\n expect(logSpy).toHaveBeenCalledWith('Unknown Media mobiusEvent: UNKNOWN ', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n expect(infoSpy).toHaveBeenCalledWith(`SDP from mobius ${mediaEvent.data.message?.sdp}`, {\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 jest.clearAllMocks();\n await callManager['dequeueWsEvents'](setupEvent);\n\n expect(logSpy).toHaveBeenCalledWith('Unknown Call Event mobiusEvent: mobius.callunknown', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n });\n\n it('Handles registration down event without routing to call state machine', async () => {\n jest.clearAllMocks();\n\n await callManager['dequeueWsEvents'](registrationDownEvent);\n\n expect(callSpy).not.toHaveBeenCalled();\n expect(logSpy).toHaveBeenCalledWith('Unknown Call Event mobiusEvent: registration.down', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n });\n});\n\ndescribe('Mobius event transport alignment', () => {\n let callManager: ICallManager;\n let mercuryOnSpy: jest.Mock;\n let mercuryOffSpy: jest.Mock;\n let isSocketEnabledSpy: jest.SpyInstance;\n\n const httpUrl = 'https://mobius.example.com/api/v1/calling/web/';\n const wssUrl = 'wss://mobius.example.com/api/v1/calling/web/';\n\n // SDKConnector.registerListener/unregisterListener delegate to mercury.on/off, so the\n // Mercury listener lifecycle is observed through those mocks on the shared webex instance.\n const getMobiusListenerWrapper = () =>\n mercuryOnSpy.mock.calls.find((call) => call[0] === 'event:mobius')?.[1];\n\n beforeEach(() => {\n callManager = getCallManager(webex, defaultServiceIndicator);\n mercuryOnSpy = webex.internal.mercury.on as jest.Mock;\n mercuryOffSpy = webex.internal.mercury.off as jest.Mock;\n mercuryOnSpy.mockClear();\n mercuryOffSpy.mockClear();\n isSocketEnabledSpy = jest.spyOn(callManager['apiRequest'], 'isSocketEnabled');\n });\n\n afterEach(() => {\n isSocketEnabledSpy.mockRestore();\n });\n\n it('updateActiveMobius stores the active Mobius URL', () => {\n isSocketEnabledSpy.mockReturnValue(false);\n\n callManager.updateActiveMobius(httpUrl);\n\n expect(callManager['activeMobiusUrl']).toBe(httpUrl);\n });\n\n it('registers the Mercury listener when the transport falls back to HTTP', () => {\n callManager['isMobiusSocketListenerRegistered'] = false;\n isSocketEnabledSpy.mockReturnValue(false);\n\n callManager.updateActiveMobius(httpUrl);\n\n expect(mercuryOnSpy).toHaveBeenCalledWith('event:mobius', expect.any(Function));\n expect(callManager['isMobiusSocketListenerRegistered']).toBe(true);\n expect(mercuryOffSpy).not.toHaveBeenCalled();\n });\n\n it('removes the Mercury listener when the transport switches to WebSocket', () => {\n callManager['isMobiusSocketListenerRegistered'] = true;\n isSocketEnabledSpy.mockReturnValue(true);\n\n callManager.updateActiveMobius(wssUrl);\n\n expect(mercuryOffSpy).toHaveBeenCalledWith('event:mobius');\n expect(callManager['isMobiusSocketListenerRegistered']).toBe(false);\n expect(mercuryOnSpy).not.toHaveBeenCalled();\n });\n\n it('does not re-register the Mercury listener when already registered on HTTP', () => {\n callManager['isMobiusSocketListenerRegistered'] = true;\n isSocketEnabledSpy.mockReturnValue(false);\n\n callManager.updateActiveMobius(httpUrl);\n\n expect(mercuryOnSpy).not.toHaveBeenCalled();\n expect(mercuryOffSpy).not.toHaveBeenCalled();\n expect(callManager['isMobiusSocketListenerRegistered']).toBe(true);\n });\n\n it('does nothing when socket is enabled and no Mercury listener is registered', () => {\n callManager['isMobiusSocketListenerRegistered'] = false;\n isSocketEnabledSpy.mockReturnValue(true);\n\n callManager.updateActiveMobius(wssUrl);\n\n expect(mercuryOnSpy).not.toHaveBeenCalled();\n expect(mercuryOffSpy).not.toHaveBeenCalled();\n expect(callManager['isMobiusSocketListenerRegistered']).toBe(false);\n });\n\n it('routes Mobius events to dequeueWsEvents through the registered Mercury listener', async () => {\n callManager['isMobiusSocketListenerRegistered'] = false;\n isSocketEnabledSpy.mockReturnValue(false);\n const dequeueSpy = jest\n .spyOn(callManager as any, 'dequeueWsEvents')\n .mockImplementation(() => undefined);\n\n callManager.updateActiveMobius(httpUrl);\n const mobiusListenerWrapper = getMobiusListenerWrapper();\n await mobiusListenerWrapper(setupEvent);\n\n expect(dequeueSpy).toHaveBeenCalledWith(setupEvent);\n\n dequeueSpy.mockRestore();\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_Utils","_interopRequireWildcard","require","utils","_types","_testUtil","_callManager","_types2","_call","_Logger","_interopRequireDefault","_types3","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","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","registrationDownEvent","type","eventId","deviceInfo","userId","device","uri","status","dest","CallType","URI","address","successResponseBody","statusCode","body","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","getActiveCalls","length","toBe","afterEach","calls","_values","forEach","end","it","toBeTruthy","callManagerNew","toMatchObject","iceGatheringConfig","reduceTimeoutForIceLite","iceLiteTimeout","configuredManager","toEqual","createCall","CallDirection","OUTBOUND","undefined","_asyncToGenerator2","_regenerator","mark","_callee","logSpy","wrap","_context","prev","next","updateLine","request","mockReturnValueOnce","log","sent","setCallId","getCallId","toStrictEqual","toHaveBeenCalledWith","stop","_callee2","_context2","on","callObj","getBroadworksCorrelationInfo","waitForMsecs","ALERTING","_callee3","_context3","_callee4","_context4","getCorrelationId","toHaveBeenCalled","_callee5","_context5","not","_callee6","_mediaEvent$data$mess","_mediaEvent$data$mess2","_mediaEvent$data$mess3","errorSpy","uploadLogsSpy","_context6","mockRejectedValue","concat","_stringify","file","method","objectContaining","_callee8","_context8","_ref8","_callee7","mediaSpy","mediaClose","track","_context7","state","value","answer","localAudioTrack","CONNECTED","_x","apply","arguments","dummyCallId","clearAllMocks","funcSpy","callSpy","_callee9","eventData","_context9","_callee0","_context0","_callee1","_context1","_callee10","mediaOK","_context10","received","_callee11","_mediaEvent$data$mess4","_mediaEvent$data$mess5","_mediaEvent$data$mess6","_mediaEvent$data$mess7","infoSpy","_context11","_callee12","_mediaEvent$data$mess8","_mediaEvent$data$mess9","_mediaEvent$data$mess0","_mediaEvent$data$mess1","_context12","_callee13","_context13","_callee14","connectEvent","_context14","JSON","parse","_callee15","answerEvent","_context15","_callee16","_context16","_callee17","_context17","mercuryOnSpy","mercuryOffSpy","isSocketEnabledSpy","httpUrl","wssUrl","getMobiusListenerWrapper","_mercuryOnSpy$mock$ca","mock","find","internal","mercury","off","mockClear","mockRestore","updateActiveMobius","any","Function","_callee18","dequeueSpy","mobiusListenerWrapper","_context18","mockImplementation"],"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';\nimport * as utils from '../../common/Utils';\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};\n\nconst registrationDownEvent = {\n type: 'async_event',\n trackingId: 'SRV_bb000000-0000-0000-0000-000000000007',\n eventId: 'a7b8c9d0-e1f2-3456-abcd-567890123456',\n data: {\n eventType: 'registration.down',\n deviceInfo: {\n userId: '44533573-f6aa-429d-b4fe-58aa04a2b636',\n device: {\n deviceId: '334f3d50-1d26-4712-93f1-4972390cc565',\n uri: 'https://mobius-a.wbx2.com/api/v1/calling/web/devices/334f3d50-1d26-4712-93f1-4972390cc565',\n status: 'inactive',\n },\n },\n },\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('threads iceGathering config from getCallManager into newly created calls', () => {\n const iceGatheringConfig = {reduceTimeoutForIceLite: true, iceLiteTimeout: 750};\n\n /* getCallManager returns the existing singleton but refreshes the ice gathering config on it. */\n const configuredManager = getCallManager(webex, defaultServiceIndicator, iceGatheringConfig);\n\n expect(configuredManager).toBe(callManager);\n expect(configuredManager['iceGatheringConfig']).toEqual(iceGatheringConfig);\n\n const call = configuredManager.createCall(CallDirection.OUTBOUND, deviceId, mockLineId, dest);\n\n expect(call['iceGatheringConfig']).toEqual(iceGatheringConfig);\n\n call.end();\n\n /* Restore the singleton config so it does not leak into subsequent tests. */\n configuredManager['setIceGatheringConfig'](undefined);\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 const logSpy = jest.spyOn(log, 'log');\n\n expect(callManager).toBeTruthy();\n const call = await callManager.createCall(CallDirection.OUTBOUND, deviceId, mockLineId, dest);\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 expect(logSpy).toHaveBeenCalledWith('Creating call object', {});\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(CallDirection.OUTBOUND, deviceId, mockLineId, dest);\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 errorSpy = jest.spyOn(log, 'error');\n const logSpy = jest.spyOn(log, 'log');\n const uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\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(errorSpy).toHaveBeenCalledWith(\n `Failed to signal call progression: ${JSON.stringify(dummyResponse)}`,\n {\n file: 'call',\n method: 'handleOutgoingCallAlerting',\n }\n );\n expect(logSpy).toHaveBeenCalledWith(\n `Received call media mobiusEvent for call: ${mediaEvent.data.correlationId}`,\n expect.objectContaining({\n file: 'callManager',\n method: 'dequeueWsEvents',\n })\n );\n expect(logSpy).toHaveBeenCalledWith(\n `ROAP message from mobius with type: ${mediaEvent.data.message?.messageType}, seq: ${mediaEvent.data.message?.seq} , version: ${mediaEvent.data.message?.version}`,\n expect.objectContaining({\n file: 'callManager',\n method: 'dequeueWsEvents',\n })\n );\n expect(uploadLogsSpy).toHaveBeenCalled();\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 jest.clearAllMocks();\n\n callManager = getCallManager(webex, defaultServiceIndicator);\n callManager.removeAllListeners(LINE_EVENT_KEYS.INCOMING_CALL);\n call = callManager.createCall(CallDirection.OUTBOUND, deviceId, mockLineId, dest);\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 jest.clearAllMocks();\n await callManager['dequeueWsEvents'](mediaEvent);\n const eventData = {data: mediaEvent.data.message, type: 'E_RECV_ROAP_OFFER'};\n expect(funcSpy).toHaveBeenCalledWith(eventData);\n });\n\n it('When Answer is received', async () => {\n mediaEvent.data.message.messageType = 'ANSWER';\n jest.clearAllMocks();\n\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 jest.clearAllMocks();\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 jest.clearAllMocks();\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 jest.clearAllMocks();\n const infoSpy = jest.spyOn(log, 'info');\n await callManager['dequeueWsEvents'](mediaEvent);\n\n expect(logSpy).toHaveBeenCalledWith(\n `Received call media mobiusEvent for call: ${mediaEvent.data.correlationId}`,\n {\n file: 'callManager',\n method: 'dequeueWsEvents',\n }\n );\n expect(logSpy).toHaveBeenCalledWith(\n `ROAP message from mobius with type: ${mediaEvent.data.message?.messageType}, seq: ${mediaEvent.data.message?.seq} , version: ${mediaEvent.data.message?.version}`,\n {\n file: 'callManager',\n method: 'dequeueWsEvents',\n }\n );\n expect(logSpy).toHaveBeenCalledWith('Received Error...', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n expect(infoSpy).toHaveBeenCalledWith(`SDP from mobius ${mediaEvent.data.message?.sdp}`, {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n });\n\n it('When Unknown event is Received', async () => {\n mediaEvent.data.message.messageType = 'UNKNOWN';\n jest.clearAllMocks();\n const infoSpy = jest.spyOn(log, 'info');\n await callManager['dequeueWsEvents'](mediaEvent);\n\n expect(logSpy).toHaveBeenCalledWith(\n `Received call media mobiusEvent for call: ${mediaEvent.data.correlationId}`,\n {\n file: 'callManager',\n method: 'dequeueWsEvents',\n }\n );\n expect(logSpy).toHaveBeenCalledWith(\n `ROAP message from mobius with type: ${mediaEvent.data.message?.messageType}, seq: ${mediaEvent.data.message?.seq} , version: ${mediaEvent.data.message?.version}`,\n {\n file: 'callManager',\n method: 'dequeueWsEvents',\n }\n );\n expect(logSpy).toHaveBeenCalledWith('Unknown Media mobiusEvent: UNKNOWN ', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n expect(infoSpy).toHaveBeenCalledWith(`SDP from mobius ${mediaEvent.data.message?.sdp}`, {\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 jest.clearAllMocks();\n await callManager['dequeueWsEvents'](setupEvent);\n\n expect(logSpy).toHaveBeenCalledWith('Unknown Call Event mobiusEvent: mobius.callunknown', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n });\n\n it('Handles registration down event without routing to call state machine', async () => {\n jest.clearAllMocks();\n\n await callManager['dequeueWsEvents'](registrationDownEvent);\n\n expect(callSpy).not.toHaveBeenCalled();\n expect(logSpy).toHaveBeenCalledWith('Unknown Call Event mobiusEvent: registration.down', {\n file: 'callManager',\n method: 'dequeueWsEvents',\n });\n });\n});\n\ndescribe('Mobius event transport alignment', () => {\n let callManager: ICallManager;\n let mercuryOnSpy: jest.Mock;\n let mercuryOffSpy: jest.Mock;\n let isSocketEnabledSpy: jest.SpyInstance;\n\n const httpUrl = 'https://mobius.example.com/api/v1/calling/web/';\n const wssUrl = 'wss://mobius.example.com/api/v1/calling/web/';\n\n // SDKConnector.registerListener/unregisterListener delegate to mercury.on/off, so the\n // Mercury listener lifecycle is observed through those mocks on the shared webex instance.\n const getMobiusListenerWrapper = () =>\n mercuryOnSpy.mock.calls.find((call) => call[0] === 'event:mobius')?.[1];\n\n beforeEach(() => {\n callManager = getCallManager(webex, defaultServiceIndicator);\n mercuryOnSpy = webex.internal.mercury.on as jest.Mock;\n mercuryOffSpy = webex.internal.mercury.off as jest.Mock;\n mercuryOnSpy.mockClear();\n mercuryOffSpy.mockClear();\n isSocketEnabledSpy = jest.spyOn(callManager['apiRequest'], 'isSocketEnabled');\n });\n\n afterEach(() => {\n isSocketEnabledSpy.mockRestore();\n });\n\n it('updateActiveMobius stores the active Mobius URL', () => {\n isSocketEnabledSpy.mockReturnValue(false);\n\n callManager.updateActiveMobius(httpUrl);\n\n expect(callManager['activeMobiusUrl']).toBe(httpUrl);\n });\n\n it('registers the Mercury listener when the transport falls back to HTTP', () => {\n callManager['isMobiusSocketListenerRegistered'] = false;\n isSocketEnabledSpy.mockReturnValue(false);\n\n callManager.updateActiveMobius(httpUrl);\n\n expect(mercuryOnSpy).toHaveBeenCalledWith('event:mobius', expect.any(Function));\n expect(callManager['isMobiusSocketListenerRegistered']).toBe(true);\n expect(mercuryOffSpy).not.toHaveBeenCalled();\n });\n\n it('removes the Mercury listener when the transport switches to WebSocket', () => {\n callManager['isMobiusSocketListenerRegistered'] = true;\n isSocketEnabledSpy.mockReturnValue(true);\n\n callManager.updateActiveMobius(wssUrl);\n\n expect(mercuryOffSpy).toHaveBeenCalledWith('event:mobius');\n expect(callManager['isMobiusSocketListenerRegistered']).toBe(false);\n expect(mercuryOnSpy).not.toHaveBeenCalled();\n });\n\n it('does not re-register the Mercury listener when already registered on HTTP', () => {\n callManager['isMobiusSocketListenerRegistered'] = true;\n isSocketEnabledSpy.mockReturnValue(false);\n\n callManager.updateActiveMobius(httpUrl);\n\n expect(mercuryOnSpy).not.toHaveBeenCalled();\n expect(mercuryOffSpy).not.toHaveBeenCalled();\n expect(callManager['isMobiusSocketListenerRegistered']).toBe(true);\n });\n\n it('does nothing when socket is enabled and no Mercury listener is registered', () => {\n callManager['isMobiusSocketListenerRegistered'] = false;\n isSocketEnabledSpy.mockReturnValue(true);\n\n callManager.updateActiveMobius(wssUrl);\n\n expect(mercuryOnSpy).not.toHaveBeenCalled();\n expect(mercuryOffSpy).not.toHaveBeenCalled();\n expect(callManager['isMobiusSocketListenerRegistered']).toBe(false);\n });\n\n it('routes Mobius events to dequeueWsEvents through the registered Mercury listener', async () => {\n callManager['isMobiusSocketListenerRegistered'] = false;\n isSocketEnabledSpy.mockReturnValue(false);\n const dequeueSpy = jest\n .spyOn(callManager as any, 'dequeueWsEvents')\n .mockImplementation(() => undefined);\n\n callManager.updateActiveMobius(httpUrl);\n const mobiusListenerWrapper = getMobiusListenerWrapper();\n await mobiusListenerWrapper(setupEvent);\n\n expect(dequeueSpy).toHaveBeenCalledWith(setupEvent);\n\n dequeueSpy.mockRestore();\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -67,6 +67,9 @@ var MUTE_TYPE = exports.MUTE_TYPE = /*#__PURE__*/function (MUTE_TYPE) {
67
67
  MUTE_TYPE["SYSTEM"] = "system_mute";
68
68
  return MUTE_TYPE;
69
69
  }({});
70
+ /**
71
+ * Configuration controlling ICE candidate gathering behaviour during media negotiation.
72
+ */
70
73
  /**
71
74
  * Represents an interface for managing call-related operations.
72
75
  */