@webex/calling 3.9.0 → 3.10.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallHistory/CallHistory.js +43 -43
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/CallHistory.test.js +157 -152
- package/dist/CallHistory/CallHistory.test.js.map +1 -1
- package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
- package/dist/CallHistory/constants.js.map +1 -1
- package/dist/CallHistory/types.js.map +1 -1
- package/dist/CallSettings/CallSettings.js +8 -8
- package/dist/CallSettings/CallSettings.js.map +1 -1
- package/dist/CallSettings/CallSettings.test.js +1 -1
- package/dist/CallSettings/CallSettings.test.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.js +12 -11
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +11 -11
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.js +53 -52
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.test.js +112 -110
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/constants.js.map +1 -1
- package/dist/CallSettings/testFixtures.js.map +1 -1
- package/dist/CallSettings/types.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +458 -203
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +458 -315
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/callRecordFixtures.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/index.js +2 -2
- package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/index.test.js +8 -7
- package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
- package/dist/CallingClient/calling/call.js +405 -372
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +411 -410
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.js +3 -4
- package/dist/CallingClient/calling/callManager.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +68 -69
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/calling/index.js.map +1 -1
- package/dist/CallingClient/calling/types.js.map +1 -1
- package/dist/CallingClient/callingClientFixtures.js.map +1 -1
- package/dist/CallingClient/constants.js +9 -6
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/index.js +10 -11
- package/dist/CallingClient/line/index.js.map +1 -1
- package/dist/CallingClient/line/line.test.js +10 -9
- package/dist/CallingClient/line/line.test.js.map +1 -1
- package/dist/CallingClient/line/types.js.map +1 -1
- package/dist/CallingClient/registration/index.js.map +1 -1
- package/dist/CallingClient/registration/register.js +285 -205
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +251 -180
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/CallingClient/registration/registerFixtures.js.map +1 -1
- package/dist/CallingClient/registration/types.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.js +25 -10
- package/dist/CallingClient/registration/webWorker.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.test.js +85 -38
- package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
- package/dist/CallingClient/types.js.map +1 -1
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +142 -0
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -0
- package/dist/Contacts/ContactsClient.js +244 -247
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +93 -93
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Contacts/constants.js +2 -2
- package/dist/Contacts/constants.js.map +1 -1
- package/dist/Contacts/contactFixtures.js.map +1 -1
- package/dist/Contacts/types.js.map +1 -1
- package/dist/Errors/catalog/CallError.js +2 -2
- package/dist/Errors/catalog/CallError.js.map +1 -1
- package/dist/Errors/catalog/CallingDeviceError.js +2 -2
- package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
- package/dist/Errors/catalog/ExtendedError.js +3 -3
- package/dist/Errors/catalog/ExtendedError.js.map +1 -1
- package/dist/Errors/catalog/LineError.js +2 -2
- package/dist/Errors/catalog/LineError.js.map +1 -1
- package/dist/Errors/index.js.map +1 -1
- package/dist/Errors/types.js.map +1 -1
- package/dist/Events/impl/index.js +3 -3
- package/dist/Events/impl/index.js.map +1 -1
- package/dist/Events/types.js.map +1 -1
- package/dist/Logger/index.js +3 -3
- package/dist/Logger/index.js.map +1 -1
- package/dist/Logger/index.test.js +1 -1
- package/dist/Logger/index.test.js.map +1 -1
- package/dist/Logger/types.js.map +1 -1
- package/dist/Metrics/index.js +221 -104
- package/dist/Metrics/index.js.map +1 -1
- package/dist/Metrics/index.test.js +112 -23
- package/dist/Metrics/index.test.js.map +1 -1
- package/dist/Metrics/types.js +15 -1
- package/dist/Metrics/types.js.map +1 -1
- package/dist/SDKConnector/index.js +0 -1
- package/dist/SDKConnector/index.js.map +1 -1
- package/dist/SDKConnector/index.test.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/SDKConnector/utils.js.map +1 -1
- package/dist/SDKConnector/utils.test.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.js +55 -61
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.test.js +129 -122
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.js +53 -50
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.test.js +73 -74
- package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/Voicemail.js +89 -113
- package/dist/Voicemail/Voicemail.js.map +1 -1
- package/dist/Voicemail/Voicemail.test.js +2 -2
- package/dist/Voicemail/Voicemail.test.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js +87 -92
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.test.js +228 -203
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/constants.js.map +1 -1
- package/dist/Voicemail/types.js.map +1 -1
- package/dist/Voicemail/voicemailFixture.js.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/common/Utils.js +85 -66
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +113 -123
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/index.js.map +1 -1
- package/dist/common/testUtil.js +1 -1
- package/dist/common/testUtil.js.map +1 -1
- package/dist/common/types.js.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +17 -8
- package/dist/module/CallSettings/UcmBackendConnector.js +2 -2
- package/dist/module/CallSettings/WxCallBackendConnector.js +14 -14
- package/dist/module/CallingClient/CallingClient.js +176 -36
- package/dist/module/CallingClient/calling/call.js +91 -61
- package/dist/module/CallingClient/constants.js +8 -4
- package/dist/module/CallingClient/line/index.js +3 -3
- package/dist/module/CallingClient/registration/register.js +37 -13
- package/dist/module/CallingClient/registration/webWorker.js +17 -3
- package/dist/module/CallingClient/registration/webWorkerStr.js +19 -3
- package/dist/module/CallingClient/windowsChromiumIceWarmupUtils.js +59 -0
- package/dist/module/Contacts/ContactsClient.js +33 -37
- package/dist/module/Contacts/constants.js +1 -1
- package/dist/module/Events/impl/index.js +1 -1
- package/dist/module/Logger/index.js +2 -2
- package/dist/module/Metrics/index.js +142 -55
- package/dist/module/Metrics/types.js +14 -0
- package/dist/module/Voicemail/BroadworksBackendConnector.js +10 -17
- package/dist/module/Voicemail/UcmBackendConnector.js +11 -10
- package/dist/module/Voicemail/Voicemail.js +42 -68
- package/dist/module/Voicemail/WxCallBackendConnector.js +22 -28
- package/dist/module/common/Utils.js +29 -12
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts +12 -1
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/types.d.ts +2 -1
- package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +8 -4
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/line/index.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +1 -0
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorker.d.ts +2 -1
- package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
- package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts +5 -0
- package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts.map +1 -0
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Contacts/constants.d.ts +1 -1
- package/dist/types/Contacts/constants.d.ts.map +1 -1
- package/dist/types/Logger/index.d.ts +1 -2
- package/dist/types/Logger/index.d.ts.map +1 -1
- package/dist/types/Metrics/index.d.ts.map +1 -1
- package/dist/types/Metrics/types.d.ts +18 -3
- package/dist/types/Metrics/types.d.ts.map +1 -1
- package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +1 -0
- package/dist/types/common/types.d.ts.map +1 -1
- package/package.json +10 -8
|
@@ -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","METHODS","FORCE_SEND_STATS_REPORT","mediaConnection","forceRtcMetricsSend","log","info","concat","t0","serviceErrorCodeHandler","Error","error","uploadLogs","correlationId","callId","stop","_x","rtcMetrics","updateCallId","SET_CALL_ID","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","METHOD_START_MESSAGE","END","sendCallStateMachineEvt","held","muteType","MUTE","warn","getCorrelationId","MUTE_TYPE","SYSTEM","userMuted","muted","systemMuted","setUserMuted","newAudioStream","localAudioTrack","outputStream","getAudioTracks","UPDATE_MEDIA","unregisterListeners","registerListeners","message","sdkConnector","SDKConnector","serviceIndicator","getWebex","setWebex","getMetricManager","DEFAULT_LOCAL_CALL_ID","connected","mediaInactivity","earlyMedia","localRoapMessage","receivedRoapOKSeq","mediaNegotiationCompleted","CONSTRUCTOR","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","HANDLE_INCOMING_CALL_SETUP","_handleOutgoingCallSetup","_callee3","_this2","response","extendedError","errData","_callee3$","_context3","HANDLE_OUTGOING_CALL_SETUP","data","post","sent","statusCode","setCallId","name","handleCallErrors","CALL_ERROR","submitCallErrorMetric","ERROR_LAYER","CALL_CONTROL","interval","_x3","_handleCallHold","_callee5","_this3","_callee5$","_context5","HANDLE_CALL_HOLD","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","HANDLE_CALL_RESUME","RESUME","_callee6","_callee6$","_context6","RESUME_ERROR","_x5","_data$callProgressDat","HANDLE_INCOMING_CALL_PROGRESS","callProgressData","inbandMedia","startCallerIdResolution","PROGRESS","HANDLE_INCOMING_ROAP_OFFER_REQUEST","roapMessageReceived","_handleOutgoingCallAlerting","_callee8","_this5","res","_callee8$","_context8","HANDLE_OUTGOING_CALL_ALERTING","patch","MobiusCallState","ALERTING","_x6","HANDLE_INCOMING_CALL_CONNECT","CONNECT","_handleOutgoingCallConnect","_callee9","_this6","_callee9$","_context9","HANDLE_OUTGOING_CALL_CONNECT","CONNECTED","_x7","_handleIncomingCallDisconnect","_callee10","_callee10$","_context10","HANDLE_OUTGOING_CALL_DISCONNECT","setDisconnectReason","delete","sessionTimer","clearInterval","close","sendMediaStateMachineEvt","DISCONNECT","_x8","_handleOutgoingCallDisconnect","_callee11","_callee11$","_context11","_x9","_this7","HANDLE_CALL_ESTABLISHED","ESTABLISHED","setInterval","_callee12","_callee12$","_context12","postStatus","DEFAULT_SESSION_TIMER","_handleUnknownState","_callee13","eventData","_callee13$","_context13","HANDLE_UNKNOWN_STATE","media","_x10","getEmitterCallback","_this8","clearTimeout","_handleRoapEstablished","_callee14","_this9","_ref7","received","_callee14$","_context14","HANDLE_ROAP_ESTABLISHED","postMedia","messageType","_x11","_x12","_handleRoapError","_callee15","_this10","_callee15$","_context15","HANDLE_ROAP_ERROR","_x13","_x14","_handleOutgoingRoapOffer","_callee16","_this11","_callee16$","_context16","HANDLE_OUTGOING_ROAP_OFFER","initiateOffer","_x15","_x16","_handleOutgoingRoapAnswer","_callee17","_this12","_callee17$","_context17","HANDLE_OUTGOING_ROAP_ANSWER","_x17","_x18","HANDLE_INCOMING_ROAP_OFFER","HANDLE_INCOMING_ROAP_ANSWER","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","ANSWER","enabled","mediaRoapEventsListener","mediaTrackListener","answer","_x19","_dial","_callee19","_callee19$","_context19","DIAL","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","GET_CALL_STATS","parseMediaQualityStatistics","getCallStats","_postMedia","_callee25","_callee25$","_context26","POST_MEDIA","MEDIA_ENDPOINT_RESOURCE","_x27","_this15","MediaConnectionEventNames","ROAP_MESSAGE_TO_SEND","_ref8","_callee26","_event$roapMessage","_event$roapMessage2","mediaOk","sdpVideoPortZero","_callee26$","_context27","version","MEDIA_ROAP_EVENTS_LISTENER","RoapScenario","OK","OFFER","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","HANDLE_MID_CALL_EVENT","callerData","CALL_STATE","MOBIUS_MIDCALL_STATE","HELD","RESUMED","fetchCallerDetails","sendDigit","tone","SEND_DIGIT","insertDTMF","setBroadworksCorrelationInfo","broadworksCorrelationInfo","getBroadworksCorrelationInfo","getCallRtpStats","_handleTimeout","_callee28","_callee28$","_context29","HANDLE_TIMEOUT","Eventing","createCall","dir","dest"],"sources":["call.ts"],"sourcesContent":["import {\n MediaConnectionEventNames,\n LocalMicrophoneStream,\n LocalStreamEventNames,\n RoapMediaConnection,\n} from '@webex/internal-media-core';\nimport {createMachine, interpret} from 'xstate';\nimport {v4 as uuid} from 'uuid';\nimport {EffectEvent, TrackEffect} from '@webex/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 METHODS,\n NOISE_REDUCTION_EFFECT,\n RESUME_ENDPOINT,\n SPARK_USER_AGENT,\n SUPPLEMENTARY_SERVICES_TIMEOUT,\n TRANSFER_ENDPOINT,\n} from '../constants';\nimport SDKConnector from '../../SDKConnector';\nimport {Eventing} from '../../Events/impl';\nimport {\n CALL_EVENT_KEYS,\n CallerIdInfo,\n CallEvent,\n CallEventTypes,\n MEDIA_CONNECTION_EVENT_KEYS,\n MOBIUS_MIDCALL_STATE,\n RoapEvent,\n RoapMessage,\n SUPPLEMENTARY_SERVICES,\n} from '../../Events/types';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {\n CallRtpStats,\n DeleteRecordCallBack,\n DisconnectCause,\n DisconnectCode,\n DisconnectReason,\n ICall,\n MediaContext,\n MidCallCallerId,\n MidCallEvent,\n MidCallEventType,\n MobiusCallData,\n MobiusCallResponse,\n MobiusCallState,\n MUTE_TYPE,\n PatchResponse,\n RoapScenario,\n SSResponse,\n SupplementaryServiceState,\n TransferContext,\n TransferType,\n} from './types';\nimport log from '../../Logger';\nimport {ICallerId} from './CallerId/types';\nimport {createCallerId} from './CallerId';\nimport {IMetricManager, METRIC_TYPE, METRIC_EVENT, TRANSFER_ACTION} from '../../Metrics/types';\nimport {getMetricManager} from '../../Metrics';\nimport {METHOD_START_MESSAGE, SERVICES_ENDPOINT} from '../../common/constants';\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: METHODS.CONSTRUCTOR,\n });\n\n this.seq = INITIAL_SEQ_NUMBER;\n this.callerId = createCallerId(webex, (callerInfo: DisplayInformation) => {\n this.callerInfo = callerInfo;\n const emitObj = {\n correlationId: this.correlationId,\n callerId: this.callerInfo,\n };\n\n this.emit(CALL_EVENT_KEYS.CALLER_ID, emitObj);\n });\n this.remoteRoapMessage = null;\n this.disconnectReason = {code: DisconnectCode.NORMAL, cause: DisconnectCause.NORMAL};\n\n this.rtcMetrics = new RtcMetrics(this.webex, {callId: this.callId}, this.correlationId);\n\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(`Call StateMachine:- state=${state.value}, event=${JSON.stringify(event.type)}`, {\n file: CALL_FILE,\n method: METHODS.CONSTRUCTOR,\n });\n if (state.value !== 'S_UNKNOWN') {\n this.metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n state.value.toString(),\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n undefined\n );\n }\n })\n .start();\n\n this.mediaStateMachine = interpret(mediaMachine)\n .onTransition((state, event) => {\n log.log(`Media StateMachine:- state=${state.value}, event=${JSON.stringify(event.type)}`, {\n file: CALL_FILE,\n method: METHODS.CONSTRUCTOR,\n });\n if (state.value !== 'S_ROAP_ERROR') {\n this.metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA,\n state.value.toString(),\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n this.localRoapMessage.sdp,\n this.remoteRoapMessage?.sdp,\n undefined\n );\n }\n })\n .start();\n this.muted = false;\n }\n\n /**\n * Handle incoming Call setups.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private handleIncomingCallSetup(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_SETUP,\n });\n\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_ALERTING'});\n }\n\n /**\n * Handle outgoing Call setups.\n * The handler sends a Post Message to the remote with ROAP body\n * as offer. We also set the callId here based on the response received.\n *\n * @param event - Call Events.\n */\n private async handleOutgoingCallSetup(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n\n const message = event.data as RoapMessage;\n\n try {\n const response = await this.post(message);\n log.info(`Response: ${JSON.stringify(response)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n\n log.info(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n this.setCallId(response.body.callId);\n log.log(`Call setup successful for callId: ${response.body.callId}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallSetup.name,\n });\n } catch (e) {\n const extendedError = new Error(`Failed to setup the call: ${e}`) as ExtendedError;\n log.error(extendedError, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n METHODS.HANDLE_OUTGOING_CALL_SETUP,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n });\n }\n }\n\n /**\n * Handle Call Hold.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleCallHold(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\n });\n\n try {\n const response = await this.postSSRequest(undefined, SUPPLEMENTARY_SERVICES.HOLD);\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\n });\n\n /*\n * Avoid setting http response timeout if held event is already\n * received from Mobius and forwarded towards calling client\n */\n if (this.isHeld() === false) {\n this.supplementaryServicesTimer = setTimeout(async () => {\n const errorContext = {file: CALL_FILE, method: METHODS.HANDLE_CALL_HOLD};\n\n log.warn('Hold response timed out', {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\n });\n\n const callError = createCallError(\n 'An error occurred while placing the call on hold. Wait a moment and try again.',\n errorContext as ErrorContext,\n ERROR_TYPE.TIMEOUT,\n this.getCorrelationId(),\n ERROR_LAYER.CALL_CONTROL\n );\n\n this.emit(CALL_EVENT_KEYS.HOLD_ERROR, callError);\n this.submitCallErrorMetric(callError);\n }, SUPPLEMENTARY_SERVICES_TIMEOUT);\n }\n } catch (e) {\n const extendedError = new Error(`Failed to put the call on hold: ${e}`) as ExtendedError;\n log.error(extendedError, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.HOLD_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n METHODS.HANDLE_CALL_HOLD,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n });\n }\n }\n\n /**\n * Handle Call Resume.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleCallResume(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_RESUME,\n });\n\n try {\n const response = await this.postSSRequest(undefined, SUPPLEMENTARY_SERVICES.RESUME);\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: 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 const extendedError = new Error(`Failed to resume the call: ${e}`) as ExtendedError;\n log.error(extendedError, {\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 await 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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\n });\n const data = event.data as MobiusCallData;\n\n if (data?.callProgressData?.inbandMedia) {\n log.log('Inband media present. Setting Early Media flag', {\n file: CALL_FILE,\n method: 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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\n });\n const message = event.data as RoapMessage;\n\n if (!this.mediaConnection) {\n log.info('Media connection is not up, buffer the remote Offer Request for later handling', {\n file: CALL_FILE,\n method: 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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_ALERTING,\n });\n\n try {\n const res = await this.patch(MobiusCallState.ALERTING);\n\n log.log(`PATCH response: ${res.statusCode}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallAlerting.name,\n });\n } catch (err) {\n const extendedError = new Error(`Failed to signal call progression: ${err}`) as ExtendedError;\n log.error(extendedError, {\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 await 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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_CONNECT,\n });\n this.emit(CALL_EVENT_KEYS.CONNECT, this.correlationId);\n\n /* In case of Early Media , media negotiations would have already started\n * So we can directly go to call established state */\n\n if (this.earlyMedia || this.mediaNegotiationCompleted) {\n this.mediaNegotiationCompleted = false;\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }\n }\n\n /**\n * Handle outgoing Call Connect.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleOutgoingCallConnect(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\n });\n\n /* We should have received an Offer by now */\n if (!this.remoteRoapMessage) {\n log.warn('Offer not yet received from remote end... Exiting', {\n file: CALL_FILE,\n method: 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 const extendedError = new Error(`Failed to connect the call: ${err}`) as ExtendedError;\n log.error(extendedError, {\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 await 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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n this.setDisconnectReason();\n\n try {\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n /* Clear the stream listeners */\n this.unregisterListeners();\n\n /* istanbul ignore else */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n }\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n\n 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 log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n this.setDisconnectReason();\n\n try {\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n log.log(`Call disconnected successfully: ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n /* Clear the stream listeners */\n this.unregisterListeners();\n\n /* istanbul ignore else */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n }\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n }\n\n /**\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_ESTABLISHED,\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: METHODS.HANDLE_CALL_ESTABLISHED,\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: METHODS.HANDLE_CALL_ESTABLISHED,\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 await 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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n\n /* We are handling errors at the source , in this state we just log and\n * clear the resources\n */\n\n const eventData = event.data as {media: boolean};\n\n if (!eventData?.media) {\n log.warn('Call failed due to signalling issue', {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n }\n\n /* We need to clear the call at Mobius too. For delete failure\n * error handling is not required\n */\n\n try {\n this.setDisconnectReason();\n const response = await this.delete();\n\n log.log(`handleOutgoingCallDisconnect: Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n }\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n }\n\n /**\n * Returns an error emitter callback method for handleCallErrors which can be used during\n * midcall and call setup scenarios.\n * Emits Call errors for UI Client\n * Sends call error metrics\n * Handles further state machine changes.\n *\n * @param errData - Instance of CallError.\n */\n private getEmitterCallback(errData: MobiusCallResponse) {\n return (error: CallError) => {\n switch (this.callStateMachine.state.value) {\n case 'S_CALL_HOLD':\n this.emit(CALL_EVENT_KEYS.HOLD_ERROR, error);\n if (this.supplementaryServicesTimer) {\n clearTimeout(this.supplementaryServicesTimer);\n this.supplementaryServicesTimer = undefined;\n }\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n\n return;\n case 'S_CALL_RESUME':\n this.emit(CALL_EVENT_KEYS.RESUME_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n\n return;\n default:\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n /* Disconnect call if it's not a midcall case */\n /* istanbul ignore else */\n if (!this.connected) {\n this.sendMediaStateMachineEvt({type: 'E_ROAP_ERROR', data: errData});\n }\n }\n };\n }\n\n /**\n * Handle Roap Established events.\n *\n * For outbound MediaOk , the message will be truthy as we need to send ROAP OK .\n * For inbound MediaOK , we report it to Media-SDK and transition our state.\n * Both the cases should transition to Call Established state.\n *\n * @param context -.\n * @param event - Roap Events.\n */\n private async handleRoapEstablished(context: MediaContext, event: RoapEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n });\n\n const {received, message} = event.data as {received: boolean; message: RoapMessage};\n\n this.receivedRoapOKSeq = message.seq;\n\n if (!received) {\n log.info('Sending Media Ok to the remote End', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n });\n\n try {\n if (\n this.callStateMachine.state.value === 'S_RECV_CALL_PROGRESS' ||\n this.callStateMachine.state.value === 'S_SEND_CALL_SETUP'\n ) {\n log.info(\n 'Media negotiation completed before call connect. Setting media negotiation completed flag.',\n {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n }\n );\n this.mediaNegotiationCompleted = true;\n }\n message.seq = this.seq;\n const res = await this.postMedia(message);\n\n log.log(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n });\n /* istanbul ignore else */\n if (!this.earlyMedia && !this.mediaNegotiationCompleted) {\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }\n } catch (err) {\n log.warn('Failed to process MediaOk request', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n this.getEmitterCallback(errData),\n ERROR_LAYER.MEDIA,\n (interval: number) => {\n /* Start retry if only it is a midcall case */\n /* istanbul ignore else */\n if (this.connected) {\n setTimeout(() => {\n this.sendMediaStateMachineEvt({type: 'E_ROAP_OK', data: event.data});\n }, interval * 1000);\n }\n },\n this.getCorrelationId(),\n errData,\n this.handleRoapEstablished.name,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n });\n }\n } else {\n log.info('Notifying internal-media-core about ROAP OK message', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n });\n message.seq = this.seq;\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.roapMessageReceived(message);\n }\n /* istanbul ignore else */\n if (!this.earlyMedia) {\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }\n\n if (this.remoteRoapMessage && this.remoteRoapMessage.seq > this.seq) {\n if (this.remoteRoapMessage.messageType === 'OFFER_REQUEST') {\n this.sendMediaStateMachineEvt({\n type: 'E_RECV_ROAP_OFFER_REQUEST',\n data: this.remoteRoapMessage,\n });\n } else if (this.remoteRoapMessage.messageType === 'OFFER') {\n this.sendMediaStateMachineEvt({type: 'E_RECV_ROAP_OFFER', data: this.remoteRoapMessage});\n }\n }\n }\n }\n\n /**\n * Handle Roap Error events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private async handleRoapError(context: MediaContext, event: RoapEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\n });\n\n /* if we receive ROAP_ERROR from internal-media-core , we post it to Mobius */\n\n const message = event.data as RoapMessage;\n\n /* istanbul ignore else */\n if (message) {\n try {\n const res = await this.postMedia(message);\n\n log.info(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\n });\n } catch (err) {\n log.warn('Failed to communicate ROAP error to Webex Calling', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n },\n ERROR_LAYER.MEDIA,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleRoapError.name,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n });\n }\n }\n\n /* Only disconnect calls that are not yet connected yet */\n\n if (!this.connected) {\n log.warn('Call failed due to media issue', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\n });\n\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: {media: true}});\n }\n }\n\n /**\n * Handle Outgoing Roap Offer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private async handleOutgoingRoapOffer(context: MediaContext, event: RoapEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\n });\n\n const message = event.data as RoapMessage;\n\n if (!message?.sdp) {\n log.info('Initializing Offer...', {\n file: CALL_FILE,\n method: 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 await 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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\n });\n\n const message = event.data as RoapMessage;\n\n try {\n message.seq = this.seq;\n const res = await this.postMedia(message);\n\n log.log(`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 await 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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER,\n });\n\n const message = event.data as RoapMessage;\n\n this.remoteRoapMessage = message;\n if (!this.mediaConnection) {\n log.info('Media connection is not up, buffer the remote offer for later handling', {\n file: CALL_FILE,\n method: 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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_ANSWER,\n });\n const message = event.data as RoapMessage;\n\n this.remoteRoapMessage = message;\n message.seq = this.seq;\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.roapMessageReceived(message);\n }\n }\n\n /**\n * Media failed, so collect a stats report from webrtc\n * send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback\n * @param {String} callFrom - the function calling this function, optional.\n * @returns {Promise<void>}\n */\n private forceSendStatsReport = async ({callFrom}: {callFrom?: string}) => {\n const loggerContext = {\n file: CALL_FILE,\n method: METHODS.FORCE_SEND_STATS_REPORT,\n };\n\n try {\n await this.mediaConnection.forceRtcMetricsSend();\n log.info(`Successfully uploaded available webrtc telemetry statistics`, loggerContext);\n log.info(`callFrom: ${callFrom}`, loggerContext);\n } catch (error) {\n const errorInfo = error as WebexRequestPayload;\n const errorStatus = 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 await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n });\n }\n };\n\n /* istanbul ignore next */\n /**\n * Initialize Media Connection.\n *\n * @param settings -.\n * @param settings.localAudioTrack - MediaStreamTrack.\n * @param settings.debugId - String.\n */\n private initMediaConnection(localAudioTrack: MediaStreamTrack, debugId?: string) {\n const mediaConnection = new RoapMediaConnection(\n {\n skipInactiveTransceivers: true,\n iceServers: [],\n iceCandidatesTimeout: ICE_CANDIDATES_TIMEOUT,\n sdpMunging: {\n convertPort9to0: true,\n addContentSlides: false,\n copyClineToSessionLevel: true,\n },\n },\n {\n localTracks: {audio: localAudioTrack},\n direction: {\n audio: 'sendrecv',\n video: 'inactive',\n screenShareVideo: 'inactive',\n },\n },\n debugId || `WebexCallSDK-${this.correlationId}`,\n (data) => this.rtcMetrics.addMetrics(data),\n () => this.rtcMetrics.closeMetrics(),\n () => this.rtcMetrics.sendMetricsInQueue()\n );\n\n this.mediaConnection = mediaConnection;\n }\n\n /**\n *\n */\n public getDirection = (): CallDirection => this.direction;\n\n /**\n *\n */\n public getCallId = (): CallId => this.callId;\n\n /**\n *\n */\n public getCorrelationId = (): CorrelationId => this.correlationId;\n\n /**\n * .\n *\n * @param event -.\n */\n public sendCallStateMachineEvt(event: CallEvent) {\n this.callStateMachine.send(event);\n }\n\n /**\n * .\n *\n * @param event -.\n */\n public sendMediaStateMachineEvt(event: RoapEvent) {\n this.mediaStateMachine.send(event);\n }\n\n /**\n * @param callId -.\n */\n public setCallId = (callId: CallId) => {\n this.callId = callId;\n this.rtcMetrics.updateCallId(callId);\n\n log.info(`Setting callId : ${this.callId} for correlationId: ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.SET_CALL_ID,\n });\n\n this.callId = callId;\n this.rtcMetrics.updateCallId(callId);\n };\n\n /**\n * Sets the Disconnect reason.\n *\n */\n private setDisconnectReason() {\n if (this.mediaInactivity) {\n this.disconnectReason.code = DisconnectCode.MEDIA_INACTIVITY;\n this.disconnectReason.cause = DisconnectCause.MEDIA_INACTIVITY;\n } else if (this.connected || this.direction === CallDirection.OUTBOUND) {\n this.disconnectReason.code = DisconnectCode.NORMAL;\n this.disconnectReason.cause = DisconnectCause.NORMAL;\n } else {\n this.disconnectReason.code = DisconnectCode.BUSY;\n this.disconnectReason.cause = DisconnectCause.BUSY;\n }\n }\n\n /**\n * Gets the disconnection reason.\n *\n * @returns Reason.\n */\n public getDisconnectReason = (): DisconnectReason => {\n return this.disconnectReason;\n };\n\n /**\n * Answers the call with the provided local audio stream.\n *\n * @param localAudioStream - The local audio stream for the call.\n */\n public async answer(localAudioStream: LocalMicrophoneStream) {\n log.info(`${METHOD_START_MESSAGE} with stream`, {\n file: CALL_FILE,\n method: METHODS.ANSWER,\n });\n\n this.localAudioStream = localAudioStream;\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(`Did not find a local track while answering the call ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.ANSWER,\n });\n this.mediaInactivity = true;\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n\n return;\n }\n\n localAudioTrack.enabled = true;\n\n if (!this.mediaConnection) {\n this.initMediaConnection(localAudioTrack);\n this.mediaRoapEventsListener();\n this.mediaTrackListener();\n this.registerListeners(localAudioStream);\n }\n\n if (this.callStateMachine.state.value === 'S_SEND_CALL_PROGRESS') {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_CONNECT'});\n } else {\n log.warn(\n `Call cannot be answered because the state is : ${this.callStateMachine.state.value}`,\n {file: CALL_FILE, method: METHODS.ANSWER}\n );\n }\n }\n\n /**\n * @param settings\n * @param settings.localAudioTrack\n */\n public async dial(localAudioStream: LocalMicrophoneStream) {\n log.info(`${METHOD_START_MESSAGE} with stream`, {\n file: CALL_FILE,\n method: METHODS.DIAL,\n });\n\n this.localAudioStream = localAudioStream;\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(`Did not find a local track while dialing the call ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.DIAL,\n });\n\n this.deleteCb(this.getCorrelationId());\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());\n\n return;\n }\n localAudioTrack.enabled = true;\n\n if (!this.mediaConnection) {\n this.initMediaConnection(localAudioTrack);\n this.mediaRoapEventsListener();\n this.mediaTrackListener();\n this.registerListeners(localAudioStream);\n }\n\n if (this.mediaStateMachine.state.value === 'S_ROAP_IDLE') {\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER'});\n } else {\n log.warn(\n `Call cannot be dialed because the state is already : ${this.mediaStateMachine.state.value}`,\n {file: CALL_FILE, method: METHODS.DIAL}\n );\n }\n }\n\n /**\n * .\n *\n * @param roapMessage\n */\n private post = async (roapMessage: RoapMessage): Promise<MobiusCallResponse> => {\n const basePayload = {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n localMedia: {\n roap: roapMessage,\n mediaId: uuid(),\n },\n };\n\n return this.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 await 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 await 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: METHODS.GET_CALL_STATS,\n });\n }\n\n return parseMediaQualityStatistics(stats);\n }\n\n /**\n * .\n *\n * @param roapMessage -.\n */\n private async postMedia(roapMessage: RoapMessage): Promise<WebexRequestPayload> {\n log.log('Posting message to Webex Calling', {\n file: CALL_FILE,\n method: METHODS.POST_MEDIA,\n });\n\n return this.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 {file: CALL_FILE, method: METHODS.MEDIA_ROAP_EVENTS_LISTENER}\n );\n\n log.info(`SDP message to send : \\n ${event.roapMessage?.sdp}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\n });\n\n switch (event.roapMessage.messageType) {\n case RoapScenario.OK: {\n const mediaOk = {\n received: false,\n message: event.roapMessage,\n };\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_OK', data: mediaOk});\n break;\n }\n\n case RoapScenario.OFFER: {\n // TODO: Remove these after the Media-Core adds the fix\n // Check if at least one IPv6 \"c=\" line is present\n log.info(`before modifying sdp: ${event.roapMessage.sdp}`, {\n file: CALL_FILE,\n method: 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: METHODS.HANDLE_MID_CALL_EVENT,\n });\n\n const callerData = eventData as MidCallCallerId;\n\n this.startCallerIdResolution(callerData.callerId);\n\n break;\n }\n\n case MidCallEventType.CALL_STATE: {\n log.log(`Received Midcall call event for correlationId : ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_MID_CALL_EVENT,\n });\n\n const data = eventData as SupplementaryServiceState;\n\n /* Emit Events as per the state.\n * We will enter this state only when media negotiation is done\n * So, it's safe to emit events from here.\n */\n\n switch (data.callState) {\n case MOBIUS_MIDCALL_STATE.HELD: {\n log.log(`Call is successfully held : ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_MID_CALL_EVENT,\n });\n\n this.emit(CALL_EVENT_KEYS.HELD, this.correlationId);\n\n this.held = true;\n\n if (this.supplementaryServicesTimer) {\n clearTimeout(this.supplementaryServicesTimer);\n this.supplementaryServicesTimer = undefined;\n }\n\n break;\n }\n\n case MOBIUS_MIDCALL_STATE.CONNECTED: {\n log.log(`Call is successfully resumed : ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_MID_CALL_EVENT,\n });\n\n this.emit(CALL_EVENT_KEYS.RESUMED, this.correlationId);\n\n this.held = false;\n\n if (this.supplementaryServicesTimer) {\n clearTimeout(this.supplementaryServicesTimer);\n this.supplementaryServicesTimer = undefined;\n }\n\n break;\n }\n\n default: {\n log.warn(\n `Unknown Supplementary service state: ${data.callState} for correlationId : ${this.correlationId}`,\n {\n file: CALL_FILE,\n method: METHODS.HANDLE_MID_CALL_EVENT,\n }\n );\n }\n }\n\n break;\n }\n\n default: {\n log.warn(`Unknown Midcall type: ${eventType} for correlationId : ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_MID_CALL_EVENT,\n });\n }\n }\n }\n\n /**\n *\n */\n public getCallerInfo = (): DisplayInformation => this.callerInfo;\n\n /**\n *\n */\n public end = (): void => {\n log.info(`${METHOD_START_MESSAGE}`, {\n file: CALL_FILE,\n method: METHODS.END,\n });\n\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n };\n\n /**\n *\n */\n public doHoldResume = (): void => {\n if (this.held) {\n this.sendCallStateMachineEvt({type: 'E_CALL_RESUME'});\n } else {\n this.sendCallStateMachineEvt({type: 'E_CALL_HOLD'});\n }\n };\n\n /**\n * .\n *\n * @param callerInfo\n */\n public startCallerIdResolution(callerInfo: CallerIdInfo) {\n this.callerInfo = this.callerId.fetchCallerDetails(callerInfo);\n }\n\n /**\n * Sends digit over the established call.\n *\n * @param tone - DTMF tones.\n */\n public sendDigit(tone: string) {\n log.info(`${METHOD_START_MESSAGE} with: ${tone}`, {\n file: CALL_FILE,\n method: METHODS.SEND_DIGIT,\n });\n\n /* istanbul ignore else */\n try {\n this.mediaConnection.insertDTMF(tone);\n } catch (e: any) {\n log.warn(`Unable to send digit on call: ${e.message}`, {\n file: CALL_FILE,\n method: METHODS.SEND_DIGIT,\n });\n }\n }\n\n /**\n * Mutes/Unmutes the call.\n *\n * @param localAudioStream - The local audio stream to mute or unmute.\n * @param muteType - Identifies if mute was triggered by system or user.\n *\n * @example\n * ```javascript\n * call.mute(localAudioStream, 'system_mute')\n * ```\n */\n public mute = (localAudioStream: LocalMicrophoneStream, muteType?: MUTE_TYPE): void => {\n log.info(`${METHOD_START_MESSAGE} with: ${muteType || 'user mute'}`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n\n if (!localAudioStream) {\n log.warn(`Did not find a local stream while muting the call ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n\n return;\n }\n if (muteType === MUTE_TYPE.SYSTEM) {\n if (!localAudioStream.userMuted) {\n this.muted = localAudioStream.systemMuted;\n } else {\n log.info(`Call is muted by the user already - ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n }\n } else if (!localAudioStream.systemMuted) {\n localAudioStream.setUserMuted(!this.muted);\n this.muted = !this.muted;\n } else {\n log.info(`Call is muted on the system - ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n }\n };\n\n /**\n * Change the audio stream of the call.\n *\n * @param newAudioStream - The new audio stream to be used in the call.\n */\n\n public updateMedia = (newAudioStream: LocalMicrophoneStream): void => {\n const localAudioTrack = newAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(\n `Did not find a local track while updating media for call ${this.getCorrelationId()}. Will not update media`,\n {\n file: CALL_FILE,\n method: METHODS.UPDATE_MEDIA,\n }\n );\n\n return;\n }\n\n try {\n this.mediaConnection.updateLocalTracks({\n audio: localAudioTrack,\n });\n\n this.unregisterListeners();\n this.registerListeners(newAudioStream);\n this.localAudioStream = newAudioStream;\n } catch (e: any) {\n log.warn(`Unable to update media on call ${this.getCorrelationId()}. Error: ${e.message}`, {\n file: CALL_FILE,\n method: METHODS.UPDATE_MEDIA,\n });\n }\n };\n\n /**\n * @param broadworksCorrelationInfo\n */\n setBroadworksCorrelationInfo(broadworksCorrelationInfo: string): void {\n this.broadworksCorrelationInfo = broadworksCorrelationInfo;\n }\n\n /**\n *\n */\n getBroadworksCorrelationInfo(): string | undefined {\n return this.broadworksCorrelationInfo;\n }\n\n /**\n * Get call stats for an active call.\n *\n * @returns Promise<CallRtpStats> Call Stats.\n */\n getCallRtpStats(): Promise<CallRtpStats> {\n return this.getCallStats();\n }\n\n /**\n * Handle timeout for the missed events\n * @param expectedStates - An array of next expected states\n * @param errorMessage - Error message to be emitted if the call is not in the expected state in expected time\n */\n private async handleTimeout() {\n log.warn(`Call timed out`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_TIMEOUT,\n });\n this.deleteCb(this.getCorrelationId());\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_TIMEOUT,\n });\n }\n}\n\n/**\n * @param activeUrl\n * @param webex -.\n * @param dir -.\n * @param deviceId -.\n * @param lineId -.\n * @param serverCb\n * @param deleteCb\n * @param indicator - Service Indicator.\n * @param dest -.\n */\nexport const createCall = (\n activeUrl: string,\n webex: WebexSDK,\n dir: CallDirection,\n deviceId: string,\n lineId: string,\n deleteCb: DeleteRecordCallBack,\n indicator: ServiceIndicator,\n dest?: CallDetails\n): ICall => new Call(activeUrl, webex, dir, deviceId, lineId, deleteCb, indicator, dest);\n"],"mappings":"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"}
|
|
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","_isNativeReflectConstruct","_getPrototypeOf2","s","constructor","_Reflect$construct","_possibleConstructorReturn2","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","wrap","_callee$","_context","prev","next","file","CALL_FILE","method","METHODS","FORCE_SEND_STATS_REPORT","mediaConnection","forceRtcMetricsSend","log","info","concat","t0","serviceErrorCodeHandler","sent","error","_stringify","uploadLogs","correlationId","callId","broadworksCorrelationInfo","stop","_x","rtcMetrics","updateCallId","SET_CALL_ID","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","METHOD_START_MESSAGE","END","sendCallStateMachineEvt","held","muteType","MUTE","warn","getCorrelationId","MUTE_TYPE","SYSTEM","userMuted","muted","systemMuted","setUserMuted","newAudioStream","localAudioTrack","outputStream","getAudioTracks","UPDATE_MEDIA","unregisterListeners","registerListeners","message","sdkConnector","SDKConnector","serviceIndicator","getWebex","setWebex","getMetricManager","DEFAULT_LOCAL_CALL_ID","connected","mediaInactivity","earlyMedia","localRoapMessage","receivedRoapOKSeq","mediaNegotiationCompleted","CONSTRUCTOR","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","submitCallMetric","CALL","toString","undefined","start","mediaStateMachine","_this$remoteRoapMessa","submitMediaMetric","MEDIA","sdp","_createClass2","key","isMuted","isConnected","isHeld","HANDLE_INCOMING_CALL_SETUP","_handleOutgoingCallSetup","_callee3","_this2","response","errData","_callee3$","_context3","HANDLE_OUTGOING_CALL_SETUP","data","post","statusCode","setCallId","name","handleCallErrors","CALL_ERROR","submitCallErrorMetric","ERROR_LAYER","CALL_CONTROL","interval","_x3","_handleCallHold","_callee5","_this3","_callee5$","_context5","HANDLE_CALL_HOLD","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","HANDLE_CALL_RESUME","RESUME","_callee6","_callee6$","_context6","RESUME_ERROR","_x5","_data$callProgressDat","HANDLE_INCOMING_CALL_PROGRESS","callProgressData","inbandMedia","startCallerIdResolution","PROGRESS","HANDLE_INCOMING_ROAP_OFFER_REQUEST","roapMessageReceived","_handleOutgoingCallAlerting","_callee8","_this5","res","_callee8$","_context8","HANDLE_OUTGOING_CALL_ALERTING","patch","MobiusCallState","ALERTING","_x6","HANDLE_INCOMING_CALL_CONNECT","CONNECT","_handleOutgoingCallConnect","_callee9","_this6","_callee9$","_context9","HANDLE_OUTGOING_CALL_CONNECT","CONNECTED","_x7","_handleIncomingCallDisconnect","_callee0","_callee0$","_context0","HANDLE_OUTGOING_CALL_DISCONNECT","setDisconnectReason","delete","sessionTimer","clearInterval","close","sendMediaStateMachineEvt","DISCONNECT","_x8","_handleOutgoingCallDisconnect","_callee1","_callee1$","_context1","_x9","_this7","HANDLE_CALL_ESTABLISHED","ESTABLISHED","setInterval","_callee10","_callee10$","_context10","postStatus","DEFAULT_SESSION_TIMER","_handleUnknownState","_callee11","eventData","_callee11$","_context11","HANDLE_UNKNOWN_STATE","media","_x0","getEmitterCallback","_this8","clearTimeout","_handleRoapEstablished","_callee12","_this9","_ref7","received","_callee12$","_context12","HANDLE_ROAP_ESTABLISHED","postMedia","messageType","_x1","_x10","_handleRoapError","_callee13","_this0","_callee13$","_context13","HANDLE_ROAP_ERROR","_x11","_x12","_handleOutgoingRoapOffer","_callee14","_this1","_callee14$","_context14","HANDLE_OUTGOING_ROAP_OFFER","initiateOffer","_x13","_x14","_handleOutgoingRoapAnswer","_callee15","_this10","_callee15$","_context15","HANDLE_OUTGOING_ROAP_ANSWER","_x15","_x16","HANDLE_INCOMING_ROAP_OFFER","HANDLE_INCOMING_ROAP_ANSWER","initMediaConnection","debugId","_this11","RoapMediaConnection","skipInactiveTransceivers","iceServers","iceCandidatesTimeout","ICE_CANDIDATES_TIMEOUT","sdpMunging","convertPort9to0","addContentSlides","copyClineToSessionLevel","localTracks","video","screenShareVideo","addMetrics","closeMetrics","sendMetricsInQueue","send","MEDIA_INACTIVITY","CallDirection","OUTBOUND","BUSY","_answer","_callee16","_callee16$","_context16","ANSWER","enabled","mediaRoapEventsListener","mediaTrackListener","answer","_x17","_dial","_callee17","_callee17$","_context17","DIAL","dial","_x18","_patch","_callee18","_callee18$","_context18","CALLS_ENDPOINT_RESOURCE","PATCH","callState","_x19","_postSSRequest","_callee19","transferContext","_callee19$","_context19","SERVICES_ENDPOINT","TRANSFER","CALL_HOLD_SERVICE","HOLD_ENDPOINT","RESUME_ENDPOINT","CALL_TRANSFER_SERVICE","TRANSFER_ENDPOINT","_assign","blindTransferContext","transferType","TransferType","BLIND","transferToCallId","consultTransferContext","CONSULT","POST_SS_REQUEST","_x20","_x21","_postStatus","_callee20","_callee20$","_context20","CALL_STATUS_RESOURCE","_completeTransfer","_callee21","transferCallId","transferTarget","_this12","_context21","_errData","_callee21$","_context22","COMPLETE_TRANSFER","transferorCallId","getCallId","TRANSFER_ACTION","TRANSFER_ERROR","t1","completeTransfer","_x22","_x23","_x24","_getCallStats","_callee22","stats","_callee22$","_context23","getStats","GET_CALL_STATS","parseMediaQualityStatistics","getCallStats","_postMedia","_callee23","_callee23$","_context24","POST_MEDIA","MEDIA_ENDPOINT_RESOURCE","_x25","_this13","MediaConnectionEventNames","ROAP_MESSAGE_TO_SEND","_ref8","_callee24","_event$roapMessage","_event$roapMessage2","mediaOk","sdpVideoPortZero","_callee24$","_context25","version","MEDIA_ROAP_EVENTS_LISTENER","RoapScenario","OK","OFFER","ERROR","OFFER_RESPONSE","modifySdpForIPv4","replace","_x26","_this14","REMOTE_TRACK_ADDED","MEDIA_CONNECTION_EVENT_KEYS","MEDIA_TYPE_AUDIO","REMOTE_MEDIA","track","off","LocalStreamEventNames","EffectAdded","registerEffectListener","OutputTrackChange","updateTrack","isEnabled","_delete2","_callee25","disconnectMetrics","_callee25$","_context26","DELETE","metrics","causecode","_delete","transferMetricAction","getCallError","errorLayer","_this$remoteRoapMessa2","MEDIA_ERROR","handleMidCallEvent","eventType","MidCallEventType","CALL_INFO","HANDLE_MID_CALL_EVENT","callerData","CALL_STATE","MOBIUS_MIDCALL_STATE","HELD","RESUMED","fetchCallerDetails","sendDigit","tone","SEND_DIGIT","insertDTMF","setBroadworksCorrelationInfo","getBroadworksCorrelationInfo","getCallRtpStats","_handleTimeout","_callee26","_callee26$","_context27","HANDLE_TIMEOUT","Eventing","createCall","dir","dest"],"sources":["call.ts"],"sourcesContent":["import {\n MediaConnectionEventNames,\n LocalMicrophoneStream,\n LocalStreamEventNames,\n RoapMediaConnection,\n} from '@webex/internal-media-core';\nimport {createMachine, interpret} from 'xstate';\nimport {v4 as uuid} from 'uuid';\nimport {EffectEvent, TrackEffect} from '@webex/web-media-effects';\nimport {RtcMetrics} from '@webex/internal-plugin-metrics';\nimport {ERROR_LAYER, ERROR_TYPE, ErrorContext} from '../../Errors/types';\nimport {\n handleCallErrors,\n modifySdpForIPv4,\n parseMediaQualityStatistics,\n serviceErrorCodeHandler,\n uploadLogs,\n} from '../../common/Utils';\nimport {\n ALLOWED_SERVICES,\n CallDetails,\n CallDirection,\n CallId,\n CorrelationId,\n DisplayInformation,\n HTTP_METHODS,\n ServiceIndicator,\n WebexRequestPayload,\n} from '../../common/types';\nimport {CallError, createCallError} from '../../Errors/catalog/CallError';\n/* eslint-disable tsdoc/syntax */\n/* eslint-disable no-param-reassign */\nimport {\n CALL_ENDPOINT_RESOURCE,\n CALL_FILE,\n CALL_HOLD_SERVICE,\n CALL_STATUS_RESOURCE,\n CALL_TRANSFER_SERVICE,\n CALLING_USER_AGENT,\n CALLS_ENDPOINT_RESOURCE,\n CISCO_DEVICE_URL,\n DEFAULT_LOCAL_CALL_ID,\n DEFAULT_SESSION_TIMER,\n DEVICES_ENDPOINT_RESOURCE,\n HOLD_ENDPOINT,\n ICE_CANDIDATES_TIMEOUT,\n INITIAL_SEQ_NUMBER,\n MEDIA_ENDPOINT_RESOURCE,\n METHODS,\n NOISE_REDUCTION_EFFECT,\n RESUME_ENDPOINT,\n SPARK_USER_AGENT,\n SUPPLEMENTARY_SERVICES_TIMEOUT,\n TRANSFER_ENDPOINT,\n} from '../constants';\nimport SDKConnector from '../../SDKConnector';\nimport {Eventing} from '../../Events/impl';\nimport {\n CALL_EVENT_KEYS,\n CallerIdInfo,\n CallEvent,\n CallEventTypes,\n MEDIA_CONNECTION_EVENT_KEYS,\n MOBIUS_MIDCALL_STATE,\n RoapEvent,\n RoapMessage,\n SUPPLEMENTARY_SERVICES,\n} from '../../Events/types';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {\n CallRtpStats,\n DeleteRecordCallBack,\n DisconnectCause,\n DisconnectCode,\n DisconnectReason,\n ICall,\n MediaContext,\n MidCallCallerId,\n MidCallEvent,\n MidCallEventType,\n MobiusCallData,\n MobiusCallResponse,\n MobiusCallState,\n MUTE_TYPE,\n PatchResponse,\n RoapScenario,\n SSResponse,\n SupplementaryServiceState,\n TransferContext,\n TransferType,\n} from './types';\nimport log from '../../Logger';\nimport {ICallerId} from './CallerId/types';\nimport {createCallerId} from './CallerId';\nimport {IMetricManager, METRIC_TYPE, METRIC_EVENT, TRANSFER_ACTION} from '../../Metrics/types';\nimport {getMetricManager} from '../../Metrics';\nimport {METHOD_START_MESSAGE, SERVICES_ENDPOINT} from '../../common/constants';\n\n/**\n *\n */\nexport class Call extends Eventing<CallEventTypes> implements ICall {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private destination?: CallDetails;\n\n private direction: CallDirection;\n\n private callId: CallId;\n\n private correlationId: CorrelationId;\n\n private deviceId: string;\n\n public lineId: string;\n\n private disconnectReason: DisconnectReason;\n\n private callStateMachine;\n\n private mediaStateMachine;\n\n private seq: number; // TODO: remove later\n\n /* TODO: Need to change the type from any to RoapMediaConnection */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public mediaConnection?: any;\n\n private earlyMedia: boolean;\n\n private connected: boolean;\n\n private mediaInactivity: boolean;\n\n private callerInfo: DisplayInformation;\n\n private localRoapMessage: RoapMessage; // Use it for new offer\n\n private mobiusUrl!: string;\n\n private remoteRoapMessage: RoapMessage | null;\n\n private deleteCb: DeleteRecordCallBack;\n\n private callerId: ICallerId;\n\n private sessionTimer?: NodeJS.Timeout;\n\n /* Used to wait for final responses for supplementary services */\n private supplementaryServicesTimer?: NodeJS.Timeout;\n\n private muted: boolean;\n\n private held: boolean;\n\n private metricManager: IMetricManager;\n\n private broadworksCorrelationInfo?: string; // Used in WxCC calls\n\n private serviceIndicator: ServiceIndicator;\n\n private mediaNegotiationCompleted: boolean;\n\n private 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: METHODS.CONSTRUCTOR,\n });\n\n this.seq = INITIAL_SEQ_NUMBER;\n this.callerId = createCallerId(webex, (callerInfo: DisplayInformation) => {\n this.callerInfo = callerInfo;\n const emitObj = {\n correlationId: this.correlationId,\n callerId: this.callerInfo,\n };\n\n this.emit(CALL_EVENT_KEYS.CALLER_ID, emitObj);\n });\n this.remoteRoapMessage = null;\n this.disconnectReason = {code: DisconnectCode.NORMAL, cause: DisconnectCause.NORMAL};\n\n this.rtcMetrics = new RtcMetrics(this.webex, {callId: this.callId}, this.correlationId);\n\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(`Call StateMachine:- state=${state.value}, event=${JSON.stringify(event.type)}`, {\n file: CALL_FILE,\n method: METHODS.CONSTRUCTOR,\n });\n if (state.value !== 'S_UNKNOWN') {\n this.metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n state.value.toString(),\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n undefined\n );\n }\n })\n .start();\n\n this.mediaStateMachine = interpret(mediaMachine)\n .onTransition((state, event) => {\n log.log(`Media StateMachine:- state=${state.value}, event=${JSON.stringify(event.type)}`, {\n file: CALL_FILE,\n method: METHODS.CONSTRUCTOR,\n });\n if (state.value !== 'S_ROAP_ERROR') {\n this.metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA,\n state.value.toString(),\n METRIC_TYPE.BEHAVIORAL,\n this.callId,\n this.correlationId,\n this.localRoapMessage.sdp,\n this.remoteRoapMessage?.sdp,\n undefined\n );\n }\n })\n .start();\n this.muted = false;\n }\n\n /**\n * Handle incoming Call setups.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private handleIncomingCallSetup(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_SETUP,\n });\n\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_ALERTING'});\n }\n\n /**\n * Handle outgoing Call setups.\n * The handler sends a Post Message to the remote with ROAP body\n * as offer. We also set the callId here based on the response received.\n *\n * @param event - Call Events.\n */\n private async handleOutgoingCallSetup(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n\n const message = event.data as RoapMessage;\n\n try {\n const response = await this.post(message);\n log.info(`Response: ${JSON.stringify(response)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n\n log.info(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n this.setCallId(response.body.callId);\n log.log(`Call setup successful for callId: ${response.body.callId}`, {\n file: CALL_FILE,\n method: this.handleOutgoingCallSetup.name,\n });\n } catch (e) {\n log.error(`Failed to setup the call: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_SETUP,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n METHODS.HANDLE_OUTGOING_CALL_SETUP,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n }\n\n /**\n * Handle Call Hold.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleCallHold(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\n });\n\n try {\n const response = await this.postSSRequest(undefined, SUPPLEMENTARY_SERVICES.HOLD);\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\n });\n\n /*\n * Avoid setting http response timeout if held event is already\n * received from Mobius and forwarded towards calling client\n */\n if (this.isHeld() === false) {\n this.supplementaryServicesTimer = setTimeout(async () => {\n const errorContext = {file: CALL_FILE, method: METHODS.HANDLE_CALL_HOLD};\n\n log.warn('Hold response timed out', {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\n });\n\n const callError = createCallError(\n 'An error occurred while placing the call on hold. Wait a moment and try again.',\n errorContext as ErrorContext,\n ERROR_TYPE.TIMEOUT,\n this.getCorrelationId(),\n ERROR_LAYER.CALL_CONTROL\n );\n\n this.emit(CALL_EVENT_KEYS.HOLD_ERROR, callError);\n this.submitCallErrorMetric(callError);\n }, SUPPLEMENTARY_SERVICES_TIMEOUT);\n }\n } catch (e) {\n log.error(`Failed to put the call on hold: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_HOLD,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.HOLD_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n METHODS.HANDLE_CALL_HOLD,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n }\n\n /**\n * Handle Call Resume.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleCallResume(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_RESUME,\n });\n\n try {\n const response = await this.postSSRequest(undefined, SUPPLEMENTARY_SERVICES.RESUME);\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_RESUME,\n });\n\n /*\n * Avoid setting http response timeout if connected event is already\n * received from Mobius on resuming the call and forwarded towards calling client\n */\n if (this.isHeld() === true) {\n this.supplementaryServicesTimer = setTimeout(async () => {\n const errorContext = {file: CALL_FILE, method: METHODS.HANDLE_CALL_RESUME};\n\n log.warn('Resume response timed out', {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_RESUME,\n });\n\n const callError = createCallError(\n 'An error occurred while resuming the call. Wait a moment and try again.',\n errorContext as ErrorContext,\n ERROR_TYPE.TIMEOUT,\n this.getCorrelationId(),\n ERROR_LAYER.CALL_CONTROL\n );\n\n this.emit(CALL_EVENT_KEYS.RESUME_ERROR, callError);\n this.submitCallErrorMetric(callError);\n }, SUPPLEMENTARY_SERVICES_TIMEOUT);\n }\n } catch (e) {\n log.error(`Failed to resume the call: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_RESUME,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.RESUME_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n METHODS.HANDLE_CALL_RESUME,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n }\n\n /**\n * Handle incoming Call Progress.\n *\n * @param event - Call Events.\n */\n private handleIncomingCallProgress(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\n });\n const data = event.data as MobiusCallData;\n\n if (data?.callProgressData?.inbandMedia) {\n log.log('Inband media present. Setting Early Media flag', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\n });\n this.earlyMedia = true;\n } else {\n log.log('Inband media not present.', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\n });\n }\n\n if (data?.callerId) {\n log.info('Processing Caller-Id data', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_PROGRESS,\n });\n this.startCallerIdResolution(data.callerId);\n }\n this.emit(CALL_EVENT_KEYS.PROGRESS, this.correlationId);\n }\n\n /**\n * Handle incoming Call Progress.\n *\n * @param context\n * @param event - Roap Events.\n */\n private handleIncomingRoapOfferRequest(context: MediaContext, event: RoapEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\n });\n const message = event.data as RoapMessage;\n\n if (!this.mediaConnection) {\n log.info('Media connection is not up, buffer the remote Offer Request for later handling', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\n });\n\n this.seq = message.seq;\n log.info(`Setting Sequence No: ${this.seq}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\n });\n\n this.remoteRoapMessage = message;\n } else if (this.receivedRoapOKSeq === message.seq - 2) {\n log.info('Waiting for Roap OK, buffer the remote Offer Request for later handling', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER_REQUEST,\n });\n\n this.remoteRoapMessage = message;\n } else {\n message.seq = this.seq + 1;\n this.seq = message.seq;\n this.mediaConnection.roapMessageReceived(message);\n }\n }\n\n /**\n * Handle Outgoing Call Progress.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleOutgoingCallAlerting(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_ALERTING,\n });\n\n try {\n const res = await this.patch(MobiusCallState.ALERTING);\n\n log.log(`PATCH response: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_ALERTING,\n });\n } catch (e) {\n log.error(`Failed to signal call progression: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_ALERTING,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n METHODS.HANDLE_OUTGOING_CALL_ALERTING,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n }\n\n /**\n * Handle incoming Call Connect.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private handleIncomingCallConnect(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_CALL_CONNECT,\n });\n this.emit(CALL_EVENT_KEYS.CONNECT, this.correlationId);\n\n /* In case of Early Media , media negotiations would have already started\n * So we can directly go to call established state */\n\n if (this.earlyMedia || this.mediaNegotiationCompleted) {\n this.mediaNegotiationCompleted = false;\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }\n }\n\n /**\n * Handle outgoing Call Connect.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleOutgoingCallConnect(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\n });\n\n /* We should have received an Offer by now */\n if (!this.remoteRoapMessage) {\n log.warn('Offer not yet received from remote end... Exiting', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\n });\n\n return;\n }\n\n try {\n /* Start Offer/Answer as we might have buffered the offer by now */\n this.mediaConnection.roapMessageReceived(this.remoteRoapMessage);\n\n /* send call_connect PATCH */\n const res = await this.patch(MobiusCallState.CONNECTED);\n\n log.log(`PATCH response: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\n });\n } catch (e) {\n log.error(`Failed to connect the call: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_CONNECT,\n });\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: errData});\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n METHODS.HANDLE_OUTGOING_CALL_CONNECT,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n }\n\n /**\n * Handle incoming Call Disconnect.\n *\n * @param event - Call Events.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleIncomingCallDisconnect(event: CallEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n this.setDisconnectReason();\n\n try {\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n } catch (e) {\n log.warn(`Failed to delete the call: ${JSON.stringify(e)}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n /* Clear the stream listeners */\n this.unregisterListeners();\n\n /* istanbul ignore else */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n }\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n\n 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 log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n this.setDisconnectReason();\n\n try {\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n log.log(`Call disconnected successfully: ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n\n uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n /* Clear the stream listeners */\n this.unregisterListeners();\n\n /* istanbul ignore else */\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_CALL_DISCONNECT,\n });\n }\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n }\n\n /**\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_CALL_ESTABLISHED,\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: METHODS.HANDLE_CALL_ESTABLISHED,\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: METHODS.HANDLE_CALL_ESTABLISHED,\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 await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\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(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n\n /* We are handling errors at the source , in this state we just log and\n * clear the resources\n */\n\n const eventData = event.data as {media: boolean};\n\n if (!eventData?.media) {\n log.warn('Call failed due to signalling issue', {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n }\n\n /* We need to clear the call at Mobius too. For delete failure\n * error handling is not required\n */\n\n try {\n this.setDisconnectReason();\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n } catch (e) {\n log.warn('Failed to delete the call', {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n\n uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n\n this.deleteCb(this.correlationId);\n\n if (this.sessionTimer) {\n clearInterval(this.sessionTimer);\n }\n\n if (this.mediaConnection) {\n this.mediaConnection.close();\n log.info('Closing media channel', {\n file: CALL_FILE,\n method: METHODS.HANDLE_UNKNOWN_STATE,\n });\n }\n this.sendMediaStateMachineEvt({type: 'E_ROAP_TEARDOWN'});\n this.sendCallStateMachineEvt({type: 'E_CALL_CLEARED'});\n }\n\n /**\n * Returns an error emitter callback method for handleCallErrors which can be used during\n * midcall and call setup scenarios.\n * Emits Call errors for UI Client\n * Sends call error metrics\n * Handles further state machine changes.\n *\n * @param errData - Instance of CallError.\n */\n private getEmitterCallback(errData: MobiusCallResponse) {\n return (error: CallError) => {\n switch (this.callStateMachine.state.value) {\n case 'S_CALL_HOLD':\n this.emit(CALL_EVENT_KEYS.HOLD_ERROR, error);\n if (this.supplementaryServicesTimer) {\n clearTimeout(this.supplementaryServicesTimer);\n this.supplementaryServicesTimer = undefined;\n }\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n\n return;\n case 'S_CALL_RESUME':\n this.emit(CALL_EVENT_KEYS.RESUME_ERROR, error);\n this.submitCallErrorMetric(error);\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED', data: errData});\n\n return;\n default:\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n /* Disconnect call if it's not a midcall case */\n /* istanbul ignore else */\n if (!this.connected) {\n this.sendMediaStateMachineEvt({type: 'E_ROAP_ERROR', data: errData});\n }\n }\n };\n }\n\n /**\n * Handle Roap Established events.\n *\n * For outbound MediaOk , the message will be truthy as we need to send ROAP OK .\n * For inbound MediaOK , we report it to Media-SDK and transition our state.\n * Both the cases should transition to Call Established state.\n *\n * @param context -.\n * @param event - Roap Events.\n */\n private async handleRoapEstablished(context: MediaContext, event: RoapEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n });\n\n const {received, message} = event.data as {received: boolean; message: RoapMessage};\n\n this.receivedRoapOKSeq = message.seq;\n\n if (!received) {\n log.info('Sending Media Ok to the remote End', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n });\n\n try {\n if (\n this.callStateMachine.state.value === 'S_RECV_CALL_PROGRESS' ||\n this.callStateMachine.state.value === 'S_SEND_CALL_SETUP'\n ) {\n log.info(\n 'Media negotiation completed before call connect. Setting media negotiation completed flag.',\n {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n }\n );\n this.mediaNegotiationCompleted = true;\n }\n message.seq = this.seq;\n const res = await this.postMedia(message);\n\n log.log(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n });\n /* istanbul ignore else */\n if (!this.earlyMedia && !this.mediaNegotiationCompleted) {\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }\n } catch (err) {\n log.warn('Failed to process MediaOk request', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n this.getEmitterCallback(errData),\n ERROR_LAYER.MEDIA,\n (interval: number) => {\n /* Start retry if only it is a midcall case */\n /* istanbul ignore else */\n if (this.connected) {\n setTimeout(() => {\n this.sendMediaStateMachineEvt({type: 'E_ROAP_OK', data: event.data});\n }, interval * 1000);\n }\n },\n this.getCorrelationId(),\n errData,\n this.handleRoapEstablished.name,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n } else {\n log.info('Notifying internal-media-core about ROAP OK message', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ESTABLISHED,\n });\n message.seq = this.seq;\n\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.roapMessageReceived(message);\n }\n /* istanbul ignore else */\n if (!this.earlyMedia) {\n this.sendCallStateMachineEvt({type: 'E_CALL_ESTABLISHED'});\n }\n\n if (this.remoteRoapMessage && this.remoteRoapMessage.seq > this.seq) {\n if (this.remoteRoapMessage.messageType === 'OFFER_REQUEST') {\n this.sendMediaStateMachineEvt({\n type: 'E_RECV_ROAP_OFFER_REQUEST',\n data: this.remoteRoapMessage,\n });\n } else if (this.remoteRoapMessage.messageType === 'OFFER') {\n this.sendMediaStateMachineEvt({type: 'E_RECV_ROAP_OFFER', data: this.remoteRoapMessage});\n }\n }\n }\n }\n\n /**\n * Handle Roap Error events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private async handleRoapError(context: MediaContext, event: RoapEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\n });\n\n /* if we receive ROAP_ERROR from internal-media-core , we post it to Mobius */\n\n const message = event.data as RoapMessage;\n\n /* istanbul ignore else */\n if (message) {\n try {\n const res = await this.postMedia(message);\n\n log.info(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\n });\n } catch (err) {\n log.warn('Failed to communicate ROAP error to Webex Calling', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.CALL_ERROR, error);\n this.submitCallErrorMetric(error);\n },\n ERROR_LAYER.MEDIA,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n this.handleRoapError.name,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n }\n\n /* Only disconnect calls that are not yet connected yet */\n\n if (!this.connected) {\n log.warn('Call failed due to media issue', {\n file: CALL_FILE,\n method: METHODS.HANDLE_ROAP_ERROR,\n });\n\n this.sendCallStateMachineEvt({type: 'E_UNKNOWN', data: {media: true}});\n }\n }\n\n /**\n * Handle Outgoing Roap Offer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private async handleOutgoingRoapOffer(context: MediaContext, event: RoapEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\n });\n\n const message = event.data as RoapMessage;\n\n if (!message?.sdp) {\n log.info('Initializing Offer...', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\n });\n this.mediaConnection.initiateOffer();\n\n return;\n }\n\n /* If we are here , that means we have a message to send.. */\n\n try {\n const res = await this.postMedia(message);\n\n log.log(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\n });\n } catch (err) {\n log.warn('Failed to process MediaOk request', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_OFFER,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n this.getEmitterCallback(errData),\n ERROR_LAYER.MEDIA,\n (interval: number) => {\n /* Start retry if only it is a midcall case */\n if (this.connected) {\n setTimeout(() => {\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER', data: event.data});\n }, interval * 1000);\n }\n },\n this.getCorrelationId(),\n errData,\n METHODS.HANDLE_OUTGOING_ROAP_OFFER,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n }\n\n /**\n * Handle Outgoing Roap Answer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private async handleOutgoingRoapAnswer(context: MediaContext, event: RoapEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\n });\n\n const message = event.data as RoapMessage;\n\n try {\n message.seq = this.seq;\n const res = await this.postMedia(message);\n\n log.log(`Response code: ${res.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\n });\n } catch (err) {\n log.warn('Failed to send MediaAnswer request', {\n file: CALL_FILE,\n method: METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\n });\n const errData = err as MobiusCallResponse;\n\n handleCallErrors(\n this.getEmitterCallback(errData),\n ERROR_LAYER.MEDIA,\n (interval: number) => {\n /* Start retry if only it is a midcall case */\n if (this.connected) {\n setTimeout(() => {\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_ANSWER', data: event.data});\n }, interval * 1000);\n }\n },\n this.getCorrelationId(),\n errData,\n METHODS.HANDLE_OUTGOING_ROAP_ANSWER,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n }\n\n /**\n * Handle Incoming Roap Offer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private handleIncomingRoapOffer(context: MediaContext, event: RoapEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER,\n });\n\n const message = event.data as RoapMessage;\n\n this.remoteRoapMessage = message;\n if (!this.mediaConnection) {\n log.info('Media connection is not up, buffer the remote offer for later handling', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER,\n });\n this.seq = message.seq;\n log.info(`Setting Sequence No: ${this.seq}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER,\n });\n } else if (this.receivedRoapOKSeq === message.seq - 2) {\n log.info('Waiting for Roap OK, buffer the remote offer for later handling', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER,\n });\n\n this.remoteRoapMessage = message;\n } else {\n log.info('Handling new offer...', {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_OFFER,\n });\n this.seq = message.seq;\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.roapMessageReceived(message);\n }\n }\n }\n\n /**\n * Handle Incoming Roap Answer events.\n *\n * @param context\n * @param event - Roap Events.\n */\n private handleIncomingRoapAnswer(context: MediaContext, event: RoapEvent) {\n log.info(`${METHOD_START_MESSAGE} with: ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_INCOMING_ROAP_ANSWER,\n });\n const message = event.data as RoapMessage;\n\n this.remoteRoapMessage = message;\n message.seq = this.seq;\n /* istanbul ignore else */\n if (this.mediaConnection) {\n this.mediaConnection.roapMessageReceived(message);\n }\n }\n\n /**\n * Media failed, so collect a stats report from webrtc\n * send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback\n * @param {String} callFrom - the function calling this function, optional.\n * @returns {Promise<void>}\n */\n private forceSendStatsReport = async ({callFrom}: {callFrom?: string}) => {\n const loggerContext = {\n file: CALL_FILE,\n method: METHODS.FORCE_SEND_STATS_REPORT,\n };\n\n try {\n await this.mediaConnection.forceRtcMetricsSend();\n log.info(`Successfully uploaded available webrtc telemetry statistics`, loggerContext);\n log.info(`callFrom: ${callFrom}`, loggerContext);\n } catch (error) {\n const errorInfo = error as WebexRequestPayload;\n const errorStatus = await serviceErrorCodeHandler(errorInfo, loggerContext);\n\n log.error(\n `Failed to upload webrtc telemetry statistics. ${JSON.stringify(errorStatus)}`,\n loggerContext\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n };\n\n /* istanbul ignore next */\n /**\n * Initialize Media Connection.\n *\n * @param settings -.\n * @param settings.localAudioTrack - MediaStreamTrack.\n * @param settings.debugId - String.\n */\n private initMediaConnection(localAudioTrack: MediaStreamTrack, debugId?: string) {\n const mediaConnection = new RoapMediaConnection(\n {\n skipInactiveTransceivers: true,\n iceServers: [],\n iceCandidatesTimeout: ICE_CANDIDATES_TIMEOUT,\n sdpMunging: {\n convertPort9to0: true,\n addContentSlides: false,\n copyClineToSessionLevel: true,\n },\n },\n {\n localTracks: {audio: localAudioTrack},\n direction: {\n audio: 'sendrecv',\n video: 'inactive',\n screenShareVideo: 'inactive',\n },\n },\n debugId || `WebexCallSDK-${this.correlationId}`,\n (data) => this.rtcMetrics.addMetrics(data),\n () => this.rtcMetrics.closeMetrics(),\n () => this.rtcMetrics.sendMetricsInQueue()\n );\n\n this.mediaConnection = mediaConnection;\n }\n\n /**\n *\n */\n public getDirection = (): CallDirection => this.direction;\n\n /**\n *\n */\n public getCallId = (): CallId => this.callId;\n\n /**\n *\n */\n public getCorrelationId = (): CorrelationId => this.correlationId;\n\n /**\n * .\n *\n * @param event -.\n */\n public sendCallStateMachineEvt(event: CallEvent) {\n this.callStateMachine.send(event);\n }\n\n /**\n * .\n *\n * @param event -.\n */\n public sendMediaStateMachineEvt(event: RoapEvent) {\n this.mediaStateMachine.send(event);\n }\n\n /**\n * @param callId -.\n */\n public setCallId = (callId: CallId) => {\n this.callId = callId;\n this.rtcMetrics.updateCallId(callId);\n\n log.info(`Setting callId : ${this.callId} for correlationId: ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.SET_CALL_ID,\n });\n\n this.callId = callId;\n this.rtcMetrics.updateCallId(callId);\n };\n\n /**\n * Sets the Disconnect reason.\n *\n */\n private setDisconnectReason() {\n if (this.mediaInactivity) {\n this.disconnectReason.code = DisconnectCode.MEDIA_INACTIVITY;\n this.disconnectReason.cause = DisconnectCause.MEDIA_INACTIVITY;\n } else if (this.connected || this.direction === CallDirection.OUTBOUND) {\n this.disconnectReason.code = DisconnectCode.NORMAL;\n this.disconnectReason.cause = DisconnectCause.NORMAL;\n } else {\n this.disconnectReason.code = DisconnectCode.BUSY;\n this.disconnectReason.cause = DisconnectCause.BUSY;\n }\n }\n\n /**\n * Gets the disconnection reason.\n *\n * @returns Reason.\n */\n public getDisconnectReason = (): DisconnectReason => {\n return this.disconnectReason;\n };\n\n /**\n * Answers the call with the provided local audio stream.\n *\n * @param localAudioStream - The local audio stream for the call.\n */\n public async answer(localAudioStream: LocalMicrophoneStream) {\n log.info(`${METHOD_START_MESSAGE} with stream`, {\n file: CALL_FILE,\n method: METHODS.ANSWER,\n });\n\n this.localAudioStream = localAudioStream;\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(`Did not find a local track while answering the call ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.ANSWER,\n });\n this.mediaInactivity = true;\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n\n return;\n }\n\n localAudioTrack.enabled = true;\n\n if (!this.mediaConnection) {\n this.initMediaConnection(localAudioTrack);\n this.mediaRoapEventsListener();\n this.mediaTrackListener();\n this.registerListeners(localAudioStream);\n }\n\n if (this.callStateMachine.state.value === 'S_SEND_CALL_PROGRESS') {\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_CONNECT'});\n } else {\n log.warn(\n `Call cannot be answered because the state is : ${this.callStateMachine.state.value}`,\n {file: CALL_FILE, method: METHODS.ANSWER}\n );\n }\n }\n\n /**\n * @param settings\n * @param settings.localAudioTrack\n */\n public async dial(localAudioStream: LocalMicrophoneStream) {\n log.info(`${METHOD_START_MESSAGE} with stream`, {\n file: CALL_FILE,\n method: METHODS.DIAL,\n });\n\n this.localAudioStream = localAudioStream;\n const localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(`Did not find a local track while dialing the call ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.DIAL,\n });\n\n this.deleteCb(this.getCorrelationId());\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());\n\n return;\n }\n localAudioTrack.enabled = true;\n\n if (!this.mediaConnection) {\n this.initMediaConnection(localAudioTrack);\n this.mediaRoapEventsListener();\n this.mediaTrackListener();\n this.registerListeners(localAudioStream);\n }\n\n if (this.mediaStateMachine.state.value === 'S_ROAP_IDLE') {\n this.sendMediaStateMachineEvt({type: 'E_SEND_ROAP_OFFER'});\n } else {\n log.warn(\n `Call cannot be dialed because the state is already : ${this.mediaStateMachine.state.value}`,\n {file: CALL_FILE, method: METHODS.DIAL}\n );\n }\n }\n\n /**\n * .\n *\n * @param roapMessage\n */\n private post = async (roapMessage: RoapMessage): Promise<MobiusCallResponse> => {\n const basePayload = {\n device: {\n deviceId: this.deviceId,\n correlationId: this.correlationId,\n },\n localMedia: {\n roap: roapMessage,\n mediaId: uuid(),\n },\n };\n\n return this.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: 'patch',\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: METHODS.POST_SS_REQUEST,\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: METHODS.COMPLETE_TRANSFER,\n });\n\n const context: TransferContext = {\n transferorCallId: this.getCallId(),\n destination: transferTarget,\n };\n\n try {\n await this.postSSRequest(context, SUPPLEMENTARY_SERVICES.TRANSFER);\n\n log.info(`Blind Transfer completed for correlationId ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.COMPLETE_TRANSFER,\n });\n\n this.metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n TRANSFER_ACTION.BLIND,\n METRIC_TYPE.BEHAVIORAL,\n this.getCallId(),\n this.getCorrelationId(),\n undefined\n );\n } catch (e) {\n log.warn(`Blind Transfer failed for correlationId ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.COMPLETE_TRANSFER,\n });\n\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.TRANSFER_ERROR, error);\n this.submitCallErrorMetric(error, TRANSFER_ACTION.BLIND);\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n METHODS.COMPLETE_TRANSFER,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n } else if (transferType === TransferType.CONSULT && transferCallId) {\n /* Consult transfer */\n\n log.info(`Initiating Consult transfer between : ${this.callId} and ${transferCallId}`, {\n file: CALL_FILE,\n method: METHODS.COMPLETE_TRANSFER,\n });\n\n const context: TransferContext = {\n transferorCallId: this.getCallId(),\n transferToCallId: transferCallId,\n };\n\n try {\n await this.postSSRequest(context, SUPPLEMENTARY_SERVICES.TRANSFER);\n\n log.info(`Consult Transfer completed for correlationId ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.COMPLETE_TRANSFER,\n });\n\n this.metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n TRANSFER_ACTION.CONSULT,\n METRIC_TYPE.BEHAVIORAL,\n this.getCallId(),\n this.getCorrelationId(),\n undefined\n );\n } catch (e) {\n log.warn(`Consult Transfer failed for correlationId ${this.getCorrelationId()}`, {\n file: CALL_FILE,\n method: METHODS.COMPLETE_TRANSFER,\n });\n\n const errData = e as MobiusCallResponse;\n\n handleCallErrors(\n (error: CallError) => {\n this.emit(CALL_EVENT_KEYS.TRANSFER_ERROR, error);\n this.submitCallErrorMetric(error, TRANSFER_ACTION.CONSULT);\n },\n ERROR_LAYER.CALL_CONTROL,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /* istanbul ignore next */ (interval: number) => undefined,\n this.getCorrelationId(),\n errData,\n METHODS.COMPLETE_TRANSFER,\n CALL_FILE\n );\n\n await uploadLogs({\n correlationId: this.correlationId,\n callId: this.callId,\n broadworksCorrelationInfo: this.broadworksCorrelationInfo,\n });\n }\n } else {\n log.warn(\n `Invalid information received, transfer failed for correlationId: ${this.getCorrelationId()}`,\n {\n file: CALL_FILE,\n method: METHODS.COMPLETE_TRANSFER,\n }\n );\n }\n }\n\n /**\n *\n */\n private async getCallStats(): Promise<CallRtpStats> {\n let stats!: RTCStatsReport;\n\n try {\n stats = await this.mediaConnection.getStats();\n } catch (err) {\n log.warn('Stats collection failed, using dummy stats', {\n file: CALL_FILE,\n method: METHODS.GET_CALL_STATS,\n });\n }\n\n return parseMediaQualityStatistics(stats);\n }\n\n /**\n * .\n *\n * @param roapMessage -.\n */\n private async postMedia(roapMessage: RoapMessage): Promise<WebexRequestPayload> {\n log.log('Posting message to Webex Calling', {\n file: CALL_FILE,\n method: METHODS.POST_MEDIA,\n });\n\n return this.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 {file: CALL_FILE, method: METHODS.MEDIA_ROAP_EVENTS_LISTENER}\n );\n\n log.info(`SDP message to send : \\n ${event.roapMessage?.sdp}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\n });\n\n switch (event.roapMessage.messageType) {\n case RoapScenario.OK: {\n const mediaOk = {\n received: false,\n message: event.roapMessage,\n };\n\n this.sendMediaStateMachineEvt({type: 'E_ROAP_OK', data: mediaOk});\n break;\n }\n\n case RoapScenario.OFFER: {\n // TODO: Remove these after the Media-Core adds the fix\n // Check if at least one IPv6 \"c=\" line is present\n log.info(`before modifying sdp: ${event.roapMessage.sdp}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\n });\n\n event.roapMessage.sdp = modifySdpForIPv4(event.roapMessage.sdp);\n\n const sdpVideoPortZero = event.roapMessage.sdp.replace(\n /^m=(video) (?:\\d+) /gim,\n 'm=$1 0 '\n );\n\n log.info(`after modification sdp: ${sdpVideoPortZero}`, {\n file: CALL_FILE,\n method: METHODS.MEDIA_ROAP_EVENTS_LISTENER,\n });\n\n event.roapMessage.sdp = sdpVideoPortZero;\n this.localRoapMessage = event.roapMessage;\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_SETUP', data: event.roapMessage});\n break;\n }\n\n case RoapScenario.ANSWER:\n event.roapMessage.sdp = modifySdpForIPv4(event.roapMessage.sdp);\n this.localRoapMessage = event.roapMessage;\n 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: METHODS.HANDLE_MID_CALL_EVENT,\n });\n\n const callerData = eventData as MidCallCallerId;\n\n this.startCallerIdResolution(callerData.callerId);\n\n break;\n }\n\n case MidCallEventType.CALL_STATE: {\n log.log(`Received Midcall call event for correlationId : ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_MID_CALL_EVENT,\n });\n\n const data = eventData as SupplementaryServiceState;\n\n /* Emit Events as per the state.\n * We will enter this state only when media negotiation is done\n * So, it's safe to emit events from here.\n */\n\n switch (data.callState) {\n case MOBIUS_MIDCALL_STATE.HELD: {\n log.log(`Call is successfully held : ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_MID_CALL_EVENT,\n });\n\n this.emit(CALL_EVENT_KEYS.HELD, this.correlationId);\n\n this.held = true;\n\n if (this.supplementaryServicesTimer) {\n clearTimeout(this.supplementaryServicesTimer);\n this.supplementaryServicesTimer = undefined;\n }\n\n break;\n }\n\n case MOBIUS_MIDCALL_STATE.CONNECTED: {\n log.log(`Call is successfully resumed : ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_MID_CALL_EVENT,\n });\n\n this.emit(CALL_EVENT_KEYS.RESUMED, this.correlationId);\n\n this.held = false;\n\n if (this.supplementaryServicesTimer) {\n clearTimeout(this.supplementaryServicesTimer);\n this.supplementaryServicesTimer = undefined;\n }\n\n break;\n }\n\n default: {\n log.warn(\n `Unknown Supplementary service state: ${data.callState} for correlationId : ${this.correlationId}`,\n {\n file: CALL_FILE,\n method: METHODS.HANDLE_MID_CALL_EVENT,\n }\n );\n }\n }\n\n break;\n }\n\n default: {\n log.warn(`Unknown Midcall type: ${eventType} for correlationId : ${this.correlationId}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_MID_CALL_EVENT,\n });\n }\n }\n }\n\n /**\n *\n */\n public getCallerInfo = (): DisplayInformation => this.callerInfo;\n\n /**\n *\n */\n public end = (): void => {\n log.info(`${METHOD_START_MESSAGE}`, {\n file: CALL_FILE,\n method: METHODS.END,\n });\n\n this.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n };\n\n /**\n *\n */\n public doHoldResume = (): void => {\n if (this.held) {\n this.sendCallStateMachineEvt({type: 'E_CALL_RESUME'});\n } else {\n this.sendCallStateMachineEvt({type: 'E_CALL_HOLD'});\n }\n };\n\n /**\n * .\n *\n * @param callerInfo\n */\n public startCallerIdResolution(callerInfo: CallerIdInfo) {\n this.callerInfo = this.callerId.fetchCallerDetails(callerInfo);\n }\n\n /**\n * Sends digit over the established call.\n *\n * @param tone - DTMF tones.\n */\n public sendDigit(tone: string) {\n log.info(`${METHOD_START_MESSAGE} with: ${tone}`, {\n file: CALL_FILE,\n method: METHODS.SEND_DIGIT,\n });\n\n /* istanbul ignore else */\n try {\n this.mediaConnection.insertDTMF(tone);\n } catch (e: any) {\n log.warn(`Unable to send digit on call: ${e.message}`, {\n file: CALL_FILE,\n method: METHODS.SEND_DIGIT,\n });\n }\n }\n\n /**\n * Mutes/Unmutes the call.\n *\n * @param localAudioStream - The local audio stream to mute or unmute.\n * @param muteType - Identifies if mute was triggered by system or user.\n *\n * @example\n * ```javascript\n * call.mute(localAudioStream, 'system_mute')\n * ```\n */\n public mute = (localAudioStream: LocalMicrophoneStream, muteType?: MUTE_TYPE): void => {\n log.info(`${METHOD_START_MESSAGE} with: ${muteType || 'user mute'}`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n\n if (!localAudioStream) {\n log.warn(`Did not find a local stream while muting the call ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n\n return;\n }\n if (muteType === MUTE_TYPE.SYSTEM) {\n if (!localAudioStream.userMuted) {\n this.muted = localAudioStream.systemMuted;\n } else {\n log.info(`Call is muted by the user already - ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n }\n } else if (!localAudioStream.systemMuted) {\n localAudioStream.setUserMuted(!this.muted);\n this.muted = !this.muted;\n } else {\n log.info(`Call is muted on the system - ${this.getCorrelationId()}.`, {\n file: CALL_FILE,\n method: METHODS.MUTE,\n });\n }\n };\n\n /**\n * Change the audio stream of the call.\n *\n * @param newAudioStream - The new audio stream to be used in the call.\n */\n\n public updateMedia = (newAudioStream: LocalMicrophoneStream): void => {\n const localAudioTrack = newAudioStream.outputStream.getAudioTracks()[0];\n\n if (!localAudioTrack) {\n log.warn(\n `Did not find a local track while updating media for call ${this.getCorrelationId()}. Will not update media`,\n {\n file: CALL_FILE,\n method: METHODS.UPDATE_MEDIA,\n }\n );\n\n return;\n }\n\n try {\n this.mediaConnection.updateLocalTracks({\n audio: localAudioTrack,\n });\n\n this.unregisterListeners();\n this.registerListeners(newAudioStream);\n this.localAudioStream = newAudioStream;\n } catch (e: any) {\n log.warn(`Unable to update media on call ${this.getCorrelationId()}. Error: ${e.message}`, {\n file: CALL_FILE,\n method: METHODS.UPDATE_MEDIA,\n });\n }\n };\n\n /**\n * @param broadworksCorrelationInfo\n */\n setBroadworksCorrelationInfo(broadworksCorrelationInfo: string): void {\n this.broadworksCorrelationInfo = broadworksCorrelationInfo;\n }\n\n /**\n *\n */\n getBroadworksCorrelationInfo(): string | undefined {\n return this.broadworksCorrelationInfo;\n }\n\n /**\n * Get call stats for an active call.\n *\n * @returns Promise<CallRtpStats> Call Stats.\n */\n getCallRtpStats(): Promise<CallRtpStats> {\n return this.getCallStats();\n }\n\n /**\n * Handle timeout for the missed events\n * @param expectedStates - An array of next expected states\n * @param errorMessage - Error message to be emitted if the call is not in the expected state in expected time\n */\n private async handleTimeout() {\n log.warn(`Call timed out`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_TIMEOUT,\n });\n this.deleteCb(this.getCorrelationId());\n this.emit(CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());\n const response = await this.delete();\n\n log.log(`Response code: ${response.statusCode}`, {\n file: CALL_FILE,\n method: METHODS.HANDLE_TIMEOUT,\n });\n }\n}\n\n/**\n * @param activeUrl\n * @param webex -.\n * @param dir -.\n * @param deviceId -.\n * @param lineId -.\n * @param serverCb\n * @param deleteCb\n * @param indicator - Service Indicator.\n * @param dest -.\n */\nexport const createCall = (\n activeUrl: string,\n webex: WebexSDK,\n dir: CallDirection,\n deviceId: string,\n lineId: string,\n deleteCb: DeleteRecordCallBack,\n indicator: ServiceIndicator,\n dest?: CallDetails\n): ICall => new Call(activeUrl, webex, dir, deviceId, lineId, deleteCb, indicator, dest);\n"],"mappings":"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","ignoreList":[]}
|