@webex/contact-center 3.12.0-llmrefactor.2 → 3.12.0-llmrefactor.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/.sdd/manifest.json +5 -4
  2. package/ai-docs/ARCHITECTURE.md +1 -1
  3. package/ai-docs/CONTRACTS.md +5 -1
  4. package/ai-docs/SECURITY.md +1 -1
  5. package/ai-docs/contact-center-spec.md +22 -4
  6. package/ai-docs/features/consult-transfer-list-policy/spec/feature-spec.md +362 -0
  7. package/dist/cc.js +440 -10
  8. package/dist/cc.js.map +1 -1
  9. package/dist/config.js +7 -0
  10. package/dist/config.js.map +1 -1
  11. package/dist/constants.js +10 -2
  12. package/dist/constants.js.map +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/metrics/behavioral-events.js +13 -0
  15. package/dist/metrics/behavioral-events.js.map +1 -1
  16. package/dist/metrics/constants.js +2 -0
  17. package/dist/metrics/constants.js.map +1 -1
  18. package/dist/services/AddressBook.js +18 -15
  19. package/dist/services/AddressBook.js.map +1 -1
  20. package/dist/services/AnswerCallOnWebexService.js +174 -0
  21. package/dist/services/AnswerCallOnWebexService.js.map +1 -0
  22. package/dist/services/EntryPoint.js +46 -68
  23. package/dist/services/EntryPoint.js.map +1 -1
  24. package/dist/services/Queue.js +27 -22
  25. package/dist/services/Queue.js.map +1 -1
  26. package/dist/services/WebexCrossClientService.js +171 -0
  27. package/dist/services/WebexCrossClientService.js.map +1 -0
  28. package/dist/services/WxAppTelephonyMercurySync.js +93 -0
  29. package/dist/services/WxAppTelephonyMercurySync.js.map +1 -0
  30. package/dist/services/config/Util.js +3 -0
  31. package/dist/services/config/Util.js.map +1 -1
  32. package/dist/services/config/constants.js +10 -6
  33. package/dist/services/config/constants.js.map +1 -1
  34. package/dist/services/config/types.js +4 -0
  35. package/dist/services/config/types.js.map +1 -1
  36. package/dist/services/core/Err.js.map +1 -1
  37. package/dist/services/core/WebexRequest.js +6 -2
  38. package/dist/services/core/WebexRequest.js.map +1 -1
  39. package/dist/services/core/aqm-reqs.js +28 -14
  40. package/dist/services/core/aqm-reqs.js.map +1 -1
  41. package/dist/services/core/types.js.map +1 -1
  42. package/dist/services/task/Task.js +73 -7
  43. package/dist/services/task/Task.js.map +1 -1
  44. package/dist/services/task/TaskFactory.js +8 -4
  45. package/dist/services/task/TaskFactory.js.map +1 -1
  46. package/dist/services/task/TaskManager.js +176 -20
  47. package/dist/services/task/TaskManager.js.map +1 -1
  48. package/dist/services/task/WebexCallingUtils.js +70 -0
  49. package/dist/services/task/WebexCallingUtils.js.map +1 -0
  50. package/dist/services/task/constants.js +4 -1
  51. package/dist/services/task/constants.js.map +1 -1
  52. package/dist/services/task/contact.js +29 -0
  53. package/dist/services/task/contact.js.map +1 -1
  54. package/dist/services/task/digital/Digital.js +3 -2
  55. package/dist/services/task/digital/Digital.js.map +1 -1
  56. package/dist/services/task/state-machine/TaskStateMachine.js +135 -37
  57. package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -1
  58. package/dist/services/task/state-machine/actions.js +6 -1
  59. package/dist/services/task/state-machine/actions.js.map +1 -1
  60. package/dist/services/task/state-machine/guards.js +38 -11
  61. package/dist/services/task/state-machine/guards.js.map +1 -1
  62. package/dist/services/task/state-machine/types.js.map +1 -1
  63. package/dist/services/task/state-machine/uiControlsComputer.js +118 -18
  64. package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -1
  65. package/dist/services/task/types.js +16 -1
  66. package/dist/services/task/types.js.map +1 -1
  67. package/dist/services/task/voice/Voice.js +350 -14
  68. package/dist/services/task/voice/Voice.js.map +1 -1
  69. package/dist/services/task/voice/WebRTC.js +4 -1
  70. package/dist/services/task/voice/WebRTC.js.map +1 -1
  71. package/dist/services/task/voice/wxAppVoiceMethods.js +201 -0
  72. package/dist/services/task/voice/wxAppVoiceMethods.js.map +1 -0
  73. package/dist/services/wxAppTelephonyUtils.js +19 -0
  74. package/dist/services/wxAppTelephonyUtils.js.map +1 -0
  75. package/dist/types/cc.d.ts +77 -4
  76. package/dist/types/config.d.ts +7 -0
  77. package/dist/types/constants.d.ts +8 -0
  78. package/dist/types/index.d.ts +3 -1
  79. package/dist/types/metrics/constants.d.ts +2 -0
  80. package/dist/types/services/AddressBook.d.ts +2 -1
  81. package/dist/types/services/AnswerCallOnWebexService.d.ts +37 -0
  82. package/dist/types/services/EntryPoint.d.ts +7 -5
  83. package/dist/types/services/Queue.d.ts +5 -3
  84. package/dist/types/services/WebexCrossClientService.d.ts +28 -0
  85. package/dist/types/services/WxAppTelephonyMercurySync.d.ts +28 -0
  86. package/dist/types/services/config/constants.d.ts +8 -5
  87. package/dist/types/services/config/types.d.ts +17 -4
  88. package/dist/types/services/core/Err.d.ts +2 -0
  89. package/dist/types/services/core/WebexRequest.d.ts +1 -0
  90. package/dist/types/services/core/types.d.ts +2 -0
  91. package/dist/types/services/task/Task.d.ts +20 -2
  92. package/dist/types/services/task/TaskFactory.d.ts +2 -1
  93. package/dist/types/services/task/WebexCallingUtils.d.ts +11 -0
  94. package/dist/types/services/task/constants.d.ts +3 -0
  95. package/dist/types/services/task/contact.d.ts +4 -0
  96. package/dist/types/services/task/digital/Digital.d.ts +2 -2
  97. package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +260 -56
  98. package/dist/types/services/task/state-machine/guards.d.ts +6 -5
  99. package/dist/types/services/task/state-machine/types.d.ts +9 -1
  100. package/dist/types/services/task/types.d.ts +81 -4
  101. package/dist/types/services/task/voice/Voice.d.ts +48 -9
  102. package/dist/types/services/task/voice/WebRTC.d.ts +2 -2
  103. package/dist/types/services/task/voice/wxAppVoiceMethods.d.ts +52 -0
  104. package/dist/types/services/wxAppTelephonyUtils.d.ts +5 -0
  105. package/dist/types/types.d.ts +14 -8
  106. package/dist/types/utils/PageCache.d.ts +20 -3
  107. package/dist/types.js +7 -2
  108. package/dist/types.js.map +1 -1
  109. package/dist/utils/PageCache.js +19 -5
  110. package/dist/utils/PageCache.js.map +1 -1
  111. package/dist/webex.js +1 -1
  112. package/package.json +1 -1
  113. package/src/cc.ts +506 -9
  114. package/src/config.ts +7 -0
  115. package/src/constants.ts +8 -0
  116. package/src/index.ts +2 -0
  117. package/src/metrics/ai-docs/metrics-spec.md +9 -3
  118. package/src/metrics/behavioral-events.ts +14 -0
  119. package/src/metrics/constants.ts +2 -0
  120. package/src/services/AddressBook.ts +17 -6
  121. package/src/services/AnswerCallOnWebexService.ts +206 -0
  122. package/src/services/EntryPoint.ts +59 -60
  123. package/src/services/Queue.ts +29 -12
  124. package/src/services/WebexCrossClientService.ts +212 -0
  125. package/src/services/WxAppTelephonyMercurySync.ts +115 -0
  126. package/src/services/ai-docs/AGENTS.md +10 -10
  127. package/src/services/ai-docs/services-spec.md +6 -1
  128. package/src/services/config/Util.ts +3 -0
  129. package/src/services/config/ai-docs/AGENTS.md +1 -1
  130. package/src/services/config/ai-docs/ARCHITECTURE.md +2 -2
  131. package/src/services/config/ai-docs/config-spec.md +6 -0
  132. package/src/services/config/constants.ts +10 -6
  133. package/src/services/config/types.ts +16 -4
  134. package/src/services/core/Err.ts +1 -0
  135. package/src/services/core/WebexRequest.ts +3 -1
  136. package/src/services/core/ai-docs/core-spec.md +5 -1
  137. package/src/services/core/aqm-reqs.ts +30 -15
  138. package/src/services/core/types.ts +2 -0
  139. package/src/services/task/Task.ts +79 -8
  140. package/src/services/task/TaskFactory.ts +8 -3
  141. package/src/services/task/TaskManager.ts +254 -15
  142. package/src/services/task/WebexCallingUtils.ts +136 -0
  143. package/src/services/task/ai-docs/ARCHITECTURE.md +1 -0
  144. package/src/services/task/ai-docs/task-spec.md +117 -2
  145. package/src/services/task/constants.ts +3 -0
  146. package/src/services/task/contact.ts +30 -0
  147. package/src/services/task/digital/Digital.ts +4 -2
  148. package/src/services/task/state-machine/TaskStateMachine.ts +210 -63
  149. package/src/services/task/state-machine/actions.ts +5 -2
  150. package/src/services/task/state-machine/ai-docs/AGENTS.md +8 -4
  151. package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +17 -8
  152. package/src/services/task/state-machine/ai-docs/task-state-machine-spec.md +46 -22
  153. package/src/services/task/state-machine/guards.ts +64 -11
  154. package/src/services/task/state-machine/types.ts +16 -1
  155. package/src/services/task/state-machine/uiControlsComputer.ts +206 -32
  156. package/src/services/task/types.ts +114 -4
  157. package/src/services/task/voice/Voice.ts +462 -12
  158. package/src/services/task/voice/WebRTC.ts +5 -1
  159. package/src/services/task/voice/wxAppVoiceMethods.ts +307 -0
  160. package/src/services/wxAppTelephonyUtils.ts +14 -0
  161. package/src/types.ts +33 -9
  162. package/src/utils/AGENTS.md +21 -10
  163. package/src/utils/PageCache.ts +38 -5
  164. package/src/utils/ai-docs/utils-spec.md +21 -11
  165. package/test/unit/spec/cc.ts +1274 -0
  166. package/test/unit/spec/metrics/behavioral-events.ts +18 -0
  167. package/test/unit/spec/services/AddressBook.ts +37 -6
  168. package/test/unit/spec/services/AnswerCallOnWebexService.ts +223 -0
  169. package/test/unit/spec/services/EntryPoint.ts +87 -40
  170. package/test/unit/spec/services/Queue.ts +123 -12
  171. package/test/unit/spec/services/WebexCrossClientService.ts +261 -0
  172. package/test/unit/spec/services/WxAppTelephonyMercurySync.ts +113 -0
  173. package/test/unit/spec/services/config/Util.ts +85 -0
  174. package/test/unit/spec/services/core/WebexRequest.ts +3 -1
  175. package/test/unit/spec/services/core/aqm-reqs.ts +113 -1
  176. package/test/unit/spec/services/task/Task.ts +200 -0
  177. package/test/unit/spec/services/task/TaskFactory.ts +39 -2
  178. package/test/unit/spec/services/task/TaskManager.ts +653 -1
  179. package/test/unit/spec/services/task/WebexCallingUtils.ts +153 -0
  180. package/test/unit/spec/services/task/contact.ts +33 -0
  181. package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +854 -72
  182. package/test/unit/spec/services/task/state-machine/guards.ts +210 -8
  183. package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +445 -7
  184. package/test/unit/spec/services/task/voice/Voice.ts +874 -0
  185. package/test/unit/spec/services/task/voice/wxAppVoiceMethods.ts +459 -0
  186. package/umd/contact-center.min.js +2 -2
  187. package/umd/contact-center.min.js.map +1 -1
