@webex/calling 3.3.1-next.9 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
- package/dist/CallingClient/calling/call.js +19 -42
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +17 -33
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/constants.js +5 -8
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +258 -292
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +46 -12
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Contacts/constants.js +3 -1
- package/dist/Contacts/constants.js.map +1 -1
- package/dist/Contacts/contactFixtures.js +141 -48
- package/dist/Contacts/contactFixtures.js.map +1 -1
- package/dist/Contacts/types.js.map +1 -1
- package/dist/Metrics/index.js +9 -9
- package/dist/Metrics/index.js.map +1 -1
- package/dist/Metrics/index.test.js +37 -10
- package/dist/Metrics/index.test.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/common/Utils.js +3 -3
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +1 -1
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/constants.js +6 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/testUtil.js +1 -5
- package/dist/common/testUtil.js.map +1 -1
- package/dist/common/types.js +1 -0
- package/dist/common/types.js.map +1 -1
- package/dist/module/CallingClient/calling/call.js +6 -17
- package/dist/module/CallingClient/constants.js +4 -6
- package/dist/module/Contacts/ContactsClient.js +64 -58
- package/dist/module/Contacts/constants.js +2 -0
- package/dist/module/Contacts/contactFixtures.js +175 -31
- package/dist/module/Metrics/index.js +9 -9
- package/dist/module/common/Utils.js +4 -5
- package/dist/module/common/constants.js +5 -0
- package/dist/module/common/testUtil.js +0 -4
- package/dist/module/common/types.js +1 -0
- package/dist/types/CallingClient/calling/CallerId/types.d.ts +1 -23
- package/dist/types/CallingClient/calling/CallerId/types.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts +0 -1
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +3 -5
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Contacts/constants.d.ts +2 -0
- package/dist/types/Contacts/constants.d.ts.map +1 -1
- package/dist/types/Contacts/contactFixtures.d.ts +71 -39
- package/dist/types/Contacts/contactFixtures.d.ts.map +1 -1
- package/dist/types/Contacts/types.d.ts +6 -13
- package/dist/types/Contacts/types.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +1 -5
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts +1 -0
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/constants.d.ts +5 -0
- package/dist/types/common/constants.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +0 -4
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +56 -25
- package/dist/types/common/types.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_internalMediaCore","require","_xstate","_uuid","_webMediaEffects","_types","_Utils","_types2","_CallError","_constants","_SDKConnector","_interopRequireDefault","_impl","_types3","_types4","_Logger","_CallerId","_types5","_Metrics","_constants2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","Call","exports","_Eventing","_inherits2","_super","activeUrl","webex","destination","direction","deviceId","lineId","deleteCb","indicator","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","callId","correlationId","log","info","concat","file","CALL_FILE","method","setCallId","name","disconnectReason","_ref","_asyncToGenerator2","_regenerator","mark","_callee","roapMessage","wrap","_callee$","_context","prev","next","abrupt","request","uri","mobiusUrl","DEVICES_ENDPOINT_RESOURCE","CALL_ENDPOINT_RESOURCE","HTTP_METHODS","POST","service","ALLOWED_SERVICES","MOBIUS","headers","CISCO_DEVICE_URL","internal","device","url","SPARK_USER_AGENT","CALLING_USER_AGENT","body","callee","type","address","localMedia","roap","mediaId","uuid","stop","_x","metricManager","submitBNRMetric","METRIC_EVENT","BNR_ENABLED","METRIC_TYPE","BEHAVIORAL","BNR_DISABLED","audioTrack","mediaConnection","updateLocalTracks","audio","addedEffect","localAudioStream","effect","getEffectByKind","NOISE_REDUCTION_EFFECT","on","EffectEvent","Enabled","onEffectEnabled","Disabled","onEffectDisabled","callerInfo","sendCallStateMachineEvt","held","setUserMuted","muted","warn","getCorrelationId","newAudioStream","localAudioTrack","outputStream","getAudioTracks","unregisterListeners","registerListeners","message","sdkConnector","SDKConnector","serviceIndicator","getWebex","setWebex","getMetricManager","DEFAULT_LOCAL_CALL_ID","connected","mediaInactivity","earlyMedia","localRoapMessage","receivedRoapOKSeq","mediaNegotiationCompleted","seq","INITIAL_SEQ_NUMBER","callerId","createCallerId","emitObj","emit","CALL_EVENT_KEYS","CALLER_ID","remoteRoapMessage","code","DisconnectCode","NORMAL","cause","DisconnectCause","callMachine","createMachine","schema","context","events","id","initial","states","S_IDLE","E_RECV_CALL_SETUP","target","actions","E_SEND_CALL_SETUP","E_RECV_CALL_DISCONNECT","E_SEND_CALL_DISCONNECT","E_UNKNOWN","S_RECV_CALL_SETUP","E_SEND_CALL_ALERTING","S_SEND_CALL_SETUP","E_RECV_CALL_PROGRESS","E_RECV_CALL_CONNECT","S_RECV_CALL_PROGRESS","S_SEND_CALL_PROGRESS","E_SEND_CALL_CONNECT","S_RECV_CALL_CONNECT","E_CALL_ESTABLISHED","S_SEND_CALL_CONNECT","S_CALL_HOLD","S_CALL_RESUME","S_CALL_ESTABLISHED","E_CALL_HOLD","E_CALL_RESUME","S_RECV_CALL_DISCONNECT","E_CALL_CLEARED","S_SEND_CALL_DISCONNECT","S_UNKNOWN","S_ERROR","S_CALL_CLEARED","incomingCallSetup","event","handleIncomingCallSetup","outgoingCallSetup","handleOutgoingCallSetup","incomingCallProgress","handleIncomingCallProgress","outgoingCallAlerting","handleOutgoingCallAlerting","incomingCallConnect","handleIncomingCallConnect","outgoingCallConnect","handleOutgoingCallConnect","callEstablished","handleCallEstablished","initiateCallHold","handleCallHold","initiateCallResume","handleCallResume","incomingCallDisconnect","handleIncomingCallDisconnect","outgoingCallDisconnect","handleOutgoingCallDisconnect","unknownState","handleUnknownState","mediaMachine","S_ROAP_IDLE","E_RECV_ROAP_OFFER_REQUEST","E_RECV_ROAP_OFFER","E_SEND_ROAP_OFFER","S_RECV_ROAP_OFFER_REQUEST","E_ROAP_OK","E_ROAP_ERROR","S_RECV_ROAP_OFFER","E_SEND_ROAP_ANSWER","S_SEND_ROAP_OFFER","E_RECV_ROAP_ANSWER","S_RECV_ROAP_ANSWER","S_SEND_ROAP_ANSWER","S_ROAP_OK","E_ROAP_TEARDOWN","S_ROAP_ERROR","S_ROAP_TEARDOWN","incomingRoapOffer","handleIncomingRoapOffer","incomingRoapAnswer","handleIncomingRoapAnswer","incomingRoapOfferRequest","handleIncomingRoapOfferRequest","outgoingRoapOffer","handleOutgoingRoapOffer","outgoingRoapAnswer","handleOutgoingRoapAnswer","roapEstablished","handleRoapEstablished","roapError","handleRoapError","callStateMachine","interpret","onTransition","state","value","_stringify","submitCallMetric","CALL","toString","undefined","start","mediaStateMachine","_this$remoteRoapMessa","submitMediaMetric","MEDIA","sdp","_createClass2","key","isMuted","isConnected","isHeld","_handleOutgoingCallSetup","_callee2","_this2","response","errData","_callee2$","_context2","data","post","sent","statusCode","t0","handleCallErrors","error","CALL_ERROR","submitCallErrorMetric","ERROR_LAYER","CALL_CONTROL","interval","_x2","_handleCallHold","_callee4","_this3","_callee4$","_context4","postSSRequest","SUPPLEMENTARY_SERVICES","HOLD","supplementaryServicesTimer","setTimeout","_callee3","errorContext","callError","_callee3$","_context3","createCallError","ERROR_TYPE","TIMEOUT","HOLD_ERROR","SUPPLEMENTARY_SERVICES_TIMEOUT","_x3","_handleCallResume","_callee6","_this4","_callee6$","_context6","RESUME","_callee5","_callee5$","_context5","RESUME_ERROR","_x4","_data$callProgressDat","callProgressData","inbandMedia","startCallerIdResolution","PROGRESS","roapMessageReceived","_handleOutgoingCallAlerting","_callee7","_this5","res","_callee7$","_context7","patch","MobiusCallState","ALERTING","_x5","CONNECT","_handleOutgoingCallConnect","_callee8","_this6","_callee8$","_context8","CONNECTED","_x6","_handleIncomingCallDisconnect","_callee9","_callee9$","_context9","setDisconnectReason","delete","sessionTimer","clearInterval","close","sendMediaStateMachineEvt","DISCONNECT","_x7","_handleOutgoingCallDisconnect","_callee10","_callee10$","_context10","_x8","_this7","ESTABLISHED","setInterval","_callee11","_callee11$","_context11","postStatus","DEFAULT_SESSION_TIMER","_handleUnknownState","_callee12","eventData","_callee12$","_context12","media","_x9","getEmitterCallback","_this8","clearTimeout","_handleRoapEstablished","_callee13","_this9","_ref5","received","_callee13$","_context13","postMedia","messageType","_x10","_x11","_handleRoapError","_callee14","_this10","_callee14$","_context14","_x12","_x13","_handleOutgoingRoapOffer","_callee15","_this11","_callee15$","_context15","initiateOffer","_x14","_x15","_handleOutgoingRoapAnswer","_callee16","_this12","_callee16$","_context16","_x16","_x17","initMediaConnection","debugId","RoapMediaConnection","skipInactiveTransceivers","iceServers","sdpMunging","convertPort9to0","addContentSlides","localTracks","video","screenShareVideo","send","MEDIA_INACTIVITY","CallDirection","OUTBOUND","BUSY","_answer","_callee17","_callee17$","_context17","enabled","mediaRoapEventsListener","mediaTrackListener","answer","_x18","_dial","_callee18","_callee18$","_context18","dial","_x19","_patch","_callee19","_callee19$","_context19","CALLS_ENDPOINT_RESOURCE","PATCH","callState","_x20","_postSSRequest","_callee20","transferContext","_callee20$","_context20","SERVICES_ENDPOINT","TRANSFER","CALL_HOLD_SERVICE","HOLD_ENDPOINT","RESUME_ENDPOINT","CALL_TRANSFER_SERVICE","TRANSFER_ENDPOINT","_assign","blindTransferContext","transferType","TransferType","BLIND","transferToCallId","consultTransferContext","CONSULT","_x21","_x22","_postStatus","_callee21","_callee21$","_context21","CALL_STATUS_RESOURCE","_completeTransfer","_callee22","transferCallId","transferTarget","_this13","_context22","_errData","_callee22$","_context23","completeTransfer","transferorCallId","getCallId","TRANSFER_ACTION","TRANSFER_ERROR","t1","_x23","_x24","_x25","_getCallStats","_callee23","stats","_callee23$","_context24","getStats","getCallStats","parseMediaQualityStatistics","_postMedia","_callee24","_callee24$","_context25","MEDIA_ENDPOINT_RESOURCE","_x26","addSessionConnection","lines","split","mIndex","findIndex","line","startsWith","tIndex","length","cLine","splice","join","_this14","Event","ROAP_MESSAGE_TO_SEND","_ref6","_callee25","_event$roapMessage","_event$roapMessage2","_event$roapMessage3","mediaOk","sdpVideoPortZero","_callee25$","_context26","version","RoapScenario","OK","OFFER","ANSWER","ERROR","OFFER_RESPONSE","replace","_x27","_this15","REMOTE_TRACK_ADDED","MEDIA_CONNECTION_EVENT_KEYS","MEDIA_TYPE_AUDIO","REMOTE_MEDIA","track","off","LocalStreamEventNames","EffectAdded","registerEffectListener","OutputTrackChange","updateTrack","isEnabled","_delete2","_callee26","disconnectMetrics","_callee26$","_context27","DELETE","metrics","causecode","_delete","transferMetricAction","getCallError","errorLayer","_this$remoteRoapMessa2","MEDIA_ERROR","handleMidCallEvent","eventType","MidCallEventType","CALL_INFO","callerData","CALL_STATE","MOBIUS_MIDCALL_STATE","HELD","RESUMED","fetchCallerDetails","sendDigit","tone","insertDTMF","setBroadworksCorrelationInfo","broadworksCorrelationInfo","getBroadworksCorrelationInfo","getCallRtpStats","Eventing","createCall","dest","dir"],"sources":["call.ts"],"sourcesContent":["import {\n Event,\n LocalMicrophoneStream,\n LocalStreamEventNames,\n RoapMediaConnection,\n} from '@webex/internal-media-core';\nimport {createMachine, interpret} from 'xstate';\nimport {v4 as uuid} from 'uuid';\nimport {EffectEvent, TrackEffect} from '@webex/web-media-effects';\nimport {ERROR_LAYER, ERROR_TYPE, ErrorContext} from '../../Errors/types';\nimport {handleCallErrors, parseMediaQualityStatistics} from '../../common/Utils';\nimport {\n ALLOWED_SERVICES,\n CallDetails,\n CallDirection,\n CallId,\n CorrelationId,\n DisplayInformation,\n HTTP_METHODS,\n ServiceIndicator,\n WebexRequestPayload,\n} from '../../common/types';\nimport {CallError, createCallError} from '../../Errors/catalog/CallError';\n/* eslint-disable tsdoc/syntax */\n/* eslint-disable no-param-reassign */\nimport {\n CALL_ENDPOINT_RESOURCE,\n CALL_FILE,\n CALL_HOLD_SERVICE,\n CALL_STATUS_RESOURCE,\n CALL_TRANSFER_SERVICE,\n CALLING_USER_AGENT,\n CALLS_ENDPOINT_RESOURCE,\n CISCO_DEVICE_URL,\n DEFAULT_LOCAL_CALL_ID,\n DEFAULT_SESSION_TIMER,\n DEVICES_ENDPOINT_RESOURCE,\n HOLD_ENDPOINT,\n INITIAL_SEQ_NUMBER,\n MEDIA_ENDPOINT_RESOURCE,\n NOISE_REDUCTION_EFFECT,\n RESUME_ENDPOINT,\n SPARK_USER_AGENT,\n SUPPLEMENTARY_SERVICES_TIMEOUT,\n TRANSFER_ENDPOINT,\n} from '../constants';\nimport SDKConnector from '../../SDKConnector';\nimport {Eventing} from '../../Events/impl';\nimport {\n CALL_EVENT_KEYS,\n CallerIdInfo,\n CallEvent,\n CallEventTypes,\n MEDIA_CONNECTION_EVENT_KEYS,\n MOBIUS_MIDCALL_STATE,\n RoapEvent,\n RoapMessage,\n SUPPLEMENTARY_SERVICES,\n} from '../../Events/types';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {\n CallRtpStats,\n DeleteRecordCallBack,\n DisconnectCause,\n DisconnectCode,\n DisconnectReason,\n ICall,\n MediaContext,\n MidCallCallerId,\n MidCallEvent,\n MidCallEventType,\n MobiusCallData,\n MobiusCallResponse,\n MobiusCallState,\n PatchResponse,\n RoapScenario,\n SSResponse,\n SupplementaryServiceState,\n TransferContext,\n TransferType,\n} from './types';\nimport log from '../../Logger';\nimport {ICallerId} from './CallerId/types';\nimport {createCallerId} from './CallerId';\nimport {IMetricManager, METRIC_TYPE, METRIC_EVENT, TRANSFER_ACTION} from '../../Metrics/types';\nimport {getMetricManager} from '../../Metrics';\nimport {SERVICES_ENDPOINT} from '../../common/constants';\n\n/**\n *\n */\nexport class Call extends Eventing<CallEventTypes> implements ICall {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private destination: CallDetails;\n\n private direction: CallDirection;\n\n private callId: CallId;\n\n private correlationId: CorrelationId;\n\n private deviceId: string;\n\n public lineId: string;\n\n private disconnectReason: DisconnectReason;\n\n private callStateMachine;\n\n private mediaStateMachine;\n\n private seq: number; // TODO: remove later\n\n /* TODO: Need to change the type from any to RoapMediaConnection */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public mediaConnection?: any;\n\n private earlyMedia: boolean;\n\n private connected: boolean;\n\n private mediaInactivity: boolean;\n\n private callerInfo: DisplayInformation;\n\n private localRoapMessage: RoapMessage; // Use it for new offer\n\n private mobiusUrl!: string;\n\n private remoteRoapMessage: RoapMessage | null;\n\n private deleteCb: DeleteRecordCallBack;\n\n private callerId: ICallerId;\n\n private sessionTimer?: NodeJS.Timer;\n\n /* Used to wait for final responses for supplementary services */\n private supplementaryServicesTimer?: NodeJS.Timeout;\n\n private muted: boolean;\n\n private held: boolean;\n\n private metricManager: IMetricManager;\n\n private broadworksCorrelationInfo?: string; // Used in WxCC calls\n\n private serviceIndicator: ServiceIndicator;\n\n private mediaNegotiationCompleted: boolean;\n\n private receivedRoapOKSeq: number;\n\n private localAudioStream?: LocalMicrophoneStream;\n\n /**\n * Getter to check if the call is muted or not.\n *\n * @returns - Boolean.\n */\n public isMuted() {\n return this.muted;\n }\n\n /**\n * Getter to check if the call is connected or not.\n *\n * @returns - Boolean.\n */\n public isConnected() {\n return this.connected;\n }\n\n /**\n * Getter to check if the call is held or not.\n *\n * @returns - Boolean.\n */\n public isHeld() {\n return this.held;\n }\n\n /**\n * @ignore\n */\n constructor(\n activeUrl: string,\n webex: WebexSDK,\n destination: CallDetails,\n direction: CallDirection,\n deviceId: string,\n lineId: string,\n deleteCb: DeleteRecordCallBack,\n indicator: ServiceIndicator\n ) {\n super();\n this.destination = destination;\n this.direction = direction;\n this.sdkConnector = SDKConnector;\n this.deviceId = deviceId;\n this.serviceIndicator = indicator;\n this.lineId = lineId;\n\n /* istanbul ignore else */\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.metricManager = getMetricManager(this.webex, this.serviceIndicator);\n this.callId = `${DEFAULT_LOCAL_CALL_ID}_${uuid()}`;\n this.correlationId = uuid();\n this.deleteCb = deleteCb;\n this.connected = false;\n this.mediaInactivity = false;\n this.held = false;\n this.earlyMedia = false;\n this.callerInfo = {} as DisplayInformation;\n this.localRoapMessage = {} as RoapMessage;\n\n this.mobiusUrl = activeUrl;\n this.receivedRoapOKSeq = 0;\n this.mediaNegotiationCompleted = false;\n\n log.info(`Webex Calling Url:- ${this.mobiusUrl}`, {\n file: CALL_FILE,\n method: 'constructor',\n });\n\n this.seq = INITIAL_SEQ_NUMBER;\n this.callerId = createCallerId(webex, (callerInfo: DisplayInformation) => {\n this.callerInfo = callerInfo;\n const emitObj = {\n correlationId: this.correlationId,\n callerId: this.callerInfo,\n };\n\n this.emit(CALL_EVENT_KEYS.CALLER_ID, emitObj);\n });\n this.remoteRoapMessage = null;\n this.disconnectReason = {code: DisconnectCode.NORMAL, cause: DisconnectCause.NORMAL};\n\n const callMachine = createMachine(\n {\n schema: {\n context: {},\n // The events this machine handles\n events: {} as CallEvent,\n },\n id: 'call-state',\n initial: 'S_IDLE',\n context: {},\n states: {\n S_IDLE: {\n on: {\n E_RECV_CALL_SETUP: {\n target: 'S_RECV_CALL_SETUP',\n actions: ['incomingCallSetup'],\n },\n E_SEND_CALL_SETUP: {\n target: 'S_SEND_CALL_SETUP',\n actions: ['outgoingCallSetup'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n\n /* CALL SETUP */\n S_RECV_CALL_SETUP: {\n on: {\n E_SEND_CALL_ALERTING: {\n target: 'S_SEND_CALL_PROGRESS',\n actions: ['outgoingCallAlerting'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n S_SEND_CALL_SETUP: {\n on: {\n E_RECV_CALL_PROGRESS: {\n target: 'S_RECV_CALL_PROGRESS',\n actions: ['incomingCallProgress'],\n },\n E_RECV_CALL_CONNECT: {\n target: 'S_RECV_CALL_CONNECT',\n actions: ['incomingCallConnect'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n\n /* CALL_PROGRESS */\n S_RECV_CALL_PROGRESS: {\n on: {\n E_RECV_CALL_CONNECT: {\n target: 'S_RECV_CALL_CONNECT',\n actions: ['incomingCallConnect'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n // Possible to have multiple E_RECV_CALL_PROGRESS events, handler should handle it\n E_RECV_CALL_PROGRESS: {\n target: 'S_RECV_CALL_PROGRESS',\n actions: ['incomingCallProgress'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n S_SEND_CALL_PROGRESS: {\n on: {\n E_SEND_CALL_CONNECT: {\n target: 'S_SEND_CALL_CONNECT',\n actions: ['outgoingCallConnect'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n\n /* CALL_CONNECT */\n S_RECV_CALL_CONNECT: {\n on: {\n E_CALL_ESTABLISHED: {\n target: 'S_CALL_ESTABLISHED',\n actions: ['callEstablished'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n S_SEND_CALL_CONNECT: {\n on: {\n E_CALL_ESTABLISHED: {\n target: 'S_CALL_ESTABLISHED',\n actions: ['callEstablished'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n S_CALL_HOLD: {\n on: {\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_CALL_ESTABLISHED: {\n target: 'S_CALL_ESTABLISHED',\n actions: ['callEstablished'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n S_CALL_RESUME: {\n on: {\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_CALL_ESTABLISHED: {\n target: 'S_CALL_ESTABLISHED',\n actions: ['callEstablished'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n /* CALL_ESTABLISHED */\n S_CALL_ESTABLISHED: {\n on: {\n E_CALL_HOLD: {\n target: 'S_CALL_HOLD',\n actions: ['initiateCallHold'],\n },\n E_CALL_RESUME: {\n target: 'S_CALL_RESUME',\n actions: ['initiateCallResume'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_CALL_ESTABLISHED: {\n target: 'S_CALL_ESTABLISHED',\n actions: ['callEstablished'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n\n /* CALL_DISCONNECT */\n S_RECV_CALL_DISCONNECT: {\n on: {\n E_CALL_CLEARED: 'S_CALL_CLEARED',\n },\n },\n S_SEND_CALL_DISCONNECT: {\n on: {\n E_CALL_CLEARED: 'S_CALL_CLEARED',\n },\n },\n\n /* UNKNOWN_EVENTS */\n S_UNKNOWN: {\n on: {\n E_CALL_CLEARED: 'S_CALL_CLEARED',\n },\n },\n\n /* ERROR_EVENTS */\n S_ERROR: {\n on: {\n E_CALL_CLEARED: 'S_CALL_CLEARED',\n },\n },\n\n /* End of our state-machine */\n S_CALL_CLEARED: {\n type: 'final',\n },\n },\n },\n {\n actions: {\n /**\n * .\n *\n * @param context\n * @param event\n */\n incomingCallSetup: (context, event: CallEvent) => this.handleIncomingCallSetup(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n outgoingCallSetup: (context, event: CallEvent) => this.handleOutgoingCallSetup(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n incomingCallProgress: (context, event: CallEvent) =>\n this.handleIncomingCallProgress(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n outgoingCallAlerting: (context, event: CallEvent) =>\n this.handleOutgoingCallAlerting(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n incomingCallConnect: (context, event: CallEvent) => this.handleIncomingCallConnect(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n outgoingCallConnect: (context, event: CallEvent) => this.handleOutgoingCallConnect(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n callEstablished: (context, event: CallEvent) => this.handleCallEstablished(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n initiateCallHold: (context, event: CallEvent) => this.handleCallHold(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n initiateCallResume: (context, event: CallEvent) => this.handleCallResume(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n incomingCallDisconnect: (context, event: CallEvent) =>\n this.handleIncomingCallDisconnect(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n outgoingCallDisconnect: (context, event: CallEvent) =>\n this.handleOutgoingCallDisconnect(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n unknownState: (context, event: CallEvent) => this.handleUnknownState(event),\n },\n }\n );\n\n const mediaMachine = createMachine(\n {\n schema: {\n // The context (extended state) of the machine\n context: {},\n // The events this machine handles\n events: {} as RoapEvent,\n },\n id: 'roap-state',\n initial: 'S_ROAP_IDLE',\n context: {},\n states: {\n S_ROAP_IDLE: {\n on: {\n E_RECV_ROAP_OFFER_REQUEST: {\n target: 'S_RECV_ROAP_OFFER_REQUEST',\n actions: ['incomingRoapOfferRequest'],\n },\n E_RECV_ROAP_OFFER: {\n target: 'S_RECV_ROAP_OFFER',\n actions: ['incomingRoapOffer'],\n },\n E_SEND_ROAP_OFFER: {\n target: 'S_SEND_ROAP_OFFER',\n actions: ['outgoingRoapOffer'],\n },\n },\n },\n S_RECV_ROAP_OFFER_REQUEST: {\n on: {\n E_SEND_ROAP_OFFER: {\n target: 'S_SEND_ROAP_OFFER',\n actions: ['outgoingRoapOffer'],\n },\n E_ROAP_OK: {\n target: 'S_ROAP_OK',\n actions: ['roapEstablished'],\n },\n E_ROAP_ERROR: {\n target: 'S_ROAP_ERROR',\n actions: ['roapError'],\n },\n },\n },\n S_RECV_ROAP_OFFER: {\n on: {\n E_SEND_ROAP_ANSWER: {\n target: 'S_SEND_ROAP_ANSWER',\n actions: ['outgoingRoapAnswer'],\n },\n E_ROAP_OK: {\n target: 'S_ROAP_OK',\n actions: ['roapEstablished'],\n },\n E_ROAP_ERROR: {\n target: 'S_ROAP_ERROR',\n actions: ['roapError'],\n },\n },\n },\n S_SEND_ROAP_OFFER: {\n on: {\n E_RECV_ROAP_ANSWER: {\n target: 'S_RECV_ROAP_ANSWER',\n actions: ['incomingRoapAnswer'],\n },\n E_SEND_ROAP_ANSWER: {\n target: 'S_SEND_ROAP_ANSWER',\n actions: ['outgoingRoapAnswer'],\n },\n E_SEND_ROAP_OFFER: {\n target: 'S_SEND_ROAP_OFFER',\n actions: ['outgoingRoapOffer'],\n },\n E_ROAP_ERROR: {\n target: 'S_ROAP_ERROR',\n actions: ['roapError'],\n },\n },\n },\n S_RECV_ROAP_ANSWER: {\n on: {\n E_ROAP_OK: {\n target: 'S_ROAP_OK',\n actions: ['roapEstablished'],\n },\n E_ROAP_ERROR: {\n target: 'S_ROAP_ERROR',\n actions: ['roapError'],\n },\n },\n },\n S_SEND_ROAP_ANSWER: {\n on: {\n E_RECV_ROAP_OFFER_REQUEST: {\n target: 'S_RECV_ROAP_OFFER_REQUEST',\n actions: ['incomingRoapOfferRequest'],\n },\n E_RECV_ROAP_OFFER: {\n target: 'S_RECV_ROAP_OFFER',\n actions: ['incomingRoapOffer'],\n },\n E_ROAP_OK: {\n target: 'S_ROAP_OK',\n actions: ['roapEstablished'],\n },\n E_SEND_ROAP_ANSWER: {\n target: 'S_SEND_ROAP_ANSWER',\n actions: ['outgoingRoapAnswer'],\n },\n E_ROAP_ERROR: {\n target: 'S_ROAP_ERROR',\n actions: ['roapError'],\n },\n },\n },\n S_ROAP_OK: {\n on: {\n E_RECV_ROAP_OFFER_REQUEST: {\n target: 'S_RECV_ROAP_OFFER_REQUEST',\n actions: ['incomingRoapOfferRequest'],\n },\n E_RECV_ROAP_OFFER: {\n target: 'S_RECV_ROAP_OFFER',\n actions: ['incomingRoapOffer'],\n },\n E_ROAP_OK: {\n target: 'S_ROAP_OK',\n actions: ['roapEstablished'],\n },\n E_SEND_ROAP_OFFER: {\n target: 'S_SEND_ROAP_OFFER',\n actions: ['outgoingRoapOffer'],\n },\n E_ROAP_ERROR: {\n target: 'S_ROAP_ERROR',\n actions: ['roapError'],\n },\n E_ROAP_TEARDOWN: {\n target: 'S_ROAP_TEARDOWN',\n },\n },\n },\n S_ROAP_ERROR: {\n on: {\n E_ROAP_TEARDOWN: {\n target: 'S_ROAP_TEARDOWN',\n },\n E_RECV_ROAP_OFFER_REQUEST: {\n target: 'S_RECV_ROAP_OFFER_REQUEST',\n actions: ['incomingRoapOfferRequest'],\n },\n E_RECV_ROAP_OFFER: {\n target: 'S_RECV_ROAP_OFFER',\n actions: ['incomingRoapOffer'],\n },\n E_RECV_ROAP_ANSWER: {\n target: 'S_RECV_ROAP_ANSWER',\n actions: ['incomingRoapAnswer'],\n },\n E_ROAP_OK: {\n target: 'S_ROAP_OK',\n actions: ['roapEstablished'],\n },\n },\n },\n S_ROAP_TEARDOWN: {\n type: 'final',\n },\n },\n },\n {\n actions: {\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n incomingRoapOffer: (context: MediaContext, event: RoapEvent) =>\n this.handleIncomingRoapOffer(context, event),\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n incomingRoapAnswer: (context: MediaContext, event: RoapEvent) =>\n this.handleIncomingRoapAnswer(context, event),\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n incomingRoapOfferRequest: (context: MediaContext, event: RoapEvent) =>\n this.handleIncomingRoapOfferRequest(context, event),\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n outgoingRoapOffer: (context: MediaContext, event: RoapEvent) =>\n this.handleOutgoingRoapOffer(context, event),\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n outgoingRoapAnswer: (context: MediaContext, event: RoapEvent) =>\n this.handleOutgoingRoapAnswer(context, event),\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n roapEstablished: (context: MediaContext, event: RoapEvent) =>\n this.handleRoapEstablished(context, event),\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n roapError: (context: MediaContext, event: RoapEvent) =>\n this.handleRoapError(context, event),\n },\n }\n );\n\n this.callStateMachine = interpret(callMachine)\n .onTransition((state, event) => {\n log.log(\n `Call StateMachine:- state=${state.value}, event=${JSON.stringify(event.type)}`,\n {}\n );\n if (state.value !== 'S_UNKNOWN') {\n this.metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n state.value.toString(),\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n undefined\n );\n }\n })\n .start();\n\n this.mediaStateMachine = interpret(mediaMachine)\n .onTransition((state, event) => {\n log.log(\n `Media StateMachine:- state=${state.value}, event=${JSON.stringify(event.type)}`,\n {}\n );\n if (state.value !== 'S_ROAP_ERROR') {\n this.metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA,\n state.value.toString(),\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n this.localRoapMessage.sdp,\n this.remoteRoapMessage?.sdp,\n undefined\n );\n }\n })\n .start();\n this.muted = false;\n }\n\n /**\n * Handle incoming Call setups.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private handleIncomingCallSetup(event: CallEvent) {\n log.info(`handleIncomingCallSetup: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleIncomingCallSetup.name,\n });\n\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_ALERTING'});\n }\n\n /**\n * Handle outgoing Call setups.\n * The handler sends a Post Message to the remote with ROAP body\n * as offer. We also set the callId here based on the response received.\n *\n * @param event - Call Events.\n */\n private async handleOutgoingCallSetup(event: CallEvent) {\n log.info(`handleOutgoingCallSetup: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleOutgoingCallSetup.name,\n });\n\n const message = event.data as RoapMessage;\n\n try {\n const response = await this.post(message);\n\n log.log(`handleOutgoingCallSetup: Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallSetup.name,\n });\n this.setCallId(response.body.callId);\n } catch (e) {\n log.warn('Failed to setup the call', {\n file: CALL_FILE,\n method: this.handleOutgoingCallSetup.name,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleOutgoingCallSetup.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle Call Hold.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleCallHold(event: CallEvent) {\n log.info(`handleCallHold: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleCallHold.name,\n });\n\n try {\n const response = await this.postSSRequest(undefined, SUPPLEMENTARY_SERVICES.HOLD);\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: this.handleCallHold.name,\n });\n\n /*\n * Avoid setting http response timeout if held event is already\n * received from Mobius and forwarded towards calling client\n */\n if (this.isHeld() === false) {\n this.supplementaryServicesTimer = setTimeout(async () => {\n const errorContext = {file: CALL_FILE, method: this.handleCallHold.name};\n\n log.warn('Hold response timed out', {\n file: CALL_FILE,\n method: this.handleCallHold.name,\n });\n\n const callError = createCallError(\n 'An error occurred while placing the call on hold. Wait a moment and try again.',\n errorContext as ErrorContext,\n ERROR_TYPE.TIMEOUT,\n this.getCorrelationId(),\n ERROR_LAYER.CALL_CONTROL\n );\n\n this.emit(CALL_EVENT_KEYS.HOLD_ERROR, callError);\n this.submitCallErrorMetric(callError);\n }, SUPPLEMENTARY_SERVICES_TIMEOUT);\n }\n } catch (e) {\n log.warn('Failed to put the call on hold', {\n file: CALL_FILE,\n method: this.handleCallHold.name,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.HOLD_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleOutgoingCallSetup.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle Call Resume.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleCallResume(event: CallEvent) {\n log.info(`handleCallResume: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleCallResume.name,\n });\n\n try {\n const response = await this.postSSRequest(undefined, SUPPLEMENTARY_SERVICES.RESUME);\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: this.handleCallResume.name,\n });\n\n /*\n * Avoid setting http response timeout if connected event is already\n * received from Mobius on resuming the call and forwarded towards calling client\n */\n if (this.isHeld() === true) {\n this.supplementaryServicesTimer = setTimeout(async () => {\n const errorContext = {file: CALL_FILE, method: this.handleCallResume.name};\n\n log.warn('Resume response timed out', {\n file: CALL_FILE,\n method: this.handleCallResume.name,\n });\n\n const callError = createCallError(\n 'An error occurred while resuming the call. Wait a moment and try again.',\n errorContext as ErrorContext,\n ERROR_TYPE.TIMEOUT,\n this.getCorrelationId(),\n ERROR_LAYER.CALL_CONTROL\n );\n\n this.emit(CALL_EVENT_KEYS.RESUME_ERROR, callError);\n this.submitCallErrorMetric(callError);\n }, SUPPLEMENTARY_SERVICES_TIMEOUT);\n }\n } catch (e) {\n log.warn('Failed to resume the call', {\n file: CALL_FILE,\n method: this.handleCallResume.name,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.RESUME_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleOutgoingCallSetup.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle incoming Call Progress.\n *\n * @param event - Call Events.\n */\n private handleIncomingCallProgress(event: CallEvent) {\n log.info(`handleIncomingCallProgress: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleIncomingCallProgress.name,\n });\n const data = event.data as MobiusCallData;\n\n if (data?.callProgressData?.inbandMedia) {\n log.log('Inband media present. Setting Early Media flag', {\n file: CALL_FILE,\n method: this.handleIncomingCallProgress.name,\n });\n this.earlyMedia = true;\n } else {\n log.log('Inband media not present.', {\n file: CALL_FILE,\n method: this.handleIncomingCallProgress.name,\n });\n }\n\n if (data?.callerId) {\n log.info('Processing Caller-Id data', {\n file: CALL_FILE,\n method: this.handleIncomingCallProgress.name,\n });\n this.startCallerIdResolution(data.callerId);\n }\n this.emit(CALL_EVENT_KEYS.PROGRESS, this.correlationId);\n }\n\n /**\n * Handle incoming Call Progress.\n *\n * @param context\n * @param event - Roap Events.\n */\n private handleIncomingRoapOfferRequest(context: MediaContext, event: RoapEvent) {\n log.info(`handleIncomingRoapOfferRequest: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleIncomingRoapOfferRequest.name,\n });\n const message = event.data as RoapMessage;\n\n if (!this.mediaConnection) {\n log.info('Media connection is not up, buffer the remote Offer Request for later handling', {\n file: CALL_FILE,\n method: this.handleIncomingRoapOfferRequest.name,\n });\n\n this.seq = message.seq;\n log.info(`Setting Sequence No: ${this.seq}`, {\n file: CALL_FILE,\n method: this.handleIncomingRoapOfferRequest.name,\n });\n\n this.remoteRoapMessage = message;\n } else if (this.receivedRoapOKSeq === message.seq - 2) {\n log.info('Waiting for Roap OK, buffer the remote Offer Request for later handling', {\n file: CALL_FILE,\n method: this.handleIncomingRoapOfferRequest.name,\n });\n\n this.remoteRoapMessage = message;\n } else {\n message.seq = this.seq + 1;\n this.seq = message.seq;\n this.mediaConnection.roapMessageReceived(message);\n }\n }\n\n /**\n * Handle Outgoing Call Progress.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleOutgoingCallAlerting(event: CallEvent) {\n log.info(`handleOutgoingCallAlerting: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleOutgoingCallAlerting.name,\n });\n\n try {\n const res = await this.patch(MobiusCallState.ALERTING);\n\n log.log(`PATCH response: ${res.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallAlerting.name,\n });\n } catch (err) {\n log.warn('Failed to signal call progression', {\n file: CALL_FILE,\n method: this.handleOutgoingCallAlerting.name,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleOutgoingCallAlerting.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle incoming Call Connect.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private handleIncomingCallConnect(event: CallEvent) {\n log.info(`handleIncomingCallConnect: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleIncomingCallConnect.name,\n });\n this.emit(CALL_EVENT_KEYS.CONNECT, this.correlationId);\n\n /* In case of Early Media , media negotiations would have already started\n * So we can directly go to call established state */\n\n if (this.earlyMedia || this.mediaNegotiationCompleted) {\n this.mediaNegotiationCompleted = false;\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }\n }\n\n /**\n * Handle outgoing Call Connect.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleOutgoingCallConnect(event: CallEvent) {\n log.info(`handleOutgoingCallConnect: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleOutgoingCallConnect.name,\n });\n\n /* We should have received an Offer by now */\n if (!this.remoteRoapMessage) {\n log.warn('Offer not yet received from remote end... Exiting', {\n file: CALL_FILE,\n method: this.handleOutgoingCallConnect.name,\n });\n\n return;\n }\n\n try {\n /* Start Offer/Answer as we might have buffered the offer by now */\n this.mediaConnection.roapMessageReceived(this.remoteRoapMessage);\n\n /* send call_connect PATCH */\n const res = await this.patch(MobiusCallState.CONNECTED);\n\n log.log(`PATCH response: ${res.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallConnect.name,\n });\n } catch (err) {\n log.warn('Failed to connect the call', {\n file: CALL_FILE,\n method: this.handleOutgoingCallConnect.name,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleOutgoingCallConnect.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle incoming Call Disconnect.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleIncomingCallDisconnect(event: CallEvent) {\n log.info(`handleIncomingCallDisconnect: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleIncomingCallDisconnect.name,\n });\n\n this.setDisconnectReason();\n\n try {\n const response = await this.delete();\n\n log.log(`handleOutgoingCallDisconnect: Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: this.handleIncomingCallDisconnect.name,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: this.handleIncomingCallDisconnect.name,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n /* Clear the stream listeners */\n this.unregisterListeners();\n\n /* istanbul ignore else */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {file: CALL_FILE, method: 'handleIncomingCallDisconnect'});\n }\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.correlationId);\n }\n\n /**\n * Handle outgoing Call Disconnect.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleOutgoingCallDisconnect(event: CallEvent) {\n this.setDisconnectReason();\n\n try {\n const response = await this.delete();\n\n log.log(`handleOutgoingCallDisconnect: Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallDisconnect.name,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: this.handleOutgoingCallDisconnect.name,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n /* Clear the stream listeners */\n this.unregisterListeners();\n\n /* istanbul ignore else */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {file: CALL_FILE, method: 'handleOutgoingCallDisconnect'});\n }\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n }\n\n /**\n * Handle Call Established - Roap related negotiations.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private handleCallEstablished(event: CallEvent) {\n log.info(`handleCallEstablished: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleCallEstablished.name,\n });\n\n this.emit(CALL_EVENT_KEYS.ESTABLISHED, this.correlationId);\n\n /* Reset Early dialog parameters */\n this.earlyMedia = false;\n\n this.connected = true;\n\n /* Session timers need to be reset at all offer/answer exchanges */\n if (this.sessionTimer) {\n log.log('Resetting session timer', {\n file: CALL_FILE,\n method: 'handleCallEstablished',\n });\n clearInterval(this.sessionTimer);\n }\n\n this.sessionTimer = setInterval(async () => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const res = await this.postStatus();\n\n log.info(`Session refresh successful`, {\n file: CALL_FILE,\n method: 'handleCallEstablished',\n });\n } catch (err: unknown) {\n const error = <WebexRequestPayload>err;\n\n /* We are clearing the timer here as all are error scenarios. Only scenario where\n * timer reset won't be required is 503 with retry after. But that case will\n * be handled automatically as Mobius will also reset timer when we post status\n * in retry-after scenario.\n */\n /* istanbul ignore next */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n handleCallErrors(\n (callError: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, callError);\n this.submitCallErrorMetric(callError);\n },\n ERROR_LAYER.CALL_CONTROL,\n (interval: number) => {\n setTimeout(() => {\n /* We first post the status and then recursively call the handler which\n * starts the timer again\n */\n this.postStatus();\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }, interval * 1000);\n },\n this.getCorrelationId(),\n error,\n this.handleCallEstablished.name,\n CALL_FILE\n );\n }\n }, DEFAULT_SESSION_TIMER);\n }\n\n /**\n * Handle Unknown events.\n *\n * @param event - Call Events.\n */\n private async handleUnknownState(event: CallEvent) {\n log.info(`handleUnknownState: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleUnknownState.name,\n });\n\n /* We are handling errors at the source , in this state we just log and\n * clear the resources\n */\n\n const eventData = event.data as {media: boolean};\n\n if (!eventData?.media) {\n log.warn('Call failed due to signalling issue', {\n file: CALL_FILE,\n method: this.handleUnknownState.name,\n });\n }\n\n /* We need to clear the call at Mobius too. For delete failure\n * error handling is not required\n */\n\n try {\n this.setDisconnectReason();\n const response = await this.delete();\n\n log.log(`handleOutgoingCallDisconnect: Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: this.handleUnknownState.name,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: this.handleUnknownState.name,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: this.handleUnknownState.name,\n });\n }\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n }\n\n /**\n * Returns an error emitter callback method for handleCallErrors which can be used during\n * midcall and call setup scenarios.\n * Emits Call errors for UI Client\n * Sends call error metrics\n * Handles further state machine changes.\n *\n * @param errData - Instance of CallError.\n */\n private getEmitterCallback(errData: MobiusCallResponse) {\n return (error: CallError) => {\n switch (this.callStateMachine.state.value) {\n case 'S_CALL_HOLD':\n this.emit(CALL_EVENT_KEYS.HOLD_ERROR, error);\n if (this.supplementaryServicesTimer) {\n clearTimeout(this.supplementaryServicesTimer);\n this.supplementaryServicesTimer = undefined;\n }\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n\n return;\n case 'S_CALL_RESUME':\n this.emit(CALL_EVENT_KEYS.RESUME_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n\n return;\n default:\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n /* Disconnect call if it's not a midcall case */\n /* istanbul ignore else */\n if (!this.connected) {\n this.sendMediaStateMachineEvt({type: 'E_ROAP_ERROR', data: errData});\n }\n }\n };\n }\n\n /**\n * Handle Roap Established events.\n *\n * For outbound MediaOk , the message will be truthy as we need to send ROAP OK .\n * For inbound MediaOK , we report it to Media-SDK and transition our state.\n * Both the cases should transition to Call Established state.\n *\n * @param context -.\n * @param event - Roap Events.\n */\n private async handleRoapEstablished(context: MediaContext, event: RoapEvent) {\n log.info(`handleRoapEstablished: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: 'handleRoapEstablished',\n });\n\n const {received, message} = event.data as {received: boolean; message: RoapMessage};\n\n this.receivedRoapOKSeq = message.seq;\n\n if (!received) {\n log.info('Sending Media Ok to the remote End', {\n file: CALL_FILE,\n method: 'handleRoapEstablished',\n });\n\n try {\n if (\n this.callStateMachine.state.value === 'S_RECV_CALL_PROGRESS' ||\n this.callStateMachine.state.value === 'S_SEND_CALL_SETUP'\n ) {\n log.info(\n 'Media negotiation completed before call connect. Setting media negotiation completed flag.',\n {\n file: CALL_FILE,\n method: 'handleRoapEstablished',\n }\n );\n this.mediaNegotiationCompleted = true;\n }\n message.seq = this.seq;\n const res = await this.postMedia(message);\n\n log.log(`handleRoapEstablished: Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: 'handleRoapEstablished',\n });\n /* istanbul ignore else */\n if (!this.earlyMedia && !this.mediaNegotiationCompleted) {\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }\n } catch (err) {\n log.warn('Failed to process MediaOk request', {\n file: CALL_FILE,\n method: 'handleRoapEstablished',\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n this.getEmitterCallback(errData),\n ERROR_LAYER.MEDIA,\n (interval: number) => {\n /* Start retry if only it is a midcall case */\n /* istanbul ignore else */\n if (this.connected) {\n setTimeout(() => {\n this.sendMediaStateMachineEvt({type: 'E_ROAP_OK', data: event.data});\n }, interval * 1000);\n }\n },\n this.getCorrelationId(),\n errData,\n this.handleRoapEstablished.name,\n CALL_FILE\n );\n }\n } else {\n log.info('Notifying internal-media-core about ROAP OK message', {\n file: CALL_FILE,\n method: 'handleRoapEstablished',\n });\n message.seq = this.seq;\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.roapMessageReceived(message);\n }\n /* istanbul ignore else */\n if (!this.earlyMedia) {\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }\n\n if (this.remoteRoapMessage && this.remoteRoapMessage.seq > this.seq) {\n if (this.remoteRoapMessage.messageType === 'OFFER_REQUEST') {\n this.sendMediaStateMachineEvt({\n type: 'E_RECV_ROAP_OFFER_REQUEST',\n data: this.remoteRoapMessage,\n });\n } else if (this.remoteRoapMessage.messageType === 'OFFER') {\n this.sendMediaStateMachineEvt({type: 'E_RECV_ROAP_OFFER', data: this.remoteRoapMessage});\n }\n }\n }\n }\n\n /**\n * Handle Roap Error events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private async handleRoapError(context: MediaContext, event: RoapEvent) {\n log.info(`handleRoapError: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.handleRoapError.name,\n });\n\n /* if we receive ROAP_ERROR from internal-media-core , we post it to Mobius */\n\n const message = event.data as RoapMessage;\n\n /* istanbul ignore else */\n if (message) {\n try {\n const res = await this.postMedia(message);\n\n log.info(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: this.handleRoapError.name,\n });\n } catch (err) {\n log.warn('Failed to communicate ROAP error to Webex Calling', {\n file: CALL_FILE,\n method: this.handleRoapError.name,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n },\n ERROR_LAYER.MEDIA,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleRoapError.name,\n CALL_FILE\n );\n }\n }\n\n /* Only disconnect calls that are not yet connected yet */\n\n if (!this.connected) {\n log.warn('Call failed due to media issue', {\n file: CALL_FILE,\n method: 'handleRoapError',\n });\n\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: {media: true}});\n }\n }\n\n /**\n * Handle Outgoing Roap Offer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private async handleOutgoingRoapOffer(context: MediaContext, event: RoapEvent) {\n log.info(`handleOutgoingRoapOffer: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.handleOutgoingRoapOffer.name,\n });\n\n const message = event.data as RoapMessage;\n\n if (!message?.sdp) {\n log.info('Initializing Offer...', {\n file: CALL_FILE,\n method: this.handleOutgoingRoapOffer.name,\n });\n this.mediaConnection.initiateOffer();\n\n return;\n }\n\n /* If we are here , that means we have a message to send.. */\n\n try {\n const res = await this.postMedia(message);\n\n log.log(`handleOutgoingRoapOffer: Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingRoapOffer.name,\n });\n } catch (err) {\n log.warn('Failed to process MediaOk request', {\n file: CALL_FILE,\n method: this.handleOutgoingRoapOffer.name,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n this.getEmitterCallback(errData),\n ERROR_LAYER.MEDIA,\n (interval: number) => {\n /* Start retry if only it is a midcall case */\n if (this.connected) {\n setTimeout(() => {\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER', data: event.data});\n }, interval * 1000);\n }\n },\n this.getCorrelationId(),\n errData,\n this.handleOutgoingRoapOffer.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle Outgoing Roap Answer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private async handleOutgoingRoapAnswer(context: MediaContext, event: RoapEvent) {\n log.info(`handleOutgoingRoapAnswer: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.handleOutgoingRoapAnswer.name,\n });\n\n const message = event.data as RoapMessage;\n\n try {\n message.seq = this.seq;\n const res = await this.postMedia(message);\n\n log.log(`handleOutgoingRoapAnswer: Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingRoapAnswer.name,\n });\n } catch (err) {\n log.warn('Failed to send MediaAnswer request', {\n file: CALL_FILE,\n method: this.handleOutgoingRoapAnswer.name,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n this.getEmitterCallback(errData),\n ERROR_LAYER.MEDIA,\n (interval: number) => {\n /* Start retry if only it is a midcall case */\n if (this.connected) {\n setTimeout(() => {\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_ANSWER', data: event.data});\n }, interval * 1000);\n }\n },\n this.getCorrelationId(),\n errData,\n this.handleOutgoingRoapAnswer.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle Incoming Roap Offer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private handleIncomingRoapOffer(context: MediaContext, event: RoapEvent) {\n log.info(`handleIncomingRoapOffer: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.handleIncomingRoapOffer.name,\n });\n\n const message = event.data as RoapMessage;\n\n this.remoteRoapMessage = message;\n if (!this.mediaConnection) {\n log.info('Media connection is not up, buffer the remote offer for later handling', {\n file: CALL_FILE,\n method: this.handleIncomingRoapOffer.name,\n });\n this.seq = message.seq;\n log.info(`Setting Sequence No: ${this.seq}`, {\n file: CALL_FILE,\n method: this.handleIncomingRoapOffer.name,\n });\n } else if (this.receivedRoapOKSeq === message.seq - 2) {\n log.info('Waiting for Roap OK, buffer the remote offer for later handling', {\n file: CALL_FILE,\n method: this.handleIncomingRoapOffer.name,\n });\n\n this.remoteRoapMessage = message;\n } else {\n log.info('Handling new offer...', {\n file: CALL_FILE,\n method: this.handleIncomingRoapOffer.name,\n });\n this.seq = message.seq;\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.roapMessageReceived(message);\n }\n }\n }\n\n /**\n * Handle Incoming Roap Answer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private handleIncomingRoapAnswer(context: MediaContext, event: RoapEvent) {\n log.info(`handleIncomingRoapAnswer: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.handleIncomingRoapAnswer.name,\n });\n const message = event.data as RoapMessage;\n\n this.remoteRoapMessage = message;\n message.seq = this.seq;\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.roapMessageReceived(message);\n }\n }\n\n /* istanbul ignore next */\n /**\n * Initialize Media Connection.\n *\n * @param settings -.\n * @param settings.localAudioTrack - MediaStreamTrack.\n * @param settings.debugId - String.\n */\n private initMediaConnection(localAudioTrack: MediaStreamTrack, debugId?: string) {\n const mediaConnection = new RoapMediaConnection(\n {\n skipInactiveTransceivers: true,\n iceServers: [],\n sdpMunging: {\n convertPort9to0: true,\n addContentSlides: false,\n },\n },\n {\n localTracks: {audio: localAudioTrack},\n direction: {\n audio: 'sendrecv',\n video: 'inactive',\n screenShareVideo: 'inactive',\n },\n },\n debugId || `WebexCallSDK-${this.correlationId}`\n );\n\n this.mediaConnection = mediaConnection;\n }\n\n /**\n *\n */\n public getDirection = (): CallDirection => this.direction;\n\n /**\n *\n */\n public getCallId = (): CallId => this.callId;\n\n /**\n *\n */\n public getCorrelationId = (): CorrelationId => this.correlationId;\n\n /**\n * .\n *\n * @param event -.\n */\n public sendCallStateMachineEvt(event: CallEvent) {\n this.callStateMachine.send(event);\n }\n\n /**\n * .\n *\n * @param event -.\n */\n public sendMediaStateMachineEvt(event: RoapEvent) {\n this.mediaStateMachine.send(event);\n }\n\n /**\n * @param callId -.\n */\n public setCallId = (callId: CallId) => {\n this.callId = callId;\n log.info(`Setting callId : ${this.callId} for correlationId: ${this.correlationId}`, {\n file: CALL_FILE,\n method: this.setCallId.name,\n });\n };\n\n /**\n * Sets the Disconnect reason.\n *\n */\n private setDisconnectReason() {\n if (this.mediaInactivity) {\n this.disconnectReason.code = DisconnectCode.MEDIA_INACTIVITY;\n this.disconnectReason.cause = DisconnectCause.MEDIA_INACTIVITY;\n } else if (this.connected || this.direction === CallDirection.OUTBOUND) {\n this.disconnectReason.code = DisconnectCode.NORMAL;\n this.disconnectReason.cause = DisconnectCause.NORMAL;\n } else {\n this.disconnectReason.code = DisconnectCode.BUSY;\n this.disconnectReason.cause = DisconnectCause.BUSY;\n }\n }\n\n /**\n * Gets the disconnection reason.\n *\n * @returns Reason.\n */\n public getDisconnectReason = (): DisconnectReason => {\n return this.disconnectReason;\n };\n\n /**\n * Answers the call with the provided local audio stream.\n *\n * @param localAudioStream - The local audio stream for the call.\n */\n public async answer(localAudioStream: LocalMicrophoneStream) {\n this.localAudioStream = localAudioStream;\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(`Did not find a local track while answering the call ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: 'answer',\n });\n this.mediaInactivity = true;\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n\n return;\n }\n\n localAudioTrack.enabled = true;\n\n if (!this.mediaConnection) {\n this.initMediaConnection(localAudioTrack);\n this.mediaRoapEventsListener();\n this.mediaTrackListener();\n this.registerListeners(localAudioStream);\n }\n\n if (this.callStateMachine.state.value === 'S_SEND_CALL_PROGRESS') {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_CONNECT'});\n } else {\n log.warn(\n `Call cannot be answered because the state is : ${this.callStateMachine.state.value}`,\n {file: CALL_FILE, method: 'answer'}\n );\n }\n }\n\n /**\n * @param settings\n * @param settings.localAudioTrack\n */\n public async dial(localAudioStream: LocalMicrophoneStream) {\n this.localAudioStream = localAudioStream;\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(`Did not find a local track while dialing the call ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: 'dial',\n });\n\n this.deleteCb(this.getCorrelationId());\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());\n\n return;\n }\n localAudioTrack.enabled = true;\n\n if (!this.mediaConnection) {\n this.initMediaConnection(localAudioTrack);\n this.mediaRoapEventsListener();\n this.mediaTrackListener();\n this.registerListeners(localAudioStream);\n }\n\n if (this.mediaStateMachine.state.value === 'S_ROAP_IDLE') {\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER'});\n } else {\n log.warn(\n `Call cannot be dialed because the state is already : ${this.mediaStateMachine.state.value}`,\n {file: CALL_FILE, method: 'dial'}\n );\n }\n }\n\n /**\n * .\n *\n * @param roapMessage\n */\n private post = async (roapMessage: RoapMessage): Promise<MobiusCallResponse> => {\n return this.webex.request({\n uri: `${this.mobiusUrl}${DEVICES_ENDPOINT_RESOURCE}/${this.deviceId}/${CALL_ENDPOINT_RESOURCE}`,\n method: HTTP_METHODS.POST,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n callee: {\n type: this.destination.type,\n address: this.destination.address,\n },\n localMedia: {\n roap: roapMessage,\n mediaId: uuid(),\n },\n },\n });\n };\n\n /**\n * .\n *\n * @param state -.\n */\n private async patch(state: MobiusCallState): Promise<PatchResponse> {\n log.info(`Send a PATCH for ${state} to Webex Calling`, {\n file: CALL_FILE,\n method: this.patch.name,\n });\n\n return this.webex.request({\n // Sample uri: http://localhost/api/v1/calling/web/devices/{deviceid}/calls/{callid}\n\n uri: `${this.mobiusUrl}${DEVICES_ENDPOINT_RESOURCE}/${this.deviceId}/${CALLS_ENDPOINT_RESOURCE}/${this.callId}`,\n method: HTTP_METHODS.PATCH,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n callId: this.callId,\n callState: state,\n inbandMedia: false, // setting false for now\n },\n });\n }\n\n /**\n * Sends Supplementary request to Mobius.\n *\n * @param context - Context information related to a particular supplementary service.\n * @param type - Type of Supplementary service.\n */\n public async postSSRequest(context: unknown, type: SUPPLEMENTARY_SERVICES): Promise<SSResponse> {\n const request = {\n uri: `${this.mobiusUrl}${SERVICES_ENDPOINT}`,\n method: HTTP_METHODS.POST,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n callId: this.callId,\n },\n };\n\n switch (type) {\n case SUPPLEMENTARY_SERVICES.HOLD: {\n request.uri = `${request.uri}/${CALL_HOLD_SERVICE}/${HOLD_ENDPOINT}`;\n break;\n }\n case SUPPLEMENTARY_SERVICES.RESUME: {\n request.uri = `${request.uri}/${CALL_HOLD_SERVICE}/${RESUME_ENDPOINT}`;\n break;\n }\n case SUPPLEMENTARY_SERVICES.TRANSFER: {\n request.uri = `${request.uri}/${CALL_TRANSFER_SERVICE}/${TRANSFER_ENDPOINT}`;\n const transferContext = context as TransferContext;\n\n if (transferContext.destination) {\n Object.assign(request.body, {blindTransferContext: transferContext});\n Object.assign(request.body, {transferType: TransferType.BLIND});\n } /* istanbul ignore else */ else if (transferContext.transferToCallId) {\n Object.assign(request.body, {consultTransferContext: transferContext});\n Object.assign(request.body, {transferType: TransferType.CONSULT});\n }\n break;\n }\n default: {\n log.warn(`Unknown type for PUT request: ${type}`, {\n file: CALL_FILE,\n method: this.postSSRequest.name,\n });\n }\n }\n\n return this.webex.request(request);\n }\n\n /**\n * Sends Call status to Mobius.\n */\n public async postStatus(): Promise<WebexRequestPayload> {\n return this.webex.request({\n uri: `${this.mobiusUrl}${DEVICES_ENDPOINT_RESOURCE}/${this.deviceId}/${CALLS_ENDPOINT_RESOURCE}/${this.callId}/${CALL_STATUS_RESOURCE}`,\n method: HTTP_METHODS.POST,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n callId: this.callId,\n },\n });\n }\n\n /**\n * This function is called when user attempts to complete transfer(Blind or Consult)\n * It checks if we have a valid transferCallId or transfer target and transfer type.\n *\n * @param transferType - Transfer type.\n * @param transferCallId - Call Id where the current call will be merged for consult transfers.\n * @param transferTarget - Destination for blind transfer.\n */\n public async completeTransfer(\n transferType: TransferType,\n transferCallId?: CallId,\n transferTarget?: string\n ) {\n if (transferType === TransferType.BLIND && transferTarget) {\n /* blind transfer */\n\n log.info(`Initiating Blind transfer with : ${transferTarget}`, {\n file: CALL_FILE,\n method: this.completeTransfer.name,\n });\n\n const context: TransferContext = {\n transferorCallId: this.getCallId(),\n destination: transferTarget,\n };\n\n try {\n await this.postSSRequest(context, SUPPLEMENTARY_SERVICES.TRANSFER);\n this.metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n TRANSFER_ACTION.BLIND,\n METRIC_TYPE.BEHAVIORAL,\n this.getCallId(),\n this.getCorrelationId(),\n undefined\n );\n } catch (e) {\n log.warn(`Blind Transfer failed for correlationId ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.completeTransfer.name,\n });\n\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.TRANSFER_ERROR, error);\n this.submitCallErrorMetric(error, TRANSFER_ACTION.BLIND);\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.completeTransfer.name,\n CALL_FILE\n );\n }\n } else if (transferType === TransferType.CONSULT && transferCallId) {\n /* Consult transfer */\n\n log.info(`Initiating Consult transfer between : ${this.callId} and ${transferCallId}`, {\n file: CALL_FILE,\n method: this.completeTransfer.name,\n });\n\n const context: TransferContext = {\n transferorCallId: this.getCallId(),\n transferToCallId: transferCallId,\n };\n\n try {\n await this.postSSRequest(context, SUPPLEMENTARY_SERVICES.TRANSFER);\n this.metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n TRANSFER_ACTION.CONSULT,\n METRIC_TYPE.BEHAVIORAL,\n this.getCallId(),\n this.getCorrelationId(),\n undefined\n );\n } catch (e) {\n log.warn(`Consult Transfer failed for correlationId ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.completeTransfer.name,\n });\n\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.TRANSFER_ERROR, error);\n this.submitCallErrorMetric(error, TRANSFER_ACTION.CONSULT);\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.completeTransfer.name,\n CALL_FILE\n );\n }\n } else {\n log.warn(\n `Invalid information received, transfer failed for correlationId: ${this.getCorrelationId()}`,\n {\n file: CALL_FILE,\n method: this.completeTransfer.name,\n }\n );\n }\n }\n\n /**\n *\n */\n private async getCallStats(): Promise<CallRtpStats> {\n let stats!: RTCStatsReport;\n\n try {\n stats = await this.mediaConnection.getStats();\n } catch (err) {\n log.warn('Stats collection failed, using dummy stats', {\n file: CALL_FILE,\n method: this.getCallStats.name,\n });\n }\n\n return parseMediaQualityStatistics(stats);\n }\n\n /**\n * .\n *\n * @param roapMessage -.\n */\n private async postMedia(roapMessage: RoapMessage): Promise<WebexRequestPayload> {\n log.log('Posting message to Webex Calling', {\n file: CALL_FILE,\n method: this.postMedia.name,\n });\n\n return this.webex.request({\n uri: `${this.mobiusUrl}${DEVICES_ENDPOINT_RESOURCE}/${this.deviceId}/${CALLS_ENDPOINT_RESOURCE}/${this.callId}/${MEDIA_ENDPOINT_RESOURCE}`,\n method: HTTP_METHODS.POST,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n callId: this.callId,\n localMedia: {\n roap: roapMessage,\n mediaId: uuid(),\n },\n },\n });\n }\n\n /* istanbul ignore next */\n /**\n * Copy SDP's c-line to session level from media level.\n * SPARK-522437\n */\n private addSessionConnection(sdp: string): string {\n const lines: string[] = sdp.split(/\\r\\n|\\r|\\n/);\n const mIndex: number = lines.findIndex((line) => line.startsWith('m='));\n const tIndex: number = lines.findIndex((line) => line.startsWith('t='));\n\n if (mIndex !== -1 && mIndex < lines.length - 1 && lines[mIndex + 1].startsWith('c=')) {\n const cLine: string = lines[mIndex + 1];\n lines.splice(tIndex, 0, cLine);\n }\n\n return lines.join('\\r\\n');\n }\n\n /* istanbul ignore next */\n /**\n * Setup a listener for roap events emitted by the media sdk.\n */\n private mediaRoapEventsListener() {\n this.mediaConnection.on(\n Event.ROAP_MESSAGE_TO_SEND,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async (event: any) => {\n log.info(\n `ROAP message to send (rcv from MEDIA-SDK) :\n \\n type: ${event.roapMessage?.messageType}, seq: ${event.roapMessage.seq} , version: ${event.roapMessage.version}`,\n {}\n );\n\n log.info(`SDP message to send : \\n ${event.roapMessage?.sdp}`, {\n file: CALL_FILE,\n method: this.mediaRoapEventsListener.name,\n });\n\n if (event.roapMessage?.sdp) {\n event.roapMessage.sdp = this.addSessionConnection(event.roapMessage.sdp);\n }\n\n switch (event.roapMessage.messageType) {\n case RoapScenario.OK: {\n const mediaOk = {\n received: false,\n message: event.roapMessage,\n };\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_OK', data: mediaOk});\n break;\n }\n\n case RoapScenario.OFFER: {\n // TODO: Remove these after the Media-Core adds the fix\n const sdpVideoPortZero = event.roapMessage.sdp.replace(\n /^m=(video) (?:\\d+) /gim,\n 'm=$1 0 '\n );\n\n event.roapMessage.sdp = sdpVideoPortZero;\n this.localRoapMessage = event.roapMessage;\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_SETUP', data: event.roapMessage});\n break;\n }\n\n case RoapScenario.ANSWER:\n this.localRoapMessage = event.roapMessage;\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_ANSWER', data: event.roapMessage});\n break;\n\n case RoapScenario.ERROR:\n this.sendMediaStateMachineEvt({type: 'E_ROAP_ERROR', data: event.roapMessage});\n break;\n\n case RoapScenario.OFFER_RESPONSE:\n this.localRoapMessage = event.roapMessage;\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER', data: event.roapMessage});\n break;\n\n default:\n }\n }\n );\n }\n\n /* istanbul ignore next */\n /**\n * Setup a listener for remote track added event emitted by the media sdk.\n */\n private mediaTrackListener() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.mediaConnection.on(Event.REMOTE_TRACK_ADDED, (e: any) => {\n if (e.type === MEDIA_CONNECTION_EVENT_KEYS.MEDIA_TYPE_AUDIO) {\n this.emit(CALL_EVENT_KEYS.REMOTE_MEDIA, e.track);\n }\n });\n }\n\n private onEffectEnabled = () => {\n this.metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_ENABLED,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId\n );\n };\n\n private onEffectDisabled = () => {\n this.metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_DISABLED,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId\n );\n };\n\n private updateTrack = (audioTrack: MediaStreamTrack) => {\n this.mediaConnection.updateLocalTracks({audio: audioTrack});\n };\n\n private registerEffectListener = (addedEffect: TrackEffect) => {\n if (this.localAudioStream) {\n const effect = this.localAudioStream.getEffectByKind(NOISE_REDUCTION_EFFECT);\n\n if (effect === addedEffect) {\n effect.on(EffectEvent.Enabled, this.onEffectEnabled);\n effect.on(EffectEvent.Disabled, this.onEffectDisabled);\n }\n }\n };\n\n private unregisterListeners() {\n if (this.localAudioStream) {\n const effect = this.localAudioStream.getEffectByKind(NOISE_REDUCTION_EFFECT);\n\n if (effect) {\n effect.off(EffectEvent.Enabled, this.onEffectEnabled);\n effect.off(EffectEvent.Disabled, this.onEffectDisabled);\n }\n\n this.localAudioStream.off(LocalStreamEventNames.EffectAdded, this.registerEffectListener);\n this.localAudioStream.off(LocalStreamEventNames.OutputTrackChange, this.updateTrack);\n }\n }\n\n private registerListeners(localAudioStream: LocalMicrophoneStream) {\n localAudioStream.on(LocalStreamEventNames.OutputTrackChange, this.updateTrack);\n\n localAudioStream.on(LocalStreamEventNames.EffectAdded, this.registerEffectListener);\n\n const effect = localAudioStream.getEffectByKind(NOISE_REDUCTION_EFFECT) as any;\n\n if (effect) {\n effect.on(EffectEvent.Enabled, this.onEffectEnabled);\n effect.on(EffectEvent.Disabled, this.onEffectDisabled);\n if (effect.isEnabled) {\n this.onEffectEnabled();\n }\n }\n }\n\n private async delete(): Promise<MobiusCallResponse> {\n const disconnectMetrics = await this.getCallStats();\n\n return this.webex.request({\n uri: `${this.mobiusUrl}${DEVICES_ENDPOINT_RESOURCE}/${this.deviceId}/${CALLS_ENDPOINT_RESOURCE}/${this.callId}`,\n method: HTTP_METHODS.DELETE,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n callId: this.callId,\n metrics: disconnectMetrics,\n causecode: this.disconnectReason.code,\n cause: this.disconnectReason.cause,\n },\n });\n }\n\n /**\n * @param state - Current state of the call state machine.\n * @param error - Error object containing the message and type.\n * @param transferMetricAction - Metric action type incase of a transfer metric.\n */\n private submitCallErrorMetric(error: CallError, transferMetricAction?: TRANSFER_ACTION) {\n if (error.getCallError().errorLayer === ERROR_LAYER.CALL_CONTROL) {\n this.metricManager.submitCallMetric(\n METRIC_EVENT.CALL_ERROR,\n transferMetricAction || this.callStateMachine.state.value.toString(),\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n error\n );\n } else {\n this.metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA_ERROR,\n this.mediaStateMachine.state.value.toString(),\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n this.localRoapMessage.sdp,\n this.remoteRoapMessage?.sdp,\n error\n );\n }\n }\n\n /**\n * Handler for mid call events.\n *\n * @param event - Midcall Events from Mobius.\n */\n public handleMidCallEvent(event: MidCallEvent) {\n const {eventType, eventData} = event;\n\n switch (eventType) {\n case MidCallEventType.CALL_INFO: {\n log.log(`Received Midcall CallInfo Event for correlationId : ${this.correlationId}`, {\n file: CALL_FILE,\n method: 'handleMidCallEvent',\n });\n\n const callerData = eventData as MidCallCallerId;\n\n this.startCallerIdResolution(callerData.callerId);\n\n break;\n }\n\n case MidCallEventType.CALL_STATE: {\n log.log(`Received Midcall call event for correlationId : ${this.correlationId}`, {\n file: CALL_FILE,\n method: 'handleMidCallEvent',\n });\n\n const data = eventData as SupplementaryServiceState;\n\n /* Emit Events as per the state.\n * We will enter this state only when media negotiation is done\n * So, it's safe to emit events from here.\n */\n\n switch (data.callState) {\n case MOBIUS_MIDCALL_STATE.HELD: {\n log.log(`Call is successfully held : ${this.correlationId}`, {\n file: CALL_FILE,\n method: 'handleMidCallEvent',\n });\n\n this.emit(CALL_EVENT_KEYS.HELD, this.correlationId);\n\n this.held = true;\n\n if (this.supplementaryServicesTimer) {\n clearTimeout(this.supplementaryServicesTimer);\n this.supplementaryServicesTimer = undefined;\n }\n\n break;\n }\n\n case MOBIUS_MIDCALL_STATE.CONNECTED: {\n log.log(`Call is successfully resumed : ${this.correlationId}`, {\n file: CALL_FILE,\n method: 'handleMidCallEvent',\n });\n\n this.emit(CALL_EVENT_KEYS.RESUMED, this.correlationId);\n\n this.held = false;\n\n if (this.supplementaryServicesTimer) {\n clearTimeout(this.supplementaryServicesTimer);\n this.supplementaryServicesTimer = undefined;\n }\n\n break;\n }\n\n default: {\n log.warn(\n `Unknown Supplementary service state: ${data.callState} for correlationId : ${this.correlationId}`,\n {\n file: CALL_FILE,\n method: 'handleMidCallEvent',\n }\n );\n }\n }\n\n break;\n }\n\n default: {\n log.warn(`Unknown Midcall type: ${eventType} for correlationId : ${this.correlationId}`, {\n file: CALL_FILE,\n method: 'handleMidCallEvent',\n });\n }\n }\n }\n\n /**\n *\n */\n public getCallerInfo = (): DisplayInformation => this.callerInfo;\n\n /**\n *\n */\n public end = (): void => {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n };\n\n /**\n *\n */\n public doHoldResume = (): void => {\n if (this.held) {\n this.sendCallStateMachineEvt({type: 'E_CALL_RESUME'});\n } else {\n this.sendCallStateMachineEvt({type: 'E_CALL_HOLD'});\n }\n };\n\n /**\n * .\n *\n * @param callerInfo\n */\n public startCallerIdResolution(callerInfo: CallerIdInfo) {\n this.callerInfo = this.callerId.fetchCallerDetails(callerInfo);\n }\n\n /**\n * Sends digit over the established call.\n *\n * @param tone - DTMF tones.\n */\n public sendDigit(tone: string) {\n /* istanbul ignore else */\n try {\n log.info(`Sending digit : ${tone}`, {\n file: CALL_FILE,\n method: 'sendDigit',\n });\n\n this.mediaConnection.insertDTMF(tone);\n } catch (e: any) {\n log.warn(`Unable to send digit on call: ${e.message}`, {\n file: CALL_FILE,\n method: 'sendDigit',\n });\n }\n }\n\n /**\n * Mutes/Unmutes the call.\n *\n * @param localAudioTrack -.\n */\n public mute = (localAudioStream: LocalMicrophoneStream): void => {\n if (localAudioStream) {\n localAudioStream.setUserMuted(!this.muted);\n this.muted = !this.muted;\n } else {\n log.warn(`Did not find a local stream while muting the call ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: 'mute',\n });\n }\n };\n\n /**\n * Change the audio stream of the call.\n *\n * @param newAudioStream - The new audio stream to be used in the call.\n */\n\n public updateMedia = (newAudioStream: LocalMicrophoneStream): void => {\n const localAudioTrack = newAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(\n `Did not find a local track while updating media for call ${this.getCorrelationId()}. Will not update media`,\n {\n file: CALL_FILE,\n method: 'updateMedia',\n }\n );\n\n return;\n }\n\n try {\n this.mediaConnection.updateLocalTracks({\n audio: localAudioTrack,\n });\n\n this.unregisterListeners();\n this.registerListeners(newAudioStream);\n this.localAudioStream = newAudioStream;\n } catch (e: any) {\n log.warn(`Unable to update media on call ${this.getCorrelationId()}. Error: ${e.message}`, {\n file: CALL_FILE,\n method: 'updateMedia',\n });\n }\n };\n\n /**\n * @param broadworksCorrelationInfo\n */\n setBroadworksCorrelationInfo(broadworksCorrelationInfo: string): void {\n this.broadworksCorrelationInfo = broadworksCorrelationInfo;\n }\n\n /**\n *\n */\n getBroadworksCorrelationInfo(): string | undefined {\n return this.broadworksCorrelationInfo;\n }\n\n /**\n * Get call stats for an active call.\n *\n * @returns Promise<CallRtpStats> Call Stats.\n */\n getCallRtpStats(): Promise<CallRtpStats> {\n return this.getCallStats();\n }\n}\n\n/**\n * @param activeUrl\n * @param webex -.\n * @param dest -.\n * @param dir -.\n * @param deviceId -.\n * @param lineId -.\n * @param serverCb\n * @param deleteCb\n * @param indicator - Service Indicator.\n */\nexport const createCall = (\n activeUrl: string,\n webex: WebexSDK,\n dest: CallDetails,\n dir: CallDirection,\n deviceId: string,\n lineId: string,\n deleteCb: DeleteRecordCallBack,\n indicator: ServiceIndicator\n): ICall => new Call(activeUrl, webex, dest, dir, deviceId, lineId, deleteCb, indicator);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_internalMediaCore","require","_xstate","_uuid","_webMediaEffects","_types","_Utils","_types2","_CallError","_constants","_SDKConnector","_interopRequireDefault","_impl","_types3","_types4","_Logger","_CallerId","_types5","_Metrics","_constants2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","Call","exports","_Eventing","_inherits2","_super","activeUrl","webex","destination","direction","deviceId","lineId","deleteCb","indicator","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","callId","correlationId","log","info","concat","file","CALL_FILE","method","setCallId","name","disconnectReason","_ref","_asyncToGenerator2","_regenerator","mark","_callee","roapMessage","wrap","_callee$","_context","prev","next","abrupt","request","uri","mobiusUrl","DEVICES_ENDPOINT_RESOURCE","CALL_ENDPOINT_RESOURCE","HTTP_METHODS","POST","service","ALLOWED_SERVICES","MOBIUS","headers","CISCO_DEVICE_URL","internal","device","url","SPARK_USER_AGENT","CALLING_USER_AGENT","body","callee","type","address","localMedia","roap","mediaId","uuid","stop","_x","metricManager","submitBNRMetric","METRIC_EVENT","BNR_ENABLED","METRIC_TYPE","BEHAVIORAL","BNR_DISABLED","audioTrack","mediaConnection","updateLocalTracks","audio","addedEffect","localAudioStream","effect","getEffectByKind","NOISE_REDUCTION_EFFECT","on","EffectEvent","Enabled","onEffectEnabled","Disabled","onEffectDisabled","callerInfo","sendCallStateMachineEvt","held","setUserMuted","muted","warn","getCorrelationId","newAudioStream","localAudioTrack","outputStream","getAudioTracks","unregisterListeners","registerListeners","message","sdkConnector","SDKConnector","serviceIndicator","getWebex","setWebex","getMetricManager","DEFAULT_LOCAL_CALL_ID","connected","mediaInactivity","earlyMedia","localRoapMessage","receivedRoapOKSeq","mediaNegotiationCompleted","seq","INITIAL_SEQ_NUMBER","callerId","createCallerId","emitObj","emit","CALL_EVENT_KEYS","CALLER_ID","remoteRoapMessage","code","DisconnectCode","NORMAL","cause","DisconnectCause","callMachine","createMachine","schema","context","events","id","initial","states","S_IDLE","E_RECV_CALL_SETUP","target","actions","E_SEND_CALL_SETUP","E_RECV_CALL_DISCONNECT","E_SEND_CALL_DISCONNECT","E_UNKNOWN","S_RECV_CALL_SETUP","E_SEND_CALL_ALERTING","S_SEND_CALL_SETUP","E_RECV_CALL_PROGRESS","E_RECV_CALL_CONNECT","S_RECV_CALL_PROGRESS","S_SEND_CALL_PROGRESS","E_SEND_CALL_CONNECT","S_RECV_CALL_CONNECT","E_CALL_ESTABLISHED","S_SEND_CALL_CONNECT","S_CALL_HOLD","S_CALL_RESUME","S_CALL_ESTABLISHED","E_CALL_HOLD","E_CALL_RESUME","S_RECV_CALL_DISCONNECT","E_CALL_CLEARED","S_SEND_CALL_DISCONNECT","S_UNKNOWN","S_ERROR","S_CALL_CLEARED","incomingCallSetup","event","handleIncomingCallSetup","outgoingCallSetup","handleOutgoingCallSetup","incomingCallProgress","handleIncomingCallProgress","outgoingCallAlerting","handleOutgoingCallAlerting","incomingCallConnect","handleIncomingCallConnect","outgoingCallConnect","handleOutgoingCallConnect","callEstablished","handleCallEstablished","initiateCallHold","handleCallHold","initiateCallResume","handleCallResume","incomingCallDisconnect","handleIncomingCallDisconnect","outgoingCallDisconnect","handleOutgoingCallDisconnect","unknownState","handleUnknownState","mediaMachine","S_ROAP_IDLE","E_RECV_ROAP_OFFER_REQUEST","E_RECV_ROAP_OFFER","E_SEND_ROAP_OFFER","S_RECV_ROAP_OFFER_REQUEST","E_ROAP_OK","E_ROAP_ERROR","S_RECV_ROAP_OFFER","E_SEND_ROAP_ANSWER","S_SEND_ROAP_OFFER","E_RECV_ROAP_ANSWER","S_RECV_ROAP_ANSWER","S_SEND_ROAP_ANSWER","S_ROAP_OK","E_ROAP_TEARDOWN","S_ROAP_ERROR","S_ROAP_TEARDOWN","incomingRoapOffer","handleIncomingRoapOffer","incomingRoapAnswer","handleIncomingRoapAnswer","incomingRoapOfferRequest","handleIncomingRoapOfferRequest","outgoingRoapOffer","handleOutgoingRoapOffer","outgoingRoapAnswer","handleOutgoingRoapAnswer","roapEstablished","handleRoapEstablished","roapError","handleRoapError","callStateMachine","interpret","onTransition","state","value","_stringify","submitCallMetric","CALL","toString","undefined","start","mediaStateMachine","_this$remoteRoapMessa","submitMediaMetric","MEDIA","sdp","_createClass2","key","isMuted","isConnected","isHeld","_handleOutgoingCallSetup","_callee2","_this2","response","errData","_callee2$","_context2","data","post","sent","statusCode","t0","handleCallErrors","error","CALL_ERROR","submitCallErrorMetric","ERROR_LAYER","CALL_CONTROL","interval","_x2","_handleCallHold","_callee4","_this3","_callee4$","_context4","postSSRequest","SUPPLEMENTARY_SERVICES","HOLD","supplementaryServicesTimer","setTimeout","_callee3","errorContext","callError","_callee3$","_context3","createCallError","ERROR_TYPE","TIMEOUT","HOLD_ERROR","SUPPLEMENTARY_SERVICES_TIMEOUT","_x3","_handleCallResume","_callee6","_this4","_callee6$","_context6","RESUME","_callee5","_callee5$","_context5","RESUME_ERROR","_x4","_data$callProgressDat","callProgressData","inbandMedia","startCallerIdResolution","PROGRESS","roapMessageReceived","_handleOutgoingCallAlerting","_callee7","_this5","res","_callee7$","_context7","patch","MobiusCallState","ALERTING","_x5","CONNECT","_handleOutgoingCallConnect","_callee8","_this6","_callee8$","_context8","CONNECTED","_x6","_handleIncomingCallDisconnect","_callee9","_callee9$","_context9","setDisconnectReason","delete","sessionTimer","clearInterval","close","sendMediaStateMachineEvt","DISCONNECT","_x7","_handleOutgoingCallDisconnect","_callee10","_callee10$","_context10","_x8","_this7","ESTABLISHED","setInterval","_callee11","_callee11$","_context11","postStatus","DEFAULT_SESSION_TIMER","_handleUnknownState","_callee12","eventData","_callee12$","_context12","media","_x9","getEmitterCallback","_this8","clearTimeout","_handleRoapEstablished","_callee13","_this9","_ref5","received","_callee13$","_context13","postMedia","messageType","_x10","_x11","_handleRoapError","_callee14","_this10","_callee14$","_context14","_x12","_x13","_handleOutgoingRoapOffer","_callee15","_this11","_callee15$","_context15","initiateOffer","_x14","_x15","_handleOutgoingRoapAnswer","_callee16","_this12","_callee16$","_context16","_x16","_x17","initMediaConnection","debugId","RoapMediaConnection","skipInactiveTransceivers","iceServers","iceCandidatesTimeout","ICE_CANDIDATES_TIMEOUT","sdpMunging","convertPort9to0","addContentSlides","copyClineToSessionLevel","localTracks","video","screenShareVideo","send","MEDIA_INACTIVITY","CallDirection","OUTBOUND","BUSY","_answer","_callee17","_callee17$","_context17","enabled","mediaRoapEventsListener","mediaTrackListener","answer","_x18","_dial","_callee18","_callee18$","_context18","dial","_x19","_patch","_callee19","_callee19$","_context19","CALLS_ENDPOINT_RESOURCE","PATCH","callState","_x20","_postSSRequest","_callee20","transferContext","_callee20$","_context20","SERVICES_ENDPOINT","TRANSFER","CALL_HOLD_SERVICE","HOLD_ENDPOINT","RESUME_ENDPOINT","CALL_TRANSFER_SERVICE","TRANSFER_ENDPOINT","_assign","blindTransferContext","transferType","TransferType","BLIND","transferToCallId","consultTransferContext","CONSULT","_x21","_x22","_postStatus","_callee21","_callee21$","_context21","CALL_STATUS_RESOURCE","_completeTransfer","_callee22","transferCallId","transferTarget","_this13","_context22","_errData","_callee22$","_context23","completeTransfer","transferorCallId","getCallId","TRANSFER_ACTION","TRANSFER_ERROR","t1","_x23","_x24","_x25","_getCallStats","_callee23","stats","_callee23$","_context24","getStats","getCallStats","parseMediaQualityStatistics","_postMedia","_callee24","_callee24$","_context25","MEDIA_ENDPOINT_RESOURCE","_x26","_this14","MediaConnectionEventNames","ROAP_MESSAGE_TO_SEND","_ref6","_callee25","_event$roapMessage","_event$roapMessage2","mediaOk","sdpVideoPortZero","_callee25$","_context26","version","RoapScenario","OK","OFFER","ANSWER","ERROR","OFFER_RESPONSE","replace","_x27","_this15","REMOTE_TRACK_ADDED","MEDIA_CONNECTION_EVENT_KEYS","MEDIA_TYPE_AUDIO","REMOTE_MEDIA","track","off","LocalStreamEventNames","EffectAdded","registerEffectListener","OutputTrackChange","updateTrack","isEnabled","_delete2","_callee26","disconnectMetrics","_callee26$","_context27","DELETE","metrics","causecode","_delete","transferMetricAction","getCallError","errorLayer","_this$remoteRoapMessa2","MEDIA_ERROR","handleMidCallEvent","eventType","MidCallEventType","CALL_INFO","callerData","CALL_STATE","MOBIUS_MIDCALL_STATE","HELD","RESUMED","fetchCallerDetails","sendDigit","tone","insertDTMF","setBroadworksCorrelationInfo","broadworksCorrelationInfo","getBroadworksCorrelationInfo","getCallRtpStats","Eventing","createCall","dest","dir"],"sources":["call.ts"],"sourcesContent":["import {\n MediaConnectionEventNames,\n LocalMicrophoneStream,\n LocalStreamEventNames,\n RoapMediaConnection,\n} from '@webex/internal-media-core';\nimport {createMachine, interpret} from 'xstate';\nimport {v4 as uuid} from 'uuid';\nimport {EffectEvent, TrackEffect} from '@webex/web-media-effects';\nimport {ERROR_LAYER, ERROR_TYPE, ErrorContext} from '../../Errors/types';\nimport {handleCallErrors, parseMediaQualityStatistics} from '../../common/Utils';\nimport {\n ALLOWED_SERVICES,\n CallDetails,\n CallDirection,\n CallId,\n CorrelationId,\n DisplayInformation,\n HTTP_METHODS,\n ServiceIndicator,\n WebexRequestPayload,\n} from '../../common/types';\nimport {CallError, createCallError} from '../../Errors/catalog/CallError';\n/* eslint-disable tsdoc/syntax */\n/* eslint-disable no-param-reassign */\nimport {\n CALL_ENDPOINT_RESOURCE,\n CALL_FILE,\n CALL_HOLD_SERVICE,\n CALL_STATUS_RESOURCE,\n CALL_TRANSFER_SERVICE,\n CALLING_USER_AGENT,\n CALLS_ENDPOINT_RESOURCE,\n CISCO_DEVICE_URL,\n DEFAULT_LOCAL_CALL_ID,\n DEFAULT_SESSION_TIMER,\n DEVICES_ENDPOINT_RESOURCE,\n HOLD_ENDPOINT,\n ICE_CANDIDATES_TIMEOUT,\n INITIAL_SEQ_NUMBER,\n MEDIA_ENDPOINT_RESOURCE,\n NOISE_REDUCTION_EFFECT,\n RESUME_ENDPOINT,\n SPARK_USER_AGENT,\n SUPPLEMENTARY_SERVICES_TIMEOUT,\n TRANSFER_ENDPOINT,\n} from '../constants';\nimport SDKConnector from '../../SDKConnector';\nimport {Eventing} from '../../Events/impl';\nimport {\n CALL_EVENT_KEYS,\n CallerIdInfo,\n CallEvent,\n CallEventTypes,\n MEDIA_CONNECTION_EVENT_KEYS,\n MOBIUS_MIDCALL_STATE,\n RoapEvent,\n RoapMessage,\n SUPPLEMENTARY_SERVICES,\n} from '../../Events/types';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {\n CallRtpStats,\n DeleteRecordCallBack,\n DisconnectCause,\n DisconnectCode,\n DisconnectReason,\n ICall,\n MediaContext,\n MidCallCallerId,\n MidCallEvent,\n MidCallEventType,\n MobiusCallData,\n MobiusCallResponse,\n MobiusCallState,\n PatchResponse,\n RoapScenario,\n SSResponse,\n SupplementaryServiceState,\n TransferContext,\n TransferType,\n} from './types';\nimport log from '../../Logger';\nimport {ICallerId} from './CallerId/types';\nimport {createCallerId} from './CallerId';\nimport {IMetricManager, METRIC_TYPE, METRIC_EVENT, TRANSFER_ACTION} from '../../Metrics/types';\nimport {getMetricManager} from '../../Metrics';\nimport {SERVICES_ENDPOINT} from '../../common/constants';\n\n/**\n *\n */\nexport class Call extends Eventing<CallEventTypes> implements ICall {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private destination: CallDetails;\n\n private direction: CallDirection;\n\n private callId: CallId;\n\n private correlationId: CorrelationId;\n\n private deviceId: string;\n\n public lineId: string;\n\n private disconnectReason: DisconnectReason;\n\n private callStateMachine;\n\n private mediaStateMachine;\n\n private seq: number; // TODO: remove later\n\n /* TODO: Need to change the type from any to RoapMediaConnection */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public mediaConnection?: any;\n\n private earlyMedia: boolean;\n\n private connected: boolean;\n\n private mediaInactivity: boolean;\n\n private callerInfo: DisplayInformation;\n\n private localRoapMessage: RoapMessage; // Use it for new offer\n\n private mobiusUrl!: string;\n\n private remoteRoapMessage: RoapMessage | null;\n\n private deleteCb: DeleteRecordCallBack;\n\n private callerId: ICallerId;\n\n private sessionTimer?: NodeJS.Timer;\n\n /* Used to wait for final responses for supplementary services */\n private supplementaryServicesTimer?: NodeJS.Timeout;\n\n private muted: boolean;\n\n private held: boolean;\n\n private metricManager: IMetricManager;\n\n private broadworksCorrelationInfo?: string; // Used in WxCC calls\n\n private serviceIndicator: ServiceIndicator;\n\n private mediaNegotiationCompleted: boolean;\n\n private receivedRoapOKSeq: number;\n\n private localAudioStream?: LocalMicrophoneStream;\n\n /**\n * Getter to check if the call is muted or not.\n *\n * @returns - Boolean.\n */\n public isMuted() {\n return this.muted;\n }\n\n /**\n * Getter to check if the call is connected or not.\n *\n * @returns - Boolean.\n */\n public isConnected() {\n return this.connected;\n }\n\n /**\n * Getter to check if the call is held or not.\n *\n * @returns - Boolean.\n */\n public isHeld() {\n return this.held;\n }\n\n /**\n * @ignore\n */\n constructor(\n activeUrl: string,\n webex: WebexSDK,\n destination: CallDetails,\n direction: CallDirection,\n deviceId: string,\n lineId: string,\n deleteCb: DeleteRecordCallBack,\n indicator: ServiceIndicator\n ) {\n super();\n this.destination = destination;\n this.direction = direction;\n this.sdkConnector = SDKConnector;\n this.deviceId = deviceId;\n this.serviceIndicator = indicator;\n this.lineId = lineId;\n\n /* istanbul ignore else */\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.metricManager = getMetricManager(this.webex, this.serviceIndicator);\n this.callId = `${DEFAULT_LOCAL_CALL_ID}_${uuid()}`;\n this.correlationId = uuid();\n this.deleteCb = deleteCb;\n this.connected = false;\n this.mediaInactivity = false;\n this.held = false;\n this.earlyMedia = false;\n this.callerInfo = {} as DisplayInformation;\n this.localRoapMessage = {} as RoapMessage;\n\n this.mobiusUrl = activeUrl;\n this.receivedRoapOKSeq = 0;\n this.mediaNegotiationCompleted = false;\n\n log.info(`Webex Calling Url:- ${this.mobiusUrl}`, {\n file: CALL_FILE,\n method: 'constructor',\n });\n\n this.seq = INITIAL_SEQ_NUMBER;\n this.callerId = createCallerId(webex, (callerInfo: DisplayInformation) => {\n this.callerInfo = callerInfo;\n const emitObj = {\n correlationId: this.correlationId,\n callerId: this.callerInfo,\n };\n\n this.emit(CALL_EVENT_KEYS.CALLER_ID, emitObj);\n });\n this.remoteRoapMessage = null;\n this.disconnectReason = {code: DisconnectCode.NORMAL, cause: DisconnectCause.NORMAL};\n\n const callMachine = createMachine(\n {\n schema: {\n context: {},\n // The events this machine handles\n events: {} as CallEvent,\n },\n id: 'call-state',\n initial: 'S_IDLE',\n context: {},\n states: {\n S_IDLE: {\n on: {\n E_RECV_CALL_SETUP: {\n target: 'S_RECV_CALL_SETUP',\n actions: ['incomingCallSetup'],\n },\n E_SEND_CALL_SETUP: {\n target: 'S_SEND_CALL_SETUP',\n actions: ['outgoingCallSetup'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n\n /* CALL SETUP */\n S_RECV_CALL_SETUP: {\n on: {\n E_SEND_CALL_ALERTING: {\n target: 'S_SEND_CALL_PROGRESS',\n actions: ['outgoingCallAlerting'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n S_SEND_CALL_SETUP: {\n on: {\n E_RECV_CALL_PROGRESS: {\n target: 'S_RECV_CALL_PROGRESS',\n actions: ['incomingCallProgress'],\n },\n E_RECV_CALL_CONNECT: {\n target: 'S_RECV_CALL_CONNECT',\n actions: ['incomingCallConnect'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n\n /* CALL_PROGRESS */\n S_RECV_CALL_PROGRESS: {\n on: {\n E_RECV_CALL_CONNECT: {\n target: 'S_RECV_CALL_CONNECT',\n actions: ['incomingCallConnect'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n // Possible to have multiple E_RECV_CALL_PROGRESS events, handler should handle it\n E_RECV_CALL_PROGRESS: {\n target: 'S_RECV_CALL_PROGRESS',\n actions: ['incomingCallProgress'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n S_SEND_CALL_PROGRESS: {\n on: {\n E_SEND_CALL_CONNECT: {\n target: 'S_SEND_CALL_CONNECT',\n actions: ['outgoingCallConnect'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n\n /* CALL_CONNECT */\n S_RECV_CALL_CONNECT: {\n on: {\n E_CALL_ESTABLISHED: {\n target: 'S_CALL_ESTABLISHED',\n actions: ['callEstablished'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n S_SEND_CALL_CONNECT: {\n on: {\n E_CALL_ESTABLISHED: {\n target: 'S_CALL_ESTABLISHED',\n actions: ['callEstablished'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n S_CALL_HOLD: {\n on: {\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_CALL_ESTABLISHED: {\n target: 'S_CALL_ESTABLISHED',\n actions: ['callEstablished'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n S_CALL_RESUME: {\n on: {\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_CALL_ESTABLISHED: {\n target: 'S_CALL_ESTABLISHED',\n actions: ['callEstablished'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n /* CALL_ESTABLISHED */\n S_CALL_ESTABLISHED: {\n on: {\n E_CALL_HOLD: {\n target: 'S_CALL_HOLD',\n actions: ['initiateCallHold'],\n },\n E_CALL_RESUME: {\n target: 'S_CALL_RESUME',\n actions: ['initiateCallResume'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_CALL_ESTABLISHED: {\n target: 'S_CALL_ESTABLISHED',\n actions: ['callEstablished'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n\n /* CALL_DISCONNECT */\n S_RECV_CALL_DISCONNECT: {\n on: {\n E_CALL_CLEARED: 'S_CALL_CLEARED',\n },\n },\n S_SEND_CALL_DISCONNECT: {\n on: {\n E_CALL_CLEARED: 'S_CALL_CLEARED',\n },\n },\n\n /* UNKNOWN_EVENTS */\n S_UNKNOWN: {\n on: {\n E_CALL_CLEARED: 'S_CALL_CLEARED',\n },\n },\n\n /* ERROR_EVENTS */\n S_ERROR: {\n on: {\n E_CALL_CLEARED: 'S_CALL_CLEARED',\n },\n },\n\n /* End of our state-machine */\n S_CALL_CLEARED: {\n type: 'final',\n },\n },\n },\n {\n actions: {\n /**\n * .\n *\n * @param context\n * @param event\n */\n incomingCallSetup: (context, event: CallEvent) => this.handleIncomingCallSetup(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n outgoingCallSetup: (context, event: CallEvent) => this.handleOutgoingCallSetup(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n incomingCallProgress: (context, event: CallEvent) =>\n this.handleIncomingCallProgress(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n outgoingCallAlerting: (context, event: CallEvent) =>\n this.handleOutgoingCallAlerting(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n incomingCallConnect: (context, event: CallEvent) => this.handleIncomingCallConnect(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n outgoingCallConnect: (context, event: CallEvent) => this.handleOutgoingCallConnect(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n callEstablished: (context, event: CallEvent) => this.handleCallEstablished(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n initiateCallHold: (context, event: CallEvent) => this.handleCallHold(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n initiateCallResume: (context, event: CallEvent) => this.handleCallResume(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n incomingCallDisconnect: (context, event: CallEvent) =>\n this.handleIncomingCallDisconnect(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n outgoingCallDisconnect: (context, event: CallEvent) =>\n this.handleOutgoingCallDisconnect(event),\n /**\n * .\n *\n * @param context\n * @param event\n */\n unknownState: (context, event: CallEvent) => this.handleUnknownState(event),\n },\n }\n );\n\n const mediaMachine = createMachine(\n {\n schema: {\n // The context (extended state) of the machine\n context: {},\n // The events this machine handles\n events: {} as RoapEvent,\n },\n id: 'roap-state',\n initial: 'S_ROAP_IDLE',\n context: {},\n states: {\n S_ROAP_IDLE: {\n on: {\n E_RECV_ROAP_OFFER_REQUEST: {\n target: 'S_RECV_ROAP_OFFER_REQUEST',\n actions: ['incomingRoapOfferRequest'],\n },\n E_RECV_ROAP_OFFER: {\n target: 'S_RECV_ROAP_OFFER',\n actions: ['incomingRoapOffer'],\n },\n E_SEND_ROAP_OFFER: {\n target: 'S_SEND_ROAP_OFFER',\n actions: ['outgoingRoapOffer'],\n },\n },\n },\n S_RECV_ROAP_OFFER_REQUEST: {\n on: {\n E_SEND_ROAP_OFFER: {\n target: 'S_SEND_ROAP_OFFER',\n actions: ['outgoingRoapOffer'],\n },\n E_ROAP_OK: {\n target: 'S_ROAP_OK',\n actions: ['roapEstablished'],\n },\n E_ROAP_ERROR: {\n target: 'S_ROAP_ERROR',\n actions: ['roapError'],\n },\n },\n },\n S_RECV_ROAP_OFFER: {\n on: {\n E_SEND_ROAP_ANSWER: {\n target: 'S_SEND_ROAP_ANSWER',\n actions: ['outgoingRoapAnswer'],\n },\n E_ROAP_OK: {\n target: 'S_ROAP_OK',\n actions: ['roapEstablished'],\n },\n E_ROAP_ERROR: {\n target: 'S_ROAP_ERROR',\n actions: ['roapError'],\n },\n },\n },\n S_SEND_ROAP_OFFER: {\n on: {\n E_RECV_ROAP_ANSWER: {\n target: 'S_RECV_ROAP_ANSWER',\n actions: ['incomingRoapAnswer'],\n },\n E_SEND_ROAP_ANSWER: {\n target: 'S_SEND_ROAP_ANSWER',\n actions: ['outgoingRoapAnswer'],\n },\n E_SEND_ROAP_OFFER: {\n target: 'S_SEND_ROAP_OFFER',\n actions: ['outgoingRoapOffer'],\n },\n E_ROAP_ERROR: {\n target: 'S_ROAP_ERROR',\n actions: ['roapError'],\n },\n },\n },\n S_RECV_ROAP_ANSWER: {\n on: {\n E_ROAP_OK: {\n target: 'S_ROAP_OK',\n actions: ['roapEstablished'],\n },\n E_ROAP_ERROR: {\n target: 'S_ROAP_ERROR',\n actions: ['roapError'],\n },\n },\n },\n S_SEND_ROAP_ANSWER: {\n on: {\n E_RECV_ROAP_OFFER_REQUEST: {\n target: 'S_RECV_ROAP_OFFER_REQUEST',\n actions: ['incomingRoapOfferRequest'],\n },\n E_RECV_ROAP_OFFER: {\n target: 'S_RECV_ROAP_OFFER',\n actions: ['incomingRoapOffer'],\n },\n E_ROAP_OK: {\n target: 'S_ROAP_OK',\n actions: ['roapEstablished'],\n },\n E_SEND_ROAP_ANSWER: {\n target: 'S_SEND_ROAP_ANSWER',\n actions: ['outgoingRoapAnswer'],\n },\n E_ROAP_ERROR: {\n target: 'S_ROAP_ERROR',\n actions: ['roapError'],\n },\n },\n },\n S_ROAP_OK: {\n on: {\n E_RECV_ROAP_OFFER_REQUEST: {\n target: 'S_RECV_ROAP_OFFER_REQUEST',\n actions: ['incomingRoapOfferRequest'],\n },\n E_RECV_ROAP_OFFER: {\n target: 'S_RECV_ROAP_OFFER',\n actions: ['incomingRoapOffer'],\n },\n E_ROAP_OK: {\n target: 'S_ROAP_OK',\n actions: ['roapEstablished'],\n },\n E_SEND_ROAP_OFFER: {\n target: 'S_SEND_ROAP_OFFER',\n actions: ['outgoingRoapOffer'],\n },\n E_ROAP_ERROR: {\n target: 'S_ROAP_ERROR',\n actions: ['roapError'],\n },\n E_ROAP_TEARDOWN: {\n target: 'S_ROAP_TEARDOWN',\n },\n },\n },\n S_ROAP_ERROR: {\n on: {\n E_ROAP_TEARDOWN: {\n target: 'S_ROAP_TEARDOWN',\n },\n E_RECV_ROAP_OFFER_REQUEST: {\n target: 'S_RECV_ROAP_OFFER_REQUEST',\n actions: ['incomingRoapOfferRequest'],\n },\n E_RECV_ROAP_OFFER: {\n target: 'S_RECV_ROAP_OFFER',\n actions: ['incomingRoapOffer'],\n },\n E_RECV_ROAP_ANSWER: {\n target: 'S_RECV_ROAP_ANSWER',\n actions: ['incomingRoapAnswer'],\n },\n E_ROAP_OK: {\n target: 'S_ROAP_OK',\n actions: ['roapEstablished'],\n },\n },\n },\n S_ROAP_TEARDOWN: {\n type: 'final',\n },\n },\n },\n {\n actions: {\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n incomingRoapOffer: (context: MediaContext, event: RoapEvent) =>\n this.handleIncomingRoapOffer(context, event),\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n incomingRoapAnswer: (context: MediaContext, event: RoapEvent) =>\n this.handleIncomingRoapAnswer(context, event),\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n incomingRoapOfferRequest: (context: MediaContext, event: RoapEvent) =>\n this.handleIncomingRoapOfferRequest(context, event),\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n outgoingRoapOffer: (context: MediaContext, event: RoapEvent) =>\n this.handleOutgoingRoapOffer(context, event),\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n outgoingRoapAnswer: (context: MediaContext, event: RoapEvent) =>\n this.handleOutgoingRoapAnswer(context, event),\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n roapEstablished: (context: MediaContext, event: RoapEvent) =>\n this.handleRoapEstablished(context, event),\n /**\n * .\n *\n * @param context -.\n * @param event -.\n */\n roapError: (context: MediaContext, event: RoapEvent) =>\n this.handleRoapError(context, event),\n },\n }\n );\n\n this.callStateMachine = interpret(callMachine)\n .onTransition((state, event) => {\n log.log(\n `Call StateMachine:- state=${state.value}, event=${JSON.stringify(event.type)}`,\n {}\n );\n if (state.value !== 'S_UNKNOWN') {\n this.metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n state.value.toString(),\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n undefined\n );\n }\n })\n .start();\n\n this.mediaStateMachine = interpret(mediaMachine)\n .onTransition((state, event) => {\n log.log(\n `Media StateMachine:- state=${state.value}, event=${JSON.stringify(event.type)}`,\n {}\n );\n if (state.value !== 'S_ROAP_ERROR') {\n this.metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA,\n state.value.toString(),\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n this.localRoapMessage.sdp,\n this.remoteRoapMessage?.sdp,\n undefined\n );\n }\n })\n .start();\n this.muted = false;\n }\n\n /**\n * Handle incoming Call setups.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private handleIncomingCallSetup(event: CallEvent) {\n log.info(`handleIncomingCallSetup: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleIncomingCallSetup.name,\n });\n\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_ALERTING'});\n }\n\n /**\n * Handle outgoing Call setups.\n * The handler sends a Post Message to the remote with ROAP body\n * as offer. We also set the callId here based on the response received.\n *\n * @param event - Call Events.\n */\n private async handleOutgoingCallSetup(event: CallEvent) {\n log.info(`handleOutgoingCallSetup: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleOutgoingCallSetup.name,\n });\n\n const message = event.data as RoapMessage;\n\n try {\n const response = await this.post(message);\n\n log.log(`handleOutgoingCallSetup: Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallSetup.name,\n });\n this.setCallId(response.body.callId);\n } catch (e) {\n log.warn('Failed to setup the call', {\n file: CALL_FILE,\n method: this.handleOutgoingCallSetup.name,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleOutgoingCallSetup.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle Call Hold.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleCallHold(event: CallEvent) {\n log.info(`handleCallHold: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleCallHold.name,\n });\n\n try {\n const response = await this.postSSRequest(undefined, SUPPLEMENTARY_SERVICES.HOLD);\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: this.handleCallHold.name,\n });\n\n /*\n * Avoid setting http response timeout if held event is already\n * received from Mobius and forwarded towards calling client\n */\n if (this.isHeld() === false) {\n this.supplementaryServicesTimer = setTimeout(async () => {\n const errorContext = {file: CALL_FILE, method: this.handleCallHold.name};\n\n log.warn('Hold response timed out', {\n file: CALL_FILE,\n method: this.handleCallHold.name,\n });\n\n const callError = createCallError(\n 'An error occurred while placing the call on hold. Wait a moment and try again.',\n errorContext as ErrorContext,\n ERROR_TYPE.TIMEOUT,\n this.getCorrelationId(),\n ERROR_LAYER.CALL_CONTROL\n );\n\n this.emit(CALL_EVENT_KEYS.HOLD_ERROR, callError);\n this.submitCallErrorMetric(callError);\n }, SUPPLEMENTARY_SERVICES_TIMEOUT);\n }\n } catch (e) {\n log.warn('Failed to put the call on hold', {\n file: CALL_FILE,\n method: this.handleCallHold.name,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.HOLD_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleOutgoingCallSetup.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle Call Resume.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleCallResume(event: CallEvent) {\n log.info(`handleCallResume: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleCallResume.name,\n });\n\n try {\n const response = await this.postSSRequest(undefined, SUPPLEMENTARY_SERVICES.RESUME);\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: this.handleCallResume.name,\n });\n\n /*\n * Avoid setting http response timeout if connected event is already\n * received from Mobius on resuming the call and forwarded towards calling client\n */\n if (this.isHeld() === true) {\n this.supplementaryServicesTimer = setTimeout(async () => {\n const errorContext = {file: CALL_FILE, method: this.handleCallResume.name};\n\n log.warn('Resume response timed out', {\n file: CALL_FILE,\n method: this.handleCallResume.name,\n });\n\n const callError = createCallError(\n 'An error occurred while resuming the call. Wait a moment and try again.',\n errorContext as ErrorContext,\n ERROR_TYPE.TIMEOUT,\n this.getCorrelationId(),\n ERROR_LAYER.CALL_CONTROL\n );\n\n this.emit(CALL_EVENT_KEYS.RESUME_ERROR, callError);\n this.submitCallErrorMetric(callError);\n }, SUPPLEMENTARY_SERVICES_TIMEOUT);\n }\n } catch (e) {\n log.warn('Failed to resume the call', {\n file: CALL_FILE,\n method: this.handleCallResume.name,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.RESUME_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleOutgoingCallSetup.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle incoming Call Progress.\n *\n * @param event - Call Events.\n */\n private handleIncomingCallProgress(event: CallEvent) {\n log.info(`handleIncomingCallProgress: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleIncomingCallProgress.name,\n });\n const data = event.data as MobiusCallData;\n\n if (data?.callProgressData?.inbandMedia) {\n log.log('Inband media present. Setting Early Media flag', {\n file: CALL_FILE,\n method: this.handleIncomingCallProgress.name,\n });\n this.earlyMedia = true;\n } else {\n log.log('Inband media not present.', {\n file: CALL_FILE,\n method: this.handleIncomingCallProgress.name,\n });\n }\n\n if (data?.callerId) {\n log.info('Processing Caller-Id data', {\n file: CALL_FILE,\n method: this.handleIncomingCallProgress.name,\n });\n this.startCallerIdResolution(data.callerId);\n }\n this.emit(CALL_EVENT_KEYS.PROGRESS, this.correlationId);\n }\n\n /**\n * Handle incoming Call Progress.\n *\n * @param context\n * @param event - Roap Events.\n */\n private handleIncomingRoapOfferRequest(context: MediaContext, event: RoapEvent) {\n log.info(`handleIncomingRoapOfferRequest: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleIncomingRoapOfferRequest.name,\n });\n const message = event.data as RoapMessage;\n\n if (!this.mediaConnection) {\n log.info('Media connection is not up, buffer the remote Offer Request for later handling', {\n file: CALL_FILE,\n method: this.handleIncomingRoapOfferRequest.name,\n });\n\n this.seq = message.seq;\n log.info(`Setting Sequence No: ${this.seq}`, {\n file: CALL_FILE,\n method: this.handleIncomingRoapOfferRequest.name,\n });\n\n this.remoteRoapMessage = message;\n } else if (this.receivedRoapOKSeq === message.seq - 2) {\n log.info('Waiting for Roap OK, buffer the remote Offer Request for later handling', {\n file: CALL_FILE,\n method: this.handleIncomingRoapOfferRequest.name,\n });\n\n this.remoteRoapMessage = message;\n } else {\n message.seq = this.seq + 1;\n this.seq = message.seq;\n this.mediaConnection.roapMessageReceived(message);\n }\n }\n\n /**\n * Handle Outgoing Call Progress.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleOutgoingCallAlerting(event: CallEvent) {\n log.info(`handleOutgoingCallAlerting: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleOutgoingCallAlerting.name,\n });\n\n try {\n const res = await this.patch(MobiusCallState.ALERTING);\n\n log.log(`PATCH response: ${res.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallAlerting.name,\n });\n } catch (err) {\n log.warn('Failed to signal call progression', {\n file: CALL_FILE,\n method: this.handleOutgoingCallAlerting.name,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleOutgoingCallAlerting.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle incoming Call Connect.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private handleIncomingCallConnect(event: CallEvent) {\n log.info(`handleIncomingCallConnect: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleIncomingCallConnect.name,\n });\n this.emit(CALL_EVENT_KEYS.CONNECT, this.correlationId);\n\n /* In case of Early Media , media negotiations would have already started\n * So we can directly go to call established state */\n\n if (this.earlyMedia || this.mediaNegotiationCompleted) {\n this.mediaNegotiationCompleted = false;\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }\n }\n\n /**\n * Handle outgoing Call Connect.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleOutgoingCallConnect(event: CallEvent) {\n log.info(`handleOutgoingCallConnect: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleOutgoingCallConnect.name,\n });\n\n /* We should have received an Offer by now */\n if (!this.remoteRoapMessage) {\n log.warn('Offer not yet received from remote end... Exiting', {\n file: CALL_FILE,\n method: this.handleOutgoingCallConnect.name,\n });\n\n return;\n }\n\n try {\n /* Start Offer/Answer as we might have buffered the offer by now */\n this.mediaConnection.roapMessageReceived(this.remoteRoapMessage);\n\n /* send call_connect PATCH */\n const res = await this.patch(MobiusCallState.CONNECTED);\n\n log.log(`PATCH response: ${res.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallConnect.name,\n });\n } catch (err) {\n log.warn('Failed to connect the call', {\n file: CALL_FILE,\n method: this.handleOutgoingCallConnect.name,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleOutgoingCallConnect.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle incoming Call Disconnect.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleIncomingCallDisconnect(event: CallEvent) {\n log.info(`handleIncomingCallDisconnect: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleIncomingCallDisconnect.name,\n });\n\n this.setDisconnectReason();\n\n try {\n const response = await this.delete();\n\n log.log(`handleOutgoingCallDisconnect: Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: this.handleIncomingCallDisconnect.name,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: this.handleIncomingCallDisconnect.name,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n /* Clear the stream listeners */\n this.unregisterListeners();\n\n /* istanbul ignore else */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {file: CALL_FILE, method: 'handleIncomingCallDisconnect'});\n }\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.correlationId);\n }\n\n /**\n * Handle outgoing Call Disconnect.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleOutgoingCallDisconnect(event: CallEvent) {\n this.setDisconnectReason();\n\n try {\n const response = await this.delete();\n\n log.log(`handleOutgoingCallDisconnect: Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallDisconnect.name,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: this.handleOutgoingCallDisconnect.name,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n /* Clear the stream listeners */\n this.unregisterListeners();\n\n /* istanbul ignore else */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {file: CALL_FILE, method: 'handleOutgoingCallDisconnect'});\n }\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n }\n\n /**\n * Handle Call Established - Roap related negotiations.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private handleCallEstablished(event: CallEvent) {\n log.info(`handleCallEstablished: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleCallEstablished.name,\n });\n\n this.emit(CALL_EVENT_KEYS.ESTABLISHED, this.correlationId);\n\n /* Reset Early dialog parameters */\n this.earlyMedia = false;\n\n this.connected = true;\n\n /* Session timers need to be reset at all offer/answer exchanges */\n if (this.sessionTimer) {\n log.log('Resetting session timer', {\n file: CALL_FILE,\n method: 'handleCallEstablished',\n });\n clearInterval(this.sessionTimer);\n }\n\n this.sessionTimer = setInterval(async () => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const res = await this.postStatus();\n\n log.info(`Session refresh successful`, {\n file: CALL_FILE,\n method: 'handleCallEstablished',\n });\n } catch (err: unknown) {\n const error = <WebexRequestPayload>err;\n\n /* We are clearing the timer here as all are error scenarios. Only scenario where\n * timer reset won't be required is 503 with retry after. But that case will\n * be handled automatically as Mobius will also reset timer when we post status\n * in retry-after scenario.\n */\n /* istanbul ignore next */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n handleCallErrors(\n (callError: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, callError);\n this.submitCallErrorMetric(callError);\n },\n ERROR_LAYER.CALL_CONTROL,\n (interval: number) => {\n setTimeout(() => {\n /* We first post the status and then recursively call the handler which\n * starts the timer again\n */\n this.postStatus();\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }, interval * 1000);\n },\n this.getCorrelationId(),\n error,\n this.handleCallEstablished.name,\n CALL_FILE\n );\n }\n }, DEFAULT_SESSION_TIMER);\n }\n\n /**\n * Handle Unknown events.\n *\n * @param event - Call Events.\n */\n private async handleUnknownState(event: CallEvent) {\n log.info(`handleUnknownState: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: this.handleUnknownState.name,\n });\n\n /* We are handling errors at the source , in this state we just log and\n * clear the resources\n */\n\n const eventData = event.data as {media: boolean};\n\n if (!eventData?.media) {\n log.warn('Call failed due to signalling issue', {\n file: CALL_FILE,\n method: this.handleUnknownState.name,\n });\n }\n\n /* We need to clear the call at Mobius too. For delete failure\n * error handling is not required\n */\n\n try {\n this.setDisconnectReason();\n const response = await this.delete();\n\n log.log(`handleOutgoingCallDisconnect: Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: this.handleUnknownState.name,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: this.handleUnknownState.name,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: this.handleUnknownState.name,\n });\n }\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n }\n\n /**\n * Returns an error emitter callback method for handleCallErrors which can be used during\n * midcall and call setup scenarios.\n * Emits Call errors for UI Client\n * Sends call error metrics\n * Handles further state machine changes.\n *\n * @param errData - Instance of CallError.\n */\n private getEmitterCallback(errData: MobiusCallResponse) {\n return (error: CallError) => {\n switch (this.callStateMachine.state.value) {\n case 'S_CALL_HOLD':\n this.emit(CALL_EVENT_KEYS.HOLD_ERROR, error);\n if (this.supplementaryServicesTimer) {\n clearTimeout(this.supplementaryServicesTimer);\n this.supplementaryServicesTimer = undefined;\n }\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n\n return;\n case 'S_CALL_RESUME':\n this.emit(CALL_EVENT_KEYS.RESUME_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n\n return;\n default:\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n /* Disconnect call if it's not a midcall case */\n /* istanbul ignore else */\n if (!this.connected) {\n this.sendMediaStateMachineEvt({type: 'E_ROAP_ERROR', data: errData});\n }\n }\n };\n }\n\n /**\n * Handle Roap Established events.\n *\n * For outbound MediaOk , the message will be truthy as we need to send ROAP OK .\n * For inbound MediaOK , we report it to Media-SDK and transition our state.\n * Both the cases should transition to Call Established state.\n *\n * @param context -.\n * @param event - Roap Events.\n */\n private async handleRoapEstablished(context: MediaContext, event: RoapEvent) {\n log.info(`handleRoapEstablished: ${this.getCorrelationId()} `, {\n file: CALL_FILE,\n method: 'handleRoapEstablished',\n });\n\n const {received, message} = event.data as {received: boolean; message: RoapMessage};\n\n this.receivedRoapOKSeq = message.seq;\n\n if (!received) {\n log.info('Sending Media Ok to the remote End', {\n file: CALL_FILE,\n method: 'handleRoapEstablished',\n });\n\n try {\n if (\n this.callStateMachine.state.value === 'S_RECV_CALL_PROGRESS' ||\n this.callStateMachine.state.value === 'S_SEND_CALL_SETUP'\n ) {\n log.info(\n 'Media negotiation completed before call connect. Setting media negotiation completed flag.',\n {\n file: CALL_FILE,\n method: 'handleRoapEstablished',\n }\n );\n this.mediaNegotiationCompleted = true;\n }\n message.seq = this.seq;\n const res = await this.postMedia(message);\n\n log.log(`handleRoapEstablished: Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: 'handleRoapEstablished',\n });\n /* istanbul ignore else */\n if (!this.earlyMedia && !this.mediaNegotiationCompleted) {\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }\n } catch (err) {\n log.warn('Failed to process MediaOk request', {\n file: CALL_FILE,\n method: 'handleRoapEstablished',\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n this.getEmitterCallback(errData),\n ERROR_LAYER.MEDIA,\n (interval: number) => {\n /* Start retry if only it is a midcall case */\n /* istanbul ignore else */\n if (this.connected) {\n setTimeout(() => {\n this.sendMediaStateMachineEvt({type: 'E_ROAP_OK', data: event.data});\n }, interval * 1000);\n }\n },\n this.getCorrelationId(),\n errData,\n this.handleRoapEstablished.name,\n CALL_FILE\n );\n }\n } else {\n log.info('Notifying internal-media-core about ROAP OK message', {\n file: CALL_FILE,\n method: 'handleRoapEstablished',\n });\n message.seq = this.seq;\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.roapMessageReceived(message);\n }\n /* istanbul ignore else */\n if (!this.earlyMedia) {\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }\n\n if (this.remoteRoapMessage && this.remoteRoapMessage.seq > this.seq) {\n if (this.remoteRoapMessage.messageType === 'OFFER_REQUEST') {\n this.sendMediaStateMachineEvt({\n type: 'E_RECV_ROAP_OFFER_REQUEST',\n data: this.remoteRoapMessage,\n });\n } else if (this.remoteRoapMessage.messageType === 'OFFER') {\n this.sendMediaStateMachineEvt({type: 'E_RECV_ROAP_OFFER', data: this.remoteRoapMessage});\n }\n }\n }\n }\n\n /**\n * Handle Roap Error events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private async handleRoapError(context: MediaContext, event: RoapEvent) {\n log.info(`handleRoapError: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.handleRoapError.name,\n });\n\n /* if we receive ROAP_ERROR from internal-media-core , we post it to Mobius */\n\n const message = event.data as RoapMessage;\n\n /* istanbul ignore else */\n if (message) {\n try {\n const res = await this.postMedia(message);\n\n log.info(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: this.handleRoapError.name,\n });\n } catch (err) {\n log.warn('Failed to communicate ROAP error to Webex Calling', {\n file: CALL_FILE,\n method: this.handleRoapError.name,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n },\n ERROR_LAYER.MEDIA,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleRoapError.name,\n CALL_FILE\n );\n }\n }\n\n /* Only disconnect calls that are not yet connected yet */\n\n if (!this.connected) {\n log.warn('Call failed due to media issue', {\n file: CALL_FILE,\n method: 'handleRoapError',\n });\n\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: {media: true}});\n }\n }\n\n /**\n * Handle Outgoing Roap Offer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private async handleOutgoingRoapOffer(context: MediaContext, event: RoapEvent) {\n log.info(`handleOutgoingRoapOffer: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.handleOutgoingRoapOffer.name,\n });\n\n const message = event.data as RoapMessage;\n\n if (!message?.sdp) {\n log.info('Initializing Offer...', {\n file: CALL_FILE,\n method: this.handleOutgoingRoapOffer.name,\n });\n this.mediaConnection.initiateOffer();\n\n return;\n }\n\n /* If we are here , that means we have a message to send.. */\n\n try {\n const res = await this.postMedia(message);\n\n log.log(`handleOutgoingRoapOffer: Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingRoapOffer.name,\n });\n } catch (err) {\n log.warn('Failed to process MediaOk request', {\n file: CALL_FILE,\n method: this.handleOutgoingRoapOffer.name,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n this.getEmitterCallback(errData),\n ERROR_LAYER.MEDIA,\n (interval: number) => {\n /* Start retry if only it is a midcall case */\n if (this.connected) {\n setTimeout(() => {\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER', data: event.data});\n }, interval * 1000);\n }\n },\n this.getCorrelationId(),\n errData,\n this.handleOutgoingRoapOffer.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle Outgoing Roap Answer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private async handleOutgoingRoapAnswer(context: MediaContext, event: RoapEvent) {\n log.info(`handleOutgoingRoapAnswer: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.handleOutgoingRoapAnswer.name,\n });\n\n const message = event.data as RoapMessage;\n\n try {\n message.seq = this.seq;\n const res = await this.postMedia(message);\n\n log.log(`handleOutgoingRoapAnswer: Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingRoapAnswer.name,\n });\n } catch (err) {\n log.warn('Failed to send MediaAnswer request', {\n file: CALL_FILE,\n method: this.handleOutgoingRoapAnswer.name,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n this.getEmitterCallback(errData),\n ERROR_LAYER.MEDIA,\n (interval: number) => {\n /* Start retry if only it is a midcall case */\n if (this.connected) {\n setTimeout(() => {\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_ANSWER', data: event.data});\n }, interval * 1000);\n }\n },\n this.getCorrelationId(),\n errData,\n this.handleOutgoingRoapAnswer.name,\n CALL_FILE\n );\n }\n }\n\n /**\n * Handle Incoming Roap Offer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private handleIncomingRoapOffer(context: MediaContext, event: RoapEvent) {\n log.info(`handleIncomingRoapOffer: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.handleIncomingRoapOffer.name,\n });\n\n const message = event.data as RoapMessage;\n\n this.remoteRoapMessage = message;\n if (!this.mediaConnection) {\n log.info('Media connection is not up, buffer the remote offer for later handling', {\n file: CALL_FILE,\n method: this.handleIncomingRoapOffer.name,\n });\n this.seq = message.seq;\n log.info(`Setting Sequence No: ${this.seq}`, {\n file: CALL_FILE,\n method: this.handleIncomingRoapOffer.name,\n });\n } else if (this.receivedRoapOKSeq === message.seq - 2) {\n log.info('Waiting for Roap OK, buffer the remote offer for later handling', {\n file: CALL_FILE,\n method: this.handleIncomingRoapOffer.name,\n });\n\n this.remoteRoapMessage = message;\n } else {\n log.info('Handling new offer...', {\n file: CALL_FILE,\n method: this.handleIncomingRoapOffer.name,\n });\n this.seq = message.seq;\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.roapMessageReceived(message);\n }\n }\n }\n\n /**\n * Handle Incoming Roap Answer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private handleIncomingRoapAnswer(context: MediaContext, event: RoapEvent) {\n log.info(`handleIncomingRoapAnswer: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.handleIncomingRoapAnswer.name,\n });\n const message = event.data as RoapMessage;\n\n this.remoteRoapMessage = message;\n message.seq = this.seq;\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.roapMessageReceived(message);\n }\n }\n\n /* istanbul ignore next */\n /**\n * Initialize Media Connection.\n *\n * @param settings -.\n * @param settings.localAudioTrack - MediaStreamTrack.\n * @param settings.debugId - String.\n */\n private initMediaConnection(localAudioTrack: MediaStreamTrack, debugId?: string) {\n const mediaConnection = new RoapMediaConnection(\n {\n skipInactiveTransceivers: true,\n iceServers: [],\n iceCandidatesTimeout: ICE_CANDIDATES_TIMEOUT,\n sdpMunging: {\n convertPort9to0: true,\n addContentSlides: false,\n copyClineToSessionLevel: true,\n },\n },\n {\n localTracks: {audio: localAudioTrack},\n direction: {\n audio: 'sendrecv',\n video: 'inactive',\n screenShareVideo: 'inactive',\n },\n },\n debugId || `WebexCallSDK-${this.correlationId}`\n );\n\n this.mediaConnection = mediaConnection;\n }\n\n /**\n *\n */\n public getDirection = (): CallDirection => this.direction;\n\n /**\n *\n */\n public getCallId = (): CallId => this.callId;\n\n /**\n *\n */\n public getCorrelationId = (): CorrelationId => this.correlationId;\n\n /**\n * .\n *\n * @param event -.\n */\n public sendCallStateMachineEvt(event: CallEvent) {\n this.callStateMachine.send(event);\n }\n\n /**\n * .\n *\n * @param event -.\n */\n public sendMediaStateMachineEvt(event: RoapEvent) {\n this.mediaStateMachine.send(event);\n }\n\n /**\n * @param callId -.\n */\n public setCallId = (callId: CallId) => {\n this.callId = callId;\n log.info(`Setting callId : ${this.callId} for correlationId: ${this.correlationId}`, {\n file: CALL_FILE,\n method: this.setCallId.name,\n });\n };\n\n /**\n * Sets the Disconnect reason.\n *\n */\n private setDisconnectReason() {\n if (this.mediaInactivity) {\n this.disconnectReason.code = DisconnectCode.MEDIA_INACTIVITY;\n this.disconnectReason.cause = DisconnectCause.MEDIA_INACTIVITY;\n } else if (this.connected || this.direction === CallDirection.OUTBOUND) {\n this.disconnectReason.code = DisconnectCode.NORMAL;\n this.disconnectReason.cause = DisconnectCause.NORMAL;\n } else {\n this.disconnectReason.code = DisconnectCode.BUSY;\n this.disconnectReason.cause = DisconnectCause.BUSY;\n }\n }\n\n /**\n * Gets the disconnection reason.\n *\n * @returns Reason.\n */\n public getDisconnectReason = (): DisconnectReason => {\n return this.disconnectReason;\n };\n\n /**\n * Answers the call with the provided local audio stream.\n *\n * @param localAudioStream - The local audio stream for the call.\n */\n public async answer(localAudioStream: LocalMicrophoneStream) {\n this.localAudioStream = localAudioStream;\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(`Did not find a local track while answering the call ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: 'answer',\n });\n this.mediaInactivity = true;\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n\n return;\n }\n\n localAudioTrack.enabled = true;\n\n if (!this.mediaConnection) {\n this.initMediaConnection(localAudioTrack);\n this.mediaRoapEventsListener();\n this.mediaTrackListener();\n this.registerListeners(localAudioStream);\n }\n\n if (this.callStateMachine.state.value === 'S_SEND_CALL_PROGRESS') {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_CONNECT'});\n } else {\n log.warn(\n `Call cannot be answered because the state is : ${this.callStateMachine.state.value}`,\n {file: CALL_FILE, method: 'answer'}\n );\n }\n }\n\n /**\n * @param settings\n * @param settings.localAudioTrack\n */\n public async dial(localAudioStream: LocalMicrophoneStream) {\n this.localAudioStream = localAudioStream;\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(`Did not find a local track while dialing the call ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: 'dial',\n });\n\n this.deleteCb(this.getCorrelationId());\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());\n\n return;\n }\n localAudioTrack.enabled = true;\n\n if (!this.mediaConnection) {\n this.initMediaConnection(localAudioTrack);\n this.mediaRoapEventsListener();\n this.mediaTrackListener();\n this.registerListeners(localAudioStream);\n }\n\n if (this.mediaStateMachine.state.value === 'S_ROAP_IDLE') {\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER'});\n } else {\n log.warn(\n `Call cannot be dialed because the state is already : ${this.mediaStateMachine.state.value}`,\n {file: CALL_FILE, method: 'dial'}\n );\n }\n }\n\n /**\n * .\n *\n * @param roapMessage\n */\n private post = async (roapMessage: RoapMessage): Promise<MobiusCallResponse> => {\n return this.webex.request({\n uri: `${this.mobiusUrl}${DEVICES_ENDPOINT_RESOURCE}/${this.deviceId}/${CALL_ENDPOINT_RESOURCE}`,\n method: HTTP_METHODS.POST,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n callee: {\n type: this.destination.type,\n address: this.destination.address,\n },\n localMedia: {\n roap: roapMessage,\n mediaId: uuid(),\n },\n },\n });\n };\n\n /**\n * .\n *\n * @param state -.\n */\n private async patch(state: MobiusCallState): Promise<PatchResponse> {\n log.info(`Send a PATCH for ${state} to Webex Calling`, {\n file: CALL_FILE,\n method: this.patch.name,\n });\n\n return this.webex.request({\n // Sample uri: http://localhost/api/v1/calling/web/devices/{deviceid}/calls/{callid}\n\n uri: `${this.mobiusUrl}${DEVICES_ENDPOINT_RESOURCE}/${this.deviceId}/${CALLS_ENDPOINT_RESOURCE}/${this.callId}`,\n method: HTTP_METHODS.PATCH,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n callId: this.callId,\n callState: state,\n inbandMedia: false, // setting false for now\n },\n });\n }\n\n /**\n * Sends Supplementary request to Mobius.\n *\n * @param context - Context information related to a particular supplementary service.\n * @param type - Type of Supplementary service.\n */\n public async postSSRequest(context: unknown, type: SUPPLEMENTARY_SERVICES): Promise<SSResponse> {\n const request = {\n uri: `${this.mobiusUrl}${SERVICES_ENDPOINT}`,\n method: HTTP_METHODS.POST,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n callId: this.callId,\n },\n };\n\n switch (type) {\n case SUPPLEMENTARY_SERVICES.HOLD: {\n request.uri = `${request.uri}/${CALL_HOLD_SERVICE}/${HOLD_ENDPOINT}`;\n break;\n }\n case SUPPLEMENTARY_SERVICES.RESUME: {\n request.uri = `${request.uri}/${CALL_HOLD_SERVICE}/${RESUME_ENDPOINT}`;\n break;\n }\n case SUPPLEMENTARY_SERVICES.TRANSFER: {\n request.uri = `${request.uri}/${CALL_TRANSFER_SERVICE}/${TRANSFER_ENDPOINT}`;\n const transferContext = context as TransferContext;\n\n if (transferContext.destination) {\n Object.assign(request.body, {blindTransferContext: transferContext});\n Object.assign(request.body, {transferType: TransferType.BLIND});\n } /* istanbul ignore else */ else if (transferContext.transferToCallId) {\n Object.assign(request.body, {consultTransferContext: transferContext});\n Object.assign(request.body, {transferType: TransferType.CONSULT});\n }\n break;\n }\n default: {\n log.warn(`Unknown type for PUT request: ${type}`, {\n file: CALL_FILE,\n method: this.postSSRequest.name,\n });\n }\n }\n\n return this.webex.request(request);\n }\n\n /**\n * Sends Call status to Mobius.\n */\n public async postStatus(): Promise<WebexRequestPayload> {\n return this.webex.request({\n uri: `${this.mobiusUrl}${DEVICES_ENDPOINT_RESOURCE}/${this.deviceId}/${CALLS_ENDPOINT_RESOURCE}/${this.callId}/${CALL_STATUS_RESOURCE}`,\n method: HTTP_METHODS.POST,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n callId: this.callId,\n },\n });\n }\n\n /**\n * This function is called when user attempts to complete transfer(Blind or Consult)\n * It checks if we have a valid transferCallId or transfer target and transfer type.\n *\n * @param transferType - Transfer type.\n * @param transferCallId - Call Id where the current call will be merged for consult transfers.\n * @param transferTarget - Destination for blind transfer.\n */\n public async completeTransfer(\n transferType: TransferType,\n transferCallId?: CallId,\n transferTarget?: string\n ) {\n if (transferType === TransferType.BLIND && transferTarget) {\n /* blind transfer */\n\n log.info(`Initiating Blind transfer with : ${transferTarget}`, {\n file: CALL_FILE,\n method: this.completeTransfer.name,\n });\n\n const context: TransferContext = {\n transferorCallId: this.getCallId(),\n destination: transferTarget,\n };\n\n try {\n await this.postSSRequest(context, SUPPLEMENTARY_SERVICES.TRANSFER);\n this.metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n TRANSFER_ACTION.BLIND,\n METRIC_TYPE.BEHAVIORAL,\n this.getCallId(),\n this.getCorrelationId(),\n undefined\n );\n } catch (e) {\n log.warn(`Blind Transfer failed for correlationId ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.completeTransfer.name,\n });\n\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.TRANSFER_ERROR, error);\n this.submitCallErrorMetric(error, TRANSFER_ACTION.BLIND);\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.completeTransfer.name,\n CALL_FILE\n );\n }\n } else if (transferType === TransferType.CONSULT && transferCallId) {\n /* Consult transfer */\n\n log.info(`Initiating Consult transfer between : ${this.callId} and ${transferCallId}`, {\n file: CALL_FILE,\n method: this.completeTransfer.name,\n });\n\n const context: TransferContext = {\n transferorCallId: this.getCallId(),\n transferToCallId: transferCallId,\n };\n\n try {\n await this.postSSRequest(context, SUPPLEMENTARY_SERVICES.TRANSFER);\n this.metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n TRANSFER_ACTION.CONSULT,\n METRIC_TYPE.BEHAVIORAL,\n this.getCallId(),\n this.getCorrelationId(),\n undefined\n );\n } catch (e) {\n log.warn(`Consult Transfer failed for correlationId ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: this.completeTransfer.name,\n });\n\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.TRANSFER_ERROR, error);\n this.submitCallErrorMetric(error, TRANSFER_ACTION.CONSULT);\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.completeTransfer.name,\n CALL_FILE\n );\n }\n } else {\n log.warn(\n `Invalid information received, transfer failed for correlationId: ${this.getCorrelationId()}`,\n {\n file: CALL_FILE,\n method: this.completeTransfer.name,\n }\n );\n }\n }\n\n /**\n *\n */\n private async getCallStats(): Promise<CallRtpStats> {\n let stats!: RTCStatsReport;\n\n try {\n stats = await this.mediaConnection.getStats();\n } catch (err) {\n log.warn('Stats collection failed, using dummy stats', {\n file: CALL_FILE,\n method: this.getCallStats.name,\n });\n }\n\n return parseMediaQualityStatistics(stats);\n }\n\n /**\n * .\n *\n * @param roapMessage -.\n */\n private async postMedia(roapMessage: RoapMessage): Promise<WebexRequestPayload> {\n log.log('Posting message to Webex Calling', {\n file: CALL_FILE,\n method: this.postMedia.name,\n });\n\n return this.webex.request({\n uri: `${this.mobiusUrl}${DEVICES_ENDPOINT_RESOURCE}/${this.deviceId}/${CALLS_ENDPOINT_RESOURCE}/${this.callId}/${MEDIA_ENDPOINT_RESOURCE}`,\n method: HTTP_METHODS.POST,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n callId: this.callId,\n localMedia: {\n roap: roapMessage,\n mediaId: uuid(),\n },\n },\n });\n }\n\n /* istanbul ignore next */\n /**\n * Setup a listener for roap events emitted by the media sdk.\n */\n private mediaRoapEventsListener() {\n this.mediaConnection.on(\n MediaConnectionEventNames.ROAP_MESSAGE_TO_SEND,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async (event: any) => {\n log.info(\n `ROAP message to send (rcv from MEDIA-SDK) :\n \\n type: ${event.roapMessage?.messageType}, seq: ${event.roapMessage.seq} , version: ${event.roapMessage.version}`,\n {}\n );\n\n log.info(`SDP message to send : \\n ${event.roapMessage?.sdp}`, {\n file: CALL_FILE,\n method: this.mediaRoapEventsListener.name,\n });\n\n switch (event.roapMessage.messageType) {\n case RoapScenario.OK: {\n const mediaOk = {\n received: false,\n message: event.roapMessage,\n };\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_OK', data: mediaOk});\n break;\n }\n\n case RoapScenario.OFFER: {\n // TODO: Remove these after the Media-Core adds the fix\n const sdpVideoPortZero = event.roapMessage.sdp.replace(\n /^m=(video) (?:\\d+) /gim,\n 'm=$1 0 '\n );\n\n event.roapMessage.sdp = sdpVideoPortZero;\n this.localRoapMessage = event.roapMessage;\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_SETUP', data: event.roapMessage});\n break;\n }\n\n case RoapScenario.ANSWER:\n this.localRoapMessage = event.roapMessage;\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_ANSWER', data: event.roapMessage});\n break;\n\n case RoapScenario.ERROR:\n this.sendMediaStateMachineEvt({type: 'E_ROAP_ERROR', data: event.roapMessage});\n break;\n\n case RoapScenario.OFFER_RESPONSE:\n this.localRoapMessage = event.roapMessage;\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER', data: event.roapMessage});\n break;\n\n default:\n }\n }\n );\n }\n\n /* istanbul ignore next */\n /**\n * Setup a listener for remote track added event emitted by the media sdk.\n */\n private mediaTrackListener() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.mediaConnection.on(MediaConnectionEventNames.REMOTE_TRACK_ADDED, (e: any) => {\n if (e.type === MEDIA_CONNECTION_EVENT_KEYS.MEDIA_TYPE_AUDIO) {\n this.emit(CALL_EVENT_KEYS.REMOTE_MEDIA, e.track);\n }\n });\n }\n\n private onEffectEnabled = () => {\n this.metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_ENABLED,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId\n );\n };\n\n private onEffectDisabled = () => {\n this.metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_DISABLED,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId\n );\n };\n\n private updateTrack = (audioTrack: MediaStreamTrack) => {\n this.mediaConnection.updateLocalTracks({audio: audioTrack});\n };\n\n private registerEffectListener = (addedEffect: TrackEffect) => {\n if (this.localAudioStream) {\n const effect = this.localAudioStream.getEffectByKind(NOISE_REDUCTION_EFFECT);\n\n if (effect === addedEffect) {\n effect.on(EffectEvent.Enabled, this.onEffectEnabled);\n effect.on(EffectEvent.Disabled, this.onEffectDisabled);\n }\n }\n };\n\n private unregisterListeners() {\n if (this.localAudioStream) {\n const effect = this.localAudioStream.getEffectByKind(NOISE_REDUCTION_EFFECT);\n\n if (effect) {\n effect.off(EffectEvent.Enabled, this.onEffectEnabled);\n effect.off(EffectEvent.Disabled, this.onEffectDisabled);\n }\n\n this.localAudioStream.off(LocalStreamEventNames.EffectAdded, this.registerEffectListener);\n this.localAudioStream.off(LocalStreamEventNames.OutputTrackChange, this.updateTrack);\n }\n }\n\n private registerListeners(localAudioStream: LocalMicrophoneStream) {\n localAudioStream.on(LocalStreamEventNames.OutputTrackChange, this.updateTrack);\n\n localAudioStream.on(LocalStreamEventNames.EffectAdded, this.registerEffectListener);\n\n const effect = localAudioStream.getEffectByKind(NOISE_REDUCTION_EFFECT) as any;\n\n if (effect) {\n effect.on(EffectEvent.Enabled, this.onEffectEnabled);\n effect.on(EffectEvent.Disabled, this.onEffectDisabled);\n if (effect.isEnabled) {\n this.onEffectEnabled();\n }\n }\n }\n\n private async delete(): Promise<MobiusCallResponse> {\n const disconnectMetrics = await this.getCallStats();\n\n return this.webex.request({\n uri: `${this.mobiusUrl}${DEVICES_ENDPOINT_RESOURCE}/${this.deviceId}/${CALLS_ENDPOINT_RESOURCE}/${this.callId}`,\n method: HTTP_METHODS.DELETE,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n callId: this.callId,\n metrics: disconnectMetrics,\n causecode: this.disconnectReason.code,\n cause: this.disconnectReason.cause,\n },\n });\n }\n\n /**\n * @param state - Current state of the call state machine.\n * @param error - Error object containing the message and type.\n * @param transferMetricAction - Metric action type incase of a transfer metric.\n */\n private submitCallErrorMetric(error: CallError, transferMetricAction?: TRANSFER_ACTION) {\n if (error.getCallError().errorLayer === ERROR_LAYER.CALL_CONTROL) {\n this.metricManager.submitCallMetric(\n METRIC_EVENT.CALL_ERROR,\n transferMetricAction || this.callStateMachine.state.value.toString(),\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n error\n );\n } else {\n this.metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA_ERROR,\n this.mediaStateMachine.state.value.toString(),\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n this.localRoapMessage.sdp,\n this.remoteRoapMessage?.sdp,\n error\n );\n }\n }\n\n /**\n * Handler for mid call events.\n *\n * @param event - Midcall Events from Mobius.\n */\n public handleMidCallEvent(event: MidCallEvent) {\n const {eventType, eventData} = event;\n\n switch (eventType) {\n case MidCallEventType.CALL_INFO: {\n log.log(`Received Midcall CallInfo Event for correlationId : ${this.correlationId}`, {\n file: CALL_FILE,\n method: 'handleMidCallEvent',\n });\n\n const callerData = eventData as MidCallCallerId;\n\n this.startCallerIdResolution(callerData.callerId);\n\n break;\n }\n\n case MidCallEventType.CALL_STATE: {\n log.log(`Received Midcall call event for correlationId : ${this.correlationId}`, {\n file: CALL_FILE,\n method: 'handleMidCallEvent',\n });\n\n const data = eventData as SupplementaryServiceState;\n\n /* Emit Events as per the state.\n * We will enter this state only when media negotiation is done\n * So, it's safe to emit events from here.\n */\n\n switch (data.callState) {\n case MOBIUS_MIDCALL_STATE.HELD: {\n log.log(`Call is successfully held : ${this.correlationId}`, {\n file: CALL_FILE,\n method: 'handleMidCallEvent',\n });\n\n this.emit(CALL_EVENT_KEYS.HELD, this.correlationId);\n\n this.held = true;\n\n if (this.supplementaryServicesTimer) {\n clearTimeout(this.supplementaryServicesTimer);\n this.supplementaryServicesTimer = undefined;\n }\n\n break;\n }\n\n case MOBIUS_MIDCALL_STATE.CONNECTED: {\n log.log(`Call is successfully resumed : ${this.correlationId}`, {\n file: CALL_FILE,\n method: 'handleMidCallEvent',\n });\n\n this.emit(CALL_EVENT_KEYS.RESUMED, this.correlationId);\n\n this.held = false;\n\n if (this.supplementaryServicesTimer) {\n clearTimeout(this.supplementaryServicesTimer);\n this.supplementaryServicesTimer = undefined;\n }\n\n break;\n }\n\n default: {\n log.warn(\n `Unknown Supplementary service state: ${data.callState} for correlationId : ${this.correlationId}`,\n {\n file: CALL_FILE,\n method: 'handleMidCallEvent',\n }\n );\n }\n }\n\n break;\n }\n\n default: {\n log.warn(`Unknown Midcall type: ${eventType} for correlationId : ${this.correlationId}`, {\n file: CALL_FILE,\n method: 'handleMidCallEvent',\n });\n }\n }\n }\n\n /**\n *\n */\n public getCallerInfo = (): DisplayInformation => this.callerInfo;\n\n /**\n *\n */\n public end = (): void => {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n };\n\n /**\n *\n */\n public doHoldResume = (): void => {\n if (this.held) {\n this.sendCallStateMachineEvt({type: 'E_CALL_RESUME'});\n } else {\n this.sendCallStateMachineEvt({type: 'E_CALL_HOLD'});\n }\n };\n\n /**\n * .\n *\n * @param callerInfo\n */\n public startCallerIdResolution(callerInfo: CallerIdInfo) {\n this.callerInfo = this.callerId.fetchCallerDetails(callerInfo);\n }\n\n /**\n * Sends digit over the established call.\n *\n * @param tone - DTMF tones.\n */\n public sendDigit(tone: string) {\n /* istanbul ignore else */\n try {\n log.info(`Sending digit : ${tone}`, {\n file: CALL_FILE,\n method: 'sendDigit',\n });\n\n this.mediaConnection.insertDTMF(tone);\n } catch (e: any) {\n log.warn(`Unable to send digit on call: ${e.message}`, {\n file: CALL_FILE,\n method: 'sendDigit',\n });\n }\n }\n\n /**\n * Mutes/Unmutes the call.\n *\n * @param localAudioTrack -.\n */\n public mute = (localAudioStream: LocalMicrophoneStream): void => {\n if (localAudioStream) {\n localAudioStream.setUserMuted(!this.muted);\n this.muted = !this.muted;\n } else {\n log.warn(`Did not find a local stream while muting the call ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: 'mute',\n });\n }\n };\n\n /**\n * Change the audio stream of the call.\n *\n * @param newAudioStream - The new audio stream to be used in the call.\n */\n\n public updateMedia = (newAudioStream: LocalMicrophoneStream): void => {\n const localAudioTrack = newAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(\n `Did not find a local track while updating media for call ${this.getCorrelationId()}. Will not update media`,\n {\n file: CALL_FILE,\n method: 'updateMedia',\n }\n );\n\n return;\n }\n\n try {\n this.mediaConnection.updateLocalTracks({\n audio: localAudioTrack,\n });\n\n this.unregisterListeners();\n this.registerListeners(newAudioStream);\n this.localAudioStream = newAudioStream;\n } catch (e: any) {\n log.warn(`Unable to update media on call ${this.getCorrelationId()}. Error: ${e.message}`, {\n file: CALL_FILE,\n method: 'updateMedia',\n });\n }\n };\n\n /**\n * @param broadworksCorrelationInfo\n */\n setBroadworksCorrelationInfo(broadworksCorrelationInfo: string): void {\n this.broadworksCorrelationInfo = broadworksCorrelationInfo;\n }\n\n /**\n *\n */\n getBroadworksCorrelationInfo(): string | undefined {\n return this.broadworksCorrelationInfo;\n }\n\n /**\n * Get call stats for an active call.\n *\n * @returns Promise<CallRtpStats> Call Stats.\n */\n getCallRtpStats(): Promise<CallRtpStats> {\n return this.getCallStats();\n }\n}\n\n/**\n * @param activeUrl\n * @param webex -.\n * @param dest -.\n * @param dir -.\n * @param deviceId -.\n * @param lineId -.\n * @param serverCb\n * @param deleteCb\n * @param indicator - Service Indicator.\n */\nexport const createCall = (\n activeUrl: string,\n webex: WebexSDK,\n dest: CallDetails,\n dir: CallDirection,\n deviceId: string,\n lineId: string,\n deleteCb: DeleteRecordCallBack,\n indicator: ServiceIndicator\n): ICall => new Call(activeUrl, webex, dest, dir, deviceId, lineId, deleteCb, indicator);\n"],"mappings":"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"}
|