@webex/contact-center 3.12.0-llmrefactor.1 → 3.12.0-llmrefactor.10
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/.sdd/manifest.json +7 -5
- package/ai-docs/ARCHITECTURE.md +1 -1
- package/ai-docs/CONTRACTS.md +8 -3
- package/ai-docs/SECURITY.md +1 -1
- package/ai-docs/contact-center-spec.md +22 -4
- package/ai-docs/features/consult-transfer-list-policy/spec/feature-spec.md +362 -0
- package/dist/cc.js +544 -12
- package/dist/cc.js.map +1 -1
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +10 -2
- package/dist/constants.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/metrics/MetricsManager.js +16 -0
- package/dist/metrics/MetricsManager.js.map +1 -1
- package/dist/metrics/behavioral-events.js +104 -0
- package/dist/metrics/behavioral-events.js.map +1 -1
- package/dist/metrics/constants.js +18 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/services/AddressBook.js +18 -15
- package/dist/services/AddressBook.js.map +1 -1
- package/dist/services/AnswerCallOnWebexService.js +202 -0
- package/dist/services/AnswerCallOnWebexService.js.map +1 -0
- package/dist/services/EntryPoint.js +46 -68
- package/dist/services/EntryPoint.js.map +1 -1
- package/dist/services/Queue.js +27 -22
- package/dist/services/Queue.js.map +1 -1
- package/dist/services/WebexCrossClientService.js +222 -0
- package/dist/services/WebexCrossClientService.js.map +1 -0
- package/dist/services/WxAppTelephonyMercurySync.js +108 -0
- package/dist/services/WxAppTelephonyMercurySync.js.map +1 -0
- package/dist/services/config/Util.js +3 -0
- package/dist/services/config/Util.js.map +1 -1
- package/dist/services/config/constants.js +10 -6
- package/dist/services/config/constants.js.map +1 -1
- package/dist/services/config/types.js +4 -0
- package/dist/services/config/types.js.map +1 -1
- package/dist/services/core/Err.js.map +1 -1
- package/dist/services/core/WebexRequest.js +6 -2
- package/dist/services/core/WebexRequest.js.map +1 -1
- package/dist/services/core/aqm-reqs.js +28 -14
- package/dist/services/core/aqm-reqs.js.map +1 -1
- package/dist/services/core/types.js.map +1 -1
- package/dist/services/task/Task.js +73 -7
- package/dist/services/task/Task.js.map +1 -1
- package/dist/services/task/TaskFactory.js +8 -4
- package/dist/services/task/TaskFactory.js.map +1 -1
- package/dist/services/task/TaskManager.js +490 -21
- package/dist/services/task/TaskManager.js.map +1 -1
- package/dist/services/task/WebexCallingUtils.js +70 -0
- package/dist/services/task/WebexCallingUtils.js.map +1 -0
- package/dist/services/task/constants.js +4 -1
- package/dist/services/task/constants.js.map +1 -1
- package/dist/services/task/contact.js +29 -0
- package/dist/services/task/contact.js.map +1 -1
- package/dist/services/task/digital/Digital.js +3 -2
- package/dist/services/task/digital/Digital.js.map +1 -1
- package/dist/services/task/state-machine/TaskStateMachine.js +162 -53
- package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -1
- package/dist/services/task/state-machine/actions.js +6 -1
- package/dist/services/task/state-machine/actions.js.map +1 -1
- package/dist/services/task/state-machine/guards.js +7 -10
- package/dist/services/task/state-machine/guards.js.map +1 -1
- package/dist/services/task/state-machine/types.js.map +1 -1
- package/dist/services/task/state-machine/uiControlsComputer.js +118 -18
- package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -1
- package/dist/services/task/types.js +16 -1
- package/dist/services/task/types.js.map +1 -1
- package/dist/services/task/voice/Voice.js +456 -15
- package/dist/services/task/voice/Voice.js.map +1 -1
- package/dist/services/task/voice/WebRTC.js +4 -1
- package/dist/services/task/voice/WebRTC.js.map +1 -1
- package/dist/services/task/voice/wxAppVoiceMethods.js +354 -0
- package/dist/services/task/voice/wxAppVoiceMethods.js.map +1 -0
- package/dist/services/wxAppDiagnosticLogging.js +122 -0
- package/dist/services/wxAppDiagnosticLogging.js.map +1 -0
- package/dist/services/wxAppTelephonyUtils.js +19 -0
- package/dist/services/wxAppTelephonyUtils.js.map +1 -0
- package/dist/types/cc.d.ts +78 -4
- package/dist/types/config.d.ts +7 -0
- package/dist/types/constants.d.ts +8 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/metrics/MetricsManager.d.ts +6 -0
- package/dist/types/metrics/constants.d.ts +17 -0
- package/dist/types/services/AddressBook.d.ts +2 -1
- package/dist/types/services/AnswerCallOnWebexService.d.ts +38 -0
- package/dist/types/services/EntryPoint.d.ts +7 -5
- package/dist/types/services/Queue.d.ts +5 -3
- package/dist/types/services/WebexCrossClientService.d.ts +32 -0
- package/dist/types/services/WxAppTelephonyMercurySync.d.ts +28 -0
- package/dist/types/services/config/constants.d.ts +8 -5
- package/dist/types/services/config/types.d.ts +17 -4
- package/dist/types/services/core/Err.d.ts +2 -0
- package/dist/types/services/core/WebexRequest.d.ts +1 -0
- package/dist/types/services/core/types.d.ts +2 -0
- package/dist/types/services/task/Task.d.ts +20 -2
- package/dist/types/services/task/TaskFactory.d.ts +2 -1
- package/dist/types/services/task/WebexCallingUtils.d.ts +11 -0
- package/dist/types/services/task/constants.d.ts +3 -0
- package/dist/types/services/task/contact.d.ts +4 -0
- package/dist/types/services/task/digital/Digital.d.ts +2 -2
- package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +304 -56
- package/dist/types/services/task/state-machine/guards.d.ts +6 -5
- package/dist/types/services/task/state-machine/types.d.ts +9 -1
- package/dist/types/services/task/types.d.ts +81 -4
- package/dist/types/services/task/voice/Voice.d.ts +52 -9
- package/dist/types/services/task/voice/WebRTC.d.ts +2 -2
- package/dist/types/services/task/voice/wxAppVoiceMethods.d.ts +55 -0
- package/dist/types/services/wxAppDiagnosticLogging.d.ts +51 -0
- package/dist/types/services/wxAppTelephonyUtils.d.ts +5 -0
- package/dist/types/types.d.ts +14 -8
- package/dist/types/utils/PageCache.d.ts +20 -3
- package/dist/types.js +7 -2
- package/dist/types.js.map +1 -1
- package/dist/utils/PageCache.js +19 -5
- package/dist/utils/PageCache.js.map +1 -1
- package/dist/webex.js +1 -1
- package/package.json +8 -8
- package/src/cc.ts +657 -12
- package/src/config.ts +7 -0
- package/src/constants.ts +8 -0
- package/src/index.ts +2 -0
- package/src/metrics/MetricsManager.ts +16 -0
- package/src/metrics/ai-docs/metrics-spec.md +78 -10
- package/src/metrics/behavioral-events.ts +106 -0
- package/src/metrics/constants.ts +20 -0
- package/src/services/AddressBook.ts +17 -6
- package/src/services/AnswerCallOnWebexService.ts +239 -0
- package/src/services/EntryPoint.ts +59 -60
- package/src/services/Queue.ts +29 -12
- package/src/services/WebexCrossClientService.ts +293 -0
- package/src/services/WxAppTelephonyMercurySync.ts +142 -0
- package/src/services/agent/ai-docs/agent-spec.md +1 -0
- package/src/services/ai-docs/AGENTS.md +10 -10
- package/src/services/ai-docs/services-spec.md +6 -1
- package/src/services/config/Util.ts +3 -0
- package/src/services/config/ai-docs/AGENTS.md +1 -1
- package/src/services/config/ai-docs/ARCHITECTURE.md +2 -2
- package/src/services/config/ai-docs/config-spec.md +6 -0
- package/src/services/config/constants.ts +10 -6
- package/src/services/config/types.ts +16 -4
- package/src/services/core/Err.ts +1 -0
- package/src/services/core/WebexRequest.ts +3 -1
- package/src/services/core/ai-docs/core-spec.md +5 -1
- package/src/services/core/aqm-reqs.ts +30 -15
- package/src/services/core/types.ts +2 -0
- package/src/services/task/Task.ts +79 -8
- package/src/services/task/TaskFactory.ts +8 -3
- package/src/services/task/TaskManager.ts +716 -17
- package/src/services/task/WebexCallingUtils.ts +136 -0
- package/src/services/task/ai-docs/ARCHITECTURE.md +1 -0
- package/src/services/task/ai-docs/task-spec.md +156 -3
- package/src/services/task/constants.ts +3 -0
- package/src/services/task/contact.ts +30 -0
- package/src/services/task/digital/Digital.ts +4 -2
- package/src/services/task/state-machine/TaskStateMachine.ts +235 -81
- package/src/services/task/state-machine/actions.ts +5 -2
- package/src/services/task/state-machine/ai-docs/AGENTS.md +6 -4
- package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +35 -16
- package/src/services/task/state-machine/ai-docs/task-state-machine-spec.md +103 -33
- package/src/services/task/state-machine/guards.ts +7 -10
- package/src/services/task/state-machine/types.ts +16 -1
- package/src/services/task/state-machine/uiControlsComputer.ts +206 -32
- package/src/services/task/types.ts +114 -4
- package/src/services/task/voice/Voice.ts +595 -14
- package/src/services/task/voice/WebRTC.ts +5 -1
- package/src/services/task/voice/wxAppVoiceMethods.ts +516 -0
- package/src/services/wxAppDiagnosticLogging.ts +174 -0
- package/src/services/wxAppTelephonyUtils.ts +14 -0
- package/src/types.ts +33 -9
- package/src/utils/AGENTS.md +21 -10
- package/src/utils/PageCache.ts +38 -5
- package/src/utils/ai-docs/utils-spec.md +21 -11
- package/test/unit/spec/cc.ts +1522 -19
- package/test/unit/spec/metrics/MetricsManager.ts +25 -0
- package/test/unit/spec/metrics/behavioral-events.ts +60 -0
- package/test/unit/spec/services/AddressBook.ts +37 -6
- package/test/unit/spec/services/AnswerCallOnWebexService.ts +264 -0
- package/test/unit/spec/services/EntryPoint.ts +87 -40
- package/test/unit/spec/services/Queue.ts +123 -12
- package/test/unit/spec/services/WebexCrossClientService.ts +467 -0
- package/test/unit/spec/services/WxAppTelephonyMercurySync.ts +136 -0
- package/test/unit/spec/services/config/Util.ts +85 -0
- package/test/unit/spec/services/core/WebexRequest.ts +3 -1
- package/test/unit/spec/services/core/aqm-reqs.ts +113 -1
- package/test/unit/spec/services/task/Task.ts +274 -6
- package/test/unit/spec/services/task/TaskFactory.ts +39 -2
- package/test/unit/spec/services/task/TaskManager.ts +1717 -9
- package/test/unit/spec/services/task/WebexCallingUtils.ts +153 -0
- package/test/unit/spec/services/task/contact.ts +33 -0
- package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +1485 -109
- package/test/unit/spec/services/task/state-machine/guards.ts +210 -8
- package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +445 -7
- package/test/unit/spec/services/task/voice/Voice.ts +1412 -0
- package/test/unit/spec/services/task/voice/wxAppVoiceMethods.ts +603 -0
- package/test/unit/spec/services/wxAppDiagnosticLogging.ts +143 -0
- package/umd/contact-center.min.js +2 -2
- package/umd/contact-center.min.js.map +1 -1
|
@@ -487,6 +487,35 @@ function routingContact(aqm) {
|
|
|
487
487
|
errId: 'Service.aqm.task.consultConference'
|
|
488
488
|
}
|
|
489
489
|
})),
|
|
490
|
+
/*
|
|
491
|
+
* Drop another participant from an active conference
|
|
492
|
+
*/
|
|
493
|
+
dropConferenceParticipant: aqm.req(p => ({
|
|
494
|
+
url: `${_constants3.TASK_API}${p.interactionId}/conference/participants/${encodeURIComponent(p.participantId)}/drop`,
|
|
495
|
+
data: {},
|
|
496
|
+
host: _constants.WCC_API_GATEWAY,
|
|
497
|
+
err: _Utils.createErrDetailsObject,
|
|
498
|
+
redactSensitiveLogs: true,
|
|
499
|
+
notifSuccess: {
|
|
500
|
+
bind: {
|
|
501
|
+
type: _constants3.TASK_MESSAGE_TYPE,
|
|
502
|
+
data: {
|
|
503
|
+
type: _types.CC_EVENTS.PARTICIPANT_LEFT_CONFERENCE,
|
|
504
|
+
interactionId: p.interactionId
|
|
505
|
+
}
|
|
506
|
+
},
|
|
507
|
+
msg: {}
|
|
508
|
+
},
|
|
509
|
+
notifFail: {
|
|
510
|
+
bind: {
|
|
511
|
+
type: _constants3.TASK_MESSAGE_TYPE,
|
|
512
|
+
data: {
|
|
513
|
+
type: _types.CC_EVENTS.PARTICIPANT_DROP_CONFERENCE_FAILED
|
|
514
|
+
}
|
|
515
|
+
},
|
|
516
|
+
errId: 'Service.aqm.task.dropConferenceParticipant'
|
|
517
|
+
}
|
|
518
|
+
})),
|
|
490
519
|
/*
|
|
491
520
|
* Exit conference
|
|
492
521
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_types","require","_Utils","_constants","_constants2","_constants3","_types2","routingContact","aqm","accept","req","p","url","TASK_API","interactionId","host","WCC_API_GATEWAY","data","err","notifSuccess","bind","type","TASK_MESSAGE_TYPE","CC_EVENTS","AGENT_CONTACT_ASSIGNED","msg","notifFail","AGENT_CONTACT_ASSIGN_FAILED","errId","hold","HOLD","AGENT_CONTACT_HELD","AGENT_CONTACT_HOLD_FAILED","unHold","UNHOLD","AGENT_CONTACT_UNHELD","AGENT_CONTACT_UNHOLD_FAILED","pauseRecording","PAUSE","CONTACT_RECORDING_PAUSED","CONTACT_RECORDING_PAUSE_FAILED","resumeRecording","RESUME","CONTACT_RECORDING_RESUMED","CONTACT_RECORDING_RESUME_FAILED","consult","CONSULT","timeout","destinationType","DESTINATION_TYPE","QUEUE","TIMEOUT_REQ","AGENT_CONSULT_CREATED","AGENT_CTQ_FAILED","AGENT_CONSULT_FAILED","notifCancel","consultEnd","isConsult","isSecondaryEpDnAgent","queueId","CONSULT_END","AGENT_CTQ_CANCELLED","CONTACT_ENDED","AGENT_CONSULT_ENDED","AGENT_CONSULT_CONFERENCE_ENDED","AGENT_CTQ_CANCEL_FAILED","AGENT_CONSULT_END_FAILED","consultAccept","CONSULT_ACCEPT","AGENT_CONSULTING","blindTransfer","TRANSFER","AGENT_BLIND_TRANSFERRED","AGENT_BLIND_TRANSFER_FAILED","vteamTransfer","AGENT_VTEAM_TRANSFERRED","AGENT_VTEAM_TRANSFER_FAILED","consultTransfer","CONSULT_TRANSFER","AGENT_CONSULT_TRANSFERRED","AGENT_CONSULT_TRANSFERRING","AGENT_CONSULT_TRANSFER_FAILED","end","END","AGENT_WRAPUP","AGENT_CONTACT_END_FAILED","wrapup","WRAPUP","AGENT_WRAPPEDUP","AGENT_WRAPUP_FAILED","cancelTask","cancelCtq","consultConference","CONSULT_CONFERENCE","AGENT_CONSULT_CONFERENCED","AGENT_CONSULT_CONFERENCING","AGENT_CONSULT_CONFERENCE_FAILED","exitConference","CONFERENCE_EXIT","PARTICIPANT_LEFT_CONFERENCE","PARTICIPANT_LEFT_CONFERENCE_FAILED","conferenceTransfer","CONFERENCE_TRANSFER","AGENT_CONFERENCE_TRANSFER_FAILED"],"sources":["contact.ts"],"sourcesContent":["import {CC_EVENTS} from '../config/types';\nimport {createErrDetailsObject as err} from '../core/Utils';\nimport {WCC_API_GATEWAY} from '../constants';\nimport AqmReqs from '../core/aqm-reqs';\nimport {TIMEOUT_REQ} from '../core/constants';\nimport {\n CONSULT,\n CONSULT_ACCEPT,\n CONSULT_END,\n CONSULT_TRANSFER,\n END,\n HOLD,\n PAUSE,\n RESUME,\n TASK_API,\n TASK_MESSAGE_TYPE,\n TRANSFER,\n UNHOLD,\n WRAPUP,\n CONSULT_CONFERENCE,\n CONFERENCE_EXIT,\n CONFERENCE_TRANSFER,\n} from './constants';\nimport * as Contact from './types';\nimport {DESTINATION_TYPE} from './types';\n\nexport default function routingContact(aqm: AqmReqs) {\n return {\n /*\n * Accept incoming task\n */\n accept: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}/accept`,\n host: WCC_API_GATEWAY,\n data: {},\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_ASSIGNED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_ASSIGN_FAILED, interactionId: p.interactionId},\n },\n errId: 'Service.aqm.task.accept',\n },\n })),\n\n /*\n * Hold task\n */\n hold: aqm.req((p: {interactionId: string; data: Contact.HoldResumePayload}) => ({\n url: `${TASK_API}${p.interactionId}${HOLD}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_HELD, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_HOLD_FAILED},\n },\n errId: 'Service.aqm.task.hold',\n },\n })),\n\n /*\n * Unhold task\n */\n unHold: aqm.req((p: {interactionId: string; data: Contact.HoldResumePayload}) => ({\n url: `${TASK_API}${p.interactionId}${UNHOLD}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_UNHELD, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_UNHOLD_FAILED},\n },\n errId: 'Service.aqm.task.unHold',\n },\n })),\n\n /*\n * Pause Recording\n */\n pauseRecording: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}${PAUSE}`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.CONTACT_RECORDING_PAUSED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.CONTACT_RECORDING_PAUSE_FAILED},\n },\n errId: 'Service.aqm.task.pauseRecording',\n },\n })),\n\n /*\n * Resume Recording\n */\n resumeRecording: aqm.req(\n (p: {interactionId: string; data: Contact.ResumeRecordingPayload}) => ({\n url: `${TASK_API}${p.interactionId}${RESUME}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.CONTACT_RECORDING_RESUMED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.CONTACT_RECORDING_RESUME_FAILED},\n },\n errId: 'Service.aqm.task.resumeRecording',\n },\n })\n ),\n\n /*\n * Consult contact\n */\n consult: aqm.req((p: {interactionId: string; data: Contact.ConsultPayload}) => ({\n url: `${TASK_API}${p.interactionId}${CONSULT}`,\n data: p.data,\n timeout:\n p.data && p.data.destinationType === DESTINATION_TYPE.QUEUE ? 'disabled' : TIMEOUT_REQ,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONSULT_CREATED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {\n type:\n p.data && p.data.destinationType === DESTINATION_TYPE.QUEUE\n ? CC_EVENTS.AGENT_CTQ_FAILED\n : CC_EVENTS.AGENT_CONSULT_FAILED,\n },\n },\n errId: 'Service.aqm.task.consult',\n },\n notifCancel: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: 'AgentCtqCancelled', interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n })),\n\n /*\n * Consult End\n */\n consultEnd: aqm.req((p: {interactionId: string; data: Contact.ConsultEndPayload}) => {\n // Setting false value for optional attribute\n const {isConsult, isSecondaryEpDnAgent = false, queueId} = p.data;\n\n return {\n url: `${TASK_API}${p.interactionId}${CONSULT_END}`,\n host: WCC_API_GATEWAY,\n data: queueId\n ? {\n queueId,\n }\n : {},\n err,\n notifSuccess: {\n bind: {\n type: 'RoutingMessage',\n data: {\n type: (() => {\n if (queueId) return CC_EVENTS.AGENT_CTQ_CANCELLED;\n if (isSecondaryEpDnAgent) return CC_EVENTS.CONTACT_ENDED;\n if (isConsult) return CC_EVENTS.AGENT_CONSULT_ENDED;\n\n return CC_EVENTS.AGENT_CONSULT_CONFERENCE_ENDED;\n })(),\n interactionId: p.interactionId,\n },\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: 'RoutingMessage',\n data: {\n type: p.data.queueId\n ? CC_EVENTS.AGENT_CTQ_CANCEL_FAILED\n : CC_EVENTS.AGENT_CONSULT_END_FAILED,\n },\n },\n errId: p.data.queueId ? 'Service.aqm.task.cancelCtq' : 'Service.aqm.task.consultEnd',\n },\n };\n }),\n\n /*\n * Consult Accept contact\n */\n consultAccept: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}${CONSULT_ACCEPT}`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONSULTING, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_ASSIGN_FAILED},\n },\n errId: 'Service.aqm.task.consultAccept',\n },\n })),\n\n /*\n * BlindTransfer contact\n */\n blindTransfer: aqm.req((p: {interactionId: string; data: Contact.TransferPayLoad}) => ({\n url: `${TASK_API}${p.interactionId}${TRANSFER}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_BLIND_TRANSFERRED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_BLIND_TRANSFER_FAILED},\n },\n errId: 'Service.aqm.task.AgentBlindTransferFailedEvent',\n },\n })),\n\n /*\n * VteamTransfer contact\n */\n vteamTransfer: aqm.req((p: {interactionId: string; data: Contact.TransferPayLoad}) => ({\n url: `${TASK_API}${p.interactionId}${TRANSFER}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_VTEAM_TRANSFERRED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_VTEAM_TRANSFER_FAILED},\n },\n errId: 'Service.aqm.task.AgentVteamTransferFailed',\n },\n })),\n\n /*\n * Consult Transfer contact\n */\n consultTransfer: aqm.req(\n (p: {interactionId: string; data: Contact.ConsultTransferPayLoad}) => ({\n url: `${TASK_API}${p.interactionId}${CONSULT_TRANSFER}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {\n type: [CC_EVENTS.AGENT_CONSULT_TRANSFERRED, CC_EVENTS.AGENT_CONSULT_TRANSFERRING],\n interactionId: p.interactionId,\n },\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONSULT_TRANSFER_FAILED},\n },\n errId: 'Service.aqm.task.AgentConsultTransferFailed',\n },\n })\n ),\n\n /*\n * End contact\n */\n end: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}${END}`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_WRAPUP, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_END_FAILED},\n },\n errId: 'Service.aqm.task.end',\n },\n })),\n\n /*\n * Wrapup contact\n */\n wrapup: aqm.req((p: {interactionId: string; data: Contact.WrapupPayLoad}) => ({\n url: `${TASK_API}${p.interactionId}${WRAPUP}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_WRAPPEDUP, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_WRAPUP_FAILED},\n },\n errId: 'Service.aqm.task.wrapup',\n },\n })),\n\n /*\n * Cancel popover\n */\n cancelTask: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}${END}`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.CONTACT_ENDED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_END_FAILED},\n },\n errId: 'Service.aqm.task.end',\n },\n })),\n\n /*\n * Cancel Ctq request\n */\n cancelCtq: aqm.req((p: {interactionId: string; data: Contact.cancelCtq}) => ({\n url: `${TASK_API}${p.interactionId}/cancelCtq`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: 'AgentCtqCancelled', interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: 'AgentCtqCancelFailed'},\n },\n errId: 'Service.aqm.task.cancelCtq',\n },\n })),\n\n /*\n * Start consult conference\n */\n consultConference: aqm.req(\n (p: {interactionId: string; data: Contact.ConsultConferenceData}) => ({\n url: `${TASK_API}${p.interactionId}${CONSULT_CONFERENCE}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {\n type: [CC_EVENTS.AGENT_CONSULT_CONFERENCED, CC_EVENTS.AGENT_CONSULT_CONFERENCING],\n interactionId: p.interactionId,\n }, // any of the two events can be received for API success event\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONSULT_CONFERENCE_FAILED},\n },\n errId: 'Service.aqm.task.consultConference',\n },\n })\n ),\n\n /*\n * Exit conference\n */\n exitConference: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}${CONFERENCE_EXIT}`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.PARTICIPANT_LEFT_CONFERENCE, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.PARTICIPANT_LEFT_CONFERENCE_FAILED}, // to be finalized\n },\n errId: 'Service.aqm.task.consultConference',\n },\n })),\n\n /*\n * Transfer conference\n */\n conferenceTransfer: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}${CONFERENCE_TRANSFER}`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.PARTICIPANT_LEFT_CONFERENCE, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONFERENCE_TRANSFER_FAILED},\n },\n errId: 'Service.aqm.task.consultConference',\n },\n })),\n };\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAmBA,IAAAK,OAAA,GAAAL,OAAA;AAEe,SAASM,cAAcA,CAACC,GAAY,EAAE;EACnD,OAAO;IACL;AACJ;AACA;IACIC,MAAM,EAAED,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MAC/CC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,SAAS;MAC3CC,IAAI,EAAEC,0BAAe;MACrBC,IAAI,EAAE,CAAC,CAAC;MACRC,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACC,sBAAsB;YAAEV,aAAa,EAAEH,CAAC,CAACG;UAAa;QAC/E,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACI,2BAA2B;YAAEb,aAAa,EAAEH,CAAC,CAACG;UAAa;QACpF,CAAC;QACDc,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIC,IAAI,EAAErB,GAAG,CAACE,GAAG,CAAEC,CAA2D,KAAM;MAC9EC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGgB,gBAAI,EAAE;MAC3Cb,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACQ,kBAAkB;YAAEjB,aAAa,EAAEH,CAAC,CAACG;UAAa;QAC3E,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACS;UAAyB;QAClD,CAAC;QACDJ,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIK,MAAM,EAAEzB,GAAG,CAACE,GAAG,CAAEC,CAA2D,KAAM;MAChFC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGoB,kBAAM,EAAE;MAC7CjB,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACY,oBAAoB;YAAErB,aAAa,EAAEH,CAAC,CAACG;UAAa;QAC7E,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACa;UAA2B;QACpD,CAAC;QACDR,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIS,cAAc,EAAE7B,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MACvDC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGwB,iBAAK,EAAE;MAC5CrB,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACgB,wBAAwB;YAAEzB,aAAa,EAAEH,CAAC,CAACG;UAAa;QACjF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACiB;UAA8B;QACvD,CAAC;QACDZ,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIa,eAAe,EAAEjC,GAAG,CAACE,GAAG,CACrBC,CAAgE,KAAM;MACrEC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAG4B,kBAAM,EAAE;MAC7CzB,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACoB,yBAAyB;YAAE7B,aAAa,EAAEH,CAAC,CAACG;UAAa;QAClF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACqB;UAA+B;QACxD,CAAC;QACDhB,KAAK,EAAE;MACT;IACF,CAAC,CACH,CAAC;IAED;AACJ;AACA;IACIiB,OAAO,EAAErC,GAAG,CAACE,GAAG,CAAEC,CAAwD,KAAM;MAC9EC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGgC,mBAAO,EAAE;MAC9C7B,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZ8B,OAAO,EACLpC,CAAC,CAACM,IAAI,IAAIN,CAAC,CAACM,IAAI,CAAC+B,eAAe,KAAKC,wBAAgB,CAACC,KAAK,GAAG,UAAU,GAAGC,uBAAW;MACxFpC,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC6B,qBAAqB;YAAEtC,aAAa,EAAEH,CAAC,CAACG;UAAa;QAC9E,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YACJI,IAAI,EACFV,CAAC,CAACM,IAAI,IAAIN,CAAC,CAACM,IAAI,CAAC+B,eAAe,KAAKC,wBAAgB,CAACC,KAAK,GACvD3B,gBAAS,CAAC8B,gBAAgB,GAC1B9B,gBAAS,CAAC+B;UAClB;QACF,CAAC;QACD1B,KAAK,EAAE;MACT,CAAC;MACD2B,WAAW,EAAE;QACXnC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAE,mBAAmB;YAAEP,aAAa,EAAEH,CAAC,CAACG;UAAa;QAClE,CAAC;QACDW,GAAG,EAAE,CAAC;MACR;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI+B,UAAU,EAAEhD,GAAG,CAACE,GAAG,CAAEC,CAA2D,IAAK;MACnF;MACA,MAAM;QAAC8C,SAAS;QAAEC,oBAAoB,GAAG,KAAK;QAAEC;MAAO,CAAC,GAAGhD,CAAC,CAACM,IAAI;MAEjE,OAAO;QACLL,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAG8C,uBAAW,EAAE;QAClD7C,IAAI,EAAEC,0BAAe;QACrBC,IAAI,EAAE0C,OAAO,GACT;UACEA;QACF,CAAC,GACD,CAAC,CAAC;QACNzC,GAAG,EAAHA,6BAAG;QACHC,YAAY,EAAE;UACZC,IAAI,EAAE;YACJC,IAAI,EAAE,gBAAgB;YACtBJ,IAAI,EAAE;cACJI,IAAI,EAAE,CAAC,MAAM;gBACX,IAAIsC,OAAO,EAAE,OAAOpC,gBAAS,CAACsC,mBAAmB;gBACjD,IAAIH,oBAAoB,EAAE,OAAOnC,gBAAS,CAACuC,aAAa;gBACxD,IAAIL,SAAS,EAAE,OAAOlC,gBAAS,CAACwC,mBAAmB;gBAEnD,OAAOxC,gBAAS,CAACyC,8BAA8B;cACjD,CAAC,EAAE,CAAC;cACJlD,aAAa,EAAEH,CAAC,CAACG;YACnB;UACF,CAAC;UACDW,GAAG,EAAE,CAAC;QACR,CAAC;QACDC,SAAS,EAAE;UACTN,IAAI,EAAE;YACJC,IAAI,EAAE,gBAAgB;YACtBJ,IAAI,EAAE;cACJI,IAAI,EAAEV,CAAC,CAACM,IAAI,CAAC0C,OAAO,GAChBpC,gBAAS,CAAC0C,uBAAuB,GACjC1C,gBAAS,CAAC2C;YAChB;UACF,CAAC;UACDtC,KAAK,EAAEjB,CAAC,CAACM,IAAI,CAAC0C,OAAO,GAAG,4BAA4B,GAAG;QACzD;MACF,CAAC;IACH,CAAC,CAAC;IAEF;AACJ;AACA;IACIQ,aAAa,EAAE3D,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MACtDC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGsD,0BAAc,EAAE;MACrDnD,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC8C,gBAAgB;YAAEvD,aAAa,EAAEH,CAAC,CAACG;UAAa;QACzE,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACI;UAA2B;QACpD,CAAC;QACDC,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI0C,aAAa,EAAE9D,GAAG,CAACE,GAAG,CAAEC,CAAyD,KAAM;MACrFC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGyD,oBAAQ,EAAE;MAC/CtD,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACiD,uBAAuB;YAAE1D,aAAa,EAAEH,CAAC,CAACG;UAAa;QAChF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACkD;UAA2B;QACpD,CAAC;QACD7C,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI8C,aAAa,EAAElE,GAAG,CAACE,GAAG,CAAEC,CAAyD,KAAM;MACrFC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGyD,oBAAQ,EAAE;MAC/CtD,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACoD,uBAAuB;YAAE7D,aAAa,EAAEH,CAAC,CAACG;UAAa;QAChF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACqD;UAA2B;QACpD,CAAC;QACDhD,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIiD,eAAe,EAAErE,GAAG,CAACE,GAAG,CACrBC,CAAgE,KAAM;MACrEC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGgE,4BAAgB,EAAE;MACvD7D,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YACJI,IAAI,EAAE,CAACE,gBAAS,CAACwD,yBAAyB,EAAExD,gBAAS,CAACyD,0BAA0B,CAAC;YACjFlE,aAAa,EAAEH,CAAC,CAACG;UACnB;QACF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC0D;UAA6B;QACtD,CAAC;QACDrD,KAAK,EAAE;MACT;IACF,CAAC,CACH,CAAC;IAED;AACJ;AACA;IACIsD,GAAG,EAAE1E,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MAC5CC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGqE,eAAG,EAAE;MAC1ClE,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC6D,YAAY;YAAEtE,aAAa,EAAEH,CAAC,CAACG;UAAa;QACrE,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC8D;UAAwB;QACjD,CAAC;QACDzD,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI0D,MAAM,EAAE9E,GAAG,CAACE,GAAG,CAAEC,CAAuD,KAAM;MAC5EC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGyE,kBAAM,EAAE;MAC7CtE,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACiE,eAAe;YAAE1E,aAAa,EAAEH,CAAC,CAACG;UAAa;QACxE,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACkE;UAAmB;QAC5C,CAAC;QACD7D,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI8D,UAAU,EAAElF,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MACnDC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGqE,eAAG,EAAE;MAC1ClE,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACuC,aAAa;YAAEhD,aAAa,EAAEH,CAAC,CAACG;UAAa;QACtE,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC8D;UAAwB;QACjD,CAAC;QACDzD,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI+D,SAAS,EAAEnF,GAAG,CAACE,GAAG,CAAEC,CAAmD,KAAM;MAC3EC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,YAAY;MAC9CG,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAE,mBAAmB;YAAEP,aAAa,EAAEH,CAAC,CAACG;UAAa;QAClE,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAE;UAAsB;QACrC,CAAC;QACDO,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIgE,iBAAiB,EAAEpF,GAAG,CAACE,GAAG,CACvBC,CAA+D,KAAM;MACpEC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAG+E,8BAAkB,EAAE;MACzD5E,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YACJI,IAAI,EAAE,CAACE,gBAAS,CAACuE,yBAAyB,EAAEvE,gBAAS,CAACwE,0BAA0B,CAAC;YACjFjF,aAAa,EAAEH,CAAC,CAACG;UACnB,CAAC,CAAE;QACL,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACyE;UAA+B;QACxD,CAAC;QACDpE,KAAK,EAAE;MACT;IACF,CAAC,CACH,CAAC;IAED;AACJ;AACA;IACIqE,cAAc,EAAEzF,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MACvDC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGoF,2BAAe,EAAE;MACtDjF,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC4E,2BAA2B;YAAErF,aAAa,EAAEH,CAAC,CAACG;UAAa;QACpF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC6E;UAAkC,CAAC,CAAE;QAC9D,CAAC;QACDxE,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIyE,kBAAkB,EAAE7F,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MAC3DC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGwF,+BAAmB,EAAE;MAC1DrF,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC4E,2BAA2B;YAAErF,aAAa,EAAEH,CAAC,CAACG;UAAa;QACpF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACgF;UAAgC;QACzD,CAAC;QACD3E,KAAK,EAAE;MACT;IACF,CAAC,CAAC;EACJ,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_types","require","_Utils","_constants","_constants2","_constants3","_types2","routingContact","aqm","accept","req","p","url","TASK_API","interactionId","host","WCC_API_GATEWAY","data","err","notifSuccess","bind","type","TASK_MESSAGE_TYPE","CC_EVENTS","AGENT_CONTACT_ASSIGNED","msg","notifFail","AGENT_CONTACT_ASSIGN_FAILED","errId","hold","HOLD","AGENT_CONTACT_HELD","AGENT_CONTACT_HOLD_FAILED","unHold","UNHOLD","AGENT_CONTACT_UNHELD","AGENT_CONTACT_UNHOLD_FAILED","pauseRecording","PAUSE","CONTACT_RECORDING_PAUSED","CONTACT_RECORDING_PAUSE_FAILED","resumeRecording","RESUME","CONTACT_RECORDING_RESUMED","CONTACT_RECORDING_RESUME_FAILED","consult","CONSULT","timeout","destinationType","DESTINATION_TYPE","QUEUE","TIMEOUT_REQ","AGENT_CONSULT_CREATED","AGENT_CTQ_FAILED","AGENT_CONSULT_FAILED","notifCancel","consultEnd","isConsult","isSecondaryEpDnAgent","queueId","CONSULT_END","AGENT_CTQ_CANCELLED","CONTACT_ENDED","AGENT_CONSULT_ENDED","AGENT_CONSULT_CONFERENCE_ENDED","AGENT_CTQ_CANCEL_FAILED","AGENT_CONSULT_END_FAILED","consultAccept","CONSULT_ACCEPT","AGENT_CONSULTING","blindTransfer","TRANSFER","AGENT_BLIND_TRANSFERRED","AGENT_BLIND_TRANSFER_FAILED","vteamTransfer","AGENT_VTEAM_TRANSFERRED","AGENT_VTEAM_TRANSFER_FAILED","consultTransfer","CONSULT_TRANSFER","AGENT_CONSULT_TRANSFERRED","AGENT_CONSULT_TRANSFERRING","AGENT_CONSULT_TRANSFER_FAILED","end","END","AGENT_WRAPUP","AGENT_CONTACT_END_FAILED","wrapup","WRAPUP","AGENT_WRAPPEDUP","AGENT_WRAPUP_FAILED","cancelTask","cancelCtq","consultConference","CONSULT_CONFERENCE","AGENT_CONSULT_CONFERENCED","AGENT_CONSULT_CONFERENCING","AGENT_CONSULT_CONFERENCE_FAILED","dropConferenceParticipant","encodeURIComponent","participantId","redactSensitiveLogs","PARTICIPANT_LEFT_CONFERENCE","PARTICIPANT_DROP_CONFERENCE_FAILED","exitConference","CONFERENCE_EXIT","PARTICIPANT_LEFT_CONFERENCE_FAILED","conferenceTransfer","CONFERENCE_TRANSFER","AGENT_CONFERENCE_TRANSFER_FAILED"],"sources":["contact.ts"],"sourcesContent":["import {CC_EVENTS} from '../config/types';\nimport {createErrDetailsObject as err} from '../core/Utils';\nimport {WCC_API_GATEWAY} from '../constants';\nimport AqmReqs from '../core/aqm-reqs';\nimport {TIMEOUT_REQ} from '../core/constants';\nimport {\n CONSULT,\n CONSULT_ACCEPT,\n CONSULT_END,\n CONSULT_TRANSFER,\n END,\n HOLD,\n PAUSE,\n RESUME,\n TASK_API,\n TASK_MESSAGE_TYPE,\n TRANSFER,\n UNHOLD,\n WRAPUP,\n CONSULT_CONFERENCE,\n CONFERENCE_EXIT,\n CONFERENCE_TRANSFER,\n} from './constants';\nimport * as Contact from './types';\nimport {DESTINATION_TYPE} from './types';\n\nexport default function routingContact(aqm: AqmReqs) {\n return {\n /*\n * Accept incoming task\n */\n accept: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}/accept`,\n host: WCC_API_GATEWAY,\n data: {},\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_ASSIGNED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_ASSIGN_FAILED, interactionId: p.interactionId},\n },\n errId: 'Service.aqm.task.accept',\n },\n })),\n\n /*\n * Hold task\n */\n hold: aqm.req((p: {interactionId: string; data: Contact.HoldResumePayload}) => ({\n url: `${TASK_API}${p.interactionId}${HOLD}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_HELD, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_HOLD_FAILED},\n },\n errId: 'Service.aqm.task.hold',\n },\n })),\n\n /*\n * Unhold task\n */\n unHold: aqm.req((p: {interactionId: string; data: Contact.HoldResumePayload}) => ({\n url: `${TASK_API}${p.interactionId}${UNHOLD}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_UNHELD, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_UNHOLD_FAILED},\n },\n errId: 'Service.aqm.task.unHold',\n },\n })),\n\n /*\n * Pause Recording\n */\n pauseRecording: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}${PAUSE}`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.CONTACT_RECORDING_PAUSED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.CONTACT_RECORDING_PAUSE_FAILED},\n },\n errId: 'Service.aqm.task.pauseRecording',\n },\n })),\n\n /*\n * Resume Recording\n */\n resumeRecording: aqm.req(\n (p: {interactionId: string; data: Contact.ResumeRecordingPayload}) => ({\n url: `${TASK_API}${p.interactionId}${RESUME}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.CONTACT_RECORDING_RESUMED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.CONTACT_RECORDING_RESUME_FAILED},\n },\n errId: 'Service.aqm.task.resumeRecording',\n },\n })\n ),\n\n /*\n * Consult contact\n */\n consult: aqm.req((p: {interactionId: string; data: Contact.ConsultPayload}) => ({\n url: `${TASK_API}${p.interactionId}${CONSULT}`,\n data: p.data,\n timeout:\n p.data && p.data.destinationType === DESTINATION_TYPE.QUEUE ? 'disabled' : TIMEOUT_REQ,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONSULT_CREATED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {\n type:\n p.data && p.data.destinationType === DESTINATION_TYPE.QUEUE\n ? CC_EVENTS.AGENT_CTQ_FAILED\n : CC_EVENTS.AGENT_CONSULT_FAILED,\n },\n },\n errId: 'Service.aqm.task.consult',\n },\n notifCancel: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: 'AgentCtqCancelled', interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n })),\n\n /*\n * Consult End\n */\n consultEnd: aqm.req((p: {interactionId: string; data: Contact.ConsultEndPayload}) => {\n // Setting false value for optional attribute\n const {isConsult, isSecondaryEpDnAgent = false, queueId} = p.data;\n\n return {\n url: `${TASK_API}${p.interactionId}${CONSULT_END}`,\n host: WCC_API_GATEWAY,\n data: queueId\n ? {\n queueId,\n }\n : {},\n err,\n notifSuccess: {\n bind: {\n type: 'RoutingMessage',\n data: {\n type: (() => {\n if (queueId) return CC_EVENTS.AGENT_CTQ_CANCELLED;\n if (isSecondaryEpDnAgent) return CC_EVENTS.CONTACT_ENDED;\n if (isConsult) return CC_EVENTS.AGENT_CONSULT_ENDED;\n\n return CC_EVENTS.AGENT_CONSULT_CONFERENCE_ENDED;\n })(),\n interactionId: p.interactionId,\n },\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: 'RoutingMessage',\n data: {\n type: p.data.queueId\n ? CC_EVENTS.AGENT_CTQ_CANCEL_FAILED\n : CC_EVENTS.AGENT_CONSULT_END_FAILED,\n },\n },\n errId: p.data.queueId ? 'Service.aqm.task.cancelCtq' : 'Service.aqm.task.consultEnd',\n },\n };\n }),\n\n /*\n * Consult Accept contact\n */\n consultAccept: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}${CONSULT_ACCEPT}`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONSULTING, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_ASSIGN_FAILED},\n },\n errId: 'Service.aqm.task.consultAccept',\n },\n })),\n\n /*\n * BlindTransfer contact\n */\n blindTransfer: aqm.req((p: {interactionId: string; data: Contact.TransferPayLoad}) => ({\n url: `${TASK_API}${p.interactionId}${TRANSFER}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_BLIND_TRANSFERRED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_BLIND_TRANSFER_FAILED},\n },\n errId: 'Service.aqm.task.AgentBlindTransferFailedEvent',\n },\n })),\n\n /*\n * VteamTransfer contact\n */\n vteamTransfer: aqm.req((p: {interactionId: string; data: Contact.TransferPayLoad}) => ({\n url: `${TASK_API}${p.interactionId}${TRANSFER}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_VTEAM_TRANSFERRED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_VTEAM_TRANSFER_FAILED},\n },\n errId: 'Service.aqm.task.AgentVteamTransferFailed',\n },\n })),\n\n /*\n * Consult Transfer contact\n */\n consultTransfer: aqm.req(\n (p: {interactionId: string; data: Contact.ConsultTransferPayLoad}) => ({\n url: `${TASK_API}${p.interactionId}${CONSULT_TRANSFER}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {\n type: [CC_EVENTS.AGENT_CONSULT_TRANSFERRED, CC_EVENTS.AGENT_CONSULT_TRANSFERRING],\n interactionId: p.interactionId,\n },\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONSULT_TRANSFER_FAILED},\n },\n errId: 'Service.aqm.task.AgentConsultTransferFailed',\n },\n })\n ),\n\n /*\n * End contact\n */\n end: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}${END}`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_WRAPUP, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_END_FAILED},\n },\n errId: 'Service.aqm.task.end',\n },\n })),\n\n /*\n * Wrapup contact\n */\n wrapup: aqm.req((p: {interactionId: string; data: Contact.WrapupPayLoad}) => ({\n url: `${TASK_API}${p.interactionId}${WRAPUP}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_WRAPPEDUP, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_WRAPUP_FAILED},\n },\n errId: 'Service.aqm.task.wrapup',\n },\n })),\n\n /*\n * Cancel popover\n */\n cancelTask: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}${END}`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.CONTACT_ENDED, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONTACT_END_FAILED},\n },\n errId: 'Service.aqm.task.end',\n },\n })),\n\n /*\n * Cancel Ctq request\n */\n cancelCtq: aqm.req((p: {interactionId: string; data: Contact.cancelCtq}) => ({\n url: `${TASK_API}${p.interactionId}/cancelCtq`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: 'AgentCtqCancelled', interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: 'AgentCtqCancelFailed'},\n },\n errId: 'Service.aqm.task.cancelCtq',\n },\n })),\n\n /*\n * Start consult conference\n */\n consultConference: aqm.req(\n (p: {interactionId: string; data: Contact.ConsultConferenceData}) => ({\n url: `${TASK_API}${p.interactionId}${CONSULT_CONFERENCE}`,\n data: p.data,\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {\n type: [CC_EVENTS.AGENT_CONSULT_CONFERENCED, CC_EVENTS.AGENT_CONSULT_CONFERENCING],\n interactionId: p.interactionId,\n }, // any of the two events can be received for API success event\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONSULT_CONFERENCE_FAILED},\n },\n errId: 'Service.aqm.task.consultConference',\n },\n })\n ),\n\n /*\n * Drop another participant from an active conference\n */\n dropConferenceParticipant: aqm.req((p: {interactionId: string; participantId: string}) => ({\n url: `${TASK_API}${p.interactionId}/conference/participants/${encodeURIComponent(\n p.participantId\n )}/drop`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n redactSensitiveLogs: true,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {\n type: CC_EVENTS.PARTICIPANT_LEFT_CONFERENCE,\n interactionId: p.interactionId,\n },\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.PARTICIPANT_DROP_CONFERENCE_FAILED},\n },\n errId: 'Service.aqm.task.dropConferenceParticipant',\n },\n })),\n\n /*\n * Exit conference\n */\n exitConference: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}${CONFERENCE_EXIT}`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.PARTICIPANT_LEFT_CONFERENCE, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.PARTICIPANT_LEFT_CONFERENCE_FAILED}, // to be finalized\n },\n errId: 'Service.aqm.task.consultConference',\n },\n })),\n\n /*\n * Transfer conference\n */\n conferenceTransfer: aqm.req((p: {interactionId: string}) => ({\n url: `${TASK_API}${p.interactionId}${CONFERENCE_TRANSFER}`,\n data: {},\n host: WCC_API_GATEWAY,\n err,\n notifSuccess: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.PARTICIPANT_LEFT_CONFERENCE, interactionId: p.interactionId},\n },\n msg: {} as Contact.AgentContact,\n },\n notifFail: {\n bind: {\n type: TASK_MESSAGE_TYPE,\n data: {type: CC_EVENTS.AGENT_CONFERENCE_TRANSFER_FAILED},\n },\n errId: 'Service.aqm.task.consultConference',\n },\n })),\n };\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAmBA,IAAAK,OAAA,GAAAL,OAAA;AAEe,SAASM,cAAcA,CAACC,GAAY,EAAE;EACnD,OAAO;IACL;AACJ;AACA;IACIC,MAAM,EAAED,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MAC/CC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,SAAS;MAC3CC,IAAI,EAAEC,0BAAe;MACrBC,IAAI,EAAE,CAAC,CAAC;MACRC,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACC,sBAAsB;YAAEV,aAAa,EAAEH,CAAC,CAACG;UAAa;QAC/E,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACI,2BAA2B;YAAEb,aAAa,EAAEH,CAAC,CAACG;UAAa;QACpF,CAAC;QACDc,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIC,IAAI,EAAErB,GAAG,CAACE,GAAG,CAAEC,CAA2D,KAAM;MAC9EC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGgB,gBAAI,EAAE;MAC3Cb,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACQ,kBAAkB;YAAEjB,aAAa,EAAEH,CAAC,CAACG;UAAa;QAC3E,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACS;UAAyB;QAClD,CAAC;QACDJ,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIK,MAAM,EAAEzB,GAAG,CAACE,GAAG,CAAEC,CAA2D,KAAM;MAChFC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGoB,kBAAM,EAAE;MAC7CjB,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACY,oBAAoB;YAAErB,aAAa,EAAEH,CAAC,CAACG;UAAa;QAC7E,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACa;UAA2B;QACpD,CAAC;QACDR,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIS,cAAc,EAAE7B,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MACvDC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGwB,iBAAK,EAAE;MAC5CrB,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACgB,wBAAwB;YAAEzB,aAAa,EAAEH,CAAC,CAACG;UAAa;QACjF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACiB;UAA8B;QACvD,CAAC;QACDZ,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIa,eAAe,EAAEjC,GAAG,CAACE,GAAG,CACrBC,CAAgE,KAAM;MACrEC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAG4B,kBAAM,EAAE;MAC7CzB,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACoB,yBAAyB;YAAE7B,aAAa,EAAEH,CAAC,CAACG;UAAa;QAClF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACqB;UAA+B;QACxD,CAAC;QACDhB,KAAK,EAAE;MACT;IACF,CAAC,CACH,CAAC;IAED;AACJ;AACA;IACIiB,OAAO,EAAErC,GAAG,CAACE,GAAG,CAAEC,CAAwD,KAAM;MAC9EC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGgC,mBAAO,EAAE;MAC9C7B,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZ8B,OAAO,EACLpC,CAAC,CAACM,IAAI,IAAIN,CAAC,CAACM,IAAI,CAAC+B,eAAe,KAAKC,wBAAgB,CAACC,KAAK,GAAG,UAAU,GAAGC,uBAAW;MACxFpC,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC6B,qBAAqB;YAAEtC,aAAa,EAAEH,CAAC,CAACG;UAAa;QAC9E,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YACJI,IAAI,EACFV,CAAC,CAACM,IAAI,IAAIN,CAAC,CAACM,IAAI,CAAC+B,eAAe,KAAKC,wBAAgB,CAACC,KAAK,GACvD3B,gBAAS,CAAC8B,gBAAgB,GAC1B9B,gBAAS,CAAC+B;UAClB;QACF,CAAC;QACD1B,KAAK,EAAE;MACT,CAAC;MACD2B,WAAW,EAAE;QACXnC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAE,mBAAmB;YAAEP,aAAa,EAAEH,CAAC,CAACG;UAAa;QAClE,CAAC;QACDW,GAAG,EAAE,CAAC;MACR;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI+B,UAAU,EAAEhD,GAAG,CAACE,GAAG,CAAEC,CAA2D,IAAK;MACnF;MACA,MAAM;QAAC8C,SAAS;QAAEC,oBAAoB,GAAG,KAAK;QAAEC;MAAO,CAAC,GAAGhD,CAAC,CAACM,IAAI;MAEjE,OAAO;QACLL,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAG8C,uBAAW,EAAE;QAClD7C,IAAI,EAAEC,0BAAe;QACrBC,IAAI,EAAE0C,OAAO,GACT;UACEA;QACF,CAAC,GACD,CAAC,CAAC;QACNzC,GAAG,EAAHA,6BAAG;QACHC,YAAY,EAAE;UACZC,IAAI,EAAE;YACJC,IAAI,EAAE,gBAAgB;YACtBJ,IAAI,EAAE;cACJI,IAAI,EAAE,CAAC,MAAM;gBACX,IAAIsC,OAAO,EAAE,OAAOpC,gBAAS,CAACsC,mBAAmB;gBACjD,IAAIH,oBAAoB,EAAE,OAAOnC,gBAAS,CAACuC,aAAa;gBACxD,IAAIL,SAAS,EAAE,OAAOlC,gBAAS,CAACwC,mBAAmB;gBAEnD,OAAOxC,gBAAS,CAACyC,8BAA8B;cACjD,CAAC,EAAE,CAAC;cACJlD,aAAa,EAAEH,CAAC,CAACG;YACnB;UACF,CAAC;UACDW,GAAG,EAAE,CAAC;QACR,CAAC;QACDC,SAAS,EAAE;UACTN,IAAI,EAAE;YACJC,IAAI,EAAE,gBAAgB;YACtBJ,IAAI,EAAE;cACJI,IAAI,EAAEV,CAAC,CAACM,IAAI,CAAC0C,OAAO,GAChBpC,gBAAS,CAAC0C,uBAAuB,GACjC1C,gBAAS,CAAC2C;YAChB;UACF,CAAC;UACDtC,KAAK,EAAEjB,CAAC,CAACM,IAAI,CAAC0C,OAAO,GAAG,4BAA4B,GAAG;QACzD;MACF,CAAC;IACH,CAAC,CAAC;IAEF;AACJ;AACA;IACIQ,aAAa,EAAE3D,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MACtDC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGsD,0BAAc,EAAE;MACrDnD,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC8C,gBAAgB;YAAEvD,aAAa,EAAEH,CAAC,CAACG;UAAa;QACzE,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACI;UAA2B;QACpD,CAAC;QACDC,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI0C,aAAa,EAAE9D,GAAG,CAACE,GAAG,CAAEC,CAAyD,KAAM;MACrFC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGyD,oBAAQ,EAAE;MAC/CtD,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACiD,uBAAuB;YAAE1D,aAAa,EAAEH,CAAC,CAACG;UAAa;QAChF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACkD;UAA2B;QACpD,CAAC;QACD7C,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI8C,aAAa,EAAElE,GAAG,CAACE,GAAG,CAAEC,CAAyD,KAAM;MACrFC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGyD,oBAAQ,EAAE;MAC/CtD,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACoD,uBAAuB;YAAE7D,aAAa,EAAEH,CAAC,CAACG;UAAa;QAChF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACqD;UAA2B;QACpD,CAAC;QACDhD,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIiD,eAAe,EAAErE,GAAG,CAACE,GAAG,CACrBC,CAAgE,KAAM;MACrEC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGgE,4BAAgB,EAAE;MACvD7D,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YACJI,IAAI,EAAE,CAACE,gBAAS,CAACwD,yBAAyB,EAAExD,gBAAS,CAACyD,0BAA0B,CAAC;YACjFlE,aAAa,EAAEH,CAAC,CAACG;UACnB;QACF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC0D;UAA6B;QACtD,CAAC;QACDrD,KAAK,EAAE;MACT;IACF,CAAC,CACH,CAAC;IAED;AACJ;AACA;IACIsD,GAAG,EAAE1E,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MAC5CC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGqE,eAAG,EAAE;MAC1ClE,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC6D,YAAY;YAAEtE,aAAa,EAAEH,CAAC,CAACG;UAAa;QACrE,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC8D;UAAwB;QACjD,CAAC;QACDzD,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI0D,MAAM,EAAE9E,GAAG,CAACE,GAAG,CAAEC,CAAuD,KAAM;MAC5EC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGyE,kBAAM,EAAE;MAC7CtE,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACiE,eAAe;YAAE1E,aAAa,EAAEH,CAAC,CAACG;UAAa;QACxE,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACkE;UAAmB;QAC5C,CAAC;QACD7D,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI8D,UAAU,EAAElF,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MACnDC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAGqE,eAAG,EAAE;MAC1ClE,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACuC,aAAa;YAAEhD,aAAa,EAAEH,CAAC,CAACG;UAAa;QACtE,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC8D;UAAwB;QACjD,CAAC;QACDzD,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI+D,SAAS,EAAEnF,GAAG,CAACE,GAAG,CAAEC,CAAmD,KAAM;MAC3EC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,YAAY;MAC9CG,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAE,mBAAmB;YAAEP,aAAa,EAAEH,CAAC,CAACG;UAAa;QAClE,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAE;UAAsB;QACrC,CAAC;QACDO,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACIgE,iBAAiB,EAAEpF,GAAG,CAACE,GAAG,CACvBC,CAA+D,KAAM;MACpEC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAG+E,8BAAkB,EAAE;MACzD5E,IAAI,EAAEN,CAAC,CAACM,IAAI;MACZF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YACJI,IAAI,EAAE,CAACE,gBAAS,CAACuE,yBAAyB,EAAEvE,gBAAS,CAACwE,0BAA0B,CAAC;YACjFjF,aAAa,EAAEH,CAAC,CAACG;UACnB,CAAC,CAAE;QACL,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACyE;UAA+B;QACxD,CAAC;QACDpE,KAAK,EAAE;MACT;IACF,CAAC,CACH,CAAC;IAED;AACJ;AACA;IACIqE,yBAAyB,EAAEzF,GAAG,CAACE,GAAG,CAAEC,CAAiD,KAAM;MACzFC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,4BAA4BoF,kBAAkB,CAC9EvF,CAAC,CAACwF,aACJ,CAAC,OAAO;MACRlF,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHkF,mBAAmB,EAAE,IAAI;MACzBjF,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YACJI,IAAI,EAAEE,gBAAS,CAAC8E,2BAA2B;YAC3CvF,aAAa,EAAEH,CAAC,CAACG;UACnB;QACF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC+E;UAAkC;QAC3D,CAAC;QACD1E,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI2E,cAAc,EAAE/F,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MACvDC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAG0F,2BAAe,EAAE;MACtDvF,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC8E,2BAA2B;YAAEvF,aAAa,EAAEH,CAAC,CAACG;UAAa;QACpF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACkF;UAAkC,CAAC,CAAE;QAC9D,CAAC;QACD7E,KAAK,EAAE;MACT;IACF,CAAC,CAAC,CAAC;IAEH;AACJ;AACA;IACI8E,kBAAkB,EAAElG,GAAG,CAACE,GAAG,CAAEC,CAA0B,KAAM;MAC3DC,GAAG,EAAE,GAAGC,oBAAQ,GAAGF,CAAC,CAACG,aAAa,GAAG6F,+BAAmB,EAAE;MAC1D1F,IAAI,EAAE,CAAC,CAAC;MACRF,IAAI,EAAEC,0BAAe;MACrBE,GAAG,EAAHA,6BAAG;MACHC,YAAY,EAAE;QACZC,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAAC8E,2BAA2B;YAAEvF,aAAa,EAAEH,CAAC,CAACG;UAAa;QACpF,CAAC;QACDW,GAAG,EAAE,CAAC;MACR,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE;UACJC,IAAI,EAAEC,6BAAiB;UACvBL,IAAI,EAAE;YAACI,IAAI,EAAEE,gBAAS,CAACqF;UAAgC;QACzD,CAAC;QACDhF,KAAK,EAAE;MACT;IACF,CAAC,CAAC;EACJ,CAAC;AACH","ignoreList":[]}
|
|
@@ -12,11 +12,12 @@ var _MetricsManager = _interopRequireDefault(require("../../../metrics/MetricsMa
|
|
|
12
12
|
var _constants2 = require("../../../metrics/constants");
|
|
13
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
14
|
class Digital extends _Task.default {
|
|
15
|
-
constructor(contact, data, wrapupData, agentId) {
|
|
15
|
+
constructor(contact, data, wrapupData, agentId, consultTransferConfig) {
|
|
16
16
|
super(contact, data, {
|
|
17
17
|
isEndTaskEnabled: true,
|
|
18
18
|
isEndConsultEnabled: false,
|
|
19
|
-
isRecordingEnabled: false
|
|
19
|
+
isRecordingEnabled: false,
|
|
20
|
+
consultTransferConfig
|
|
20
21
|
}, wrapupData, agentId);
|
|
21
22
|
}
|
|
22
23
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","_Utils","_Task","_interopRequireDefault","_loggerProxy","_MetricsManager","_constants2","e","__esModule","default","Digital","Task","constructor","contact","data","wrapupData","agentId","isEndTaskEnabled","isEndConsultEnabled","isRecordingEnabled","updateTaskData","newData","shouldOverwrite","accept","LoggerProxy","info","module","CC_FILE","method","METHODS","ACCEPT","interactionId","metricsManager","timeEvent","METRIC_EVENT_NAMES","TASK_ACCEPT_SUCCESS","TASK_ACCEPT_FAILED","response","trackEvent","taskId","MetricsManager","getCommonTrackingFieldForAQMResponse","log","trackingId","error","detailedError","getErrorDetails","toString","getCommonTrackingFieldForAQMResponseFailed","details","exports"],"sources":["Digital.ts"],"sourcesContent":["import {CC_FILE, METHODS} from '../../../constants';\nimport {getErrorDetails} from '../../core/Utils';\nimport {IDigital, TaskResponse, TaskData} from '../types';\nimport {WrapupData} from '../../config/types';\nimport Task from '../Task';\nimport routingContact from '../contact';\nimport LoggerProxy from '../../../logger-proxy';\nimport MetricsManager from '../../../metrics/MetricsManager';\nimport {METRIC_EVENT_NAMES} from '../../../metrics/constants';\n\nexport default class Digital extends Task implements IDigital {\n constructor(\n contact: ReturnType<typeof routingContact>,\n data: TaskData,\n wrapupData?: WrapupData,\n agentId?: string\n ) {\n super(\n contact,\n data,\n {\n isEndTaskEnabled: true,\n isEndConsultEnabled: false,\n isRecordingEnabled: false,\n },\n wrapupData,\n agentId\n );\n }\n\n /**\n * Refresh the digital task with the latest backend payload and recompute UI controls.\n */\n public updateTaskData(newData: TaskData, shouldOverwrite = false): IDigital {\n super.updateTaskData(newData, shouldOverwrite);\n\n return this;\n }\n\n /**\n * This is used for incoming digital task accept by agent.\n *\n * @returns Promise<TaskResponse>\n * @throws Error\n * @example\n * ```typescript\n * task.accept().then(()=>{}).catch(()=>{})\n * ```\n */\n public async accept(): Promise<TaskResponse> {\n try {\n LoggerProxy.info(`Accepting task`, {\n module: CC_FILE,\n method: METHODS.ACCEPT,\n interactionId: this.data.interactionId,\n });\n\n this.metricsManager.timeEvent([\n METRIC_EVENT_NAMES.TASK_ACCEPT_SUCCESS,\n METRIC_EVENT_NAMES.TASK_ACCEPT_FAILED,\n ]);\n\n const response = await this.contact.accept({interactionId: this.data.interactionId});\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.TASK_ACCEPT_SUCCESS,\n {\n taskId: this.data.interactionId,\n ...MetricsManager.getCommonTrackingFieldForAQMResponse(response),\n },\n ['operational', 'behavioral', 'business']\n );\n LoggerProxy.log(`Task accepted successfully`, {\n module: CC_FILE,\n method: METHODS.ACCEPT,\n trackingId: response.trackingId,\n interactionId: this.data.interactionId,\n });\n\n return response;\n } catch (error) {\n const {error: detailedError} = getErrorDetails(error, METHODS.ACCEPT, CC_FILE);\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.TASK_ACCEPT_FAILED,\n {\n taskId: this.data.interactionId,\n error: error.toString(),\n ...MetricsManager.getCommonTrackingFieldForAQMResponseFailed(error.details || {}),\n },\n ['operational', 'behavioral', 'business']\n );\n throw detailedError;\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAGA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,YAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,eAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAA8D,SAAAG,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/C,MAAMG,OAAO,SAASC,aAAI,CAAqB;EAC5DC,WAAWA,CACTC,OAA0C,EAC1CC,IAAc,EACdC,UAAuB,EACvBC,OAAgB,
|
|
1
|
+
{"version":3,"names":["_constants","require","_Utils","_Task","_interopRequireDefault","_loggerProxy","_MetricsManager","_constants2","e","__esModule","default","Digital","Task","constructor","contact","data","wrapupData","agentId","consultTransferConfig","isEndTaskEnabled","isEndConsultEnabled","isRecordingEnabled","updateTaskData","newData","shouldOverwrite","accept","LoggerProxy","info","module","CC_FILE","method","METHODS","ACCEPT","interactionId","metricsManager","timeEvent","METRIC_EVENT_NAMES","TASK_ACCEPT_SUCCESS","TASK_ACCEPT_FAILED","response","trackEvent","taskId","MetricsManager","getCommonTrackingFieldForAQMResponse","log","trackingId","error","detailedError","getErrorDetails","toString","getCommonTrackingFieldForAQMResponseFailed","details","exports"],"sources":["Digital.ts"],"sourcesContent":["import {CC_FILE, METHODS} from '../../../constants';\nimport {getErrorDetails} from '../../core/Utils';\nimport {ConsultTransferDestinationConfig, IDigital, TaskResponse, TaskData} from '../types';\nimport {WrapupData} from '../../config/types';\nimport Task from '../Task';\nimport routingContact from '../contact';\nimport LoggerProxy from '../../../logger-proxy';\nimport MetricsManager from '../../../metrics/MetricsManager';\nimport {METRIC_EVENT_NAMES} from '../../../metrics/constants';\n\nexport default class Digital extends Task implements IDigital {\n constructor(\n contact: ReturnType<typeof routingContact>,\n data: TaskData,\n wrapupData?: WrapupData,\n agentId?: string,\n consultTransferConfig?: ConsultTransferDestinationConfig\n ) {\n super(\n contact,\n data,\n {\n isEndTaskEnabled: true,\n isEndConsultEnabled: false,\n isRecordingEnabled: false,\n consultTransferConfig,\n },\n wrapupData,\n agentId\n );\n }\n\n /**\n * Refresh the digital task with the latest backend payload and recompute UI controls.\n */\n public updateTaskData(newData: TaskData, shouldOverwrite = false): IDigital {\n super.updateTaskData(newData, shouldOverwrite);\n\n return this;\n }\n\n /**\n * This is used for incoming digital task accept by agent.\n *\n * @returns Promise<TaskResponse>\n * @throws Error\n * @example\n * ```typescript\n * task.accept().then(()=>{}).catch(()=>{})\n * ```\n */\n public async accept(): Promise<TaskResponse> {\n try {\n LoggerProxy.info(`Accepting task`, {\n module: CC_FILE,\n method: METHODS.ACCEPT,\n interactionId: this.data.interactionId,\n });\n\n this.metricsManager.timeEvent([\n METRIC_EVENT_NAMES.TASK_ACCEPT_SUCCESS,\n METRIC_EVENT_NAMES.TASK_ACCEPT_FAILED,\n ]);\n\n const response = await this.contact.accept({interactionId: this.data.interactionId});\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.TASK_ACCEPT_SUCCESS,\n {\n taskId: this.data.interactionId,\n ...MetricsManager.getCommonTrackingFieldForAQMResponse(response),\n },\n ['operational', 'behavioral', 'business']\n );\n LoggerProxy.log(`Task accepted successfully`, {\n module: CC_FILE,\n method: METHODS.ACCEPT,\n trackingId: response.trackingId,\n interactionId: this.data.interactionId,\n });\n\n return response;\n } catch (error) {\n const {error: detailedError} = getErrorDetails(error, METHODS.ACCEPT, CC_FILE);\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.TASK_ACCEPT_FAILED,\n {\n taskId: this.data.interactionId,\n error: error.toString(),\n ...MetricsManager.getCommonTrackingFieldForAQMResponseFailed(error.details || {}),\n },\n ['operational', 'behavioral', 'business']\n );\n throw detailedError;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -49,12 +49,42 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
49
49
|
* AgentContactHeld -> TaskEvent.HOLD_SUCCESS
|
|
50
50
|
* AgentContactUnheld -> TaskEvent.UNHOLD_SUCCESS
|
|
51
51
|
* AgentConsultEnded -> TaskEvent.CONSULT_END
|
|
52
|
+
* ParticipantLeftConference -> TaskEvent.PARTICIPANT_LEAVE
|
|
52
53
|
* AgentContactEnded -> TaskEvent.CONTACT_ENDED
|
|
53
54
|
* AgentWrapup -> TaskEvent.TASK_WRAPUP (wrapUpRequired)
|
|
54
55
|
* AgentWrappedup -> TaskEvent.WRAPUP_COMPLETE
|
|
55
56
|
*
|
|
56
57
|
* (See TaskManager.mapEventToTaskStateMachineEvent for the full mapping table.)
|
|
57
58
|
*/
|
|
59
|
+
// XState evaluates these guarded transition arrays in order. Each returned entry is a
|
|
60
|
+
// complete transition with its own target and actions; sharing them keeps lifecycle-event
|
|
61
|
+
// handling consistent across active states where ParticipantLeftConference can arrive.
|
|
62
|
+
const currentAgentParticipantLeaveTransitions = () => [{
|
|
63
|
+
guard: params => _guards.guards.didCurrentAgentLeaveMainInteraction(params) && _guards.guards.shouldWrapUp(params),
|
|
64
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
65
|
+
actions: ['updateTaskData', 'handleParticipantLeft', 'markEnded', 'clearConsultState', 'emitTaskParticipantLeft']
|
|
66
|
+
}, {
|
|
67
|
+
guard: _guards.guards.didCurrentAgentLeaveMainInteraction,
|
|
68
|
+
target: _constants.TaskState.TERMINATED,
|
|
69
|
+
actions: ['updateTaskData', 'handleParticipantLeft', 'markEnded', 'clearConsultState', 'emitTaskParticipantLeft', 'emitTaskEnd']
|
|
70
|
+
}];
|
|
71
|
+
const exitConferenceSuccessTransitions = () => [{
|
|
72
|
+
guard: _guards.guards.shouldWrapUp,
|
|
73
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
74
|
+
actions: ['updateTaskData', 'markEnded', 'clearConsultState']
|
|
75
|
+
}, {
|
|
76
|
+
target: _constants.TaskState.TERMINATED,
|
|
77
|
+
actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'emitTaskEnd']
|
|
78
|
+
}];
|
|
79
|
+
const currentAgentConsultEndTransitions = () => [{
|
|
80
|
+
guard: params => _guards.guards.didCurrentAgentLeaveMainInteraction(params) && _guards.guards.shouldWrapUp(params),
|
|
81
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
82
|
+
actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'emitTaskConsultEnd', 'emitTaskWrapup']
|
|
83
|
+
}, {
|
|
84
|
+
guard: _guards.guards.didCurrentAgentLeaveMainInteraction,
|
|
85
|
+
target: _constants.TaskState.TERMINATED,
|
|
86
|
+
actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'emitTaskConsultEnd', 'emitTaskEnd']
|
|
87
|
+
}];
|
|
58
88
|
return {
|
|
59
89
|
id: 'taskStateMachine',
|
|
60
90
|
initial: _constants.TaskState.IDLE,
|
|
@@ -67,7 +97,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
67
97
|
actions: ['updateTaskData', 'syncTaskDataFromEvent']
|
|
68
98
|
},
|
|
69
99
|
[_constants.TaskEvent.CONTACT_OWNER_CHANGED]: {
|
|
70
|
-
actions: ['updateTaskData', 'syncTaskDataFromEvent']
|
|
100
|
+
actions: ['updateTaskData', 'syncTaskDataFromEvent', 'emitTaskHydrate']
|
|
71
101
|
},
|
|
72
102
|
// HYDRATE: Update task data from AgentContact event
|
|
73
103
|
// Note: State restoration with transitions is handled in IDLE state.
|
|
@@ -162,10 +192,14 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
162
192
|
target: _constants.TaskState.TERMINATED,
|
|
163
193
|
actions: ['updateTaskData', 'markEnded', 'emitTaskReject']
|
|
164
194
|
},
|
|
165
|
-
[_constants.TaskEvent.TASK_WRAPUP]: {
|
|
195
|
+
[_constants.TaskEvent.TASK_WRAPUP]: [{
|
|
196
|
+
guard: _guards.guards.shouldWrapUp,
|
|
197
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
198
|
+
actions: ['updateTaskData', 'markEnded']
|
|
199
|
+
}, {
|
|
166
200
|
target: _constants.TaskState.TERMINATED,
|
|
167
201
|
actions: ['updateTaskData', 'markEnded', 'emitTaskEnd']
|
|
168
|
-
},
|
|
202
|
+
}],
|
|
169
203
|
[_constants.TaskEvent.CONTACT_ENDED]: {
|
|
170
204
|
target: _constants.TaskState.TERMINATED,
|
|
171
205
|
actions: ['updateTaskData', 'markEnded', 'emitTaskEnd']
|
|
@@ -278,7 +312,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
278
312
|
actions: ['updateTaskData']
|
|
279
313
|
},
|
|
280
314
|
// AgentConsultEnded from Stable Prod while on connected leg (external end consult).
|
|
281
|
-
[_constants.TaskEvent.CONSULT_END]: [{
|
|
315
|
+
[_constants.TaskEvent.CONSULT_END]: [...currentAgentConsultEndTransitions(), {
|
|
282
316
|
guard: ({
|
|
283
317
|
context,
|
|
284
318
|
event
|
|
@@ -319,14 +353,23 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
319
353
|
}],
|
|
320
354
|
[_constants.TaskEvent.TASK_WRAPUP]: {
|
|
321
355
|
target: _constants.TaskState.WRAPPING_UP,
|
|
322
|
-
actions: ['updateTaskData', 'markEnded'
|
|
356
|
+
actions: ['updateTaskData', 'markEnded']
|
|
323
357
|
},
|
|
358
|
+
[_constants.TaskEvent.OUTBOUND_FAILED]: [{
|
|
359
|
+
guard: _guards.guards.shouldWrapUp,
|
|
360
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
361
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
|
|
362
|
+
}, {
|
|
363
|
+
target: _constants.TaskState.TERMINATED,
|
|
364
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
|
|
365
|
+
}],
|
|
324
366
|
[_constants.TaskEvent.PAUSE_RECORDING]: {
|
|
325
367
|
actions: ['updateTaskData', 'setRecordingState', 'emitTaskRecordingPaused']
|
|
326
368
|
},
|
|
327
369
|
[_constants.TaskEvent.RESUME_RECORDING]: {
|
|
328
370
|
actions: ['updateTaskData', 'setRecordingState', 'emitTaskRecordingResumed']
|
|
329
|
-
}
|
|
371
|
+
},
|
|
372
|
+
[_constants.TaskEvent.EXIT_CONFERENCE_SUCCESS]: exitConferenceSuccessTransitions()
|
|
330
373
|
}
|
|
331
374
|
},
|
|
332
375
|
[_constants.TaskState.HOLD_INITIATING]: {
|
|
@@ -340,6 +383,18 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
340
383
|
[_constants.TaskEvent.HOLD_FAILED]: {
|
|
341
384
|
target: _constants.TaskState.CONNECTED,
|
|
342
385
|
actions: ['updateTaskData']
|
|
386
|
+
},
|
|
387
|
+
[_constants.TaskEvent.OUTBOUND_FAILED]: [{
|
|
388
|
+
guard: _guards.guards.shouldWrapUp,
|
|
389
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
390
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
|
|
391
|
+
}, {
|
|
392
|
+
target: _constants.TaskState.TERMINATED,
|
|
393
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
|
|
394
|
+
}],
|
|
395
|
+
[_constants.TaskEvent.TASK_WRAPUP]: {
|
|
396
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
397
|
+
actions: ['updateTaskData', 'markEnded']
|
|
343
398
|
}
|
|
344
399
|
}
|
|
345
400
|
},
|
|
@@ -406,14 +461,26 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
406
461
|
actions: ['updateTaskData', 'markEnded', 'emitTaskEnd']
|
|
407
462
|
}],
|
|
408
463
|
// AgentConsultEnded from Stable Prod while main leg is held (external end consult).
|
|
409
|
-
[_constants.TaskEvent.CONSULT_END]: {
|
|
464
|
+
[_constants.TaskEvent.CONSULT_END]: [...currentAgentConsultEndTransitions(), {
|
|
410
465
|
actions: ['updateTaskData', 'clearConsultState', 'emitTaskConsultEnd']
|
|
411
|
-
},
|
|
466
|
+
}],
|
|
467
|
+
[_constants.TaskEvent.PARTICIPANT_LEAVE]: [...currentAgentParticipantLeaveTransitions(), {
|
|
468
|
+
actions: ['updateTaskData', 'handleParticipantLeft', 'emitTaskParticipantLeft']
|
|
469
|
+
}],
|
|
412
470
|
// TODO: This may not be a valid transition, this needs to be checked as well
|
|
413
471
|
[_constants.TaskEvent.TASK_WRAPUP]: {
|
|
414
472
|
target: _constants.TaskState.WRAPPING_UP,
|
|
415
|
-
actions: ['updateTaskData', 'markEnded'
|
|
416
|
-
}
|
|
473
|
+
actions: ['updateTaskData', 'markEnded']
|
|
474
|
+
},
|
|
475
|
+
[_constants.TaskEvent.OUTBOUND_FAILED]: [{
|
|
476
|
+
guard: _guards.guards.shouldWrapUp,
|
|
477
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
478
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
|
|
479
|
+
}, {
|
|
480
|
+
target: _constants.TaskState.TERMINATED,
|
|
481
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
|
|
482
|
+
}],
|
|
483
|
+
[_constants.TaskEvent.EXIT_CONFERENCE_SUCCESS]: exitConferenceSuccessTransitions()
|
|
417
484
|
}
|
|
418
485
|
},
|
|
419
486
|
[_constants.TaskState.RESUME_INITIATING]: {
|
|
@@ -424,6 +491,21 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
424
491
|
},
|
|
425
492
|
[_constants.TaskEvent.UNHOLD_FAILED]: {
|
|
426
493
|
target: _constants.TaskState.HELD
|
|
494
|
+
},
|
|
495
|
+
[_constants.TaskEvent.PARTICIPANT_LEAVE]: [...currentAgentParticipantLeaveTransitions(), {
|
|
496
|
+
actions: ['updateTaskData', 'handleParticipantLeft', 'emitTaskParticipantLeft']
|
|
497
|
+
}],
|
|
498
|
+
[_constants.TaskEvent.OUTBOUND_FAILED]: [{
|
|
499
|
+
guard: _guards.guards.shouldWrapUp,
|
|
500
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
501
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
|
|
502
|
+
}, {
|
|
503
|
+
target: _constants.TaskState.TERMINATED,
|
|
504
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
|
|
505
|
+
}],
|
|
506
|
+
[_constants.TaskEvent.TASK_WRAPUP]: {
|
|
507
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
508
|
+
actions: ['updateTaskData', 'markEnded']
|
|
427
509
|
}
|
|
428
510
|
}
|
|
429
511
|
},
|
|
@@ -473,14 +555,29 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
473
555
|
actions: ['updateTaskData', 'clearConsultState']
|
|
474
556
|
}],
|
|
475
557
|
// AgentConsultEnded from Stable Prod during consult initiation (external end consult).
|
|
476
|
-
[_constants.TaskEvent.CONSULT_END]: [{
|
|
558
|
+
[_constants.TaskEvent.CONSULT_END]: [...currentAgentConsultEndTransitions(), {
|
|
477
559
|
guard: _guards.guards.isPrimaryMediaOnHold,
|
|
478
560
|
target: _constants.TaskState.HELD,
|
|
479
561
|
actions: ['updateTaskData', 'clearConsultState', 'emitTaskConsultEnd']
|
|
480
562
|
}, {
|
|
481
563
|
target: _constants.TaskState.CONNECTED,
|
|
482
564
|
actions: ['updateTaskData', 'clearConsultState', 'emitTaskConsultEnd']
|
|
483
|
-
}]
|
|
565
|
+
}],
|
|
566
|
+
[_constants.TaskEvent.PARTICIPANT_LEAVE]: [...currentAgentParticipantLeaveTransitions(), {
|
|
567
|
+
actions: ['updateTaskData', 'handleParticipantLeft', 'emitTaskParticipantLeft']
|
|
568
|
+
}],
|
|
569
|
+
[_constants.TaskEvent.OUTBOUND_FAILED]: [{
|
|
570
|
+
guard: _guards.guards.shouldWrapUp,
|
|
571
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
572
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
|
|
573
|
+
}, {
|
|
574
|
+
target: _constants.TaskState.TERMINATED,
|
|
575
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
|
|
576
|
+
}],
|
|
577
|
+
[_constants.TaskEvent.TASK_WRAPUP]: {
|
|
578
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
579
|
+
actions: ['updateTaskData', 'markEnded']
|
|
580
|
+
}
|
|
484
581
|
}
|
|
485
582
|
},
|
|
486
583
|
[_constants.TaskState.CONSULTING]: {
|
|
@@ -510,7 +607,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
510
607
|
actions: ['updateTaskData', 'handleConsultFailed']
|
|
511
608
|
}],
|
|
512
609
|
// AgentConsultEnded
|
|
513
|
-
[_constants.TaskEvent.CONSULT_END]: [{
|
|
610
|
+
[_constants.TaskEvent.CONSULT_END]: [...currentAgentConsultEndTransitions(), {
|
|
514
611
|
// Initiator returning to conference only while conference is still active.
|
|
515
612
|
guard: ({
|
|
516
613
|
context,
|
|
@@ -581,7 +678,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
581
678
|
}, {
|
|
582
679
|
// Consulted agent → TERMINATED
|
|
583
680
|
target: _constants.TaskState.TERMINATED,
|
|
584
|
-
actions: ['updateTaskData']
|
|
681
|
+
actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'emitTaskConsultEnd', 'emitTaskEnd']
|
|
585
682
|
}],
|
|
586
683
|
// Switch between consult and main call (UI-driven toggle)
|
|
587
684
|
[_constants.TaskEvent.SWITCH_TO_MAIN_CALL]: {
|
|
@@ -596,16 +693,8 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
596
693
|
[_constants.TaskEvent.UNHOLD_SUCCESS]: {
|
|
597
694
|
actions: ['updateTaskData', 'setHoldState', 'emitTaskResume']
|
|
598
695
|
},
|
|
599
|
-
[_constants.TaskEvent.PARTICIPANT_LEAVE]: [{
|
|
600
|
-
guard: params => _guards.guards.
|
|
601
|
-
target: _constants.TaskState.WRAPPING_UP,
|
|
602
|
-
actions: ['updateTaskData', 'handleParticipantLeft', 'markEnded', 'clearConsultState', 'emitTaskParticipantLeft', 'emitTaskWrapup']
|
|
603
|
-
}, {
|
|
604
|
-
guard: _guards.guards.didCurrentAgentLeaveConference,
|
|
605
|
-
target: _constants.TaskState.TERMINATED,
|
|
606
|
-
actions: ['updateTaskData', 'handleParticipantLeft', 'markEnded', 'clearConsultState', 'emitTaskParticipantLeft', 'emitTaskEnd']
|
|
607
|
-
}, {
|
|
608
|
-
guard: params => !_guards.guards.didCurrentAgentLeaveConference(params) && _guards.guards.shouldDowngradeConferenceToConnected(params),
|
|
696
|
+
[_constants.TaskEvent.PARTICIPANT_LEAVE]: [...currentAgentParticipantLeaveTransitions(), {
|
|
697
|
+
guard: params => !_guards.guards.didCurrentAgentLeaveMainInteraction(params) && _guards.guards.shouldDowngradeConferenceToConnected(params),
|
|
609
698
|
target: _constants.TaskState.CONNECTED,
|
|
610
699
|
actions: ['updateTaskData', 'handleParticipantLeft', 'clearConsultState', 'emitTaskParticipantLeft', 'emitTaskConferenceEnded']
|
|
611
700
|
}, {
|
|
@@ -630,7 +719,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
630
719
|
[_constants.TaskEvent.TRANSFER_CONFERENCE_SUCCESS]: [{
|
|
631
720
|
guard: _guards.guards.shouldWrapUp,
|
|
632
721
|
target: _constants.TaskState.WRAPPING_UP,
|
|
633
|
-
actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'handleTransferConferenceSuccess', 'clearTransferConferenceRequested'
|
|
722
|
+
actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'handleTransferConferenceSuccess', 'clearTransferConferenceRequested']
|
|
634
723
|
}, {
|
|
635
724
|
// Non-initiator (e.g. consultee receiving transfer) moves to CONFERENCING
|
|
636
725
|
guard: params => !_guards.guards.isSelfConferenceTransferInitiator(params),
|
|
@@ -655,8 +744,16 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
655
744
|
},
|
|
656
745
|
[_constants.TaskEvent.TASK_WRAPUP]: {
|
|
657
746
|
target: _constants.TaskState.WRAPPING_UP,
|
|
658
|
-
actions: ['updateTaskData', 'markEnded', 'clearConsultState'
|
|
747
|
+
actions: ['updateTaskData', 'markEnded', 'clearConsultState']
|
|
659
748
|
},
|
|
749
|
+
[_constants.TaskEvent.OUTBOUND_FAILED]: [{
|
|
750
|
+
guard: _guards.guards.shouldWrapUp,
|
|
751
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
752
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
|
|
753
|
+
}, {
|
|
754
|
+
target: _constants.TaskState.TERMINATED,
|
|
755
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
|
|
756
|
+
}],
|
|
660
757
|
[_constants.TaskEvent.MERGE_TO_CONFERENCE]: {
|
|
661
758
|
target: _constants.TaskState.CONF_INITIATING
|
|
662
759
|
},
|
|
@@ -680,7 +777,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
680
777
|
actions: ['handleConferenceFailed', 'emitTaskConferenceFailed']
|
|
681
778
|
},
|
|
682
779
|
// AgentConsultEnded while conference is initiating (end call before conference completes)
|
|
683
|
-
[_constants.TaskEvent.CONSULT_END]: [{
|
|
780
|
+
[_constants.TaskEvent.CONSULT_END]: [...currentAgentConsultEndTransitions(), {
|
|
684
781
|
guard: ({
|
|
685
782
|
event
|
|
686
783
|
}) => {
|
|
@@ -692,7 +789,19 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
692
789
|
}, {
|
|
693
790
|
target: _constants.TaskState.CONNECTED,
|
|
694
791
|
actions: ['updateTaskData', 'clearConsultState']
|
|
695
|
-
}]
|
|
792
|
+
}],
|
|
793
|
+
[_constants.TaskEvent.OUTBOUND_FAILED]: [{
|
|
794
|
+
guard: _guards.guards.shouldWrapUp,
|
|
795
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
796
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
|
|
797
|
+
}, {
|
|
798
|
+
target: _constants.TaskState.TERMINATED,
|
|
799
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
|
|
800
|
+
}],
|
|
801
|
+
[_constants.TaskEvent.TASK_WRAPUP]: {
|
|
802
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
803
|
+
actions: ['updateTaskData', 'markEnded']
|
|
804
|
+
}
|
|
696
805
|
}
|
|
697
806
|
},
|
|
698
807
|
[_constants.TaskState.CONFERENCING]: {
|
|
@@ -700,16 +809,9 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
700
809
|
[_constants.TaskEvent.CONFERENCE_START]: {
|
|
701
810
|
actions: ['updateTaskData', 'syncTaskDataFromEvent', 'clearConsultState', 'emitTaskConferenceStarted']
|
|
702
811
|
},
|
|
703
|
-
[_constants.TaskEvent.EXIT_CONFERENCE_SUCCESS]:
|
|
704
|
-
guard: _guards.guards.shouldWrapUp,
|
|
705
|
-
target: _constants.TaskState.WRAPPING_UP,
|
|
706
|
-
actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'emitTaskWrapup']
|
|
707
|
-
}, {
|
|
708
|
-
target: _constants.TaskState.TERMINATED,
|
|
709
|
-
actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'emitTaskEnd']
|
|
710
|
-
}],
|
|
812
|
+
[_constants.TaskEvent.EXIT_CONFERENCE_SUCCESS]: exitConferenceSuccessTransitions(),
|
|
711
813
|
// Needed as all agents in conference get this event, hence we need to clear the consult state
|
|
712
|
-
[_constants.TaskEvent.CONSULT_END]: [{
|
|
814
|
+
[_constants.TaskEvent.CONSULT_END]: [...currentAgentConsultEndTransitions(), {
|
|
713
815
|
guard: ({
|
|
714
816
|
context,
|
|
715
817
|
event
|
|
@@ -751,19 +853,9 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
751
853
|
actions: ['setConsultInitiator', 'setConsultDestination', 'setConsultFromConference', 'setConsultAgentJoined', 'updateTaskData', 'emitTaskConsultAccepted', 'emitTaskConsulting']
|
|
752
854
|
},
|
|
753
855
|
// Participant leaves - handle conference downgrade scenarios
|
|
754
|
-
[_constants.TaskEvent.PARTICIPANT_LEAVE]: [{
|
|
755
|
-
// Only the leaving agent should wrap up → WRAPPING_UP
|
|
756
|
-
guard: params => _guards.guards.didCurrentAgentLeaveConference(params) && _guards.guards.shouldWrapUp(params),
|
|
757
|
-
target: _constants.TaskState.WRAPPING_UP,
|
|
758
|
-
actions: ['updateTaskData', 'handleParticipantLeft', 'markEnded', 'clearConsultState', 'emitTaskParticipantLeft', 'emitTaskWrapup']
|
|
759
|
-
}, {
|
|
760
|
-
// Only the leaving agent (no wrapup) → TERMINATED
|
|
761
|
-
guard: _guards.guards.didCurrentAgentLeaveConference,
|
|
762
|
-
target: _constants.TaskState.TERMINATED,
|
|
763
|
-
actions: ['updateTaskData', 'handleParticipantLeft', 'markEnded', 'clearConsultState', 'emitTaskParticipantLeft', 'emitTaskEnd']
|
|
764
|
-
}, {
|
|
856
|
+
[_constants.TaskEvent.PARTICIPANT_LEAVE]: [...currentAgentParticipantLeaveTransitions(), {
|
|
765
857
|
// Conference downgraded, customer present → CONNECTED
|
|
766
|
-
guard: params => !_guards.guards.
|
|
858
|
+
guard: params => !_guards.guards.didCurrentAgentLeaveMainInteraction(params) && _guards.guards.shouldDowngradeConferenceToConnected(params),
|
|
767
859
|
target: _constants.TaskState.CONNECTED,
|
|
768
860
|
actions: ['updateTaskData', 'handleParticipantLeft', 'clearConsultState', 'emitTaskParticipantLeft', 'emitTaskConferenceEnded']
|
|
769
861
|
}, {
|
|
@@ -778,7 +870,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
778
870
|
}, {
|
|
779
871
|
guard: _guards.guards.shouldWrapUp,
|
|
780
872
|
target: _constants.TaskState.WRAPPING_UP,
|
|
781
|
-
actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'handleTransferConferenceSuccess', 'clearTransferConferenceRequested'
|
|
873
|
+
actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'handleTransferConferenceSuccess', 'clearTransferConferenceRequested']
|
|
782
874
|
}, {
|
|
783
875
|
guard: params => !_guards.guards.isSelfConferenceTransferInitiator(params),
|
|
784
876
|
target: _constants.TaskState.CONFERENCING,
|
|
@@ -795,7 +887,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
795
887
|
// Agent who should wrap up → WRAPPING_UP
|
|
796
888
|
guard: _guards.guards.shouldWrapUp,
|
|
797
889
|
target: _constants.TaskState.WRAPPING_UP,
|
|
798
|
-
actions: ['updateTaskData', 'markEnded', 'clearConsultState'
|
|
890
|
+
actions: ['updateTaskData', 'markEnded', 'clearConsultState']
|
|
799
891
|
}, {
|
|
800
892
|
// Customer still in call → CONNECTED
|
|
801
893
|
guard: ({
|
|
@@ -827,14 +919,31 @@ function getTaskStateMachineConfig(uiControlConfig) {
|
|
|
827
919
|
[_constants.TaskEvent.TASK_WRAPUP]: {
|
|
828
920
|
guard: _guards.guards.shouldWrapUp,
|
|
829
921
|
target: _constants.TaskState.WRAPPING_UP,
|
|
830
|
-
actions: ['updateTaskData', 'markEnded', 'clearConsultState'
|
|
831
|
-
}
|
|
922
|
+
actions: ['updateTaskData', 'markEnded', 'clearConsultState']
|
|
923
|
+
},
|
|
924
|
+
[_constants.TaskEvent.OUTBOUND_FAILED]: [{
|
|
925
|
+
guard: _guards.guards.shouldWrapUp,
|
|
926
|
+
target: _constants.TaskState.WRAPPING_UP,
|
|
927
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
|
|
928
|
+
}, {
|
|
929
|
+
target: _constants.TaskState.TERMINATED,
|
|
930
|
+
actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
|
|
931
|
+
}]
|
|
832
932
|
}
|
|
833
933
|
},
|
|
834
934
|
[_constants.TaskState.WRAPPING_UP]: {
|
|
835
935
|
// Only emit wrapup event on entry - task:end should only be emitted when COMPLETED
|
|
836
936
|
entry: ['emitTaskWrapup'],
|
|
837
937
|
on: {
|
|
938
|
+
// Late AgentWrapup after conference exit already entered WRAPPING_UP
|
|
939
|
+
[_constants.TaskEvent.TASK_WRAPUP]: [{
|
|
940
|
+
guard: ({
|
|
941
|
+
context
|
|
942
|
+
}) => context.taskData?.wrapUpRequired === true,
|
|
943
|
+
actions: ['updateTaskData']
|
|
944
|
+
}, {
|
|
945
|
+
actions: ['updateTaskData', 'emitTaskWrapup']
|
|
946
|
+
}],
|
|
838
947
|
// AgentWrappedup Event
|
|
839
948
|
[_constants.TaskEvent.WRAPUP_COMPLETE]: {
|
|
840
949
|
target: _constants.TaskState.COMPLETED,
|