@@ -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":"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","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":"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","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":"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","ignoreList":[]}
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,34 @@ 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', 'emitTaskWrapup']
66
+ }, {
67
+ guard: _guards.guards.didCurrentAgentLeaveMainInteraction,
68
+ target: _constants.TaskState.TERMINATED,
69
+ actions: ['updateTaskData', 'handleParticipantLeft', 'markEnded', 'clearConsultState', 'emitTaskParticipantLeft', 'emitTaskEnd']
70
+ }];
71
+ const currentAgentConsultEndTransitions = () => [{
72
+ guard: params => _guards.guards.didCurrentAgentLeaveMainInteraction(params) && _guards.guards.shouldWrapUp(params),
73
+ target: _constants.TaskState.WRAPPING_UP,
74
+ actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'emitTaskConsultEnd', 'emitTaskWrapup']
75
+ }, {
76
+ guard: _guards.guards.didCurrentAgentLeaveMainInteraction,
77
+ target: _constants.TaskState.TERMINATED,
78
+ actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'emitTaskConsultEnd', 'emitTaskEnd']
79
+ }];
58
80
  return {
59
81
  id: 'taskStateMachine',
60
82
  initial: _constants.TaskState.IDLE,
@@ -67,7 +89,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
67
89
  actions: ['updateTaskData', 'syncTaskDataFromEvent']
68
90
  },
