@webex/calling 3.8.0-next.9 → 3.8.0-web-workers-keepalive.1

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