@webex/calling 3.12.0-next.31 → 3.12.0-next.33

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.
@@ -1 +1 @@
1
- {"version":3,"names":["_internalMediaCore","require","_xstate","_uuid","_mediaHelpers","_internalPluginMetrics","_types","_Utils","_types2","_CallError","_constants","_SDKConnector","_interopRequireDefault","_impl","_types3","_types4","_Logger","_CallerId","_types5","_Metrics","_constants2","_request","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","Boolean","prototype","valueOf","call","Call","exports","_Eventing","activeUrl","webex","direction","deviceId","lineId","deleteCb","indicator","destination","_this","_classCallCheck2","interval","callKeepaliveRetryCount","MAX_CALL_KEEPALIVE_RETRY_COUNT","log","warn","concat","callId","file","CALL_FILE","method","setTimeout","_asyncToGenerator2","_regenerator","mark","_callee","_t","wrap","_context","prev","next","postStatus","scheduleCallKeepaliveInterval","handleCallKeepaliveError","stop","_ref2","_callee2","err","error","abort","_context2","sessionTimer","clearInterval","handleCallErrors","callError","emit","CALL_EVENT_KEYS","CALL_ERROR","submitCallErrorMetric","ERROR_LAYER","CALL_CONTROL","callKeepaliveRetryCallback","getCorrelationId","sent","sendCallStateMachineEvt","type","DISCONNECT","uploadLogs","correlationId","broadworksCorrelationInfo","_x","loggerContext","setInterval","_callee3","res","_t2","_context3","info","DEFAULT_SESSION_TIMER","_ref5","_callee4","_ref4","callFrom","errorInfo","errorStatus","_t3","_context4","METHODS","FORCE_SEND_STATS_REPORT","mediaConnection","forceRtcMetricsSend","serviceErrorCodeHandler","_stringify","_x2","rtcMetrics","updateCallId","SET_CALL_ID","disconnectReason","_ref6","_callee5","roapMessage","basePayload","_context5","device","localMedia","roap","mediaId","uuid","abrupt","apiRequest","makeRequest","uri","mobiusUrl","DEVICES_ENDPOINT_RESOURCE","CALL_ENDPOINT_RESOURCE","HTTP_METHODS","POST","service","ALLOWED_SERVICES","MOBIUS","headers","CISCO_DEVICE_URL","internal","url","SPARK_USER_AGENT","CALLING_USER_AGENT","body","callee","address","_x3","metricManager","submitBNRMetric","METRIC_EVENT","BNR_ENABLED","METRIC_TYPE","BEHAVIORAL","BNR_DISABLED","audioTrack","updateLocalTracks","audio","addedEffect","localAudioStream","effect","getEffectByKind","NOISE_REDUCTION_EFFECT","on","EffectEvent","Enabled","onEffectEnabled","Disabled","onEffectDisabled","callerInfo","METHOD_START_MESSAGE","END","held","muteType","MUTE","MUTE_TYPE","SYSTEM","userMuted","muted","systemMuted","setUserMuted","newAudioStream","localAudioTrack","outputStream","getAudioTracks","UPDATE_MEDIA","unregisterListeners","registerListeners","message","sdkConnector","SDKConnector","serviceIndicator","getWebex","setWebex","getMetricManager","DEFAULT_LOCAL_CALL_ID","connected","mediaInactivity","earlyMedia","localRoapMessage","receivedRoapOKSeq","mediaNegotiationCompleted","connectPending","CONSTRUCTOR","seq","INITIAL_SEQ_NUMBER","callerId","createCallerId","emitObj","CALLER_ID","remoteRoapMessage","code","DisconnectCode","NORMAL","cause","DisconnectCause","RtcMetrics","APIRequest","getInstance","callMachine","createMachine","schema","context","events","id","initial","states","S_IDLE","E_RECV_CALL_SETUP","target","actions","E_SEND_CALL_SETUP","E_RECV_CALL_DISCONNECT","E_SEND_CALL_DISCONNECT","E_UNKNOWN","S_RECV_CALL_SETUP","after","E_SEND_CALL_ALERTING","S_SEND_CALL_SETUP","E_RECV_CALL_PROGRESS","E_RECV_CALL_CONNECT","S_RECV_CALL_PROGRESS","S_SEND_CALL_PROGRESS","E_SEND_CALL_CONNECT","S_RECV_CALL_CONNECT","E_CALL_ESTABLISHED","S_SEND_CALL_CONNECT","cond","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","triggerTimeout","handleTimeout","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","submitCallMetric","CALL","toString","undefined","start","mediaStateMachine","_this$remoteRoapMessa","submitMediaMetric","MEDIA","sdp","_inherits2","_createClass2","key","isMuted","isConnected","isHeld","HANDLE_INCOMING_CALL_SETUP","_handleOutgoingCallSetup","_callee6","_this2","response","errData","_t4","_context6","HANDLE_OUTGOING_CALL_SETUP","data","post","statusCode","setCallId","name","_x4","_handleCallHold","_callee8","_this3","_t5","_context8","HANDLE_CALL_HOLD","postSSRequest","SUPPLEMENTARY_SERVICES","HOLD","supplementaryServicesTimer","_callee7","errorContext","_context7","createCallError","ERROR_TYPE","TIMEOUT","HOLD_ERROR","SUPPLEMENTARY_SERVICES_TIMEOUT","_x5","_handleCallResume","_callee0","_this4","_t6","_context0","HANDLE_CALL_RESUME","RESUME","_callee9","_context9","RESUME_ERROR","_x6","_data$callProgressDat","HANDLE_INCOMING_CALL_PROGRESS","callProgressData","inbandMedia","startCallerIdResolution","PROGRESS","HANDLE_INCOMING_ROAP_OFFER_REQUEST","roapMessageReceived","_handleOutgoingCallAlerting","_callee1","_this5","_t7","_context1","HANDLE_OUTGOING_CALL_ALERTING","patch","MobiusCallState","ALERTING","_x7","HANDLE_INCOMING_CALL_CONNECT","CONNECT","_handleOutgoingCallConnect","_callee10","_this6","_t8","_context10","HANDLE_OUTGOING_CALL_CONNECT","CONNECTED","_x8","_handleIncomingCallDisconnect","_callee11","_t9","_context11","HANDLE_INCOMING_CALL_DISCONNECT","setDisconnectReason","delete","close","sendMediaStateMachineEvt","_x9","_handleOutgoingCallDisconnect","_callee12","_t0","_context12","HANDLE_OUTGOING_CALL_DISCONNECT","_x0","HANDLE_CALL_ESTABLISHED","ESTABLISHED","_handleUnknownState","_callee13","eventData","_t1","_context13","HANDLE_UNKNOWN_STATE","media","_x1","getEmitterCallback","_this7","clearTimeout","_handleRoapEstablished","_callee14","_this8","_ref9","received","_t10","_context14","HANDLE_ROAP_ESTABLISHED","postMedia","messageType","_x10","_x11","_handleRoapError","_callee15","_this9","_t11","_context15","HANDLE_ROAP_ERROR","_x12","_x13","_handleOutgoingRoapOffer","_callee16","_this0","_t12","_context16","HANDLE_OUTGOING_ROAP_OFFER","initiateOffer","_x14","_x15","_handleOutgoingRoapAnswer","_callee17","_this1","_t13","_context17","HANDLE_OUTGOING_ROAP_ANSWER","_x16","_x17","HANDLE_INCOMING_ROAP_OFFER","HANDLE_INCOMING_ROAP_ANSWER","initMediaConnection","debugId","_this10","RoapMediaConnection","skipInactiveTransceivers","iceServers","iceCandidatesTimeout","ICE_CANDIDATES_TIMEOUT","sdpMunging","convertPort9to0","addContentSlides","copyClineToSessionLevel","localTracks","video","screenShareVideo","addMetrics","closeMetrics","sendMetricsInQueue","send","MEDIA_INACTIVITY","CallDirection","OUTBOUND","BUSY","_answer","_callee18","_context18","ANSWER","enabled","mediaRoapEventsListener","mediaTrackListener","answer","_x18","_dial","_callee19","_context19","DIAL","dial","_x19","_patch","_callee20","_context20","CALLS_ENDPOINT_RESOURCE","PATCH","callState","_x20","_postSSRequest","_callee21","request","transferContext","_t14","_context21","SERVICES_ENDPOINT","TRANSFER","CALL_HOLD_SERVICE","HOLD_ENDPOINT","RESUME_ENDPOINT","CALL_TRANSFER_SERVICE","TRANSFER_ENDPOINT","_assign","blindTransferContext","transferType","TransferType","BLIND","transferToCallId","consultTransferContext","CONSULT","POST_SS_REQUEST","_x21","_x22","_postStatus","_callee22","_context22","CALL_STATUS_RESOURCE","_completeTransfer","_callee23","transferCallId","transferTarget","_this11","_context23","_errData","_t15","_t16","_context24","COMPLETE_TRANSFER","transferorCallId","getCallId","TRANSFER_ACTION","TRANSFER_ERROR","completeTransfer","_x23","_x24","_x25","_getCallStats","_callee24","stats","_t17","_context25","getStats","GET_CALL_STATS","parseMediaQualityStatistics","getCallStats","_postMedia","_callee25","_context26","POST_MEDIA","MEDIA_ENDPOINT_RESOURCE","_x26","_this12","MediaConnectionEventNames","ROAP_MESSAGE_TO_SEND","_ref0","_callee26","_event$roapMessage","_event$roapMessage2","mediaOk","sdpVideoPortZero","_t18","_context27","version","MEDIA_ROAP_EVENTS_LISTENER","RoapScenario","OK","OFFER","ERROR","OFFER_RESPONSE","modifySdpForIPv4","replace","_x27","_this13","REMOTE_TRACK_ADDED","MEDIA_CONNECTION_EVENT_KEYS","MEDIA_TYPE_AUDIO","REMOTE_MEDIA","track","off","LocalStreamEventNames","EffectAdded","registerEffectListener","OutputTrackChange","updateTrack","isEnabled","_delete2","_callee27","disconnectMetrics","_context28","DELETE","metrics","causecode","transferMetricAction","getCallError","errorLayer","_this$remoteRoapMessa2","MEDIA_ERROR","handleMidCallEvent","eventType","MidCallEventType","CALL_INFO","HANDLE_MID_CALL_EVENT","callerData","CALL_STATE","MOBIUS_MIDCALL_STATE","HELD","RESUMED","fetchCallerDetails","sendDigit","tone","SEND_DIGIT","insertDTMF","setBroadworksCorrelationInfo","getBroadworksCorrelationInfo","getCallRtpStats","_handleTimeout","_callee28","_context29","HANDLE_TIMEOUT","Eventing","createCall","dir","dest"],"sources":["call.ts"],"sourcesContent":["import {\n MediaConnectionEventNames,\n LocalMicrophoneStream,\n LocalStreamEventNames,\n RoapMediaConnection,\n} from '@webex/internal-media-core';\nimport {createMachine, interpret} from 'xstate';\nimport {v4 as uuid} from 'uuid';\nimport {EffectEvent, TrackEffect} from '@webex/media-helpers';\nimport {RtcMetrics} from '@webex/internal-plugin-metrics';\nimport {ERROR_LAYER, ERROR_TYPE, ErrorContext} from '../../Errors/types';\nimport {\n handleCallErrors,\n modifySdpForIPv4,\n parseMediaQualityStatistics,\n serviceErrorCodeHandler,\n uploadLogs,\n} from '../../common/Utils';\nimport {\n ALLOWED_SERVICES,\n CallDetails,\n CallDirection,\n CallId,\n CorrelationId,\n DisplayInformation,\n HTTP_METHODS,\n ServiceIndicator,\n WebexRequestPayload,\n} from '../../common/types';\nimport {CallError, createCallError} from '../../Errors/catalog/CallError';\n/* eslint-disable tsdoc/syntax */\n/* eslint-disable no-param-reassign */\nimport {\n CALL_ENDPOINT_RESOURCE,\n CALL_FILE,\n CALL_HOLD_SERVICE,\n CALL_STATUS_RESOURCE,\n CALL_TRANSFER_SERVICE,\n CALLING_USER_AGENT,\n CALLS_ENDPOINT_RESOURCE,\n CISCO_DEVICE_URL,\n DEFAULT_LOCAL_CALL_ID,\n DEFAULT_SESSION_TIMER,\n DEVICES_ENDPOINT_RESOURCE,\n HOLD_ENDPOINT,\n ICE_CANDIDATES_TIMEOUT,\n INITIAL_SEQ_NUMBER,\n MAX_CALL_KEEPALIVE_RETRY_COUNT,\n MEDIA_ENDPOINT_RESOURCE,\n METHODS,\n NOISE_REDUCTION_EFFECT,\n RESUME_ENDPOINT,\n SPARK_USER_AGENT,\n SUPPLEMENTARY_SERVICES_TIMEOUT,\n TRANSFER_ENDPOINT,\n} from '../constants';\nimport SDKConnector from '../../SDKConnector';\nimport {Eventing} from '../../Events/impl';\nimport {\n CALL_EVENT_KEYS,\n CallerIdInfo,\n CallEvent,\n CallEventTypes,\n MEDIA_CONNECTION_EVENT_KEYS,\n MOBIUS_MIDCALL_STATE,\n RoapEvent,\n RoapMessage,\n SUPPLEMENTARY_SERVICES,\n} from '../../Events/types';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {\n CallRtpStats,\n DeleteRecordCallBack,\n DisconnectCause,\n DisconnectCode,\n DisconnectReason,\n ICall,\n MediaContext,\n MidCallCallerId,\n MidCallEvent,\n MidCallEventType,\n MobiusCallData,\n MobiusCallResponse,\n MobiusCallState,\n MUTE_TYPE,\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 {METHOD_START_MESSAGE, SERVICES_ENDPOINT} from '../../common/constants';\nimport {APIRequest} from '../utils/request';\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.Timeout;\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 connectPending: boolean;\n\n private receivedRoapOKSeq: number;\n\n private localAudioStream?: LocalMicrophoneStream;\n\n private rtcMetrics: RtcMetrics;\n\n private callKeepaliveRetryCount = 0;\n\n private apiRequest: APIRequest;\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 direction: CallDirection,\n deviceId: string,\n lineId: string,\n deleteCb: DeleteRecordCallBack,\n indicator: ServiceIndicator,\n destination?: CallDetails\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 this.connectPending = false;\n\n log.info(`Webex Calling Url:- ${this.mobiusUrl}`, {\n file: CALL_FILE,\n method: METHODS.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 this.rtcMetrics = new RtcMetrics(this.webex, {callId: this.callId}, this.correlationId);\n this.apiRequest = APIRequest.getInstance({webex: this.webex});\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 after: {\n 10000: {\n target: 'S_CALL_CLEARED',\n actions: ['triggerTimeout'],\n },\n },\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 after: {\n 10000: {\n target: 'S_CALL_CLEARED',\n actions: ['triggerTimeout'],\n },\n },\n on: {\n E_RECV_CALL_PROGRESS: {\n target: 'S_RECV_CALL_PROGRESS',\n actions: ['incomingCallProgress'],\n },\n E_RECV_CALL_CONNECT: {\n target: 'S_RECV_CALL_CONNECT',\n actions: ['incomingCallConnect'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n\n /* CALL_PROGRESS */\n S_RECV_CALL_PROGRESS: {\n after: {\n 60000: {\n target: 'S_CALL_CLEARED',\n actions: ['triggerTimeout'],\n },\n },\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 after: {\n 60000: {\n target: 'S_CALL_CLEARED',\n actions: ['triggerTimeout'],\n },\n },\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 after: {\n 10000: {\n target: 'S_CALL_CLEARED',\n actions: ['triggerTimeout'],\n },\n },\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 after: {\n 10000: {\n target: 'S_CALL_CLEARED',\n actions: ['triggerTimeout'],\n },\n },\n on: {\n E_SEND_CALL_CONNECT: {\n cond: () => this.connectPending,\n target: 'S_SEND_CALL_CONNECT',\n actions: ['outgoingCallConnect'],\n },\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 triggerTimeout: () => this.handleTimeout(),\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(`Call StateMachine:- state=${state.value}, event=${JSON.stringify(event.type)}`, {\n file: CALL_FILE,\n method: METHODS.CONSTRUCTOR,\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(`Media StateMachine:- state=${state.value}, event=${JSON.stringify(event.type)}`, {\n file: CALL_FILE,\n method: METHODS.CONSTRUCTOR,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_SETUP,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n\n const message = event.data as RoapMessage;\n\n try {\n const response = await this.post(message);\n log.info(`Response: ${JSON.stringify(response)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n\n log.info(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n this.setCallId(response.body.callId);\n log.log(`Call setup successful for callId: ${response.body.callId}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallSetup.name,\n });\n } catch (e) {\n log.error(`Failed to setup the call: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\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 METHODS.HANDLE_OUTGOING_CALL_SETUP,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\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: METHODS.HANDLE_CALL_HOLD,\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: METHODS.HANDLE_CALL_HOLD};\n\n log.warn('Hold response timed out', {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\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.error(`Failed to put the call on hold: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\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 METHODS.HANDLE_CALL_HOLD,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_RESUME,\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: METHODS.HANDLE_CALL_RESUME,\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: METHODS.HANDLE_CALL_RESUME};\n\n log.warn('Resume response timed out', {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_RESUME,\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.error(`Failed to resume the call: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_RESUME,\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 METHODS.HANDLE_CALL_RESUME,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\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: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\n });\n this.earlyMedia = true;\n } else {\n log.log('Inband media not present.', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\n });\n }\n\n if (data?.callerId) {\n log.info('Processing Caller-Id data', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\n });\n this.startCallerIdResolution(data.callerId);\n }\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\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: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\n });\n\n this.seq = message.seq;\n log.info(`Setting Sequence No: ${this.seq}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\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: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_ALERTING,\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: METHODS.HANDLE_OUTGOING_CALL_ALERTING,\n });\n } catch (e) {\n log.error(`Failed to signal call progression: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_ALERTING,\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 METHODS.HANDLE_OUTGOING_CALL_ALERTING,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_CONNECT,\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 this.connectPending = false;\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\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: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\n });\n this.connectPending = true;\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: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\n });\n } catch (e) {\n log.error(`Failed to connect the call: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\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 METHODS.HANDLE_OUTGOING_CALL_CONNECT,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_DISCONNECT,\n });\n\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.correlationId);\n\n this.setDisconnectReason();\n\n try {\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_DISCONNECT,\n });\n } catch (e) {\n log.warn(`Failed to delete the call: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_DISCONNECT,\n });\n\n uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n /* Clear the stream listeners */\n this.unregisterListeners();\n\n /* istanbul ignore else */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_DISCONNECT,\n });\n }\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\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 log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n this.setDisconnectReason();\n\n try {\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n log.log(`Call disconnected successfully: ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n /* Clear the stream listeners */\n this.unregisterListeners();\n\n /* istanbul ignore else */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n }\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n }\n\n private callKeepaliveRetryCallback = (interval: number) => {\n if (this.callKeepaliveRetryCount === MAX_CALL_KEEPALIVE_RETRY_COUNT) {\n log.warn(\n `Max keepalive retry attempts reached. Aborting call keepalive for callId: ${this.callId}`,\n {\n file: CALL_FILE,\n method: 'keepaliveRetryCallback',\n }\n );\n\n return;\n }\n\n this.callKeepaliveRetryCount += 1;\n\n setTimeout(async () => {\n try {\n await this.postStatus();\n this.scheduleCallKeepaliveInterval();\n } catch (err: unknown) {\n await this.handleCallKeepaliveError(err);\n }\n }, interval * 1000);\n };\n\n private handleCallKeepaliveError = async (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 const abort = await handleCallErrors(\n (callError: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, callError);\n this.submitCallErrorMetric(callError);\n },\n ERROR_LAYER.CALL_CONTROL,\n this.callKeepaliveRetryCallback,\n this.getCorrelationId(),\n error,\n 'handleCallEstablished',\n CALL_FILE\n );\n\n if (abort) {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());\n this.callKeepaliveRetryCount = 0;\n }\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n };\n\n private scheduleCallKeepaliveInterval = () => {\n const loggerContext = {\n file: CALL_FILE,\n method: 'scheduleCallKeepaliveInterval',\n };\n\n clearInterval(this.sessionTimer);\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`, loggerContext);\n } catch (err: unknown) {\n await this.handleCallKeepaliveError(err);\n }\n }, DEFAULT_SESSION_TIMER);\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 const loggerContext = {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_ESTABLISHED,\n };\n\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, loggerContext);\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 this.scheduleCallKeepaliveInterval();\n }\n\n /**\n * Handle Unknown events.\n *\n * @param event - Call Events.\n */\n private async handleUnknownState(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\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: METHODS.HANDLE_UNKNOWN_STATE,\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(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n\n uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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: METHODS.HANDLE_UNKNOWN_STATE,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\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: METHODS.HANDLE_ROAP_ESTABLISHED,\n });\n\n try {\n if (\n this.callStateMachine.state.value === 'S_RECV_CALL_PROGRESS' ||\n this.callStateMachine.state.value === 'S_SEND_CALL_SETUP'\n ) {\n log.info(\n 'Media negotiation completed before call connect. Setting media negotiation completed flag.',\n {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n }\n );\n this.mediaNegotiationCompleted = true;\n }\n message.seq = this.seq;\n const res = await this.postMedia(message);\n\n log.log(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\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: METHODS.HANDLE_ROAP_ESTABLISHED,\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 await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n } else {\n log.info('Notifying internal-media-core about ROAP OK message', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\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 && message.messageType === 'ERROR') {\n try {\n const res = await this.postMedia(message);\n\n log.info(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\n });\n } catch (err) {\n log.warn('Failed to communicate ROAP error to Webex Calling', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\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 await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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: METHODS.HANDLE_ROAP_ERROR,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\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: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\n });\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(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\n });\n } catch (err) {\n log.warn('Failed to send MediaOffer request', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\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 METHODS.HANDLE_OUTGOING_ROAP_OFFER,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\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(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\n });\n } catch (err) {\n log.warn('Failed to send MediaAnswer request', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\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 METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER,\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: METHODS.HANDLE_INCOMING_ROAP_OFFER,\n });\n this.seq = message.seq;\n log.info(`Setting Sequence No: ${this.seq}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER,\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: METHODS.HANDLE_INCOMING_ROAP_OFFER,\n });\n\n this.remoteRoapMessage = message;\n } else {\n log.info('Handling new offer...', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_ANSWER,\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 /**\n * Media failed, so collect a stats report from webrtc\n * send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback\n * @param {String} callFrom - the function calling this function, optional.\n * @returns {Promise<void>}\n */\n private forceSendStatsReport = async ({callFrom}: {callFrom?: string}) => {\n const loggerContext = {\n file: CALL_FILE,\n method: METHODS.FORCE_SEND_STATS_REPORT,\n };\n\n try {\n await this.mediaConnection.forceRtcMetricsSend();\n log.info(`Successfully uploaded available webrtc telemetry statistics`, loggerContext);\n log.info(`callFrom: ${callFrom}`, loggerContext);\n } catch (error) {\n const errorInfo = error as WebexRequestPayload;\n const errorStatus = await serviceErrorCodeHandler(errorInfo, loggerContext);\n\n log.error(\n `Failed to upload webrtc telemetry statistics. ${JSON.stringify(errorStatus)}`,\n loggerContext\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n };\n\n /* istanbul ignore next */\n /**\n * Initialize Media Connection.\n *\n * @param settings -.\n * @param settings.localAudioTrack - MediaStreamTrack.\n * @param settings.debugId - String.\n */\n private initMediaConnection(localAudioTrack: MediaStreamTrack, debugId?: string) {\n const mediaConnection = new RoapMediaConnection(\n {\n skipInactiveTransceivers: true,\n iceServers: [],\n iceCandidatesTimeout: ICE_CANDIDATES_TIMEOUT,\n sdpMunging: {\n convertPort9to0: true,\n addContentSlides: false,\n copyClineToSessionLevel: true,\n },\n },\n {\n localTracks: {audio: localAudioTrack},\n direction: {\n audio: 'sendrecv',\n video: 'inactive',\n screenShareVideo: 'inactive',\n },\n },\n debugId || `WebexCallSDK-${this.correlationId}`,\n (data) => this.rtcMetrics.addMetrics(data),\n () => this.rtcMetrics.closeMetrics(),\n () => this.rtcMetrics.sendMetricsInQueue()\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 this.rtcMetrics.updateCallId(callId);\n\n log.info(`Setting callId : ${this.callId} for correlationId: ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.SET_CALL_ID,\n });\n\n this.callId = callId;\n this.rtcMetrics.updateCallId(callId);\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 log.info(`${METHOD_START_MESSAGE} with stream`, {\n file: CALL_FILE,\n method: METHODS.ANSWER,\n });\n\n this.localAudioStream = localAudioStream;\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(`Did not find a local track while answering the call ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.ANSWER,\n });\n this.mediaInactivity = true;\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n\n return;\n }\n\n localAudioTrack.enabled = true;\n\n if (!this.mediaConnection) {\n this.initMediaConnection(localAudioTrack);\n this.mediaRoapEventsListener();\n this.mediaTrackListener();\n this.registerListeners(localAudioStream);\n }\n\n if (this.callStateMachine.state.value === 'S_SEND_CALL_PROGRESS') {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_CONNECT'});\n } else {\n log.warn(\n `Call cannot be answered because the state is : ${this.callStateMachine.state.value}`,\n {file: CALL_FILE, method: METHODS.ANSWER}\n );\n }\n }\n\n /**\n * @param settings\n * @param settings.localAudioTrack\n */\n public async dial(localAudioStream: LocalMicrophoneStream) {\n log.info(`${METHOD_START_MESSAGE} with stream`, {\n file: CALL_FILE,\n method: METHODS.DIAL,\n });\n\n this.localAudioStream = localAudioStream;\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(`Did not find a local track while dialing the call ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.DIAL,\n });\n\n this.deleteCb(this.getCorrelationId());\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());\n\n return;\n }\n localAudioTrack.enabled = true;\n\n if (!this.mediaConnection) {\n this.initMediaConnection(localAudioTrack);\n this.mediaRoapEventsListener();\n this.mediaTrackListener();\n this.registerListeners(localAudioStream);\n }\n\n if (this.mediaStateMachine.state.value === 'S_ROAP_IDLE') {\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER'});\n } else {\n log.warn(\n `Call cannot be dialed because the state is already : ${this.mediaStateMachine.state.value}`,\n {file: CALL_FILE, method: METHODS.DIAL}\n );\n }\n }\n\n /**\n * .\n *\n * @param roapMessage\n */\n private post = async (roapMessage: RoapMessage): Promise<MobiusCallResponse> => {\n const basePayload = {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n localMedia: {\n roap: roapMessage,\n mediaId: uuid(),\n },\n };\n\n return this.apiRequest.makeRequest({\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: this.destination\n ? {\n ...basePayload,\n callee: {\n type: this.destination.type,\n address: this.destination.address,\n },\n }\n : basePayload,\n }) as Promise<MobiusCallResponse>;\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: 'patch',\n });\n\n return this.apiRequest.makeRequest({\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 }) as Promise<PatchResponse>;\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: METHODS.POST_SS_REQUEST,\n });\n }\n }\n\n return this.apiRequest.makeRequest(request) as Promise<SSResponse>;\n }\n\n /**\n * Sends Call status to Mobius.\n */\n public async postStatus(): Promise<WebexRequestPayload> {\n return this.apiRequest.makeRequest({\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 }) as Promise<WebexRequestPayload>;\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: METHODS.COMPLETE_TRANSFER,\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\n log.info(`Blind Transfer completed for correlationId ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.COMPLETE_TRANSFER,\n });\n\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: METHODS.COMPLETE_TRANSFER,\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 METHODS.COMPLETE_TRANSFER,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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: METHODS.COMPLETE_TRANSFER,\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\n log.info(`Consult Transfer completed for correlationId ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.COMPLETE_TRANSFER,\n });\n\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: METHODS.COMPLETE_TRANSFER,\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 METHODS.COMPLETE_TRANSFER,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n } else {\n log.warn(\n `Invalid information received, transfer failed for correlationId: ${this.getCorrelationId()}`,\n {\n file: CALL_FILE,\n method: METHODS.COMPLETE_TRANSFER,\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: METHODS.GET_CALL_STATS,\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: METHODS.POST_MEDIA,\n });\n\n return this.apiRequest.makeRequest({\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 }) as Promise<WebexRequestPayload>;\n }\n\n /* istanbul ignore next */\n /**\n * Setup a listener for roap events emitted by the media sdk.\n */\n private mediaRoapEventsListener() {\n this.mediaConnection.on(\n MediaConnectionEventNames.ROAP_MESSAGE_TO_SEND,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async (event: any) => {\n log.info(\n `ROAP message to send (rcv from MEDIA-SDK) :\n \\n type: ${event.roapMessage?.messageType}, seq: ${event.roapMessage.seq} , version: ${event.roapMessage.version}`,\n {file: CALL_FILE, method: METHODS.MEDIA_ROAP_EVENTS_LISTENER}\n );\n\n log.info(`SDP message to send : \\n ${event.roapMessage?.sdp}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\n });\n\n switch (event.roapMessage.messageType) {\n case RoapScenario.OK: {\n const mediaOk = {\n received: false,\n message: event.roapMessage,\n };\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_OK', data: mediaOk});\n break;\n }\n\n case RoapScenario.OFFER: {\n // TODO: Remove these after the Media-Core adds the fix\n // Check if at least one IPv6 \"c=\" line is present\n log.info(`before modifying sdp: ${event.roapMessage.sdp}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\n });\n\n event.roapMessage.sdp = modifySdpForIPv4(event.roapMessage.sdp);\n\n const sdpVideoPortZero = event.roapMessage.sdp.replace(\n /^m=(video) (?:\\d+) /gim,\n 'm=$1 0 '\n );\n\n log.info(`after modification sdp: ${sdpVideoPortZero}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\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 event.roapMessage.sdp = modifySdpForIPv4(event.roapMessage.sdp);\n this.localRoapMessage = event.roapMessage;\n if (this.connectPending) {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_CONNECT'});\n }\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 event.roapMessage.sdp = modifySdpForIPv4(event.roapMessage.sdp);\n this.localRoapMessage = event.roapMessage;\n if (this.connectPending) {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_CONNECT'});\n }\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER', data: event.roapMessage});\n break;\n\n default:\n }\n }\n );\n }\n\n /* istanbul ignore next */\n /**\n * Setup a listener for remote track added event emitted by the media sdk.\n */\n private mediaTrackListener() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.mediaConnection.on(MediaConnectionEventNames.REMOTE_TRACK_ADDED, (e: any) => {\n if (e.type === MEDIA_CONNECTION_EVENT_KEYS.MEDIA_TYPE_AUDIO) {\n this.emit(CALL_EVENT_KEYS.REMOTE_MEDIA, e.track);\n }\n });\n }\n\n private onEffectEnabled = () => {\n this.metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_ENABLED,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId\n );\n };\n\n private onEffectDisabled = () => {\n this.metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_DISABLED,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId\n );\n };\n\n private updateTrack = (audioTrack: MediaStreamTrack) => {\n this.mediaConnection.updateLocalTracks({audio: audioTrack});\n };\n\n private registerEffectListener = (addedEffect: TrackEffect) => {\n if (this.localAudioStream) {\n const effect = this.localAudioStream.getEffectByKind(NOISE_REDUCTION_EFFECT);\n\n if (effect === addedEffect) {\n effect.on(EffectEvent.Enabled, this.onEffectEnabled);\n effect.on(EffectEvent.Disabled, this.onEffectDisabled);\n }\n }\n };\n\n private unregisterListeners() {\n if (this.localAudioStream) {\n const effect = this.localAudioStream.getEffectByKind(NOISE_REDUCTION_EFFECT);\n\n if (effect) {\n effect.off(EffectEvent.Enabled, this.onEffectEnabled);\n effect.off(EffectEvent.Disabled, this.onEffectDisabled);\n }\n\n this.localAudioStream.off(LocalStreamEventNames.EffectAdded, this.registerEffectListener);\n this.localAudioStream.off(LocalStreamEventNames.OutputTrackChange, this.updateTrack);\n }\n }\n\n private registerListeners(localAudioStream: LocalMicrophoneStream) {\n localAudioStream.on(LocalStreamEventNames.OutputTrackChange, this.updateTrack);\n\n localAudioStream.on(LocalStreamEventNames.EffectAdded, this.registerEffectListener);\n\n const effect = localAudioStream.getEffectByKind(NOISE_REDUCTION_EFFECT) as any;\n\n if (effect) {\n effect.on(EffectEvent.Enabled, this.onEffectEnabled);\n effect.on(EffectEvent.Disabled, this.onEffectDisabled);\n\n if (effect.isEnabled) {\n this.onEffectEnabled();\n }\n }\n }\n\n private async delete(): Promise<MobiusCallResponse> {\n const disconnectMetrics = await this.getCallStats();\n\n return this.apiRequest.makeRequest({\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 }) as Promise<MobiusCallResponse>;\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: METHODS.HANDLE_MID_CALL_EVENT,\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: METHODS.HANDLE_MID_CALL_EVENT,\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: METHODS.HANDLE_MID_CALL_EVENT,\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: METHODS.HANDLE_MID_CALL_EVENT,\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: METHODS.HANDLE_MID_CALL_EVENT,\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: METHODS.HANDLE_MID_CALL_EVENT,\n });\n }\n }\n }\n\n /**\n *\n */\n public getCallerInfo = (): DisplayInformation => this.callerInfo;\n\n /**\n *\n */\n public end = (): void => {\n log.info(`${METHOD_START_MESSAGE}`, {\n file: CALL_FILE,\n method: METHODS.END,\n });\n\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 log.info(`${METHOD_START_MESSAGE} with: ${tone}`, {\n file: CALL_FILE,\n method: METHODS.SEND_DIGIT,\n });\n\n /* istanbul ignore else */\n try {\n this.mediaConnection.insertDTMF(tone);\n } catch (e: any) {\n log.warn(`Unable to send digit on call: ${e.message}`, {\n file: CALL_FILE,\n method: METHODS.SEND_DIGIT,\n });\n }\n }\n\n /**\n * Mutes/Unmutes the call.\n *\n * @param localAudioStream - The local audio stream to mute or unmute.\n * @param muteType - Identifies if mute was triggered by system or user.\n *\n * @example\n * ```javascript\n * call.mute(localAudioStream, 'system_mute')\n * ```\n */\n public mute = (localAudioStream: LocalMicrophoneStream, muteType?: MUTE_TYPE): void => {\n log.info(`${METHOD_START_MESSAGE} with: ${muteType || 'user mute'}`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n\n if (!localAudioStream) {\n log.warn(`Did not find a local stream while muting the call ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n\n return;\n }\n if (muteType === MUTE_TYPE.SYSTEM) {\n if (!localAudioStream.userMuted) {\n this.muted = localAudioStream.systemMuted;\n } else {\n log.info(`Call is muted by the user already - ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n }\n } else if (!localAudioStream.systemMuted) {\n localAudioStream.setUserMuted(!this.muted);\n this.muted = !this.muted;\n } else {\n log.info(`Call is muted on the system - ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n }\n };\n\n /**\n * Change the audio stream of the call.\n *\n * @param newAudioStream - The new audio stream to be used in the call.\n */\n\n public updateMedia = (newAudioStream: LocalMicrophoneStream): void => {\n const localAudioTrack = newAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(\n `Did not find a local track while updating media for call ${this.getCorrelationId()}. Will not update media`,\n {\n file: CALL_FILE,\n method: METHODS.UPDATE_MEDIA,\n }\n );\n\n return;\n }\n\n try {\n this.mediaConnection.updateLocalTracks({\n audio: localAudioTrack,\n });\n\n this.unregisterListeners();\n this.registerListeners(newAudioStream);\n this.localAudioStream = newAudioStream;\n } catch (e: any) {\n log.warn(`Unable to update media on call ${this.getCorrelationId()}. Error: ${e.message}`, {\n file: CALL_FILE,\n method: METHODS.UPDATE_MEDIA,\n });\n }\n };\n\n /**\n * @param broadworksCorrelationInfo\n */\n setBroadworksCorrelationInfo(broadworksCorrelationInfo: string): void {\n this.broadworksCorrelationInfo = broadworksCorrelationInfo;\n }\n\n /**\n *\n */\n getBroadworksCorrelationInfo(): string | undefined {\n return this.broadworksCorrelationInfo;\n }\n\n /**\n * Get call stats for an active call.\n *\n * @returns Promise<CallRtpStats> Call Stats.\n */\n getCallRtpStats(): Promise<CallRtpStats> {\n return this.getCallStats();\n }\n\n /**\n * Handle timeout for the missed events\n * @param expectedStates - An array of next expected states\n * @param errorMessage - Error message to be emitted if the call is not in the expected state in expected time\n */\n private async handleTimeout() {\n log.warn(`Call timed out`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_TIMEOUT,\n });\n this.deleteCb(this.getCorrelationId());\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_TIMEOUT,\n });\n }\n}\n\n/**\n * @param activeUrl\n * @param webex -.\n * @param dir -.\n * @param deviceId -.\n * @param lineId -.\n * @param serverCb\n * @param deleteCb\n * @param indicator - Service Indicator.\n * @param dest -.\n */\nexport const createCall = (\n activeUrl: string,\n webex: WebexSDK,\n dir: CallDirection,\n deviceId: string,\n lineId: string,\n deleteCb: DeleteRecordCallBack,\n indicator: ServiceIndicator,\n dest?: CallDetails\n): ICall => new Call(activeUrl, webex, dir, deviceId, lineId, deleteCb, indicator, dest);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_internalMediaCore","require","_xstate","_uuid","_mediaHelpers","_internalPluginMetrics","_types","_Utils","_types2","_CallError","_constants","_SDKConnector","_interopRequireDefault","_impl","_types3","_types4","_Logger","_CallerId","_types5","_Metrics","_constants2","_request","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","Boolean","prototype","valueOf","call","Call","exports","_Eventing","activeUrl","webex","direction","deviceId","lineId","deleteCb","indicator","destination","_this","_classCallCheck2","_ref","_asyncToGenerator2","_regenerator","mark","_callee","event","_event$roapMessage","_event$roapMessage2","mediaOk","sdpVideoPortZero","_t","wrap","_context","prev","next","log","info","concat","roapMessage","messageType","seq","version","file","CALL_FILE","method","METHODS","MEDIA_ROAP_EVENTS_LISTENER","sdp","RoapScenario","OK","OFFER","ANSWER","ERROR","OFFER_RESPONSE","received","message","sendMediaStateMachineEvt","type","data","abrupt","warn","modifySdpForIPv4","replace","localRoapMessage","sendCallStateMachineEvt","connectPending","stop","_x","MEDIA_CONNECTION_EVENT_KEYS","MEDIA_TYPE_AUDIO","emit","CALL_EVENT_KEYS","REMOTE_MEDIA","track","iceGatheringState","getPeerConnectionStateFromEvent","MEDIA_ICE_EVENTS_LISTENER","metricManager","submitMediaMetric","METRIC_EVENT","MEDIA","MEDIA_CONNECTION_ACTION","ICE_GATHERING_STATE_CHANGED","METRIC_TYPE","BEHAVIORAL","callId","correlationId","undefined","connectionState","PEER_CONNECTION_STATE_CHANGED","iceConnectionState","ICE_CONNECTION_STATE_CHANGED","_event$address","_event$port","iceErrorPayload","address","errorCode","errorText","port","url","_stringify","callError","createCallError","ERROR_TYPE","CALL_ERROR","ERROR_LAYER","MEDIA_ERROR","ICE_CANDIDATE_ERROR","error","failureMessage","ROAP_FAILURE","interval","callKeepaliveRetryCount","MAX_CALL_KEEPALIVE_RETRY_COUNT","setTimeout","_callee2","_t2","_context2","postStatus","scheduleCallKeepaliveInterval","handleCallKeepaliveError","_ref3","_callee3","err","abort","_context3","sessionTimer","clearInterval","handleCallErrors","submitCallErrorMetric","CALL_CONTROL","callKeepaliveRetryCallback","getCorrelationId","sent","DISCONNECT","uploadLogs","broadworksCorrelationInfo","_x2","loggerContext","setInterval","_callee4","res","_t3","_context4","DEFAULT_SESSION_TIMER","_ref6","_callee5","_ref5","callFrom","errorInfo","errorStatus","_t4","_context5","FORCE_SEND_STATS_REPORT","mediaConnection","forceRtcMetricsSend","serviceErrorCodeHandler","_x3","rtcMetrics","updateCallId","SET_CALL_ID","disconnectReason","_ref7","_callee6","basePayload","_context6","device","localMedia","roap","mediaId","uuid","apiRequest","makeRequest","uri","mobiusUrl","DEVICES_ENDPOINT_RESOURCE","CALL_ENDPOINT_RESOURCE","HTTP_METHODS","POST","service","ALLOWED_SERVICES","MOBIUS","headers","CISCO_DEVICE_URL","internal","SPARK_USER_AGENT","CALLING_USER_AGENT","body","callee","_x4","submitBNRMetric","BNR_ENABLED","BNR_DISABLED","audioTrack","updateLocalTracks","audio","addedEffect","localAudioStream","effect","getEffectByKind","NOISE_REDUCTION_EFFECT","on","EffectEvent","Enabled","onEffectEnabled","Disabled","onEffectDisabled","callerInfo","METHOD_START_MESSAGE","END","held","muteType","MUTE","MUTE_TYPE","SYSTEM","userMuted","muted","systemMuted","setUserMuted","newAudioStream","localAudioTrack","outputStream","getAudioTracks","UPDATE_MEDIA","unregisterListeners","registerListeners","sdkConnector","SDKConnector","serviceIndicator","getWebex","setWebex","getMetricManager","DEFAULT_LOCAL_CALL_ID","connected","mediaInactivity","earlyMedia","receivedRoapOKSeq","mediaNegotiationCompleted","CONSTRUCTOR","INITIAL_SEQ_NUMBER","callerId","createCallerId","emitObj","CALLER_ID","remoteRoapMessage","code","DisconnectCode","NORMAL","cause","DisconnectCause","RtcMetrics","APIRequest","getInstance","callMachine","createMachine","schema","context","events","id","initial","states","S_IDLE","E_RECV_CALL_SETUP","target","actions","E_SEND_CALL_SETUP","E_RECV_CALL_DISCONNECT","E_SEND_CALL_DISCONNECT","E_UNKNOWN","S_RECV_CALL_SETUP","after","E_SEND_CALL_ALERTING","S_SEND_CALL_SETUP","E_RECV_CALL_PROGRESS","E_RECV_CALL_CONNECT","S_RECV_CALL_PROGRESS","S_SEND_CALL_PROGRESS","E_SEND_CALL_CONNECT","S_RECV_CALL_CONNECT","E_CALL_ESTABLISHED","S_SEND_CALL_CONNECT","cond","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","handleIncomingCallSetup","outgoingCallSetup","handleOutgoingCallSetup","incomingCallProgress","handleIncomingCallProgress","outgoingCallAlerting","handleOutgoingCallAlerting","incomingCallConnect","handleIncomingCallConnect","outgoingCallConnect","handleOutgoingCallConnect","callEstablished","handleCallEstablished","initiateCallHold","handleCallHold","initiateCallResume","handleCallResume","incomingCallDisconnect","handleIncomingCallDisconnect","outgoingCallDisconnect","handleOutgoingCallDisconnect","unknownState","handleUnknownState","triggerTimeout","handleTimeout","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","submitCallMetric","CALL","toString","start","mediaStateMachine","_this$remoteRoapMessa","_inherits2","_createClass2","key","isMuted","isConnected","isHeld","HANDLE_INCOMING_CALL_SETUP","_handleOutgoingCallSetup","_callee7","_this2","response","errData","_t5","_context7","HANDLE_OUTGOING_CALL_SETUP","post","statusCode","setCallId","name","_x5","_handleCallHold","_callee9","_this3","_t6","_context9","HANDLE_CALL_HOLD","postSSRequest","SUPPLEMENTARY_SERVICES","HOLD","supplementaryServicesTimer","_callee8","errorContext","_context8","TIMEOUT","HOLD_ERROR","SUPPLEMENTARY_SERVICES_TIMEOUT","_x6","_handleCallResume","_callee1","_this4","_t7","_context1","HANDLE_CALL_RESUME","RESUME","_callee0","_context0","RESUME_ERROR","_x7","_data$callProgressDat","HANDLE_INCOMING_CALL_PROGRESS","callProgressData","inbandMedia","startCallerIdResolution","PROGRESS","HANDLE_INCOMING_ROAP_OFFER_REQUEST","roapMessageReceived","_handleOutgoingCallAlerting","_callee10","_this5","_t8","_context10","HANDLE_OUTGOING_CALL_ALERTING","patch","MobiusCallState","ALERTING","_x8","HANDLE_INCOMING_CALL_CONNECT","CONNECT","_handleOutgoingCallConnect","_callee11","_this6","_t9","_context11","HANDLE_OUTGOING_CALL_CONNECT","CONNECTED","_x9","_handleIncomingCallDisconnect","_callee12","_t0","_context12","HANDLE_INCOMING_CALL_DISCONNECT","setDisconnectReason","delete","unregisterMediaConnectionListeners","close","_x0","_handleOutgoingCallDisconnect","_callee13","_t1","_context13","HANDLE_OUTGOING_CALL_DISCONNECT","_x1","HANDLE_CALL_ESTABLISHED","ESTABLISHED","_handleUnknownState","_callee14","eventData","_t10","_context14","HANDLE_UNKNOWN_STATE","media","_x10","getEmitterCallback","_this7","clearTimeout","_handleRoapEstablished","_callee15","_this8","_ref0","_t11","_context15","HANDLE_ROAP_ESTABLISHED","postMedia","_x11","_x12","_handleRoapError","_callee16","_this9","_t12","_context16","HANDLE_ROAP_ERROR","_x13","_x14","_handleOutgoingRoapOffer","_callee17","_this0","_t13","_context17","HANDLE_OUTGOING_ROAP_OFFER","initiateOffer","_x15","_x16","_handleOutgoingRoapAnswer","_callee18","_this1","_t14","_context18","HANDLE_OUTGOING_ROAP_ANSWER","_x17","_x18","HANDLE_INCOMING_ROAP_OFFER","HANDLE_INCOMING_ROAP_ANSWER","initMediaConnection","debugId","_this10","RoapMediaConnection","skipInactiveTransceivers","iceServers","iceCandidatesTimeout","ICE_CANDIDATES_TIMEOUT","sdpMunging","convertPort9to0","addContentSlides","copyClineToSessionLevel","localTracks","video","screenShareVideo","addMetrics","closeMetrics","sendMetricsInQueue","send","MEDIA_INACTIVITY","CallDirection","OUTBOUND","BUSY","_answer","_callee19","_context19","enabled","mediaRoapEventsListener","mediaTrackListener","mediaIceEventsListener","answer","_x19","_dial","_callee20","_context20","DIAL","dial","_x20","_patch","_callee21","_context21","CALLS_ENDPOINT_RESOURCE","PATCH","callState","_x21","_postSSRequest","_callee22","request","transferContext","_t15","_context22","SERVICES_ENDPOINT","TRANSFER","CALL_HOLD_SERVICE","HOLD_ENDPOINT","RESUME_ENDPOINT","CALL_TRANSFER_SERVICE","TRANSFER_ENDPOINT","_assign","blindTransferContext","transferType","TransferType","BLIND","transferToCallId","consultTransferContext","CONSULT","POST_SS_REQUEST","_x22","_x23","_postStatus","_callee23","_context23","CALL_STATUS_RESOURCE","_completeTransfer","_callee24","transferCallId","transferTarget","_this11","_context24","_errData","_t16","_t17","_context25","COMPLETE_TRANSFER","transferorCallId","getCallId","TRANSFER_ACTION","TRANSFER_ERROR","completeTransfer","_x24","_x25","_x26","_getCallStats","_callee25","stats","_t18","_context26","getStats","GET_CALL_STATS","parseMediaQualityStatistics","getCallStats","_postMedia","_callee26","_context27","POST_MEDIA","MEDIA_ENDPOINT_RESOURCE","_x27","MediaConnectionEventNames","ROAP_MESSAGE_TO_SEND","handleMediaRoapEvent","handleRoapFailure","REMOTE_TRACK_ADDED","handleRemoteTrackAdded","handleIceGatheringStateChanged","handlePeerConnectionStateChanged","handleIceConnectionStateChanged","handleIceCandidateError","off","LocalStreamEventNames","EffectAdded","registerEffectListener","OutputTrackChange","updateTrack","isEnabled","_delete2","_callee27","disconnectMetrics","_context28","DELETE","metrics","causecode","transferMetricAction","getCallError","errorLayer","_this$remoteRoapMessa2","handleMidCallEvent","eventType","MidCallEventType","CALL_INFO","HANDLE_MID_CALL_EVENT","callerData","CALL_STATE","MOBIUS_MIDCALL_STATE","HELD","RESUMED","fetchCallerDetails","sendDigit","tone","SEND_DIGIT","insertDTMF","setBroadworksCorrelationInfo","getBroadworksCorrelationInfo","getCallRtpStats","_handleTimeout","_callee28","_context29","HANDLE_TIMEOUT","preferredKey","Eventing","createCall","dir","dest"],"sources":["call.ts"],"sourcesContent":["import {\n MediaConnectionEventNames,\n LocalMicrophoneStream,\n LocalStreamEventNames,\n RoapMediaConnection,\n} from '@webex/internal-media-core';\nimport {createMachine, interpret} from 'xstate';\nimport {v4 as uuid} from 'uuid';\nimport {EffectEvent, TrackEffect} from '@webex/media-helpers';\nimport {RtcMetrics} from '@webex/internal-plugin-metrics';\nimport {ERROR_LAYER, ERROR_TYPE, ErrorContext} from '../../Errors/types';\nimport {\n handleCallErrors,\n modifySdpForIPv4,\n parseMediaQualityStatistics,\n serviceErrorCodeHandler,\n uploadLogs,\n} from '../../common/Utils';\nimport {\n ALLOWED_SERVICES,\n CallDetails,\n CallDirection,\n CallId,\n CorrelationId,\n DisplayInformation,\n HTTP_METHODS,\n ServiceIndicator,\n WebexRequestPayload,\n} from '../../common/types';\nimport {CallError, createCallError} from '../../Errors/catalog/CallError';\n/* eslint-disable tsdoc/syntax */\n/* eslint-disable no-param-reassign */\nimport {\n CALL_ENDPOINT_RESOURCE,\n CALL_FILE,\n CALL_HOLD_SERVICE,\n CALL_STATUS_RESOURCE,\n CALL_TRANSFER_SERVICE,\n CALLING_USER_AGENT,\n CALLS_ENDPOINT_RESOURCE,\n CISCO_DEVICE_URL,\n DEFAULT_LOCAL_CALL_ID,\n DEFAULT_SESSION_TIMER,\n DEVICES_ENDPOINT_RESOURCE,\n HOLD_ENDPOINT,\n ICE_CANDIDATES_TIMEOUT,\n INITIAL_SEQ_NUMBER,\n MAX_CALL_KEEPALIVE_RETRY_COUNT,\n MEDIA_ENDPOINT_RESOURCE,\n METHODS,\n NOISE_REDUCTION_EFFECT,\n RESUME_ENDPOINT,\n SPARK_USER_AGENT,\n SUPPLEMENTARY_SERVICES_TIMEOUT,\n TRANSFER_ENDPOINT,\n} from '../constants';\nimport SDKConnector from '../../SDKConnector';\nimport {Eventing} from '../../Events/impl';\nimport {\n CALL_EVENT_KEYS,\n CallerIdInfo,\n CallEvent,\n CallEventTypes,\n MEDIA_CONNECTION_EVENT_KEYS,\n MOBIUS_MIDCALL_STATE,\n RoapEvent,\n RoapMessage,\n RoapMessageEvent,\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 IceCandidateErrorEventPayload,\n IceEventPayload,\n MediaContext,\n MidCallCallerId,\n MidCallEvent,\n MidCallEventType,\n MobiusCallData,\n MobiusCallResponse,\n MobiusCallState,\n MUTE_TYPE,\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 {\n IMetricManager,\n METRIC_TYPE,\n METRIC_EVENT,\n TRANSFER_ACTION,\n MEDIA_CONNECTION_ACTION,\n} from '../../Metrics/types';\nimport {getMetricManager} from '../../Metrics';\nimport {METHOD_START_MESSAGE, SERVICES_ENDPOINT} from '../../common/constants';\nimport {APIRequest} from '../utils/request';\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.Timeout;\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 connectPending: boolean;\n\n private receivedRoapOKSeq: number;\n\n private localAudioStream?: LocalMicrophoneStream;\n\n private rtcMetrics: RtcMetrics;\n\n private callKeepaliveRetryCount = 0;\n\n private apiRequest: APIRequest;\n\n private handleMediaRoapEvent = async (event: RoapMessageEvent) => {\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 {file: CALL_FILE, method: METHODS.MEDIA_ROAP_EVENTS_LISTENER}\n );\n\n log.info(`SDP message to send : \\n ${event.roapMessage?.sdp}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\n });\n\n switch (event.roapMessage.messageType) {\n case RoapScenario.OK: {\n const mediaOk = {\n received: false,\n message: event.roapMessage,\n };\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_OK', data: mediaOk});\n break;\n }\n\n case RoapScenario.OFFER: {\n if (!event.roapMessage.sdp) {\n log.warn('Received OFFER without SDP from media SDK', {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\n });\n break;\n }\n // TODO: Remove these after the Media-Core adds the fix\n // Check if at least one IPv6 \"c=\" line is present\n log.info(`before modifying sdp: ${event.roapMessage.sdp}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\n });\n\n event.roapMessage.sdp = modifySdpForIPv4(event.roapMessage.sdp);\n\n const sdpVideoPortZero = event.roapMessage.sdp.replace(/^m=(video) (?:\\d+) /gim, 'm=$1 0 ');\n\n log.info(`after modification sdp: ${sdpVideoPortZero}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\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 if (!event.roapMessage.sdp) {\n log.warn('Received OFFER without SDP from media SDK', {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\n });\n break;\n }\n event.roapMessage.sdp = modifySdpForIPv4(event.roapMessage.sdp);\n this.localRoapMessage = event.roapMessage;\n if (this.connectPending) {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_CONNECT'});\n }\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 if (!event.roapMessage.sdp) {\n log.warn('Received OFFER without SDP from media SDK', {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\n });\n break;\n }\n event.roapMessage.sdp = modifySdpForIPv4(event.roapMessage.sdp);\n this.localRoapMessage = event.roapMessage;\n if (this.connectPending) {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_CONNECT'});\n }\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER', data: event.roapMessage});\n break;\n\n default:\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private handleRemoteTrackAdded = (event: any) => {\n if (event.type === MEDIA_CONNECTION_EVENT_KEYS.MEDIA_TYPE_AUDIO) {\n this.emit(CALL_EVENT_KEYS.REMOTE_MEDIA, event.track);\n }\n };\n\n private static getPeerConnectionStateFromEvent(\n event: IceEventPayload,\n preferredKey: 'connectionState' | 'iceConnectionState' | 'iceGatheringState'\n ): string {\n return event[preferredKey] || event.state || 'unknown';\n }\n\n private handleIceGatheringStateChanged = (event: IceEventPayload) => {\n const iceGatheringState = Call.getPeerConnectionStateFromEvent(event, 'iceGatheringState');\n\n log.info(`ICE gathering state changed to: ${iceGatheringState}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ICE_EVENTS_LISTENER,\n });\n\n this.metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA,\n MEDIA_CONNECTION_ACTION.ICE_GATHERING_STATE_CHANGED,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n undefined,\n undefined,\n iceGatheringState\n );\n };\n\n private handlePeerConnectionStateChanged = (event: IceEventPayload) => {\n const connectionState = Call.getPeerConnectionStateFromEvent(event, 'connectionState');\n\n log.info(`Peer connection state changed to: ${connectionState}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ICE_EVENTS_LISTENER,\n });\n\n this.metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA,\n MEDIA_CONNECTION_ACTION.PEER_CONNECTION_STATE_CHANGED,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n undefined,\n undefined,\n connectionState\n );\n };\n\n private handleIceConnectionStateChanged = (event: IceEventPayload) => {\n const iceConnectionState = Call.getPeerConnectionStateFromEvent(event, 'iceConnectionState');\n\n log.info(`ICE connection state changed to: ${iceConnectionState}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ICE_EVENTS_LISTENER,\n });\n\n this.metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA,\n MEDIA_CONNECTION_ACTION.ICE_CONNECTION_STATE_CHANGED,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n undefined,\n undefined,\n iceConnectionState\n );\n };\n\n private handleIceCandidateError = (event: IceCandidateErrorEventPayload) => {\n const iceErrorPayload = {\n address: event.address ?? null,\n errorCode: event.errorCode,\n errorText: event.errorText,\n port: event.port ?? null,\n url: event.url,\n };\n\n log.warn(`ICE candidate error occurred: ${JSON.stringify(iceErrorPayload)}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ICE_EVENTS_LISTENER,\n });\n\n const callError = createCallError(\n `ICE candidate error occurred: ${JSON.stringify(iceErrorPayload)}`,\n {file: CALL_FILE, method: METHODS.MEDIA_ICE_EVENTS_LISTENER},\n ERROR_TYPE.CALL_ERROR,\n this.correlationId,\n ERROR_LAYER.MEDIA\n );\n\n this.metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA_ERROR,\n MEDIA_CONNECTION_ACTION.ICE_CANDIDATE_ERROR,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n undefined,\n undefined,\n undefined,\n callError\n );\n };\n\n private handleRoapFailure = (error: {message?: string; stack?: string; code?: string}) => {\n const failureMessage = error.message || 'Unknown ROAP failure received from media SDK';\n\n log.warn(`ROAP failure occurred: ${failureMessage}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\n });\n\n const callError = createCallError(\n `ROAP failure occurred: ${failureMessage}`,\n {file: CALL_FILE, method: METHODS.MEDIA_ROAP_EVENTS_LISTENER},\n ERROR_TYPE.CALL_ERROR,\n this.correlationId,\n ERROR_LAYER.MEDIA\n );\n\n this.metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA_ERROR,\n MEDIA_CONNECTION_ACTION.ROAP_FAILURE,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n undefined,\n undefined,\n undefined,\n callError\n );\n };\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 direction: CallDirection,\n deviceId: string,\n lineId: string,\n deleteCb: DeleteRecordCallBack,\n indicator: ServiceIndicator,\n destination?: CallDetails\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 this.connectPending = false;\n\n log.info(`Webex Calling Url:- ${this.mobiusUrl}`, {\n file: CALL_FILE,\n method: METHODS.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 this.rtcMetrics = new RtcMetrics(this.webex, {callId: this.callId}, this.correlationId);\n this.apiRequest = APIRequest.getInstance({webex: this.webex});\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 after: {\n 10000: {\n target: 'S_CALL_CLEARED',\n actions: ['triggerTimeout'],\n },\n },\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 after: {\n 10000: {\n target: 'S_CALL_CLEARED',\n actions: ['triggerTimeout'],\n },\n },\n on: {\n E_RECV_CALL_PROGRESS: {\n target: 'S_RECV_CALL_PROGRESS',\n actions: ['incomingCallProgress'],\n },\n E_RECV_CALL_CONNECT: {\n target: 'S_RECV_CALL_CONNECT',\n actions: ['incomingCallConnect'],\n },\n E_RECV_CALL_DISCONNECT: {\n target: 'S_RECV_CALL_DISCONNECT',\n actions: ['incomingCallDisconnect'],\n },\n E_SEND_CALL_DISCONNECT: {\n target: 'S_SEND_CALL_DISCONNECT',\n actions: ['outgoingCallDisconnect'],\n },\n E_UNKNOWN: {\n target: 'S_UNKNOWN',\n actions: ['unknownState'],\n },\n },\n },\n\n /* CALL_PROGRESS */\n S_RECV_CALL_PROGRESS: {\n after: {\n 60000: {\n target: 'S_CALL_CLEARED',\n actions: ['triggerTimeout'],\n },\n },\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 after: {\n 60000: {\n target: 'S_CALL_CLEARED',\n actions: ['triggerTimeout'],\n },\n },\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 after: {\n 10000: {\n target: 'S_CALL_CLEARED',\n actions: ['triggerTimeout'],\n },\n },\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 after: {\n 10000: {\n target: 'S_CALL_CLEARED',\n actions: ['triggerTimeout'],\n },\n },\n on: {\n E_SEND_CALL_CONNECT: {\n cond: () => this.connectPending,\n target: 'S_SEND_CALL_CONNECT',\n actions: ['outgoingCallConnect'],\n },\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 triggerTimeout: () => this.handleTimeout(),\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(`Call StateMachine:- state=${state.value}, event=${JSON.stringify(event.type)}`, {\n file: CALL_FILE,\n method: METHODS.CONSTRUCTOR,\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(`Media StateMachine:- state=${state.value}, event=${JSON.stringify(event.type)}`, {\n file: CALL_FILE,\n method: METHODS.CONSTRUCTOR,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_SETUP,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n\n const message = event.data as RoapMessage;\n\n try {\n const response = await this.post(message);\n log.info(`Response: ${JSON.stringify(response)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n\n log.info(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n this.setCallId(response.body.callId);\n log.log(`Call setup successful for callId: ${response.body.callId}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallSetup.name,\n });\n } catch (e) {\n log.error(`Failed to setup the call: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\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 METHODS.HANDLE_OUTGOING_CALL_SETUP,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\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: METHODS.HANDLE_CALL_HOLD,\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: METHODS.HANDLE_CALL_HOLD};\n\n log.warn('Hold response timed out', {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\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.error(`Failed to put the call on hold: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\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 METHODS.HANDLE_CALL_HOLD,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_RESUME,\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: METHODS.HANDLE_CALL_RESUME,\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: METHODS.HANDLE_CALL_RESUME};\n\n log.warn('Resume response timed out', {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_RESUME,\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.error(`Failed to resume the call: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_RESUME,\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 METHODS.HANDLE_CALL_RESUME,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\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: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\n });\n this.earlyMedia = true;\n } else {\n log.log('Inband media not present.', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\n });\n }\n\n if (data?.callerId) {\n log.info('Processing Caller-Id data', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\n });\n this.startCallerIdResolution(data.callerId);\n }\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\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: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\n });\n\n this.seq = message.seq;\n log.info(`Setting Sequence No: ${this.seq}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\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: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_ALERTING,\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: METHODS.HANDLE_OUTGOING_CALL_ALERTING,\n });\n } catch (e) {\n log.error(`Failed to signal call progression: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_ALERTING,\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 METHODS.HANDLE_OUTGOING_CALL_ALERTING,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_CONNECT,\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 this.connectPending = false;\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\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: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\n });\n this.connectPending = true;\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: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\n });\n } catch (e) {\n log.error(`Failed to connect the call: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\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 METHODS.HANDLE_OUTGOING_CALL_CONNECT,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_DISCONNECT,\n });\n\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.correlationId);\n\n this.setDisconnectReason();\n\n try {\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_DISCONNECT,\n });\n } catch (e) {\n log.warn(`Failed to delete the call: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_DISCONNECT,\n });\n\n uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n /* Clear the stream listeners */\n this.unregisterListeners();\n\n /* istanbul ignore else */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.unregisterMediaConnectionListeners();\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_DISCONNECT,\n });\n }\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\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 log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n this.setDisconnectReason();\n\n try {\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n log.log(`Call disconnected successfully: ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n /* Clear the stream listeners */\n this.unregisterListeners();\n\n /* istanbul ignore else */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.unregisterMediaConnectionListeners();\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n }\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n }\n\n private callKeepaliveRetryCallback = (interval: number) => {\n if (this.callKeepaliveRetryCount === MAX_CALL_KEEPALIVE_RETRY_COUNT) {\n log.warn(\n `Max keepalive retry attempts reached. Aborting call keepalive for callId: ${this.callId}`,\n {\n file: CALL_FILE,\n method: 'keepaliveRetryCallback',\n }\n );\n\n return;\n }\n\n this.callKeepaliveRetryCount += 1;\n\n setTimeout(async () => {\n try {\n await this.postStatus();\n this.scheduleCallKeepaliveInterval();\n } catch (err: unknown) {\n await this.handleCallKeepaliveError(err);\n }\n }, interval * 1000);\n };\n\n private handleCallKeepaliveError = async (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 const abort = await handleCallErrors(\n (callError: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, callError);\n this.submitCallErrorMetric(callError);\n },\n ERROR_LAYER.CALL_CONTROL,\n this.callKeepaliveRetryCallback,\n this.getCorrelationId(),\n error,\n 'handleCallEstablished',\n CALL_FILE\n );\n\n if (abort) {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());\n this.callKeepaliveRetryCount = 0;\n }\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n };\n\n private scheduleCallKeepaliveInterval = () => {\n const loggerContext = {\n file: CALL_FILE,\n method: 'scheduleCallKeepaliveInterval',\n };\n\n clearInterval(this.sessionTimer);\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`, loggerContext);\n } catch (err: unknown) {\n await this.handleCallKeepaliveError(err);\n }\n }, DEFAULT_SESSION_TIMER);\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 const loggerContext = {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_ESTABLISHED,\n };\n\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, loggerContext);\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 this.scheduleCallKeepaliveInterval();\n }\n\n /**\n * Handle Unknown events.\n *\n * @param event - Call Events.\n */\n private async handleUnknownState(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\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: METHODS.HANDLE_UNKNOWN_STATE,\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(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n\n uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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.unregisterMediaConnectionListeners();\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\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: METHODS.HANDLE_ROAP_ESTABLISHED,\n });\n\n try {\n if (\n this.callStateMachine.state.value === 'S_RECV_CALL_PROGRESS' ||\n this.callStateMachine.state.value === 'S_SEND_CALL_SETUP'\n ) {\n log.info(\n 'Media negotiation completed before call connect. Setting media negotiation completed flag.',\n {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n }\n );\n this.mediaNegotiationCompleted = true;\n }\n message.seq = this.seq;\n const res = await this.postMedia(message);\n\n log.log(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\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: METHODS.HANDLE_ROAP_ESTABLISHED,\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 await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n } else {\n log.info('Notifying internal-media-core about ROAP OK message', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\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 && message.messageType === 'ERROR') {\n try {\n const res = await this.postMedia(message);\n\n log.info(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\n });\n } catch (err) {\n log.warn('Failed to communicate ROAP error to Webex Calling', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\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 await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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: METHODS.HANDLE_ROAP_ERROR,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\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: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\n });\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(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\n });\n } catch (err) {\n log.warn('Failed to send MediaOffer request', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\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 METHODS.HANDLE_OUTGOING_ROAP_OFFER,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\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(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\n });\n } catch (err) {\n log.warn('Failed to send MediaAnswer request', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\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 METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER,\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: METHODS.HANDLE_INCOMING_ROAP_OFFER,\n });\n this.seq = message.seq;\n log.info(`Setting Sequence No: ${this.seq}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER,\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: METHODS.HANDLE_INCOMING_ROAP_OFFER,\n });\n\n this.remoteRoapMessage = message;\n } else {\n log.info('Handling new offer...', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_ANSWER,\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 /**\n * Media failed, so collect a stats report from webrtc\n * send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback\n * @param {String} callFrom - the function calling this function, optional.\n * @returns {Promise<void>}\n */\n private forceSendStatsReport = async ({callFrom}: {callFrom?: string}) => {\n const loggerContext = {\n file: CALL_FILE,\n method: METHODS.FORCE_SEND_STATS_REPORT,\n };\n\n try {\n await this.mediaConnection.forceRtcMetricsSend();\n log.info(`Successfully uploaded available webrtc telemetry statistics`, loggerContext);\n log.info(`callFrom: ${callFrom}`, loggerContext);\n } catch (error) {\n const errorInfo = error as WebexRequestPayload;\n const errorStatus = await serviceErrorCodeHandler(errorInfo, loggerContext);\n\n log.error(\n `Failed to upload webrtc telemetry statistics. ${JSON.stringify(errorStatus)}`,\n loggerContext\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n };\n\n /* istanbul ignore next */\n /**\n * Initialize Media Connection.\n *\n * @param settings -.\n * @param settings.localAudioTrack - MediaStreamTrack.\n * @param settings.debugId - String.\n */\n private initMediaConnection(localAudioTrack: MediaStreamTrack, debugId?: string) {\n const mediaConnection = new RoapMediaConnection(\n {\n skipInactiveTransceivers: true,\n iceServers: [],\n iceCandidatesTimeout: ICE_CANDIDATES_TIMEOUT,\n sdpMunging: {\n convertPort9to0: true,\n addContentSlides: false,\n copyClineToSessionLevel: true,\n },\n },\n {\n localTracks: {audio: localAudioTrack},\n direction: {\n audio: 'sendrecv',\n video: 'inactive',\n screenShareVideo: 'inactive',\n },\n },\n debugId || `WebexCallSDK-${this.correlationId}`,\n (data) => this.rtcMetrics.addMetrics(data),\n () => this.rtcMetrics.closeMetrics(),\n () => this.rtcMetrics.sendMetricsInQueue()\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 this.rtcMetrics.updateCallId(callId);\n\n log.info(`Setting callId : ${this.callId} for correlationId: ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.SET_CALL_ID,\n });\n\n this.callId = callId;\n this.rtcMetrics.updateCallId(callId);\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 log.info(`${METHOD_START_MESSAGE} with stream`, {\n file: CALL_FILE,\n method: METHODS.ANSWER,\n });\n\n this.localAudioStream = localAudioStream;\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(`Did not find a local track while answering the call ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.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.mediaIceEventsListener();\n this.registerListeners(localAudioStream);\n }\n\n if (this.callStateMachine.state.value === 'S_SEND_CALL_PROGRESS') {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_CONNECT'});\n } else {\n log.warn(\n `Call cannot be answered because the state is : ${this.callStateMachine.state.value}`,\n {file: CALL_FILE, method: METHODS.ANSWER}\n );\n }\n }\n\n /**\n * @param settings\n * @param settings.localAudioTrack\n */\n public async dial(localAudioStream: LocalMicrophoneStream) {\n log.info(`${METHOD_START_MESSAGE} with stream`, {\n file: CALL_FILE,\n method: METHODS.DIAL,\n });\n\n this.localAudioStream = localAudioStream;\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(`Did not find a local track while dialing the call ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.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.mediaIceEventsListener();\n this.registerListeners(localAudioStream);\n }\n\n if (this.mediaStateMachine.state.value === 'S_ROAP_IDLE') {\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER'});\n } else {\n log.warn(\n `Call cannot be dialed because the state is already : ${this.mediaStateMachine.state.value}`,\n {file: CALL_FILE, method: METHODS.DIAL}\n );\n }\n }\n\n /**\n * .\n *\n * @param roapMessage\n */\n private post = async (roapMessage: RoapMessage): Promise<MobiusCallResponse> => {\n const basePayload = {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n localMedia: {\n roap: roapMessage,\n mediaId: uuid(),\n },\n };\n\n return this.apiRequest.makeRequest({\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: this.destination\n ? {\n ...basePayload,\n callee: {\n type: this.destination.type,\n address: this.destination.address,\n },\n }\n : basePayload,\n }) as Promise<MobiusCallResponse>;\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: 'patch',\n });\n\n return this.apiRequest.makeRequest({\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 }) as Promise<PatchResponse>;\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: METHODS.POST_SS_REQUEST,\n });\n }\n }\n\n return this.apiRequest.makeRequest(request) as Promise<SSResponse>;\n }\n\n /**\n * Sends Call status to Mobius.\n */\n public async postStatus(): Promise<WebexRequestPayload> {\n return this.apiRequest.makeRequest({\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 }) as Promise<WebexRequestPayload>;\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: METHODS.COMPLETE_TRANSFER,\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\n log.info(`Blind Transfer completed for correlationId ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.COMPLETE_TRANSFER,\n });\n\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: METHODS.COMPLETE_TRANSFER,\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 METHODS.COMPLETE_TRANSFER,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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: METHODS.COMPLETE_TRANSFER,\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\n log.info(`Consult Transfer completed for correlationId ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.COMPLETE_TRANSFER,\n });\n\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: METHODS.COMPLETE_TRANSFER,\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 METHODS.COMPLETE_TRANSFER,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n } else {\n log.warn(\n `Invalid information received, transfer failed for correlationId: ${this.getCorrelationId()}`,\n {\n file: CALL_FILE,\n method: METHODS.COMPLETE_TRANSFER,\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: METHODS.GET_CALL_STATS,\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: METHODS.POST_MEDIA,\n });\n\n return this.apiRequest.makeRequest({\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 }) as Promise<WebexRequestPayload>;\n }\n\n /* istanbul ignore next */\n /**\n * Setup a listener for roap events emitted by the media sdk.\n */\n private mediaRoapEventsListener() {\n this.mediaConnection.on(\n MediaConnectionEventNames.ROAP_MESSAGE_TO_SEND,\n this.handleMediaRoapEvent\n );\n this.mediaConnection.on(MediaConnectionEventNames.ROAP_FAILURE, this.handleRoapFailure);\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 this.mediaConnection.on(\n MediaConnectionEventNames.REMOTE_TRACK_ADDED,\n this.handleRemoteTrackAdded\n );\n }\n\n /* istanbul ignore next */\n /**\n * Setup listeners for ICE-related media connection events.\n */\n private mediaIceEventsListener() {\n this.mediaConnection.on(\n MediaConnectionEventNames.ICE_GATHERING_STATE_CHANGED,\n this.handleIceGatheringStateChanged\n );\n this.mediaConnection.on(\n MediaConnectionEventNames.PEER_CONNECTION_STATE_CHANGED,\n this.handlePeerConnectionStateChanged\n );\n this.mediaConnection.on(\n MediaConnectionEventNames.ICE_CONNECTION_STATE_CHANGED,\n this.handleIceConnectionStateChanged\n );\n this.mediaConnection.on(\n MediaConnectionEventNames.ICE_CANDIDATE_ERROR,\n this.handleIceCandidateError\n );\n }\n\n private unregisterMediaConnectionListeners() {\n if (!this.mediaConnection || typeof this.mediaConnection.off !== 'function') {\n return;\n }\n\n this.mediaConnection.off(\n MediaConnectionEventNames.ROAP_MESSAGE_TO_SEND,\n this.handleMediaRoapEvent\n );\n this.mediaConnection.off(MediaConnectionEventNames.ROAP_FAILURE, this.handleRoapFailure);\n this.mediaConnection.off(\n MediaConnectionEventNames.REMOTE_TRACK_ADDED,\n this.handleRemoteTrackAdded\n );\n this.mediaConnection.off(\n MediaConnectionEventNames.ICE_GATHERING_STATE_CHANGED,\n this.handleIceGatheringStateChanged\n );\n this.mediaConnection.off(\n MediaConnectionEventNames.PEER_CONNECTION_STATE_CHANGED,\n this.handlePeerConnectionStateChanged\n );\n this.mediaConnection.off(\n MediaConnectionEventNames.ICE_CONNECTION_STATE_CHANGED,\n this.handleIceConnectionStateChanged\n );\n this.mediaConnection.off(\n MediaConnectionEventNames.ICE_CANDIDATE_ERROR,\n this.handleIceCandidateError\n );\n }\n\n private onEffectEnabled = () => {\n this.metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_ENABLED,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId\n );\n };\n\n private onEffectDisabled = () => {\n this.metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_DISABLED,\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId\n );\n };\n\n private updateTrack = (audioTrack: MediaStreamTrack) => {\n this.mediaConnection.updateLocalTracks({audio: audioTrack});\n };\n\n private registerEffectListener = (addedEffect: TrackEffect) => {\n if (this.localAudioStream) {\n const effect = this.localAudioStream.getEffectByKind(NOISE_REDUCTION_EFFECT);\n\n if (effect === addedEffect) {\n effect.on(EffectEvent.Enabled, this.onEffectEnabled);\n effect.on(EffectEvent.Disabled, this.onEffectDisabled);\n }\n }\n };\n\n private unregisterListeners() {\n if (this.localAudioStream) {\n const effect = this.localAudioStream.getEffectByKind(NOISE_REDUCTION_EFFECT);\n\n if (effect) {\n effect.off(EffectEvent.Enabled, this.onEffectEnabled);\n effect.off(EffectEvent.Disabled, this.onEffectDisabled);\n }\n\n this.localAudioStream.off(LocalStreamEventNames.EffectAdded, this.registerEffectListener);\n this.localAudioStream.off(LocalStreamEventNames.OutputTrackChange, this.updateTrack);\n }\n }\n\n private registerListeners(localAudioStream: LocalMicrophoneStream) {\n localAudioStream.on(LocalStreamEventNames.OutputTrackChange, this.updateTrack);\n\n localAudioStream.on(LocalStreamEventNames.EffectAdded, this.registerEffectListener);\n\n const effect = localAudioStream.getEffectByKind(NOISE_REDUCTION_EFFECT) as any;\n\n if (effect) {\n effect.on(EffectEvent.Enabled, this.onEffectEnabled);\n effect.on(EffectEvent.Disabled, this.onEffectDisabled);\n\n if (effect.isEnabled) {\n this.onEffectEnabled();\n }\n }\n }\n\n private async delete(): Promise<MobiusCallResponse> {\n const disconnectMetrics = await this.getCallStats();\n\n return this.apiRequest.makeRequest({\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 }) as Promise<MobiusCallResponse>;\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 undefined,\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: METHODS.HANDLE_MID_CALL_EVENT,\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: METHODS.HANDLE_MID_CALL_EVENT,\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: METHODS.HANDLE_MID_CALL_EVENT,\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: METHODS.HANDLE_MID_CALL_EVENT,\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: METHODS.HANDLE_MID_CALL_EVENT,\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: METHODS.HANDLE_MID_CALL_EVENT,\n });\n }\n }\n }\n\n /**\n *\n */\n public getCallerInfo = (): DisplayInformation => this.callerInfo;\n\n /**\n *\n */\n public end = (): void => {\n log.info(`${METHOD_START_MESSAGE}`, {\n file: CALL_FILE,\n method: METHODS.END,\n });\n\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 log.info(`${METHOD_START_MESSAGE} with: ${tone}`, {\n file: CALL_FILE,\n method: METHODS.SEND_DIGIT,\n });\n\n /* istanbul ignore else */\n try {\n this.mediaConnection.insertDTMF(tone);\n } catch (e: any) {\n log.warn(`Unable to send digit on call: ${e.message}`, {\n file: CALL_FILE,\n method: METHODS.SEND_DIGIT,\n });\n }\n }\n\n /**\n * Mutes/Unmutes the call.\n *\n * @param localAudioStream - The local audio stream to mute or unmute.\n * @param muteType - Identifies if mute was triggered by system or user.\n *\n * @example\n * ```javascript\n * call.mute(localAudioStream, 'system_mute')\n * ```\n */\n public mute = (localAudioStream: LocalMicrophoneStream, muteType?: MUTE_TYPE): void => {\n log.info(`${METHOD_START_MESSAGE} with: ${muteType || 'user mute'}`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n\n if (!localAudioStream) {\n log.warn(`Did not find a local stream while muting the call ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n\n return;\n }\n if (muteType === MUTE_TYPE.SYSTEM) {\n if (!localAudioStream.userMuted) {\n this.muted = localAudioStream.systemMuted;\n } else {\n log.info(`Call is muted by the user already - ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n }\n } else if (!localAudioStream.systemMuted) {\n localAudioStream.setUserMuted(!this.muted);\n this.muted = !this.muted;\n } else {\n log.info(`Call is muted on the system - ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n }\n };\n\n /**\n * Change the audio stream of the call.\n *\n * @param newAudioStream - The new audio stream to be used in the call.\n */\n\n public updateMedia = (newAudioStream: LocalMicrophoneStream): void => {\n const localAudioTrack = newAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(\n `Did not find a local track while updating media for call ${this.getCorrelationId()}. Will not update media`,\n {\n file: CALL_FILE,\n method: METHODS.UPDATE_MEDIA,\n }\n );\n\n return;\n }\n\n try {\n this.mediaConnection.updateLocalTracks({\n audio: localAudioTrack,\n });\n\n this.unregisterListeners();\n this.registerListeners(newAudioStream);\n this.localAudioStream = newAudioStream;\n } catch (e: any) {\n log.warn(`Unable to update media on call ${this.getCorrelationId()}. Error: ${e.message}`, {\n file: CALL_FILE,\n method: METHODS.UPDATE_MEDIA,\n });\n }\n };\n\n /**\n * @param broadworksCorrelationInfo\n */\n setBroadworksCorrelationInfo(broadworksCorrelationInfo: string): void {\n this.broadworksCorrelationInfo = broadworksCorrelationInfo;\n }\n\n /**\n *\n */\n getBroadworksCorrelationInfo(): string | undefined {\n return this.broadworksCorrelationInfo;\n }\n\n /**\n * Get call stats for an active call.\n *\n * @returns Promise<CallRtpStats> Call Stats.\n */\n getCallRtpStats(): Promise<CallRtpStats> {\n return this.getCallStats();\n }\n\n /**\n * Handle timeout for the missed events\n * @param expectedStates - An array of next expected states\n * @param errorMessage - Error message to be emitted if the call is not in the expected state in expected time\n */\n private async handleTimeout() {\n log.warn(`Call timed out`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_TIMEOUT,\n });\n this.deleteCb(this.getCorrelationId());\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_TIMEOUT,\n });\n }\n}\n\n/**\n * @param activeUrl\n * @param webex -.\n * @param dir -.\n * @param deviceId -.\n * @param lineId -.\n * @param serverCb\n * @param deleteCb\n * @param indicator - Service Indicator.\n * @param dest -.\n */\nexport const createCall = (\n activeUrl: string,\n webex: WebexSDK,\n dir: CallDirection,\n deviceId: string,\n lineId: string,\n deleteCb: DeleteRecordCallBack,\n indicator: ServiceIndicator,\n dest?: CallDetails\n): ICall => new Call(activeUrl, webex, dir, deviceId, lineId, deleteCb, indicator, dest);\n"],"mappings":"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","ignoreList":[]}