69
91
  [_constants.TaskEvent.CONTACT_OWNER_CHANGED]: {
70
- actions: ['updateTaskData', 'syncTaskDataFromEvent']
92
+ actions: ['updateTaskData', 'syncTaskDataFromEvent', 'emitTaskHydrate']
71
93
  },
72
94
  // HYDRATE: Update task data from AgentContact event
73
95
  // Note: State restoration with transitions is handled in IDLE state.
@@ -162,10 +184,14 @@ function getTaskStateMachineConfig(uiControlConfig) {
162
184
  target: _constants.TaskState.TERMINATED,
163
185
  actions: ['updateTaskData', 'markEnded', 'emitTaskReject']
164
186
  },
165
- [_constants.TaskEvent.TASK_WRAPUP]: {
187
+ [_constants.TaskEvent.TASK_WRAPUP]: [{
188
+ guard: _guards.guards.shouldWrapUp,
189
+ target: _constants.TaskState.WRAPPING_UP,
190
+ actions: ['updateTaskData', 'markEnded', 'emitTaskWrapup']
191
+ }, {
166
192
  target: _constants.TaskState.TERMINATED,
167
193
  actions: ['updateTaskData', 'markEnded', 'emitTaskEnd']
168
- },
194
+ }],
169
195
  [_constants.TaskEvent.CONTACT_ENDED]: {
170
196
  target: _constants.TaskState.TERMINATED,
171
197
  actions: ['updateTaskData', 'markEnded', 'emitTaskEnd']
@@ -278,7 +304,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
278
304
  actions: ['updateTaskData']
279
305
  },
