@webex/calling 3.0.0-next.2 → 3.0.0-next.21
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/CHANGELOG.md +1403 -0
- package/dist/CallHistory/CallHistory.js +1 -3
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/callHistoryFixtures.js +9 -0
- package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
- package/dist/CallHistory/types.js.map +1 -1
- package/dist/CallSettings/CallSettings.js +0 -2
- package/dist/CallSettings/CallSettings.js.map +1 -1
- package/dist/CallSettings/types.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +119 -62
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +161 -102
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/index.js +3 -23
- package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
- package/dist/CallingClient/calling/call.js +78 -33
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +483 -351
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.js +0 -9
- package/dist/CallingClient/calling/callManager.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +1 -1
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/calling/types.js.map +1 -1
- package/dist/CallingClient/callingClientFixtures.js +107 -1
- package/dist/CallingClient/callingClientFixtures.js.map +1 -1
- package/dist/CallingClient/constants.js +14 -6
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/index.js +12 -12
- package/dist/CallingClient/line/index.js.map +1 -1
- package/dist/CallingClient/line/line.test.js +9 -9
- package/dist/CallingClient/line/line.test.js.map +1 -1
- package/dist/CallingClient/line/types.js +4 -7
- package/dist/CallingClient/line/types.js.map +1 -1
- package/dist/CallingClient/registration/register.js +62 -80
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +28 -28
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/CallingClient/registration/types.js.map +1 -1
- package/dist/CallingClient/types.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +8 -2
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/types.js +3 -0
- package/dist/Contacts/types.js.map +1 -1
- package/dist/Errors/catalog/CallingDeviceError.js +1 -1
- package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
- package/dist/Errors/catalog/LineError.js +2 -2
- package/dist/Errors/catalog/LineError.js.map +1 -1
- package/dist/Errors/index.js +7 -0
- package/dist/Errors/index.js.map +1 -1
- package/dist/Errors/types.js.map +1 -1
- package/dist/Events/types.js +0 -1
- package/dist/Events/types.js.map +1 -1
- package/dist/Metrics/index.test.js +1 -1
- package/dist/Metrics/index.test.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/Voicemail/Voicemail.js +18 -21
- package/dist/Voicemail/Voicemail.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
- package/dist/Voicemail/types.js.map +1 -1
- package/dist/api.js +43 -20
- package/dist/api.js.map +1 -1
- package/dist/common/Utils.js +13 -18
- 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/testUtil.js +2 -1
- package/dist/common/testUtil.js.map +1 -1
- package/dist/common/types.js +8 -7
- package/dist/common/types.js.map +1 -1
- package/dist/index.js +233 -0
- package/dist/index.js.map +1 -1
- package/dist/module/CallHistory/callHistoryFixtures.js +9 -0
- package/dist/module/CallingClient/CallingClient.js +59 -42
- package/dist/module/CallingClient/calling/CallerId/index.js +3 -23
- package/dist/module/CallingClient/calling/call.js +54 -17
- package/dist/module/CallingClient/calling/callManager.js +0 -6
- package/dist/module/CallingClient/callingClientFixtures.js +119 -1
- package/dist/module/CallingClient/constants.js +8 -4
- package/dist/module/CallingClient/line/index.js +7 -10
- package/dist/module/CallingClient/line/types.js +0 -5
- package/dist/module/CallingClient/registration/register.js +28 -20
- package/dist/module/Contacts/ContactsClient.js +3 -0
- package/dist/module/Errors/catalog/CallingDeviceError.js +2 -2
- package/dist/module/Errors/catalog/LineError.js +2 -2
- package/dist/module/Errors/index.js +1 -0
- package/dist/module/api.js +6 -5
- package/dist/module/common/Utils.js +14 -19
- package/dist/module/common/testUtil.js +2 -1
- package/dist/module/common/types.js +6 -5
- package/dist/module/index.js +7 -0
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallHistory/callHistoryFixtures.d.ts.map +1 -1
- package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
- package/dist/types/CallSettings/types.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts +2 -0
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/CallerId/index.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/CallerId/types.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts +2 -0
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/callManager.d.ts +0 -1
- package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/types.d.ts +30 -30
- package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
- package/dist/types/CallingClient/callingClientFixtures.d.ts +69 -1
- package/dist/types/CallingClient/callingClientFixtures.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +7 -3
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/line/index.d.ts +4 -5
- package/dist/types/CallingClient/line/index.d.ts.map +1 -1
- package/dist/types/CallingClient/line/types.d.ts +8 -13
- package/dist/types/CallingClient/line/types.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +3 -3
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/types.d.ts +14 -14
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/CallingClient/types.d.ts +6 -4
- package/dist/types/CallingClient/types.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts +3 -2
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Contacts/types.d.ts +2 -0
- package/dist/types/Contacts/types.d.ts.map +1 -1
- package/dist/types/Errors/catalog/CallingDeviceError.d.ts +4 -4
- package/dist/types/Errors/catalog/CallingDeviceError.d.ts.map +1 -1
- package/dist/types/Errors/catalog/LineError.d.ts +4 -4
- package/dist/types/Errors/catalog/LineError.d.ts.map +1 -1
- package/dist/types/Errors/index.d.ts +1 -0
- package/dist/types/Errors/index.d.ts.map +1 -1
- package/dist/types/Errors/types.d.ts +2 -3
- package/dist/types/Errors/types.d.ts.map +1 -1
- package/dist/types/Events/types.d.ts +11 -0
- package/dist/types/Events/types.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +2 -1
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/Voicemail/UcmBackendConnector.d.ts +1 -1
- package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts +1 -1
- package/dist/types/Voicemail/types.d.ts +10 -10
- package/dist/types/Voicemail/types.d.ts.map +1 -1
- package/dist/types/api.d.ts +10 -10
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +1 -0
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +3 -2
- package/dist/types/common/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_internalMediaCore","require","_xstate","_uuid","_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","_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","_headers","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","callerInfo","sendCallStateMachineEvt","held","localAudioStream","localAudioTrack","outputStream","getAudioTracks","muted","enabled","sdkConnector","SDKConnector","serviceIndicator","getWebex","setWebex","metricManager","getMetricManager","DEFAULT_LOCAL_CALL_ID","connected","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","on","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","S_RECV_CALL_PROGRESS","E_RECV_CALL_CONNECT","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","METRIC_EVENT","CALL","toString","METRIC_TYPE","BEHAVIORAL","undefined","start","mediaStateMachine","_this$remoteRoapMessa","submitMediaMetric","MEDIA","sdp","_createClass2","key","isMuted","isConnected","isHeld","getCorrelationId","_handleOutgoingCallSetup","_callee2","_this2","message","response","errData","_callee2$","_context2","data","post","sent","statusCode","t0","warn","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","mediaConnection","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","audio","video","screenShareVideo","send","CallDirection","OUTBOUND","BUSY","_answer","_callee17","_callee17$","_context17","mediaRoapEventsListener","mediaTrackListener","outputTrackUpdateListener","answer","_x18","_dial","_callee18","_callee18$","_context18","dial","_x19","_patch","_callee19","_headers2","_callee19$","_context19","CALLS_ENDPOINT_RESOURCE","PATCH","callState","_x20","_postSSRequest","_callee20","_headers3","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","_headers4","_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","_headers5","_callee24$","_context25","MEDIA_ENDPOINT_RESOURCE","_x26","_this14","Event","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","_this16","LocalStreamEventNames","OutputTrackChange","updateLocalTracks","_delete2","_callee26","_headers6","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","exports","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 {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 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 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 /**\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 * @param activeUrl\n * @param webex -.\n * @param destination -.\n * @param direction -.\n * @param deviceId -.\n * @param serverCb\n * @param deleteCb\n * @param indicator - Service Indicator.\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.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(`Mobius 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_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('Call setup failed with Mobius', {\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('Call Hold failed with Mobius', {\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('Call Resume failed with Mobius', {\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('Call Progress failed with Mobius', {\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 /* send call_connect PATCH */\n try {\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 /* Start Offer/Answer as we might have buffered the offer by now */\n this.mediaConnection.roapMessageReceived(this.remoteRoapMessage);\n } catch (err) {\n log.warn('Call Connect failed with Mobius', {\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('Delete Call failed with Mobius', {\n file: CALL_FILE,\n method: this.handleIncomingCallDisconnect.name,\n });\n }\n\n this.deleteCb(this.correlationId);\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('Delete Call failed with Mobius', {\n file: CALL_FILE,\n method: this.handleOutgoingCallDisconnect.name,\n });\n }\n\n this.deleteCb(this.correlationId);\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('Delete Call failed with Mobius', {\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 (this.callStateMachine.state.value === 'S_RECV_CALL_PROGRESS') {\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('MediaOk failed with Mobius', {\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 with Mobius', {\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('MediaOk failed with Mobius', {\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('MediaAnswer failed with Mobius', {\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.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 * @param settings\n * @param settings.localAudioTrack\n */\n public async answer(localAudioStream: LocalMicrophoneStream) {\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n localAudioTrack.enabled = true;\n\n if (!this.mediaConnection) {\n this.initMediaConnection(localAudioTrack);\n this.mediaRoapEventsListener();\n this.mediaTrackListener();\n this.outputTrackUpdateListener(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 const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n localAudioTrack.enabled = true;\n\n if (!this.mediaConnection) {\n this.initMediaConnection(localAudioTrack);\n this.mediaRoapEventsListener();\n this.mediaTrackListener();\n this.outputTrackUpdateListener(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 mobius`, {\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 mobius', {\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 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 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 outputTrackUpdateListener(localAudioStream: LocalMicrophoneStream) {\n localAudioStream.on(LocalStreamEventNames.OutputTrackChange, (track: MediaStreamTrack) => {\n this.mediaConnection.updateLocalTracks({audio: track});\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 if (!this.connected) {\n log.warn(`Can't send DTMF as call is not yet connected`, {\n file: CALL_FILE,\n method: 'sendDigit',\n });\n\n return;\n }\n\n log.info(`Sending digit : ${tone}`, {\n file: CALL_FILE,\n method: 'sendDigit',\n });\n\n this.mediaConnection.insertDTMF(tone);\n }\n\n /**\n * .\n *\n * @param localAudioTrack -.\n */\n public mute = (localAudioStream: LocalMicrophoneStream): void => {\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n if (this.muted) {\n localAudioTrack.enabled = true;\n this.muted = false;\n } else {\n localAudioTrack.enabled = false;\n this.muted = true;\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","_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","_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","_headers","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","callerInfo","sendCallStateMachineEvt","held","localAudioStream","localAudioTrack","outputStream","getAudioTracks","muted","enabled","newAudioStream","warn","getCorrelationId","mediaConnection","updateLocalTracks","audio","sdkConnector","SDKConnector","serviceIndicator","getWebex","setWebex","metricManager","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","on","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","S_RECV_CALL_PROGRESS","E_RECV_CALL_CONNECT","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","METRIC_EVENT","CALL","toString","METRIC_TYPE","BEHAVIORAL","undefined","start","mediaStateMachine","_this$remoteRoapMessa","submitMediaMetric","MEDIA","sdp","_createClass2","key","isMuted","isConnected","isHeld","_handleOutgoingCallSetup","_callee2","_this2","message","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","mediaRoapEventsListener","mediaTrackListener","outputTrackUpdateListener","answer","_x18","_dial","_callee18","_callee18$","_context18","dial","_x19","_patch","_callee19","_headers2","_callee19$","_context19","CALLS_ENDPOINT_RESOURCE","PATCH","callState","_x20","_postSSRequest","_callee20","_headers3","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","_headers4","_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","_headers5","_callee24$","_context25","MEDIA_ENDPOINT_RESOURCE","_x26","_this14","Event","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","_this16","LocalStreamEventNames","OutputTrackChange","_delete2","_callee26","_headers6","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","exports","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 {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 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 /**\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_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 /* 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 /* 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 (this.callStateMachine.state.value === 'S_RECV_CALL_PROGRESS') {\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 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.outputTrackUpdateListener(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 const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\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.outputTrackUpdateListener(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 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 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 outputTrackUpdateListener(localAudioStream: LocalMicrophoneStream) {\n localAudioStream.on(LocalStreamEventNames.OutputTrackChange, (track: MediaStreamTrack) => {\n this.mediaConnection.updateLocalTracks({audio: track});\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 if (!this.connected) {\n log.warn(`Can't send DTMF as call is not yet connected`, {\n file: CALL_FILE,\n method: 'sendDigit',\n });\n\n return;\n }\n\n log.info(`Sending digit : ${tone}`, {\n file: CALL_FILE,\n method: 'sendDigit',\n });\n\n this.mediaConnection.insertDTMF(tone);\n }\n\n /**\n * Mutes/Unmutes the call.\n *\n * @param localAudioTrack -.\n */\n public mute = (localAudioStream: LocalMicrophoneStream): void => {\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n if (this.muted) {\n localAudioTrack.enabled = true;\n this.muted = false;\n } else {\n localAudioTrack.enabled = false;\n this.muted = true;\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 this.mediaConnection.updateLocalTracks({\n audio: localAudioTrack,\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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"}
|