@webex/calling 3.12.0-mobius-socket.6 → 3.12.0-mobius-socket.8

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 (39) hide show
  1. package/dist/CallingClient/CallingClient.js +13 -28
  2. package/dist/CallingClient/CallingClient.js.map +1 -1
  3. package/dist/CallingClient/CallingClient.test.js +12 -4
  4. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  5. package/dist/CallingClient/calling/callManager.js +8 -6
  6. package/dist/CallingClient/calling/callManager.js.map +1 -1
  7. package/dist/CallingClient/types.js.map +1 -1
  8. package/dist/CallingClient/utils/request.js +35 -21
  9. package/dist/CallingClient/utils/request.js.map +1 -1
  10. package/dist/CallingClient/utils/types.js.map +1 -1
  11. package/dist/Contacts/ContactsClient.test.js +3 -8
  12. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  13. package/dist/SDKConnector/index.js +0 -32
  14. package/dist/SDKConnector/index.js.map +1 -1
  15. package/dist/SDKConnector/types.js.map +1 -1
  16. package/dist/common/testUtil.js +3 -4
  17. package/dist/common/testUtil.js.map +1 -1
  18. package/dist/module/CallingClient/CallingClient.js +7 -24
  19. package/dist/module/CallingClient/calling/callManager.js +7 -6
  20. package/dist/module/CallingClient/utils/request.js +10 -2
  21. package/dist/module/SDKConnector/index.js +0 -17
  22. package/dist/module/common/testUtil.js +2 -1
  23. package/dist/types/CallingClient/CallingClient.d.ts +0 -2
  24. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  25. package/dist/types/CallingClient/calling/callManager.d.ts +3 -3
  26. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  27. package/dist/types/CallingClient/types.d.ts +0 -1
  28. package/dist/types/CallingClient/types.d.ts.map +1 -1
  29. package/dist/types/CallingClient/utils/request.d.ts +3 -1
  30. package/dist/types/CallingClient/utils/request.d.ts.map +1 -1
  31. package/dist/types/CallingClient/utils/types.d.ts +7 -1
  32. package/dist/types/CallingClient/utils/types.d.ts.map +1 -1
  33. package/dist/types/SDKConnector/index.d.ts +0 -2
  34. package/dist/types/SDKConnector/index.d.ts.map +1 -1
  35. package/dist/types/SDKConnector/types.d.ts +0 -2
  36. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  37. package/dist/types/common/testUtil.d.ts +1 -1
  38. package/dist/types/common/testUtil.d.ts.map +1 -1
  39. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_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","isMobiusSocketEnabled","_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","listenForWsEvents","_inherits2","_createClass2","key","value","updateActiveMobius","url","UPDATE_ACTIVE_MOBIUS","_this2","registerListener","_ref","_asyncToGenerator2","_regenerator","mark","_callee","event","wrap","_context","prev","next","dequeueWsEvents","stop","_x","arguments","REGISTER_SESSIONS_LISTENER","_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","undefined"],"sources":["callManager.ts"],"sourcesContent":["/* eslint-disable dot-notation */\n/* eslint-disable valid-jsdoc */\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 isMobiusSocketEnabled: boolean;\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 /**\n * @param webex -.\n * @param indicator - Service Indicator.\n */\n constructor(webex: WebexSDK, indicator: ServiceIndicator, isMobiusSocketEnabled: boolean) {\n super();\n this.sdkConnector = SDKConnector;\n this.serviceIndicator = indicator;\n this.isMobiusSocketEnabled = isMobiusSocketEnabled;\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.lineDict = {};\n this.webex = this.sdkConnector.getWebex();\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 /**\n * A listener for Mobius events.\n */\n private listenForWsEvents() {\n if (!this.isMobiusSocketEnabled) {\n this.sdkConnector.registerListener('event:mobius', async (event) => {\n this.dequeueWsEvents(event);\n });\n log.info('Successfully registered listener for Mobius events', {\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 = (\n webex: WebexSDK,\n indicator: ServiceIndicator,\n isMobiusSocketEnabled = false\n): ICallManager => {\n if (!callManager) {\n callManager = new CallManager(webex, indicator, isMobiusSocketEnabled);\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","_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","isSocketEnabled","registerListener","_ref","_asyncToGenerator2","_regenerator","mark","_callee","event","wrap","_context","prev","next","dequeueWsEvents","stop","_x","arguments","REGISTER_SESSIONS_LISTENER","_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 /**\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 /**\n * A listener for Mobius events.\n */\n private listenForWsEvents() {\n if (!this.apiRequest.isSocketEnabled()) {\n this.sdkConnector.registerListener('event:mobius', async (event) => {\n this.dequeueWsEvents(event);\n });\n log.info('Successfully registered listener for Mobius events', {\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 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {ISDKConnector} from '../SDKConnector/types';\nimport {Eventing} from '../Events/impl';\nimport {CallingClientEventTypes} from '../Events/types';\nimport {DeviceType, ServiceData} from '../common/types';\nimport {ICall} from './calling/types';\nimport {CallingClientError} from '../Errors';\nimport {ILine} from './line/types';\n\nexport interface LoggerConfig {\n level: LOGGER;\n}\n\ninterface DiscoveryConfig {\n country: string;\n region: string;\n}\n\nexport interface CallingClientConfig {\n logger?: LoggerConfig;\n discovery?: DiscoveryConfig;\n serviceData?: ServiceData;\n jwe?: string;\n isMobiusSocketEnabled?: boolean;\n}\n\nexport type CallingClientErrorEmitterCallback = (\n err: CallingClientError,\n finalError?: boolean\n) => void;\n\n/**\n * An interface for the `CallingClient` module.\n * The `CallingClient` module is designed to provide a set of APIs related to line registration and calling functionalities within the SDK.\n *\n * @example\n * ```javascript\n * const callingClient = createClient(webex, callingConfig);\n * ```\n */\nexport interface ICallingClient extends Eventing<CallingClientEventTypes> {\n /**\n * Represents the `mediaEngine for managing media-related operations within the CallingClient.\n * The media engine provides access to audio and video devices such as cameras, microphones, and speakers within the media layer.\n *\n * @public\n * @example\n * ```\n * const microphones = await callingClient.mediaEngine.Media.getMicrophones();\n * const speakers = await callingClient.mediaEngine.Media.getSpeakers();\n * const cameras = await callingClient.mediaEngine.Media.getCameras();\n * ```\n */\n mediaEngine: typeof Media;\n\n /**\n * @ignore\n */\n getSDKConnector(): ISDKConnector;\n\n /**\n * @ignore\n */\n getLoggingLevel(): LOGGER;\n\n /**\n * Retrieves details of the line object(s) belonging to a user.\n *\n * This method gathers all the {@link ILine} objects and organizes them into a dictionary\n * where keys represent `lineId`s and values are arrays of {@link ILine} objects registered with\n * the `callingClient`\n *\n * @example\n * ```typescript\n * const lines = callingClient.getLines();\n * ```\n * The `lines` response object will have `lineId` as its key and\n * a list {@link ILine} objects as it's value.\n * ```\n * {\n * 'lineId1': lineObj1,\n * 'lineId2': lineObj2,\n * }\n * ```\n */\n getLines(): Record<string, ILine>;\n\n /**\n * Retrieves the list of devices registered for the given userId from Mobius.\n * @param userId - The user identifier whose devices should be fetched.\n * @returns List of devices associated with the user.\n */\n getDevices(userId?: string): Promise<DeviceType[]>;\n\n /**\n * Retrieves a dictionary of active calls grouped by `lineId`.\n *\n * This method gathers active {@link ICall} objects and organizes them into a dictionary\n * where keys represent `lineId`s and values are arrays of {@link ICall} objects of active calls associated\n * with each line.\n *\n * @example\n * ```typescript\n * const activeCalls = callingClient.getActiveCalls();\n * ```\n * The `activeCalls` response object will have `lineId` as its key and\n * a list {@link ICall} objects as it's value.\n *\n * ```\n * {\n * 'line1': [call1, call2],\n * 'line2': [call3],\n * }\n * ```\n */\n getActiveCalls(): Record<string, ICall[]>;\n\n /**\n * Retrieves the {@link ICall} object for the currently connected call in the client.\n *\n * This method iterates through active call objects and returns the call\n * that is currently connected (not on hold).\n *\n * @example\n * ```typescript\n * const connectedCall : ICall = callingClient.getConnectedCall();\n * ```\n * The `connectedCall` object will be the Call object of the connected call with the client\n */\n getConnectedCall(): ICall | undefined;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {ISDKConnector} from '../SDKConnector/types';\nimport {Eventing} from '../Events/impl';\nimport {CallingClientEventTypes} from '../Events/types';\nimport {DeviceType, ServiceData} from '../common/types';\nimport {ICall} from './calling/types';\nimport {CallingClientError} from '../Errors';\nimport {ILine} from './line/types';\n\nexport interface LoggerConfig {\n level: LOGGER;\n}\n\ninterface DiscoveryConfig {\n country: string;\n region: string;\n}\n\nexport interface CallingClientConfig {\n logger?: LoggerConfig;\n discovery?: DiscoveryConfig;\n serviceData?: ServiceData;\n jwe?: string;\n}\n\nexport type CallingClientErrorEmitterCallback = (\n err: CallingClientError,\n finalError?: boolean\n) => void;\n\n/**\n * An interface for the `CallingClient` module.\n * The `CallingClient` module is designed to provide a set of APIs related to line registration and calling functionalities within the SDK.\n *\n * @example\n * ```javascript\n * const callingClient = createClient(webex, callingConfig);\n * ```\n */\nexport interface ICallingClient extends Eventing<CallingClientEventTypes> {\n /**\n * Represents the `mediaEngine for managing media-related operations within the CallingClient.\n * The media engine provides access to audio and video devices such as cameras, microphones, and speakers within the media layer.\n *\n * @public\n * @example\n * ```\n * const microphones = await callingClient.mediaEngine.Media.getMicrophones();\n * const speakers = await callingClient.mediaEngine.Media.getSpeakers();\n * const cameras = await callingClient.mediaEngine.Media.getCameras();\n * ```\n */\n mediaEngine: typeof Media;\n\n /**\n * @ignore\n */\n getSDKConnector(): ISDKConnector;\n\n /**\n * @ignore\n */\n getLoggingLevel(): LOGGER;\n\n /**\n * Retrieves details of the line object(s) belonging to a user.\n *\n * This method gathers all the {@link ILine} objects and organizes them into a dictionary\n * where keys represent `lineId`s and values are arrays of {@link ILine} objects registered with\n * the `callingClient`\n *\n * @example\n * ```typescript\n * const lines = callingClient.getLines();\n * ```\n * The `lines` response object will have `lineId` as its key and\n * a list {@link ILine} objects as it's value.\n * ```\n * {\n * 'lineId1': lineObj1,\n * 'lineId2': lineObj2,\n * }\n * ```\n */\n getLines(): Record<string, ILine>;\n\n /**\n * Retrieves the list of devices registered for the given userId from Mobius.\n * @param userId - The user identifier whose devices should be fetched.\n * @returns List of devices associated with the user.\n */\n getDevices(userId?: string): Promise<DeviceType[]>;\n\n /**\n * Retrieves a dictionary of active calls grouped by `lineId`.\n *\n * This method gathers active {@link ICall} objects and organizes them into a dictionary\n * where keys represent `lineId`s and values are arrays of {@link ICall} objects of active calls associated\n * with each line.\n *\n * @example\n * ```typescript\n * const activeCalls = callingClient.getActiveCalls();\n * ```\n * The `activeCalls` response object will have `lineId` as its key and\n * a list {@link ICall} objects as it's value.\n *\n * ```\n * {\n * 'line1': [call1, call2],\n * 'line2': [call3],\n * }\n * ```\n */\n getActiveCalls(): Record<string, ICall[]>;\n\n /**\n * Retrieves the {@link ICall} object for the currently connected call in the client.\n *\n * This method iterates through active call objects and returns the call\n * that is currently connected (not on hold).\n *\n * @example\n * ```typescript\n * const connectedCall : ICall = callingClient.getConnectedCall();\n * ```\n * The `connectedCall` object will be the Call object of the connected call with the client\n */\n getConnectedCall(): ICall | undefined;\n}\n"],"mappings":"","ignoreList":[]}
@@ -66,7 +66,6 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
66
66
  * @param config - Webex instance plus optional SDK Mobius-socket override
67
67
  */
68
68
  function APIRequest(config) {
69
- var _config$isMobiusSocke;
70
69
  (0, _classCallCheck2.default)(this, APIRequest);
71
70
  (0, _defineProperty2.default)(this, "isMobiusSocketEnabled", void 0);
72
71
  (0, _defineProperty2.default)(this, "webex", void 0);
@@ -76,7 +75,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
76
75
  throw new Error('WebexSDK instance is required');
77
76
  }
78
77
  this.webex = config.webex;
79
- this.isMobiusSocketEnabled = (0, _wsFeatureFlag.isMobiusWssEnabled)(config.webex) || ((_config$isMobiusSocke = config.isMobiusSocketEnabled) !== null && _config$isMobiusSocke !== void 0 ? _config$isMobiusSocke : false);
78
+ this.isMobiusSocketEnabled = (0, _wsFeatureFlag.isMobiusWssEnabled)(config.webex) || false;
80
79
  this.mobiusSocket = (0, _internalPluginMobiusSocket.getMobiusSocketInstance)(this.webex);
81
80
  }
82
81
 
@@ -190,7 +189,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
190
189
  key: "makeRequest",
191
190
  value: (function () {
192
191
  var _makeRequest = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(request) {
193
- var trackingId, socketType, isSupplementaryService, wsResponse, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0, _t1, _t10, _t11;
192
+ var trackingId, socketType, isSupplementaryService, wsResponse, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0, _t1, _t10, _t11, _t12, _t13, _t14;
194
193
  return _regenerator.default.wrap(function (_context3) {
195
194
  while (1) switch (_context3.prev = _context3.next) {
196
195
  case 0:
@@ -211,45 +210,48 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
211
210
  _t3 = this.mobiusSocket;
212
211
  _t4 = socketType;
213
212
  _t5 = trackingId;
214
- _t6 = _constants2.CALLING_USER_AGENT;
215
- _t7 = "";
216
- _t9 = isSupplementaryService;
217
- if (!_t9) {
213
+ _t6 = _objectSpread;
214
+ _t7 = _objectSpread({}, request.headers);
215
+ _t8 = {};
216
+ _t9 = _constants2.CALLING_USER_AGENT;
217
+ _t0 = "";
218
+ _t10 = isSupplementaryService;
219
+ if (!_t10) {
218
220
  _context3.next = 4;
219
221
  break;
220
222
  }
221
223
  _context3.next = 3;
222
224
  return this.webex.credentials.getUserToken();
223
225
  case 3:
224
- _t9 = _context3.sent;
226
+ _t10 = _context3.sent;
225
227
  case 4:
226
- _t8 = _t9;
227
- if (_t8) {
228
+ _t1 = _t10;
229
+ if (_t1) {
228
230
  _context3.next = 5;
229
231
  break;
230
232
  }
231
- _t8 = '';
233
+ _t1 = '';
232
234
  case 5:
233
- _t0 = _t7.concat.call(_t7, _t8);
234
- _t1 = {
235
- userAgent: _t6,
236
- authorization: _t0
237
- };
238
- _t10 = request.body;
235
+ _t11 = _t0.concat.call(_t0, _t1);
236
+ _t12 = _t6(_t7, _t8, {
237
+ userAgent: _t9,
238
+ authorization: _t11
239
+ });
240
+ _t13 = request.body;
239
241
  _context3.next = 6;
240
242
  return _t3.sendWssRequest.call(_t3, {
241
243
  type: _t4,
242
244
  trackingId: _t5,
243
- metadata: _t1,
244
- data: _t10
245
+ metadata: _t12,
246
+ data: _t13
245
247
  });
246
248
  case 6:
247
249
  wsResponse = _context3.sent;
248
250
  return _context3.abrupt("return", normalizeWsResponse(wsResponse));
249
251
  case 7:
250
252
  _context3.prev = 7;
251
- _t11 = _context3["catch"](2);
252
- throw normalizeWsError(_t11);
253
+ _t14 = _context3["catch"](2);
254
+ throw normalizeWsError(_t14);
253
255
  case 8:
254
256
  return _context3.abrupt("return", this.webex.request(request));
255
257
  case 9:
@@ -263,6 +265,18 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
263
265
  }
264
266
  return makeRequest;
265
267
  }())
268
+ }, {
269
+ key: "registerMobiusSocketListener",
270
+ value: function registerMobiusSocketListener(cb) {
271
+ this.mobiusSocket.on('event:async_event', function (data) {
272
+ cb(data);
273
+ });
274
+ }
275
+ }, {
276
+ key: "unregisterMobiusSocketListener",
277
+ value: function unregisterMobiusSocketListener() {
278
+ this.mobiusSocket.off('event:async_event');
279
+ }
266
280
  }], [{
267
281
  key: "getInstance",
268
282
  value: function getInstance(config) {
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","require","_internalPluginMobiusSocket","_Logger","_interopRequireDefault","_mobiusSocketMapper","_constants","_wsFeatureFlag","_constants2","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","normalizeWsResponse","wsResponse","_ref","_ref2","statusCode","body","data","undefined","headers","trackingid","trackingId","metadata","normalizeWsError","err","_ref3","_wsErr$response","_ref4","_wsErr$trackingId","_wsErr$response2","_ref5","_wsErr$response3","wsErr","response","APIRequest","exports","config","_config$isMobiusSocke","_classCallCheck2","webex","Error","isMobiusSocketEnabled","isMobiusWssEnabled","mobiusSocket","getMobiusSocketInstance","_createClass2","key","value","isSocketEnabled","_connectToMobiusSocket","_asyncToGenerator2","_regenerator","mark","_callee","wssUrl","logContext","_t","wrap","_context","prev","next","file","REQUEST_FILE","method","METHODS","CONNECT_TO_MOBIUS_SOCKET","isConnected","log","info","abrupt","getConnectedWebSocketUrl","connect","warn","concat","String","stop","connectToMobiusSocket","_x","_disconnectFromMobiusSocket","_callee2","options","_t2","_context2","disconnect","disconnectFromMobiusSocket","_x2","_makeRequest","_callee3","request","socketType","isSupplementaryService","_t3","_t4","_t5","_t6","_t7","_t8","_t9","_t0","_t1","_t10","_t11","_context3","uuid","deriveMobiusSocketMessageType","uri","MOBIUS_SOCKET_MESSAGE_TYPE","UNKNOWN","isSupplementaryServiceMessageType","CALLING_USER_AGENT","credentials","getUserToken","sent","call","userAgent","authorization","sendWssRequest","type","makeRequest","_x3","getInstance","instance","resetInstance","createAPIRequest"],"sources":["request.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\n// @ts-ignore - JS module without type declarations\nimport {getMobiusSocketInstance} from '@webex/internal-plugin-mobius-socket';\nimport {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\nimport log from '../../Logger';\nimport {APIRequestConfig, APIRequestOptions, MobiusSocketResponse} from './types';\nimport {\n deriveMobiusSocketMessageType,\n isSupplementaryServiceMessageType,\n} from './mobiusSocketMapper';\nimport {MOBIUS_SOCKET_MESSAGE_TYPE} from './constants';\nimport {isMobiusWssEnabled} from './wsFeatureFlag';\nimport {CALLING_USER_AGENT, METHODS, REQUEST_FILE} from '../constants';\n\n/**\n * Converts a MobiusSocketResponse into the WebexRequestPayload shape that\n * all callers (registration, call, keepalive error-handlers) expect.\n */\nfunction normalizeWsResponse(wsResponse: MobiusSocketResponse): WebexRequestPayload {\n return {\n statusCode: wsResponse.statusCode,\n body: (wsResponse.data as object) ?? undefined,\n headers: {\n trackingid: wsResponse.trackingId,\n ...((wsResponse.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * Converts a MobiusSocketResponseError rejection into a WebexRequestPayload-shaped\n * error so handleRegistrationErrors / handleCallErrors can process it identically.\n */\nfunction normalizeWsError(err: unknown): WebexRequestPayload {\n const wsErr = err as {\n statusCode?: number;\n statusMessage?: string;\n response?: MobiusSocketResponse;\n trackingId?: string;\n };\n\n return {\n statusCode: wsErr.statusCode,\n body: (wsErr.response?.data as object) ?? undefined,\n headers: {\n trackingid: wsErr.trackingId ?? wsErr.response?.trackingId ?? '',\n ...((wsErr.response?.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * APIRequest routes Mobius traffic over HTTP (`webex.request`) or the Mobius WebSocket path\n * (`mobiusSocketRequest`). `isMobiusSocketEnabled` is set in the constructor from WDM\n * `webrtc-calling-over-ws` and/or SDK config (interim until WDM is fully in prod).\n */\nexport class APIRequest {\n // eslint-disable-next-line no-use-before-define\n private static instance: APIRequest | undefined;\n private isMobiusSocketEnabled: boolean;\n private webex: WebexSDK;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private mobiusSocket: any;\n\n static getInstance(config: APIRequestConfig): APIRequest {\n if (!APIRequest.instance) {\n APIRequest.instance = new APIRequest(config);\n }\n\n return APIRequest.instance;\n }\n\n static resetInstance(): void {\n APIRequest.instance = undefined;\n }\n\n /**\n * @param config - Webex instance plus optional SDK Mobius-socket override\n */\n constructor(config: APIRequestConfig) {\n if (!config.webex) {\n throw new Error('WebexSDK instance is required');\n }\n\n this.webex = config.webex;\n this.isMobiusSocketEnabled =\n isMobiusWssEnabled(config.webex) || (config.isMobiusSocketEnabled ?? false);\n this.mobiusSocket = getMobiusSocketInstance(this.webex);\n }\n\n /**\n * Whether the Mobius WebSocket transport is active for this instance.\n */\n public isSocketEnabled(): boolean {\n return this.isMobiusSocketEnabled;\n }\n\n /**\n * Ensures the Mobius WebSocket is connected before sending API requests.\n * If the socket is already connected, resolves immediately. Otherwise,\n * initiates a new connection to the provided WebSocket URL.\n * On failure, throws a normalized WebexRequestPayload-shaped error.\n *\n * @param wssUrl - The Mobius WebSocket URL to connect to.\n */\n public async connectToMobiusSocket(wssUrl: string): Promise<string | undefined> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONNECT_TO_MOBIUS_SOCKET,\n };\n\n if (this.mobiusSocket.isConnected()) {\n log.info('Mobius WebSocket already connected', logContext);\n\n return this.mobiusSocket.getConnectedWebSocketUrl();\n }\n\n log.info('Mobius WebSocket not connected, initiating connection', logContext);\n\n try {\n await this.mobiusSocket.connect(wssUrl);\n log.log('Mobius WebSocket connected successfully', logContext);\n\n return wssUrl;\n } catch (err) {\n log.warn(`Mobius WebSocket connection failed: ${String(err)}`, logContext);\n throw normalizeWsError(err);\n }\n }\n\n /**\n * Disconnects the default session from the Mobius WebSocket.\n */\n public async disconnectFromMobiusSocket(options?: {code: number; reason: string}): Promise<void> {\n const logContext = {\n file: REQUEST_FILE,\n method: 'disconnectFromMobiusSocket',\n };\n\n try {\n await this.mobiusSocket.disconnect(options);\n log.log('Mobius WebSocket disconnected successfully', logContext);\n } catch (err) {\n // silent error - no need to throw an error\n log.warn(`Mobius WebSocket disconnection failed: ${String(err)}`, logContext);\n }\n }\n\n /**\n * Makes a request using HTTP or WebSocket transport per the flag set in the constructor.\n * When using WebSocket, the response is normalized to the WebexRequestPayload shape\n * so callers do not need to know which transport was used.\n * @param request - Request options (uri, method, body, headers, service)\n * @returns Promise resolving to WebexRequestPayload\n */\n public async makeRequest(request: APIRequestOptions): Promise<WebexRequestPayload> {\n if (this.isMobiusSocketEnabled) {\n const trackingId = `webex-js-sdk_${uuid()}`;\n const socketType = deriveMobiusSocketMessageType(request.uri, request.method);\n\n if (socketType === MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN) {\n throw new Error(`Unknown Mobius Socket message type: ${socketType}`);\n }\n\n const isSupplementaryService = isSupplementaryServiceMessageType(socketType);\n\n try {\n const wsResponse: MobiusSocketResponse = await this.mobiusSocket.sendWssRequest({\n type: socketType,\n trackingId,\n metadata: {\n userAgent: CALLING_USER_AGENT,\n authorization: `${\n (isSupplementaryService && (await this.webex.credentials.getUserToken())) || ''\n }`,\n },\n data: request.body,\n });\n\n return normalizeWsResponse(wsResponse);\n } catch (err) {\n throw normalizeWsError(err);\n }\n }\n\n return this.webex.request(request) as Promise<WebexRequestPayload>;\n }\n}\n\n/**\n * Factory function to create a singleton APIRequest instance\n * @param config - Configuration object for APIRequest\n * @returns APIRequest instance\n */\nexport const createAPIRequest = (config: APIRequestConfig): APIRequest =>\n APIRequest.getInstance(config);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_uuid","require","_internalPluginMobiusSocket","_Logger","_interopRequireDefault","_mobiusSocketMapper","_constants","_wsFeatureFlag","_constants2","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","normalizeWsResponse","wsResponse","_ref","_ref2","statusCode","body","data","undefined","headers","trackingid","trackingId","metadata","normalizeWsError","err","_ref3","_wsErr$response","_ref4","_wsErr$trackingId","_wsErr$response2","_ref5","_wsErr$response3","wsErr","response","APIRequest","exports","config","_classCallCheck2","webex","Error","isMobiusSocketEnabled","isMobiusWssEnabled","mobiusSocket","getMobiusSocketInstance","_createClass2","key","value","isSocketEnabled","_connectToMobiusSocket","_asyncToGenerator2","_regenerator","mark","_callee","wssUrl","logContext","_t","wrap","_context","prev","next","file","REQUEST_FILE","method","METHODS","CONNECT_TO_MOBIUS_SOCKET","isConnected","log","info","abrupt","getConnectedWebSocketUrl","connect","warn","concat","String","stop","connectToMobiusSocket","_x","_disconnectFromMobiusSocket","_callee2","options","_t2","_context2","disconnect","disconnectFromMobiusSocket","_x2","_makeRequest","_callee3","request","socketType","isSupplementaryService","_t3","_t4","_t5","_t6","_t7","_t8","_t9","_t0","_t1","_t10","_t11","_t12","_t13","_t14","_context3","uuid","deriveMobiusSocketMessageType","uri","MOBIUS_SOCKET_MESSAGE_TYPE","UNKNOWN","isSupplementaryServiceMessageType","CALLING_USER_AGENT","credentials","getUserToken","sent","call","userAgent","authorization","sendWssRequest","type","makeRequest","_x3","registerMobiusSocketListener","cb","on","unregisterMobiusSocketListener","off","getInstance","instance","resetInstance","createAPIRequest"],"sources":["request.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\n// @ts-ignore - JS module without type declarations\nimport {getMobiusSocketInstance} from '@webex/internal-plugin-mobius-socket';\nimport {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\nimport log from '../../Logger';\nimport {APIRequestConfig, APIRequestOptions, MobiusAsyncEvent, MobiusSocketResponse} from './types';\nimport {\n deriveMobiusSocketMessageType,\n isSupplementaryServiceMessageType,\n} from './mobiusSocketMapper';\nimport {MOBIUS_SOCKET_MESSAGE_TYPE} from './constants';\nimport {isMobiusWssEnabled} from './wsFeatureFlag';\nimport {CALLING_USER_AGENT, METHODS, REQUEST_FILE} from '../constants';\n\n/**\n * Converts a MobiusSocketResponse into the WebexRequestPayload shape that\n * all callers (registration, call, keepalive error-handlers) expect.\n */\nfunction normalizeWsResponse(wsResponse: MobiusSocketResponse): WebexRequestPayload {\n return {\n statusCode: wsResponse.statusCode,\n body: (wsResponse.data as object) ?? undefined,\n headers: {\n trackingid: wsResponse.trackingId,\n ...((wsResponse.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * Converts a MobiusSocketResponseError rejection into a WebexRequestPayload-shaped\n * error so handleRegistrationErrors / handleCallErrors can process it identically.\n */\nfunction normalizeWsError(err: unknown): WebexRequestPayload {\n const wsErr = err as {\n statusCode?: number;\n statusMessage?: string;\n response?: MobiusSocketResponse;\n trackingId?: string;\n };\n\n return {\n statusCode: wsErr.statusCode,\n body: (wsErr.response?.data as object) ?? undefined,\n headers: {\n trackingid: wsErr.trackingId ?? wsErr.response?.trackingId ?? '',\n ...((wsErr.response?.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * APIRequest routes Mobius traffic over HTTP (`webex.request`) or the Mobius WebSocket path\n * (`mobiusSocketRequest`). `isMobiusSocketEnabled` is set in the constructor from WDM\n * `webrtc-calling-over-ws` and/or SDK config (interim until WDM is fully in prod).\n */\nexport class APIRequest {\n // eslint-disable-next-line no-use-before-define\n private static instance: APIRequest | undefined;\n private isMobiusSocketEnabled: boolean;\n private webex: WebexSDK;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private mobiusSocket: any;\n\n static getInstance(config: APIRequestConfig): APIRequest {\n if (!APIRequest.instance) {\n APIRequest.instance = new APIRequest(config);\n }\n\n return APIRequest.instance;\n }\n\n static resetInstance(): void {\n APIRequest.instance = undefined;\n }\n\n /**\n * @param config - Webex instance plus optional SDK Mobius-socket override\n */\n constructor(config: APIRequestConfig) {\n if (!config.webex) {\n throw new Error('WebexSDK instance is required');\n }\n\n this.webex = config.webex;\n this.isMobiusSocketEnabled = isMobiusWssEnabled(config.webex) || false;\n this.mobiusSocket = getMobiusSocketInstance(this.webex);\n }\n\n /**\n * Whether the Mobius WebSocket transport is active for this instance.\n */\n public isSocketEnabled(): boolean {\n return this.isMobiusSocketEnabled;\n }\n\n /**\n * Ensures the Mobius WebSocket is connected before sending API requests.\n * If the socket is already connected, resolves immediately. Otherwise,\n * initiates a new connection to the provided WebSocket URL.\n * On failure, throws a normalized WebexRequestPayload-shaped error.\n *\n * @param wssUrl - The Mobius WebSocket URL to connect to.\n */\n public async connectToMobiusSocket(wssUrl: string): Promise<string | undefined> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONNECT_TO_MOBIUS_SOCKET,\n };\n\n if (this.mobiusSocket.isConnected()) {\n log.info('Mobius WebSocket already connected', logContext);\n\n return this.mobiusSocket.getConnectedWebSocketUrl();\n }\n\n log.info('Mobius WebSocket not connected, initiating connection', logContext);\n\n try {\n await this.mobiusSocket.connect(wssUrl);\n log.log('Mobius WebSocket connected successfully', logContext);\n\n return wssUrl;\n } catch (err) {\n log.warn(`Mobius WebSocket connection failed: ${String(err)}`, logContext);\n throw normalizeWsError(err);\n }\n }\n\n /**\n * Disconnects the default session from the Mobius WebSocket.\n */\n public async disconnectFromMobiusSocket(options?: {code: number; reason: string}): Promise<void> {\n const logContext = {\n file: REQUEST_FILE,\n method: 'disconnectFromMobiusSocket',\n };\n\n try {\n await this.mobiusSocket.disconnect(options);\n log.log('Mobius WebSocket disconnected successfully', logContext);\n } catch (err) {\n // silent error - no need to throw an error\n log.warn(`Mobius WebSocket disconnection failed: ${String(err)}`, logContext);\n }\n }\n\n /**\n * Makes a request using HTTP or WebSocket transport per the flag set in the constructor.\n * When using WebSocket, the response is normalized to the WebexRequestPayload shape\n * so callers do not need to know which transport was used.\n * @param request - Request options (uri, method, body, headers, service)\n * @returns Promise resolving to WebexRequestPayload\n */\n public async makeRequest(request: APIRequestOptions): Promise<WebexRequestPayload> {\n if (this.isMobiusSocketEnabled) {\n const trackingId = `webex-js-sdk_${uuid()}`;\n const socketType = deriveMobiusSocketMessageType(request.uri, request.method);\n\n if (socketType === MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN) {\n throw new Error(`Unknown Mobius Socket message type: ${socketType}`);\n }\n\n const isSupplementaryService = isSupplementaryServiceMessageType(socketType);\n\n try {\n const wsResponse: MobiusSocketResponse = await this.mobiusSocket.sendWssRequest({\n type: socketType,\n trackingId,\n metadata: {\n ...request.headers,\n userAgent: CALLING_USER_AGENT,\n authorization: `${\n (isSupplementaryService && (await this.webex.credentials.getUserToken())) || ''\n }`,\n },\n data: request.body,\n });\n\n return normalizeWsResponse(wsResponse);\n } catch (err) {\n throw normalizeWsError(err);\n }\n }\n\n return this.webex.request(request) as Promise<WebexRequestPayload>;\n }\n\n public registerMobiusSocketListener(cb: (data?: MobiusAsyncEvent) => void): void {\n this.mobiusSocket.on('event:async_event', (data: MobiusAsyncEvent) => {\n cb(data);\n });\n }\n\n public unregisterMobiusSocketListener(): void {\n this.mobiusSocket.off('event:async_event');\n }\n}\n\n/**\n * Factory function to create a singleton APIRequest instance\n * @param config - Configuration object for APIRequest\n * @returns APIRequest instance\n */\nexport const createAPIRequest = (config: APIRequestConfig): APIRequest =>\n APIRequest.getInstance(config);\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\n\n/**\n * Configuration for APIRequest class\n */\nexport interface APIRequestConfig {\n /**\n * Interim SDK opt-in for Mobius WebSocket transport when WDM\n * `webrtc-calling-over-ws` is not yet true (until prod rollout).\n */\n isMobiusSocketEnabled?: boolean;\n /** Webex SDK instance for making requests */\n webex: WebexSDK;\n}\n\n/**\n * Request options for makeRequest method (alias for compatibility)\n */\nexport type APIRequestOptions = WebexRequestPayload;\n\n/**\n * Request options for Mobius WebSocket requests\n */\nexport interface MobiusSocketRequestOptions {\n /** Request type (typically HTTP method like GET, POST, etc.) */\n type: string;\n /** Unique tracking ID for the request */\n trackingId: string;\n /** Optional metadata (uri, service, headers, etc.) */\n metadata?: Record<string, unknown>;\n /** Optional request data/body */\n data?: unknown;\n}\n\n/**\n * Response structure for Mobius WebSocket requests\n */\nexport type MobiusSocketResponse = {\n type: string;\n trackingId: string;\n statusCode: number;\n statusMessage: string;\n metadata?: Record<string, unknown>;\n data?: unknown;\n};\n\n/**\n * Function signature for MobiusSocket.sendWssRequest.\n * Sends a websocket request data and resolves when the matching response arrives.\n */\nexport type SendWssRequestFn = (\n data: MobiusSocketRequestOptions,\n sessionIdOrOptions?: string | Record<string, unknown>,\n options?: Record<string, unknown>\n) => Promise<MobiusSocketResponse>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {MobiusCallData, MobiusRegistrationDownData} from '../calling/types';\nimport {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\n\n/**\n * Configuration for APIRequest class\n */\nexport interface APIRequestConfig {\n /** Webex SDK instance for making requests */\n webex: WebexSDK;\n}\n\n/**\n * Request options for makeRequest method (alias for compatibility)\n */\nexport type APIRequestOptions = WebexRequestPayload;\n\n/**\n * Request options for Mobius WebSocket requests\n */\nexport interface MobiusSocketRequestOptions {\n /** Request type (typically HTTP method like GET, POST, etc.) */\n type: string;\n /** Unique tracking ID for the request */\n trackingId: string;\n /** Optional metadata (uri, service, headers, etc.) */\n metadata?: Record<string, unknown>;\n /** Optional request data/body */\n data?: unknown;\n}\n\n/**\n * Response structure for Mobius WebSocket requests\n */\nexport type MobiusSocketResponse = {\n type: string;\n trackingId: string;\n statusCode: number;\n statusMessage: string;\n metadata?: Record<string, unknown>;\n data?: unknown;\n};\n\n/**\n * Function signature for MobiusSocket.sendWssRequest.\n * Sends a websocket request data and resolves when the matching response arrives.\n */\nexport type SendWssRequestFn = (\n data: MobiusSocketRequestOptions,\n sessionIdOrOptions?: string | Record<string, unknown>,\n options?: Record<string, unknown>\n) => Promise<MobiusSocketResponse>;\n\nexport type MobiusAsyncEvent = {\n type: string;\n eventId: string;\n trackingId: string;\n data: MobiusCallData | MobiusRegistrationDownData;\n};\n"],"mappings":"","ignoreList":[]}
@@ -22,6 +22,7 @@ var _constants = require("../common/constants");
22
22
  var _Logger = _interopRequireDefault(require("../Logger"));
23
23
  var _constants2 = require("./constants");
24
24
  var utils = _interopRequireWildcard(require("../common/Utils"));
25
+ var _constants3 = require("../CallingClient/constants");
25
26
  var _contactFixtures = require("./contactFixtures");
26
27
  function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
27
28
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -212,10 +213,7 @@ describe('ContactClient Tests', function () {
212
213
  expect(webex.request).toHaveBeenNthCalledWith(2, {
213
214
  uri: scimUrl,
214
215
  method: _types.HTTP_METHODS.GET,
215
- headers: {
216
- 'cisco-device-url': 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',
217
- 'spark-user-agent': 'webex-calling/beta'
218
- }
216
+ headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants3.CISCO_DEVICE_URL, 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5'), 'spark-user-agent', 'webex-calling/beta')
219
217
  });
220
218
  }
221
219
  expect(_Logger.default.info).toHaveBeenCalledWith(_constants.METHOD_START_MESSAGE, {
@@ -760,10 +758,7 @@ describe('ContactClient Tests', function () {
760
758
  expect(webex.request).toHaveBeenNthCalledWith(3, {
761
759
  uri: scimUrl,
762
760
  method: _types.HTTP_METHODS.GET,
763
- headers: {
764
- 'cisco-device-url': 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',
765
- 'spark-user-agent': 'webex-calling/beta'
766
- }
761
+ headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants3.CISCO_DEVICE_URL, 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5'), 'spark-user-agent', 'webex-calling/beta')
767
762
  });
768
763
  expect(_Logger.default.log).toBeCalledWith("Contact successfully created", {
769
764
  file: _constants2.CONTACTS_CLIENT,