280
306
  // AgentConsultEnded from Stable Prod while on connected leg (external end consult).
281
- [_constants.TaskEvent.CONSULT_END]: [{
307
+ [_constants.TaskEvent.CONSULT_END]: [...currentAgentConsultEndTransitions(), {
282
308
  guard: ({
283
309
  context,
284
310
  event
@@ -296,6 +322,13 @@ function getTaskStateMachineConfig(uiControlConfig) {
296
322
  }) => context.consultInitiator === true,
297
323
  actions: ['updateTaskData', 'clearConsultState', 'emitTaskConsultEnd']
298
324
  }],
325
+ // Routing lifecycle events can arrive out of order in child-task/EP-DN flows. The
326
+ // local actor may still be CONNECTED when ParticipantLeftConference reports that this
327
+ // agent left the main interaction. Handle that self-departure race; for another
328
+ // participant, the action-only fallback updates data while preserving CONNECTED.
329
+ [_constants.TaskEvent.PARTICIPANT_LEAVE]: [...currentAgentParticipantLeaveTransitions(), {
330
+ actions: ['updateTaskData', 'handleParticipantLeft', 'emitTaskParticipantLeft']
331
+ }],
299
332
  // AgentContactEnded Event
300
333
  [_constants.TaskEvent.CONTACT_ENDED]: [{
301
334
  // Campaign preview ContactEnded is terminal cleanup; never enter wrapup.
@@ -321,6 +354,14 @@ function getTaskStateMachineConfig(uiControlConfig) {
321
354
  target: _constants.TaskState.WRAPPING_UP,
322
355
  actions: ['updateTaskData', 'markEnded', 'emitTaskWrapup']
323
356
  },
357
+ [_constants.TaskEvent.OUTBOUND_FAILED]: [{
358
+ guard: _guards.guards.shouldWrapUp,
359
+ target: _constants.TaskState.WRAPPING_UP,
360
+ actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
361
+ }, {
362
+ target: _constants.TaskState.TERMINATED,
363
+ actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
364
+ }],
324
365
  [_constants.TaskEvent.PAUSE_RECORDING]: {
325
366
  actions: ['updateTaskData', 'setRecordingState', 'emitTaskRecordingPaused']
326
367
  },
@@ -340,7 +381,21 @@ function getTaskStateMachineConfig(uiControlConfig) {
340
381
  [_constants.TaskEvent.HOLD_FAILED]: {
341
382
  target: _constants.TaskState.CONNECTED,
342
383
  actions: ['updateTaskData']
343
- }
384
+ },
385
+ // Another agent can remove this agent while the local hold request is awaiting its
386
+ // routing acknowledgement. Process that backend lifecycle event independently of
387
+ // whether Drop was initiated from this task; another-participant event preserves state.
388
+ [_constants.TaskEvent.PARTICIPANT_LEAVE]: [...currentAgentParticipantLeaveTransitions(), {
389
+ actions: ['updateTaskData', 'handleParticipantLeft', 'emitTaskParticipantLeft']
390
+ }],
391
+ [_constants.TaskEvent.OUTBOUND_FAILED]: [{
392
+ guard: _guards.guards.shouldWrapUp,
393
+ target: _constants.TaskState.WRAPPING_UP,
394
+ actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
395
+ }, {
396
+ target: _constants.TaskState.TERMINATED,
397
+ actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
398
+ }]
344
399
  }
345
400
  },
346
401
  [_constants.TaskState.HELD]: {
@@ -406,14 +461,25 @@ 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
473
  actions: ['updateTaskData', 'markEnded', 'emitTaskWrapup']
416
- }
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
+ }]
417
483
  }
418
484
  },
419
485
  [_constants.TaskState.RESUME_INITIATING]: {
@@ -424,7 +490,19 @@ function getTaskStateMachineConfig(uiControlConfig) {
424
490
  },
425
491
  [_constants.TaskEvent.UNHOLD_FAILED]: {
426
492
  target: _constants.TaskState.HELD
427
- }
493
+ },
494
+ // The same remote-removal race can occur while an unhold request is in flight.
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
+ }]
428
506
  }
429
507
  },
430
508
  [_constants.TaskState.CONSULT_INITIATING]: {
@@ -473,13 +551,24 @@ function getTaskStateMachineConfig(uiControlConfig) {
473
551
  actions: ['updateTaskData', 'clearConsultState']
474
552
  }],
475
553
  // AgentConsultEnded from Stable Prod during consult initiation (external end consult).
476
- [_constants.TaskEvent.CONSULT_END]: [{
554
+ [_constants.TaskEvent.CONSULT_END]: [...currentAgentConsultEndTransitions(), {
477
555
  guard: _guards.guards.isPrimaryMediaOnHold,
478
556
  target: _constants.TaskState.HELD,
479
557
  actions: ['updateTaskData', 'clearConsultState', 'emitTaskConsultEnd']
480
558
  }, {
481
559
  target: _constants.TaskState.CONNECTED,
482
560
  actions: ['updateTaskData', 'clearConsultState', 'emitTaskConsultEnd']
561
+ }],
562
+ [_constants.TaskEvent.PARTICIPANT_LEAVE]: [...currentAgentParticipantLeaveTransitions(), {
563
+ actions: ['updateTaskData', 'handleParticipantLeft', 'emitTaskParticipantLeft']
564
+ }],
565
+ [_constants.TaskEvent.OUTBOUND_FAILED]: [{
566
+ guard: _guards.guards.shouldWrapUp,
567
+ target: _constants.TaskState.WRAPPING_UP,
568
+ actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
569
+ }, {
570
+ target: _constants.TaskState.TERMINATED,
571
+ actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
483
572
  }]
484
573
  }
485
574
  },
@@ -510,7 +599,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
510
599
  actions: ['updateTaskData', 'handleConsultFailed']
511
600
  }],
512
601
  // AgentConsultEnded
513
- [_constants.TaskEvent.CONSULT_END]: [{
602
+ [_constants.TaskEvent.CONSULT_END]: [...currentAgentConsultEndTransitions(), {
514
603
  // Initiator returning to conference only while conference is still active.
515
604
  guard: ({
516
605
  context,
@@ -581,7 +670,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
581
670
  }, {
582
671
  // Consulted agent → TERMINATED
583
672
  target: _constants.TaskState.TERMINATED,
584
- actions: ['updateTaskData']
673
+ actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'emitTaskConsultEnd', 'emitTaskEnd']
585
674
  }],
586
675
  // Switch between consult and main call (UI-driven toggle)
587
676
  [_constants.TaskEvent.SWITCH_TO_MAIN_CALL]: {
@@ -596,16 +685,8 @@ function getTaskStateMachineConfig(uiControlConfig) {
596
685
  [_constants.TaskEvent.UNHOLD_SUCCESS]: {
597
686
  actions: ['updateTaskData', 'setHoldState', 'emitTaskResume']
598
687
  },
599
- [_constants.TaskEvent.PARTICIPANT_LEAVE]: [{
600
- guard: params => _guards.guards.didCurrentAgentLeaveConference(params) && _guards.guards.shouldWrapUp(params),
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),
688
+ [_constants.TaskEvent.PARTICIPANT_LEAVE]: [...currentAgentParticipantLeaveTransitions(), {
689
+ guard: params => !_guards.guards.didCurrentAgentLeaveMainInteraction(params) && _guards.guards.shouldDowngradeConferenceToConnected(params),
609
690
  target: _constants.TaskState.CONNECTED,
610
691
  actions: ['updateTaskData', 'handleParticipantLeft', 'clearConsultState', 'emitTaskParticipantLeft', 'emitTaskConferenceEnded']
611
692
  }, {
@@ -657,6 +738,14 @@ function getTaskStateMachineConfig(uiControlConfig) {
657
738
  target: _constants.TaskState.WRAPPING_UP,
658
739
  actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'emitTaskWrapup']
659
740
  },
741
+ [_constants.TaskEvent.OUTBOUND_FAILED]: [{
742
+ guard: _guards.guards.shouldWrapUp,
743
+ target: _constants.TaskState.WRAPPING_UP,
744
+ actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
745
+ }, {
746
+ target: _constants.TaskState.TERMINATED,
747
+ actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
748
+ }],
660
749
  [_constants.TaskEvent.MERGE_TO_CONFERENCE]: {
661
750
  target: _constants.TaskState.CONF_INITIATING
662
751
  },
@@ -680,7 +769,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
680
769
  actions: ['handleConferenceFailed', 'emitTaskConferenceFailed']
681
770
  },
682
771
  // AgentConsultEnded while conference is initiating (end call before conference completes)
683
- [_constants.TaskEvent.CONSULT_END]: [{
772
+ [_constants.TaskEvent.CONSULT_END]: [...currentAgentConsultEndTransitions(), {
684
773
  guard: ({
685
774
  event
686
775
  }) => {
@@ -692,6 +781,17 @@ function getTaskStateMachineConfig(uiControlConfig) {
692
781
  }, {
693
782
  target: _constants.TaskState.CONNECTED,
694
783
  actions: ['updateTaskData', 'clearConsultState']
784
+ }],
785
+ [_constants.TaskEvent.PARTICIPANT_LEAVE]: [...currentAgentParticipantLeaveTransitions(), {
786
+ actions: ['updateTaskData', 'handleParticipantLeft', 'emitTaskParticipantLeft']
787
+ }],
788
+ [_constants.TaskEvent.OUTBOUND_FAILED]: [{
789
+ guard: _guards.guards.shouldWrapUp,
790
+ target: _constants.TaskState.WRAPPING_UP,
791
+ actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
792
+ }, {
793
+ target: _constants.TaskState.TERMINATED,
794
+ actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
695
795
  }]
696
796
  }
697
797
  },
@@ -709,7 +809,7 @@ function getTaskStateMachineConfig(uiControlConfig) {
709
809
  actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'emitTaskEnd']
710
810
  }],
711
811
  // Needed as all agents in conference get this event, hence we need to clear the consult state
712
- [_constants.TaskEvent.CONSULT_END]: [{
812
+ [_constants.TaskEvent.CONSULT_END]: [...currentAgentConsultEndTransitions(), {
713
813
  guard: ({
714
814
  context,
715
815
  event
@@ -751,19 +851,9 @@ function getTaskStateMachineConfig(uiControlConfig) {
751
851
  actions: ['setConsultInitiator', 'setConsultDestination', 'setConsultFromConference', 'setConsultAgentJoined', 'updateTaskData', 'emitTaskConsultAccepted', 'emitTaskConsulting']
752
852
  },
753
853
  // 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
- }, {
854
+ [_constants.TaskEvent.PARTICIPANT_LEAVE]: [...currentAgentParticipantLeaveTransitions(), {
765
855
  // Conference downgraded, customer present → CONNECTED
766
- guard: params => !_guards.guards.didCurrentAgentLeaveConference(params) && _guards.guards.shouldDowngradeConferenceToConnected(params),
856
+ guard: params => !_guards.guards.didCurrentAgentLeaveMainInteraction(params) && _guards.guards.shouldDowngradeConferenceToConnected(params),
767
857
  target: _constants.TaskState.CONNECTED,
768
858
  actions: ['updateTaskData', 'handleParticipantLeft', 'clearConsultState', 'emitTaskParticipantLeft', 'emitTaskConferenceEnded']
769
859
  }, {
@@ -828,7 +918,15 @@ function getTaskStateMachineConfig(uiControlConfig) {
828
918
  guard: _guards.guards.shouldWrapUp,
829
919
  target: _constants.TaskState.WRAPPING_UP,
830
920
  actions: ['updateTaskData', 'markEnded', 'clearConsultState', 'emitTaskWrapup']
831
- }
921
+ },
922
+ [_constants.TaskEvent.OUTBOUND_FAILED]: [{
923
+ guard: _guards.guards.shouldWrapUp,
924
+ target: _constants.TaskState.WRAPPING_UP,
925
+ actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskWrapup']
926
+ }, {
927
+ target: _constants.TaskState.TERMINATED,
928
+ actions: ['updateTaskData', 'markEnded', 'emitTaskOutdialFailed', 'emitTaskEnd']
929
+ }]
832
930
  }
833
931
  },
834
932
  [_constants.TaskState.WRAPPING_UP]: {