@webex/contact-center 3.9.0 → 3.10.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cc.js +196 -47
- package/dist/cc.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/logger-proxy.js +24 -1
- package/dist/logger-proxy.js.map +1 -1
- package/dist/metrics/MetricsManager.js +1 -1
- package/dist/metrics/MetricsManager.js.map +1 -1
- package/dist/metrics/behavioral-events.js +89 -0
- package/dist/metrics/behavioral-events.js.map +1 -1
- package/dist/metrics/constants.js +32 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/services/AddressBook.js +271 -0
- package/dist/services/AddressBook.js.map +1 -0
- package/dist/services/EntryPoint.js +227 -0
- package/dist/services/EntryPoint.js.map +1 -0
- package/dist/services/Queue.js +261 -0
- package/dist/services/Queue.js.map +1 -0
- package/dist/services/config/constants.js +36 -2
- package/dist/services/config/constants.js.map +1 -1
- package/dist/services/config/index.js +29 -21
- package/dist/services/config/index.js.map +1 -1
- package/dist/services/config/types.js +33 -1
- package/dist/services/config/types.js.map +1 -1
- package/dist/services/core/GlobalTypes.js.map +1 -1
- package/dist/services/core/Utils.js +162 -2
- package/dist/services/core/Utils.js.map +1 -1
- package/dist/services/core/aqm-reqs.js +0 -4
- package/dist/services/core/aqm-reqs.js.map +1 -1
- package/dist/services/core/websocket/WebSocketManager.js +0 -4
- package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
- package/dist/services/task/TaskManager.js +114 -3
- package/dist/services/task/TaskManager.js.map +1 -1
- package/dist/services/task/TaskUtils.js +76 -0
- package/dist/services/task/TaskUtils.js.map +1 -0
- package/dist/services/task/constants.js +26 -1
- package/dist/services/task/constants.js.map +1 -1
- package/dist/services/task/contact.js +86 -0
- package/dist/services/task/contact.js.map +1 -1
- package/dist/services/task/index.js +418 -87
- package/dist/services/task/index.js.map +1 -1
- package/dist/services/task/types.js +14 -0
- package/dist/services/task/types.js.map +1 -1
- package/dist/types/cc.d.ts +115 -35
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/metrics/constants.d.ts +25 -1
- package/dist/types/services/AddressBook.d.ts +74 -0
- package/dist/types/services/EntryPoint.d.ts +67 -0
- package/dist/types/services/Queue.d.ts +76 -0
- package/dist/types/services/config/constants.d.ts +35 -1
- package/dist/types/services/config/index.d.ts +6 -9
- package/dist/types/services/config/types.d.ts +79 -58
- package/dist/types/services/core/GlobalTypes.d.ts +25 -0
- package/dist/types/services/core/Utils.d.ts +40 -1
- package/dist/types/services/task/TaskUtils.d.ts +28 -0
- package/dist/types/services/task/constants.d.ts +23 -0
- package/dist/types/services/task/contact.d.ts +10 -0
- package/dist/types/services/task/index.d.ts +85 -4
- package/dist/types/services/task/types.d.ts +233 -21
- package/dist/types/types.d.ts +162 -0
- package/dist/types/utils/PageCache.d.ts +173 -0
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/PageCache.js +192 -0
- package/dist/utils/PageCache.js.map +1 -0
- package/dist/webex.js +1 -1
- package/package.json +10 -9
- package/src/cc.ts +221 -52
- package/src/constants.ts +1 -0
- package/src/index.ts +16 -2
- package/src/logger-proxy.ts +24 -1
- package/src/metrics/MetricsManager.ts +1 -1
- package/src/metrics/behavioral-events.ts +94 -0
- package/src/metrics/constants.ts +37 -1
- package/src/services/AddressBook.ts +291 -0
- package/src/services/EntryPoint.ts +241 -0
- package/src/services/Queue.ts +277 -0
- package/src/services/config/constants.ts +42 -2
- package/src/services/config/index.ts +30 -30
- package/src/services/config/types.ts +59 -58
- package/src/services/core/GlobalTypes.ts +27 -0
- package/src/services/core/Utils.ts +199 -1
- package/src/services/core/aqm-reqs.ts +0 -5
- package/src/services/core/websocket/WebSocketManager.ts +0 -4
- package/src/services/task/TaskManager.ts +123 -5
- package/src/services/task/TaskUtils.ts +81 -0
- package/src/services/task/constants.ts +25 -0
- package/src/services/task/contact.ts +80 -0
- package/src/services/task/index.ts +510 -71
- package/src/services/task/types.ts +251 -20
- package/src/types.ts +180 -0
- package/src/utils/PageCache.ts +252 -0
- package/test/unit/spec/cc.ts +282 -85
- package/test/unit/spec/metrics/MetricsManager.ts +0 -1
- package/test/unit/spec/metrics/behavioral-events.ts +42 -0
- package/test/unit/spec/services/AddressBook.ts +332 -0
- package/test/unit/spec/services/EntryPoint.ts +259 -0
- package/test/unit/spec/services/Queue.ts +323 -0
- package/test/unit/spec/services/config/index.ts +279 -65
- package/test/unit/spec/services/core/Utils.ts +50 -0
- package/test/unit/spec/services/core/aqm-reqs.ts +1 -3
- package/test/unit/spec/services/core/websocket/WebSocketManager.ts +0 -4
- package/test/unit/spec/services/task/TaskManager.ts +390 -1
- package/test/unit/spec/services/task/TaskUtils.ts +131 -0
- package/test/unit/spec/services/task/contact.ts +31 -1
- package/test/unit/spec/services/task/index.ts +585 -130
- package/umd/contact-center.min.js +2 -2
- package/umd/contact-center.min.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","_interopRequireDefault","require","_calling","_types","_constants","_constants2","_types2","_types3","_loggerProxy","_","_MetricsManager","_constants3","obj","__esModule","default","TaskManager","EventEmitter","constructor","contact","webCallingService","webSocketManager","taskCollection","metricsManager","MetricsManager","getInstance","registerTaskListeners","registerIncomingCallEvent","setWrapupData","wrapupData","handleIncomingWebCall","call","currentTask","Object","values","find","task","data","interaction","mediaType","mapCallToTask","getCallId","interactionId","LoggerProxy","log","module","TASK_MANAGER_FILE","method","METHODS","HANDLE_INCOMING_WEB_CALL","emit","TASK_EVENTS","TASK_INCOMING","on","LINE_EVENTS","INCOMING_CALL","unregisterIncomingCallEvent","off","event","payload","JSON","parse","type","CC_TASK_EVENTS","includes","info","REGISTER_TASK_LISTENERS","CC_EVENTS","AGENT_CONTACT","Task","wrapUpRequired","participants","agentId","isWrapUp","state","TASK_HYDRATE","AGENT_CONTACT_RESERVED","isConsulted","loginOption","LoginOption","BROWSER","MEDIA_CHANNEL","TELEPHONY","AGENT_OFFER_CONTACT","updateTaskData","TASK_OFFER_CONTACT","AGENT_OUTBOUND_FAILED","removeTaskFromCollection","AGENT_CONTACT_ASSIGNED","TASK_ASSIGNED","AGENT_CONTACT_UNASSIGNED","TASK_END","AGENT_CONTACT_OFFER_RONA","AGENT_CONTACT_ASSIGN_FAILED","AGENT_INVITE_FAILED","eventTypeToMetricMap","metricEventName","trackEvent","METRIC_EVENT_NAMES","getCommonTrackingFieldForAQMResponse","taskId","reason","handleTaskCleanup","TASK_REJECT","CONTACT_ENDED","AGENT_CONTACT_HELD","TASK_HOLD","AGENT_CONTACT_UNHELD","TASK_RESUME","AGENT_VTEAM_TRANSFERRED","AGENT_CTQ_CANCEL_FAILED","TASK_CONSULT_QUEUE_FAILED","AGENT_CONSULT_CREATED","TASK_CONSULT_CREATED","AGENT_OFFER_CONSULT","TASK_OFFER_CONSULT","AGENT_CONSULTING","TASK_CONSULT_ACCEPTED","TASK_CONSULTING","AGENT_CONSULT_FAILED","AGENT_CONSULT_ENDED","TASK_CONSULT_END","AGENT_CTQ_CANCELLED","TASK_CONSULT_QUEUE_CANCELLED","AGENT_WRAPUP","AGENT_WRAPPEDUP","cancelAutoWrapupTimer","TASK_WRAPPEDUP","CONTACT_RECORDING_PAUSED","TASK_RECORDING_PAUSED","CONTACT_RECORDING_PAUSE_FAILED","TASK_RECORDING_PAUSE_FAILED","CONTACT_RECORDING_RESUMED","TASK_RECORDING_RESUMED","CONTACT_RECORDING_RESUME_FAILED","TASK_RECORDING_RESUME_FAILED","taskData","undefined","warn","UPDATE_TASK_DATA","error","REMOVE_TASK_FROM_COLLECTION","unregisterWebCallListeners","cleanUpCall","getTask","getAllTasks","getTaskManager","taskManager","exports"],"sources":["TaskManager.ts"],"sourcesContent":["import EventEmitter from 'events';\nimport {ICall, LINE_EVENTS} from '@webex/calling';\nimport {WebSocketManager} from '../core/websocket/WebSocketManager';\nimport routingContact from './contact';\nimport WebCallingService from '../WebCallingService';\nimport {ITask, MEDIA_CHANNEL, TASK_EVENTS, TaskData, TaskId} from './types';\nimport {TASK_MANAGER_FILE} from '../../constants';\nimport {METHODS} from './constants';\nimport {CC_EVENTS, CC_TASK_EVENTS, WrapupData} from '../config/types';\nimport {LoginOption} from '../../types';\nimport LoggerProxy from '../../logger-proxy';\nimport Task from '.';\nimport MetricsManager from '../../metrics/MetricsManager';\nimport {METRIC_EVENT_NAMES} from '../../metrics/constants';\n\n/** @internal */\nexport default class TaskManager extends EventEmitter {\n private call: ICall;\n private contact: ReturnType<typeof routingContact>;\n /**\n * Collection of tasks indexed by TaskId\n * @type {Record<TaskId, ITask>}\n * @private\n */\n private taskCollection: Record<TaskId, ITask>;\n private webCallingService: WebCallingService;\n private webSocketManager: WebSocketManager;\n private metricsManager: MetricsManager;\n private static taskManager;\n private wrapupData: WrapupData;\n /**\n * @param contact - Routing Contact layer. Talks to AQMReq layer to convert events to promises\n * @param webCallingService - Webrtc Service Layer\n * @param webSocketManager - Websocket Manager to maintain websocket connection and keepalives\n */\n constructor(\n contact: ReturnType<typeof routingContact>,\n webCallingService: WebCallingService,\n webSocketManager: WebSocketManager\n ) {\n super();\n this.contact = contact;\n this.taskCollection = {};\n this.webCallingService = webCallingService;\n this.webSocketManager = webSocketManager;\n this.metricsManager = MetricsManager.getInstance();\n this.registerTaskListeners();\n this.registerIncomingCallEvent();\n }\n\n public setWrapupData(wrapupData: WrapupData) {\n this.wrapupData = wrapupData;\n }\n\n private handleIncomingWebCall = (call: ICall) => {\n const currentTask = Object.values(this.taskCollection).find(\n (task) => task.data.interaction.mediaType === 'telephony'\n );\n\n if (currentTask) {\n this.webCallingService.mapCallToTask(call.getCallId(), currentTask.data.interactionId);\n LoggerProxy.log(`Call mapped to task`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.HANDLE_INCOMING_WEB_CALL,\n interactionId: currentTask.data.interactionId,\n });\n this.emit(TASK_EVENTS.TASK_INCOMING, currentTask);\n }\n this.call = call;\n };\n\n public registerIncomingCallEvent() {\n this.webCallingService.on(LINE_EVENTS.INCOMING_CALL, this.handleIncomingWebCall);\n }\n\n public unregisterIncomingCallEvent() {\n this.webCallingService.off(LINE_EVENTS.INCOMING_CALL, this.handleIncomingWebCall);\n }\n\n private registerTaskListeners() {\n this.webSocketManager.on('message', (event) => {\n const payload = JSON.parse(event);\n // Re-emit the task events to the task object\n let task: ITask;\n if (payload.data?.type) {\n if (Object.values(CC_TASK_EVENTS).includes(payload.data.type)) {\n task = this.taskCollection[payload.data.interactionId];\n }\n LoggerProxy.info(`Handling task event ${payload.data?.type}`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data?.interactionId,\n });\n switch (payload.data.type) {\n case CC_EVENTS.AGENT_CONTACT:\n // Case1 : Task is already present in taskCollection\n if (this.taskCollection[payload.data.interactionId]) {\n LoggerProxy.log(`Got AGENT_CONTACT: Task already exists in collection`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data.interactionId,\n });\n break;\n } else if (!this.taskCollection[payload.data.interactionId]) {\n // Case2 : Task is not present in taskCollection\n LoggerProxy.log(`Got AGENT_CONTACT : Creating new task in taskManager`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data.interactionId,\n });\n task = new Task(\n this.contact,\n this.webCallingService,\n {\n ...payload.data,\n wrapUpRequired:\n payload.data.interaction?.participants?.[payload.data.agentId]?.isWrapUp ||\n false,\n },\n this.wrapupData\n );\n this.taskCollection[payload.data.interactionId] = task;\n // Condition 1: The state is=new i.e it is a incoming task\n if (payload.data.interaction.state === 'new') {\n LoggerProxy.log(\n `Got AGENT_CONTACT for a task with state=new, sending TASK_INCOMING event`,\n {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data.interactionId,\n }\n );\n this.emit(TASK_EVENTS.TASK_INCOMING, task);\n } else {\n // Condition 2: The state is anything else i.e the task was connected\n LoggerProxy.log(\n `Got AGENT_CONTACT for a task with state=${payload.data.interaction.state}, sending TASK_HYDRATE event`,\n {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data.interactionId,\n }\n );\n this.emit(TASK_EVENTS.TASK_HYDRATE, task);\n }\n }\n break;\n case CC_EVENTS.AGENT_CONTACT_RESERVED:\n task = new Task(\n this.contact,\n this.webCallingService,\n {\n ...payload.data,\n isConsulted: false,\n },\n this.wrapupData\n ); // Ensure isConsulted prop exists\n this.taskCollection[payload.data.interactionId] = task;\n if (\n this.webCallingService.loginOption !== LoginOption.BROWSER ||\n task.data.interaction.mediaType !== MEDIA_CHANNEL.TELEPHONY // for digital channels\n ) {\n this.emit(TASK_EVENTS.TASK_INCOMING, task);\n } else if (this.call) {\n this.emit(TASK_EVENTS.TASK_INCOMING, task);\n }\n break;\n case CC_EVENTS.AGENT_OFFER_CONTACT:\n // We don't have to emit any event here since this will be result of promise.\n task = this.updateTaskData(task, payload.data);\n LoggerProxy.log(`Agent offer contact received for task`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data?.interactionId,\n });\n this.emit(TASK_EVENTS.TASK_OFFER_CONTACT, task);\n break;\n case CC_EVENTS.AGENT_OUTBOUND_FAILED:\n // We don't have to emit any event here since this will be result of promise.\n if (task.data) {\n this.removeTaskFromCollection(task);\n }\n LoggerProxy.log(`Agent outbound failed for task`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data?.interactionId,\n });\n break;\n case CC_EVENTS.AGENT_CONTACT_ASSIGNED:\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_ASSIGNED, task);\n break;\n case CC_EVENTS.AGENT_CONTACT_UNASSIGNED:\n task = this.updateTaskData(task, {\n ...payload.data,\n wrapUpRequired: true,\n });\n task.emit(TASK_EVENTS.TASK_END, task);\n break;\n case CC_EVENTS.AGENT_CONTACT_OFFER_RONA:\n case CC_EVENTS.AGENT_CONTACT_ASSIGN_FAILED:\n case CC_EVENTS.AGENT_INVITE_FAILED: {\n task = this.updateTaskData(task, payload.data);\n\n const eventTypeToMetricMap: Record<string, keyof typeof METRIC_EVENT_NAMES> = {\n [CC_EVENTS.AGENT_CONTACT_ASSIGN_FAILED]: 'AGENT_CONTACT_ASSIGN_FAILED',\n [CC_EVENTS.AGENT_INVITE_FAILED]: 'AGENT_INVITE_FAILED',\n };\n const metricEventName: keyof typeof METRIC_EVENT_NAMES =\n eventTypeToMetricMap[payload.data.type] || 'AGENT_RONA';\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES[metricEventName],\n {\n ...MetricsManager.getCommonTrackingFieldForAQMResponse(payload.data),\n taskId: payload.data.interactionId,\n reason: payload.data.reason,\n },\n ['behavioral', 'operational']\n );\n this.handleTaskCleanup(task);\n task.emit(TASK_EVENTS.TASK_REJECT, payload.data.reason);\n break;\n }\n case CC_EVENTS.CONTACT_ENDED:\n task = this.updateTaskData(task, {\n ...payload.data,\n wrapUpRequired: payload.data.interaction.state !== 'new',\n });\n this.handleTaskCleanup(task);\n task.emit(TASK_EVENTS.TASK_END, task);\n\n break;\n case CC_EVENTS.AGENT_CONTACT_HELD:\n // As soon as the main interaction is held, we need to emit TASK_HOLD\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_HOLD, task);\n break;\n case CC_EVENTS.AGENT_CONTACT_UNHELD:\n // As soon as the main interaction is unheld, we need to emit TASK_RESUME\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_RESUME, task);\n break;\n case CC_EVENTS.AGENT_VTEAM_TRANSFERRED:\n task = this.updateTaskData(task, {\n ...payload.data,\n wrapUpRequired: true,\n });\n task.emit(TASK_EVENTS.TASK_END, task);\n break;\n case CC_EVENTS.AGENT_CTQ_CANCEL_FAILED:\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_CONSULT_QUEUE_FAILED, task);\n break;\n case CC_EVENTS.AGENT_CONSULT_CREATED:\n // Received when self agent initiates a consult\n task = this.updateTaskData(task, {\n ...payload.data,\n isConsulted: false, // This ensures that the task consult status is always reset\n });\n task.emit(TASK_EVENTS.TASK_CONSULT_CREATED, task);\n break;\n case CC_EVENTS.AGENT_OFFER_CONSULT:\n // Received when other agent sends us a consult offer\n task = this.updateTaskData(task, {\n ...payload.data,\n isConsulted: true, // This ensures that the task is marked as us being requested for a consult\n });\n task.emit(TASK_EVENTS.TASK_OFFER_CONSULT, task);\n break;\n case CC_EVENTS.AGENT_CONSULTING:\n // Received when agent is in an active consult state\n task = this.updateTaskData(task, payload.data);\n if (task.data.isConsulted) {\n // Fire only if you are the agent who received the consult request\n task.emit(TASK_EVENTS.TASK_CONSULT_ACCEPTED, task);\n } else {\n // Fire only if you are the agent who initiated the consult\n task.emit(TASK_EVENTS.TASK_CONSULTING, task);\n }\n break;\n case CC_EVENTS.AGENT_CONSULT_FAILED:\n // This can only be received by the agent who initiated the consult.\n // We need not emit any event here since this will be result of promise\n task = this.updateTaskData(task, payload.data);\n break;\n case CC_EVENTS.AGENT_CONSULT_ENDED:\n task = this.updateTaskData(task, payload.data);\n if (task.data.isConsulted) {\n // This will be the end state of the task as soon as we end the consult in case of\n // us being offered a consult\n this.removeTaskFromCollection(task);\n }\n task.emit(TASK_EVENTS.TASK_CONSULT_END, task);\n break;\n case CC_EVENTS.AGENT_CTQ_CANCELLED:\n // This event is received when the consult using queue is cancelled using API\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_CONSULT_QUEUE_CANCELLED, task);\n break;\n case CC_EVENTS.AGENT_WRAPUP:\n task = this.updateTaskData(task, {...payload.data, wrapUpRequired: true});\n task.emit(TASK_EVENTS.TASK_END, task);\n break;\n case CC_EVENTS.AGENT_WRAPPEDUP:\n task.cancelAutoWrapupTimer();\n this.removeTaskFromCollection(task);\n task.emit(TASK_EVENTS.TASK_WRAPPEDUP, task);\n break;\n case CC_EVENTS.CONTACT_RECORDING_PAUSED:\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_RECORDING_PAUSED, task);\n break;\n case CC_EVENTS.CONTACT_RECORDING_PAUSE_FAILED:\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_RECORDING_PAUSE_FAILED, task);\n break;\n case CC_EVENTS.CONTACT_RECORDING_RESUMED:\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_RECORDING_RESUMED, task);\n break;\n case CC_EVENTS.CONTACT_RECORDING_RESUME_FAILED:\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_RECORDING_RESUME_FAILED, task);\n break;\n default:\n break;\n }\n if (task) {\n task.emit(payload.data.type, payload.data);\n }\n }\n });\n }\n\n private updateTaskData(task: ITask, taskData: TaskData): ITask {\n if (!task) {\n return undefined;\n }\n\n if (!taskData?.interactionId) {\n LoggerProxy.warn('Received task update with missing interactionId', {\n module: TASK_MANAGER_FILE,\n method: METHODS.UPDATE_TASK_DATA,\n });\n }\n\n try {\n const currentTask = task.updateTaskData(taskData);\n this.taskCollection[taskData.interactionId] = currentTask;\n\n return currentTask;\n } catch (error) {\n LoggerProxy.error(`Failed to update task`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.UPDATE_TASK_DATA,\n interactionId: taskData.interactionId,\n });\n\n return task;\n }\n }\n\n private removeTaskFromCollection(task: ITask) {\n if (task?.data?.interactionId) {\n delete this.taskCollection[task.data.interactionId];\n LoggerProxy.info(`Task removed from collection`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.REMOVE_TASK_FROM_COLLECTION,\n interactionId: task.data.interactionId,\n });\n }\n }\n\n private handleTaskCleanup(task: ITask) {\n if (\n this.webCallingService.loginOption === LoginOption.BROWSER &&\n task.data.interaction.mediaType === 'telephony'\n ) {\n task.unregisterWebCallListeners();\n this.webCallingService.cleanUpCall();\n }\n if (task.data.interaction.state === 'new') {\n // Only remove tasks in 'new' state immediately. For other states,\n // retain tasks until they complete wrap-up, unless the task disconnected before being answered.\n this.removeTaskFromCollection(task);\n }\n }\n\n /**\n * @param taskId - Unique identifier for each task\n */\n public getTask = (taskId: string) => {\n return this.taskCollection[taskId];\n };\n\n /**\n * @param taskId - Unique identifier for each task\n */\n public getAllTasks = (): Record<TaskId, ITask> => {\n return this.taskCollection;\n };\n\n /**\n * @param contact - Routing Contact layer. Talks to AQMReq layer to convert events to promises\n * @param webCallingService - Webrtc Service Layer\n * @param webSocketManager - Websocket Manager to maintain websocket connection and keepalives\n */\n public static getTaskManager = (\n contact: ReturnType<typeof routingContact>,\n webCallingService: WebCallingService,\n webSocketManager: WebSocketManager\n ): TaskManager => {\n if (!this.taskManager) {\n this.taskManager = new TaskManager(contact, webCallingService, webSocketManager);\n }\n\n return this.taskManager;\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_events","_interopRequireDefault","require","_calling","_types","_constants","_constants2","_types2","_types3","_loggerProxy","_","_MetricsManager","_constants3","_TaskUtils","obj","__esModule","default","TaskManager","EventEmitter","constructor","contact","webCallingService","webSocketManager","taskCollection","metricsManager","MetricsManager","getInstance","registerTaskListeners","registerIncomingCallEvent","setWrapupData","wrapupData","setAgentId","agentId","getAgentId","handleIncomingWebCall","call","currentTask","Object","values","find","task","data","interaction","mediaType","mapCallToTask","getCallId","interactionId","LoggerProxy","log","module","TASK_MANAGER_FILE","method","METHODS","HANDLE_INCOMING_WEB_CALL","emit","TASK_EVENTS","TASK_INCOMING","on","LINE_EVENTS","INCOMING_CALL","unregisterIncomingCallEvent","off","event","payload","JSON","parse","type","CC_TASK_EVENTS","includes","info","REGISTER_TASK_LISTENERS","CC_EVENTS","AGENT_CONTACT","Task","wrapUpRequired","participants","isWrapUp","state","TASK_HYDRATE","AGENT_CONTACT_RESERVED","isConsulted","loginOption","LoginOption","BROWSER","MEDIA_CHANNEL","TELEPHONY","AGENT_OFFER_CONTACT","updateTaskData","TASK_OFFER_CONTACT","AGENT_OUTBOUND_FAILED","removeTaskFromCollection","AGENT_CONTACT_ASSIGNED","TASK_ASSIGNED","AGENT_CONTACT_UNASSIGNED","TASK_END","AGENT_CONTACT_OFFER_RONA","AGENT_CONTACT_ASSIGN_FAILED","AGENT_INVITE_FAILED","eventTypeToMetricMap","metricEventName","trackEvent","METRIC_EVENT_NAMES","getCommonTrackingFieldForAQMResponse","taskId","reason","handleTaskCleanup","TASK_REJECT","CONTACT_ENDED","AGENT_CONTACT_HELD","TASK_HOLD","AGENT_CONTACT_UNHELD","TASK_RESUME","AGENT_VTEAM_TRANSFERRED","AGENT_CTQ_CANCEL_FAILED","TASK_CONSULT_QUEUE_FAILED","AGENT_CONSULT_CREATED","TASK_CONSULT_CREATED","AGENT_OFFER_CONSULT","TASK_OFFER_CONSULT","AGENT_CONSULTING","TASK_CONSULT_ACCEPTED","TASK_CONSULTING","AGENT_CONSULT_FAILED","AGENT_CONSULT_ENDED","TASK_CONSULT_END","AGENT_CTQ_CANCELLED","TASK_CONSULT_QUEUE_CANCELLED","AGENT_WRAPUP","AGENT_WRAPPEDUP","cancelAutoWrapupTimer","TASK_WRAPPEDUP","CONTACT_RECORDING_PAUSED","TASK_RECORDING_PAUSED","CONTACT_RECORDING_PAUSE_FAILED","TASK_RECORDING_PAUSE_FAILED","CONTACT_RECORDING_RESUMED","TASK_RECORDING_RESUMED","CONTACT_RECORDING_RESUME_FAILED","TASK_RECORDING_RESUME_FAILED","AGENT_CONSULT_CONFERENCING","TASK_CONFERENCE_ESTABLISHING","AGENT_CONSULT_CONFERENCED","TASK_CONFERENCE_STARTED","AGENT_CONSULT_CONFERENCE_FAILED","TASK_CONFERENCE_FAILED","AGENT_CONSULT_CONFERENCE_ENDED","isPrimary","isParticipantInMainInteraction","TASK_CONFERENCE_ENDED","PARTICIPANT_JOINED_CONFERENCE","simulatedTaskForJoin","isConferenceInProgress","getIsConferenceInProgress","TASK_PARTICIPANT_JOINED","PARTICIPANT_LEFT_CONFERENCE","simulatedTaskForLeft","checkParticipantNotInInteraction","TASK_PARTICIPANT_LEFT","PARTICIPANT_LEFT_CONFERENCE_FAILED","TASK_PARTICIPANT_LEFT_FAILED","AGENT_CONSULT_CONFERENCE_END_FAILED","TASK_CONFERENCE_END_FAILED","AGENT_CONFERENCE_TRANSFERRED","TASK_CONFERENCE_TRANSFERRED","AGENT_CONFERENCE_TRANSFER_FAILED","TASK_CONFERENCE_TRANSFER_FAILED","CONSULTED_PARTICIPANT_MOVING","PARTICIPANT_POST_CALL_ACTIVITY","taskData","undefined","warn","UPDATE_TASK_DATA","error","REMOVE_TASK_FROM_COLLECTION","unregisterWebCallListeners","cleanUpCall","getTask","getAllTasks","getTaskManager","taskManager","exports"],"sources":["TaskManager.ts"],"sourcesContent":["import EventEmitter from 'events';\nimport {ICall, LINE_EVENTS} from '@webex/calling';\nimport {WebSocketManager} from '../core/websocket/WebSocketManager';\nimport routingContact from './contact';\nimport WebCallingService from '../WebCallingService';\nimport {ITask, MEDIA_CHANNEL, TASK_EVENTS, TaskData, TaskId} from './types';\nimport {TASK_MANAGER_FILE} from '../../constants';\nimport {METHODS} from './constants';\nimport {CC_EVENTS, CC_TASK_EVENTS, WrapupData} from '../config/types';\nimport {LoginOption} from '../../types';\nimport LoggerProxy from '../../logger-proxy';\nimport Task from '.';\nimport MetricsManager from '../../metrics/MetricsManager';\nimport {METRIC_EVENT_NAMES} from '../../metrics/constants';\nimport {\n checkParticipantNotInInteraction,\n getIsConferenceInProgress,\n isParticipantInMainInteraction,\n isPrimary,\n} from './TaskUtils';\n\n/** @internal */\nexport default class TaskManager extends EventEmitter {\n private call: ICall;\n private contact: ReturnType<typeof routingContact>;\n /**\n * Collection of tasks indexed by TaskId\n * @type {Record<TaskId, ITask>}\n * @private\n */\n private taskCollection: Record<TaskId, ITask>;\n private webCallingService: WebCallingService;\n private webSocketManager: WebSocketManager;\n private metricsManager: MetricsManager;\n private static taskManager;\n private wrapupData: WrapupData;\n private agentId: string;\n /**\n * @param contact - Routing Contact layer. Talks to AQMReq layer to convert events to promises\n * @param webCallingService - Webrtc Service Layer\n * @param webSocketManager - Websocket Manager to maintain websocket connection and keepalives\n */\n constructor(\n contact: ReturnType<typeof routingContact>,\n webCallingService: WebCallingService,\n webSocketManager: WebSocketManager\n ) {\n super();\n this.contact = contact;\n this.taskCollection = {};\n this.webCallingService = webCallingService;\n this.webSocketManager = webSocketManager;\n this.metricsManager = MetricsManager.getInstance();\n this.registerTaskListeners();\n this.registerIncomingCallEvent();\n }\n\n public setWrapupData(wrapupData: WrapupData) {\n this.wrapupData = wrapupData;\n }\n\n public setAgentId(agentId: string) {\n this.agentId = agentId;\n }\n\n /**\n * Gets the current agent ID\n * @returns {string} The agent ID set for this task manager instance\n * @public\n */\n public getAgentId(): string {\n return this.agentId;\n }\n\n private handleIncomingWebCall = (call: ICall) => {\n const currentTask = Object.values(this.taskCollection).find(\n (task) => task.data.interaction.mediaType === 'telephony'\n );\n\n if (currentTask) {\n this.webCallingService.mapCallToTask(call.getCallId(), currentTask.data.interactionId);\n LoggerProxy.log(`Call mapped to task`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.HANDLE_INCOMING_WEB_CALL,\n interactionId: currentTask.data.interactionId,\n });\n this.emit(TASK_EVENTS.TASK_INCOMING, currentTask);\n }\n this.call = call;\n };\n\n public registerIncomingCallEvent() {\n this.webCallingService.on(LINE_EVENTS.INCOMING_CALL, this.handleIncomingWebCall);\n }\n\n public unregisterIncomingCallEvent() {\n this.webCallingService.off(LINE_EVENTS.INCOMING_CALL, this.handleIncomingWebCall);\n }\n\n private registerTaskListeners() {\n this.webSocketManager.on('message', (event) => {\n const payload = JSON.parse(event);\n // Re-emit the task events to the task object\n let task: ITask;\n if (payload.data?.type) {\n if (Object.values(CC_TASK_EVENTS).includes(payload.data.type)) {\n task = this.taskCollection[payload.data.interactionId];\n }\n LoggerProxy.info(`Handling task event ${payload.data?.type}`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data?.interactionId,\n });\n switch (payload.data.type) {\n case CC_EVENTS.AGENT_CONTACT:\n // Case1 : Task is already present in taskCollection\n if (this.taskCollection[payload.data.interactionId]) {\n LoggerProxy.log(`Got AGENT_CONTACT: Task already exists in collection`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data.interactionId,\n });\n break;\n } else if (!this.taskCollection[payload.data.interactionId]) {\n // Case2 : Task is not present in taskCollection\n LoggerProxy.log(`Got AGENT_CONTACT : Creating new task in taskManager`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data.interactionId,\n });\n task = new Task(\n this.contact,\n this.webCallingService,\n {\n ...payload.data,\n wrapUpRequired:\n payload.data.interaction?.participants?.[this.agentId]?.isWrapUp || false,\n },\n this.wrapupData,\n this.agentId\n );\n this.taskCollection[payload.data.interactionId] = task;\n // Condition 1: The state is=new i.e it is a incoming task\n if (payload.data.interaction.state === 'new') {\n LoggerProxy.log(\n `Got AGENT_CONTACT for a task with state=new, sending TASK_INCOMING event`,\n {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data.interactionId,\n }\n );\n this.emit(TASK_EVENTS.TASK_INCOMING, task);\n } else {\n // Condition 2: The state is anything else i.e the task was connected\n LoggerProxy.log(\n `Got AGENT_CONTACT for a task with state=${payload.data.interaction.state}, sending TASK_HYDRATE event`,\n {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data.interactionId,\n }\n );\n this.emit(TASK_EVENTS.TASK_HYDRATE, task);\n }\n }\n break;\n case CC_EVENTS.AGENT_CONTACT_RESERVED:\n task = new Task(\n this.contact,\n this.webCallingService,\n {\n ...payload.data,\n isConsulted: false,\n },\n this.wrapupData,\n this.agentId\n );\n this.taskCollection[payload.data.interactionId] = task;\n if (\n this.webCallingService.loginOption !== LoginOption.BROWSER ||\n task.data.interaction.mediaType !== MEDIA_CHANNEL.TELEPHONY // for digital channels\n ) {\n this.emit(TASK_EVENTS.TASK_INCOMING, task);\n } else if (this.call) {\n this.emit(TASK_EVENTS.TASK_INCOMING, task);\n }\n break;\n case CC_EVENTS.AGENT_OFFER_CONTACT:\n // We don't have to emit any event here since this will be result of promise.\n task = this.updateTaskData(task, payload.data);\n LoggerProxy.log(`Agent offer contact received for task`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data?.interactionId,\n });\n this.emit(TASK_EVENTS.TASK_OFFER_CONTACT, task);\n break;\n case CC_EVENTS.AGENT_OUTBOUND_FAILED:\n // We don't have to emit any event here since this will be result of promise.\n if (task.data) {\n this.removeTaskFromCollection(task);\n }\n LoggerProxy.log(`Agent outbound failed for task`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.REGISTER_TASK_LISTENERS,\n interactionId: payload.data?.interactionId,\n });\n break;\n case CC_EVENTS.AGENT_CONTACT_ASSIGNED:\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_ASSIGNED, task);\n break;\n case CC_EVENTS.AGENT_CONTACT_UNASSIGNED:\n task = this.updateTaskData(task, {\n ...payload.data,\n wrapUpRequired: true,\n });\n task.emit(TASK_EVENTS.TASK_END, task);\n break;\n case CC_EVENTS.AGENT_CONTACT_OFFER_RONA:\n case CC_EVENTS.AGENT_CONTACT_ASSIGN_FAILED:\n case CC_EVENTS.AGENT_INVITE_FAILED: {\n task = this.updateTaskData(task, payload.data);\n\n const eventTypeToMetricMap: Record<string, keyof typeof METRIC_EVENT_NAMES> = {\n [CC_EVENTS.AGENT_CONTACT_ASSIGN_FAILED]: 'AGENT_CONTACT_ASSIGN_FAILED',\n [CC_EVENTS.AGENT_INVITE_FAILED]: 'AGENT_INVITE_FAILED',\n };\n const metricEventName: keyof typeof METRIC_EVENT_NAMES =\n eventTypeToMetricMap[payload.data.type] || 'AGENT_RONA';\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES[metricEventName],\n {\n ...MetricsManager.getCommonTrackingFieldForAQMResponse(payload.data),\n taskId: payload.data.interactionId,\n reason: payload.data.reason,\n },\n ['behavioral', 'operational']\n );\n this.handleTaskCleanup(task);\n task.emit(TASK_EVENTS.TASK_REJECT, payload.data.reason);\n break;\n }\n case CC_EVENTS.CONTACT_ENDED:\n task = this.updateTaskData(task, {\n ...payload.data,\n wrapUpRequired: payload.data.interaction.state !== 'new',\n });\n this.handleTaskCleanup(task);\n task.emit(TASK_EVENTS.TASK_END, task);\n\n break;\n case CC_EVENTS.AGENT_CONTACT_HELD:\n // As soon as the main interaction is held, we need to emit TASK_HOLD\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_HOLD, task);\n break;\n case CC_EVENTS.AGENT_CONTACT_UNHELD:\n // As soon as the main interaction is unheld, we need to emit TASK_RESUME\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_RESUME, task);\n break;\n case CC_EVENTS.AGENT_VTEAM_TRANSFERRED:\n task = this.updateTaskData(task, {\n ...payload.data,\n wrapUpRequired: true,\n });\n task.emit(TASK_EVENTS.TASK_END, task);\n break;\n case CC_EVENTS.AGENT_CTQ_CANCEL_FAILED:\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_CONSULT_QUEUE_FAILED, task);\n break;\n case CC_EVENTS.AGENT_CONSULT_CREATED:\n // Received when self agent initiates a consult\n task = this.updateTaskData(task, {\n ...payload.data,\n isConsulted: false, // This ensures that the task consult status is always reset\n });\n task.emit(TASK_EVENTS.TASK_CONSULT_CREATED, task);\n break;\n case CC_EVENTS.AGENT_OFFER_CONSULT:\n // Received when other agent sends us a consult offer\n task = this.updateTaskData(task, {\n ...payload.data,\n isConsulted: true, // This ensures that the task is marked as us being requested for a consult\n });\n task.emit(TASK_EVENTS.TASK_OFFER_CONSULT, task);\n break;\n case CC_EVENTS.AGENT_CONSULTING:\n // Received when agent is in an active consult state\n // TODO: Check if we can use backend consult state instead of isConsulted\n task = this.updateTaskData(task, payload.data);\n if (task.data.isConsulted) {\n // Fire only if you are the agent who received the consult request\n task.emit(TASK_EVENTS.TASK_CONSULT_ACCEPTED, task);\n } else {\n // Fire only if you are the agent who initiated the consult\n task.emit(TASK_EVENTS.TASK_CONSULTING, task);\n }\n break;\n case CC_EVENTS.AGENT_CONSULT_FAILED:\n // This can only be received by the agent who initiated the consult.\n // We need not emit any event here since this will be result of promise\n task = this.updateTaskData(task, payload.data);\n break;\n case CC_EVENTS.AGENT_CONSULT_ENDED:\n task = this.updateTaskData(task, payload.data);\n if (task.data.isConsulted) {\n // This will be the end state of the task as soon as we end the consult in case of\n // us being offered a consult\n this.removeTaskFromCollection(task);\n }\n task.emit(TASK_EVENTS.TASK_CONSULT_END, task);\n break;\n case CC_EVENTS.AGENT_CTQ_CANCELLED:\n // This event is received when the consult using queue is cancelled using API\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_CONSULT_QUEUE_CANCELLED, task);\n break;\n case CC_EVENTS.AGENT_WRAPUP:\n task = this.updateTaskData(task, {...payload.data, wrapUpRequired: true});\n task.emit(TASK_EVENTS.TASK_END, task);\n break;\n case CC_EVENTS.AGENT_WRAPPEDUP:\n task.cancelAutoWrapupTimer();\n this.removeTaskFromCollection(task);\n task.emit(TASK_EVENTS.TASK_WRAPPEDUP, task);\n break;\n case CC_EVENTS.CONTACT_RECORDING_PAUSED:\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_RECORDING_PAUSED, task);\n break;\n case CC_EVENTS.CONTACT_RECORDING_PAUSE_FAILED:\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_RECORDING_PAUSE_FAILED, task);\n break;\n case CC_EVENTS.CONTACT_RECORDING_RESUMED:\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_RECORDING_RESUMED, task);\n break;\n case CC_EVENTS.CONTACT_RECORDING_RESUME_FAILED:\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_RECORDING_RESUME_FAILED, task);\n break;\n case CC_EVENTS.AGENT_CONSULT_CONFERENCING:\n // Conference is being established - update task state and emit establishing event\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_CONFERENCE_ESTABLISHING, task);\n break;\n case CC_EVENTS.AGENT_CONSULT_CONFERENCED:\n // Conference started successfully - update task state and emit event\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_CONFERENCE_STARTED, task);\n break;\n case CC_EVENTS.AGENT_CONSULT_CONFERENCE_FAILED:\n // Conference failed - update task state and emit failure event\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_CONFERENCE_FAILED, task);\n break;\n case CC_EVENTS.AGENT_CONSULT_CONFERENCE_ENDED:\n // Conference ended - update task state and emit event\n task = this.updateTaskData(task, payload.data);\n if (\n !task ||\n isPrimary(task, this.agentId) ||\n isParticipantInMainInteraction(task, this.agentId)\n ) {\n LoggerProxy.log('Primary or main interaction participant leaving conference');\n } else {\n this.removeTaskFromCollection(task);\n }\n task?.emit(TASK_EVENTS.TASK_CONFERENCE_ENDED, task);\n break;\n case CC_EVENTS.PARTICIPANT_JOINED_CONFERENCE: {\n // Participant joined conference - update task state with participant information and emit event\n // Pre-calculate isConferenceInProgress with updated data to avoid double update\n const simulatedTaskForJoin = {\n ...task,\n data: {...task.data, ...payload.data},\n };\n task = this.updateTaskData(task, {\n ...payload.data,\n isConferenceInProgress: getIsConferenceInProgress(simulatedTaskForJoin),\n });\n task.emit(TASK_EVENTS.TASK_PARTICIPANT_JOINED, task);\n break;\n }\n case CC_EVENTS.PARTICIPANT_LEFT_CONFERENCE: {\n // Conference ended - update task state and emit event\n // Pre-calculate isConferenceInProgress with updated data to avoid double update\n const simulatedTaskForLeft = {\n ...task,\n data: {...task.data, ...payload.data},\n };\n task = this.updateTaskData(task, {\n ...payload.data,\n isConferenceInProgress: getIsConferenceInProgress(simulatedTaskForLeft),\n });\n if (checkParticipantNotInInteraction(task, this.agentId)) {\n if (\n isParticipantInMainInteraction(task, this.agentId) ||\n isPrimary(task, this.agentId)\n ) {\n LoggerProxy.log('Primary or main interaction participant leaving conference');\n } else {\n this.removeTaskFromCollection(task);\n }\n }\n task.emit(TASK_EVENTS.TASK_PARTICIPANT_LEFT, task);\n break;\n }\n case CC_EVENTS.PARTICIPANT_LEFT_CONFERENCE_FAILED:\n // Conference exit failed - update task state and emit failure event\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_PARTICIPANT_LEFT_FAILED, task);\n break;\n case CC_EVENTS.AGENT_CONSULT_CONFERENCE_END_FAILED:\n // Conference end failed - update task state with error details and emit failure event\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_CONFERENCE_END_FAILED, task);\n break;\n case CC_EVENTS.AGENT_CONFERENCE_TRANSFERRED:\n // Conference was transferred - update task state and emit transfer success event\n // Note: Backend should provide hasLeft and wrapUpRequired status\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_CONFERENCE_TRANSFERRED, task);\n break;\n case CC_EVENTS.AGENT_CONFERENCE_TRANSFER_FAILED:\n // Conference transfer failed - update task state with error details and emit failure event\n task = this.updateTaskData(task, payload.data);\n task.emit(TASK_EVENTS.TASK_CONFERENCE_TRANSFER_FAILED, task);\n break;\n case CC_EVENTS.CONSULTED_PARTICIPANT_MOVING:\n // Participant is being moved/transferred - update task state with movement info\n task = this.updateTaskData(task, payload.data);\n break;\n case CC_EVENTS.PARTICIPANT_POST_CALL_ACTIVITY:\n // Post-call activity for participant - update task state with activity details\n task = this.updateTaskData(task, payload.data);\n break;\n default:\n break;\n }\n if (task) {\n task.emit(payload.data.type, payload.data);\n }\n }\n });\n }\n\n private updateTaskData(task: ITask, taskData: TaskData): ITask {\n if (!task) {\n return undefined;\n }\n\n if (!taskData?.interactionId) {\n LoggerProxy.warn('Received task update with missing interactionId', {\n module: TASK_MANAGER_FILE,\n method: METHODS.UPDATE_TASK_DATA,\n });\n }\n\n try {\n const currentTask = task.updateTaskData(taskData);\n this.taskCollection[taskData.interactionId] = currentTask;\n\n return currentTask;\n } catch (error) {\n LoggerProxy.error(`Failed to update task`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.UPDATE_TASK_DATA,\n interactionId: taskData.interactionId,\n });\n\n return task;\n }\n }\n\n private removeTaskFromCollection(task: ITask) {\n if (task?.data?.interactionId) {\n delete this.taskCollection[task.data.interactionId];\n LoggerProxy.info(`Task removed from collection`, {\n module: TASK_MANAGER_FILE,\n method: METHODS.REMOVE_TASK_FROM_COLLECTION,\n interactionId: task.data.interactionId,\n });\n }\n }\n\n private handleTaskCleanup(task: ITask) {\n if (\n this.webCallingService.loginOption === LoginOption.BROWSER &&\n task.data.interaction.mediaType === 'telephony'\n ) {\n task.unregisterWebCallListeners();\n this.webCallingService.cleanUpCall();\n }\n if (task.data.interaction.state === 'new') {\n // Only remove tasks in 'new' state immediately. For other states,\n // retain tasks until they complete wrap-up, unless the task disconnected before being answered.\n this.removeTaskFromCollection(task);\n }\n }\n\n /**\n * @param taskId - Unique identifier for each task\n */\n public getTask = (taskId: string) => {\n return this.taskCollection[taskId];\n };\n\n /**\n * @param taskId - Unique identifier for each task\n */\n public getAllTasks = (): Record<TaskId, ITask> => {\n return this.taskCollection;\n };\n\n /**\n * @param contact - Routing Contact layer. Talks to AQMReq layer to convert events to promises\n * @param webCallingService - Webrtc Service Layer\n * @param webSocketManager - Websocket Manager to maintain websocket connection and keepalives\n */\n public static getTaskManager = (\n contact: ReturnType<typeof routingContact>,\n webCallingService: WebCallingService,\n webSocketManager: WebSocketManager\n ): TaskManager => {\n if (!this.taskManager) {\n this.taskManager = new TaskManager(contact, webCallingService, webSocketManager);\n }\n\n return this.taskManager;\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isPrimary = exports.isParticipantInMainInteraction = exports.getIsConferenceInProgress = exports.checkParticipantNotInInteraction = void 0;
|
|
7
|
+
/* eslint-disable import/prefer-default-export */
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Determines if the given agent is the primary agent (owner) of the task
|
|
11
|
+
* @param task - The task to check
|
|
12
|
+
* @param agentId - The agent ID to check for primary status
|
|
13
|
+
* @returns true if the agent is the primary agent, false otherwise
|
|
14
|
+
*/
|
|
15
|
+
const isPrimary = (task, agentId) => {
|
|
16
|
+
if (!task.data?.interaction?.owner) {
|
|
17
|
+
// Fall back to checking data.agentId when owner is not set
|
|
18
|
+
return task.data.agentId === agentId;
|
|
19
|
+
}
|
|
20
|
+
return task.data.interaction.owner === agentId;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Checks if the given agent is a participant in the main interaction (mainCall)
|
|
25
|
+
* @param task - The task to check
|
|
26
|
+
* @param agentId - The agent ID to check for participation
|
|
27
|
+
* @returns true if the agent is a participant in the main interaction, false otherwise
|
|
28
|
+
*/
|
|
29
|
+
exports.isPrimary = isPrimary;
|
|
30
|
+
const isParticipantInMainInteraction = (task, agentId) => {
|
|
31
|
+
if (!task?.data?.interaction?.media) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
return Object.values(task.data.interaction.media).some(mediaObj => mediaObj && mediaObj.mType === 'mainCall' && mediaObj.participants?.includes(agentId));
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Checks if the given agent is not in the interaction or has left the interaction
|
|
39
|
+
* @param task - The task to check
|
|
40
|
+
* @param agentId - The agent ID to check
|
|
41
|
+
* @returns true if the agent is not in the interaction or has left, false otherwise
|
|
42
|
+
*/
|
|
43
|
+
exports.isParticipantInMainInteraction = isParticipantInMainInteraction;
|
|
44
|
+
const checkParticipantNotInInteraction = (task, agentId) => {
|
|
45
|
+
if (!task?.data?.interaction?.participants) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
const {
|
|
49
|
+
data
|
|
50
|
+
} = task;
|
|
51
|
+
return !(agentId in data.interaction.participants) || agentId in data.interaction.participants && data.interaction.participants[agentId].hasLeft;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Determines if a conference is currently in progress based on the number of active agent participants
|
|
56
|
+
* @param task - The task to check for conference status
|
|
57
|
+
* @returns true if there are 2 or more active agent participants in the main call, false otherwise
|
|
58
|
+
*/
|
|
59
|
+
exports.checkParticipantNotInInteraction = checkParticipantNotInInteraction;
|
|
60
|
+
const getIsConferenceInProgress = task => {
|
|
61
|
+
const mediaMainCall = task?.data?.interaction?.media?.[task?.data?.interactionId];
|
|
62
|
+
const participantsInMainCall = new Set(mediaMainCall?.participants);
|
|
63
|
+
const participants = task?.data?.interaction?.participants;
|
|
64
|
+
const agentParticipants = new Set();
|
|
65
|
+
if (participantsInMainCall.size > 0) {
|
|
66
|
+
participantsInMainCall.forEach(participantId => {
|
|
67
|
+
const participant = participants?.[participantId];
|
|
68
|
+
if (participant && participant.pType !== 'Customer' && participant.pType !== 'Supervisor' && !participant.hasLeft && participant.pType !== 'VVA') {
|
|
69
|
+
agentParticipants.add(participantId);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return agentParticipants.size >= 2;
|
|
74
|
+
};
|
|
75
|
+
exports.getIsConferenceInProgress = getIsConferenceInProgress;
|
|
76
|
+
//# sourceMappingURL=TaskUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isPrimary","task","agentId","data","interaction","owner","exports","isParticipantInMainInteraction","media","Object","values","some","mediaObj","mType","participants","includes","checkParticipantNotInInteraction","hasLeft","getIsConferenceInProgress","mediaMainCall","interactionId","participantsInMainCall","Set","agentParticipants","size","forEach","participantId","participant","pType","add"],"sources":["TaskUtils.ts"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport {ITask} from './types';\n\n/**\n * Determines if the given agent is the primary agent (owner) of the task\n * @param task - The task to check\n * @param agentId - The agent ID to check for primary status\n * @returns true if the agent is the primary agent, false otherwise\n */\nexport const isPrimary = (task: ITask, agentId: string): boolean => {\n if (!task.data?.interaction?.owner) {\n // Fall back to checking data.agentId when owner is not set\n return task.data.agentId === agentId;\n }\n\n return task.data.interaction.owner === agentId;\n};\n\n/**\n * Checks if the given agent is a participant in the main interaction (mainCall)\n * @param task - The task to check\n * @param agentId - The agent ID to check for participation\n * @returns true if the agent is a participant in the main interaction, false otherwise\n */\nexport const isParticipantInMainInteraction = (task: ITask, agentId: string): boolean => {\n if (!task?.data?.interaction?.media) {\n return false;\n }\n\n return Object.values(task.data.interaction.media).some(\n (mediaObj) =>\n mediaObj && mediaObj.mType === 'mainCall' && mediaObj.participants?.includes(agentId)\n );\n};\n\n/**\n * Checks if the given agent is not in the interaction or has left the interaction\n * @param task - The task to check\n * @param agentId - The agent ID to check\n * @returns true if the agent is not in the interaction or has left, false otherwise\n */\nexport const checkParticipantNotInInteraction = (task: ITask, agentId: string): boolean => {\n if (!task?.data?.interaction?.participants) {\n return true;\n }\n const {data} = task;\n\n return (\n !(agentId in data.interaction.participants) ||\n (agentId in data.interaction.participants && data.interaction.participants[agentId].hasLeft)\n );\n};\n\n/**\n * Determines if a conference is currently in progress based on the number of active agent participants\n * @param task - The task to check for conference status\n * @returns true if there are 2 or more active agent participants in the main call, false otherwise\n */\nexport const getIsConferenceInProgress = (task: ITask): boolean => {\n const mediaMainCall = task?.data?.interaction?.media?.[task?.data?.interactionId];\n const participantsInMainCall = new Set(mediaMainCall?.participants);\n const participants = task?.data?.interaction?.participants;\n\n const agentParticipants = new Set();\n if (participantsInMainCall.size > 0) {\n participantsInMainCall.forEach((participantId: string) => {\n const participant = participants?.[participantId];\n if (\n participant &&\n participant.pType !== 'Customer' &&\n participant.pType !== 'Supervisor' &&\n !participant.hasLeft &&\n participant.pType !== 'VVA'\n ) {\n agentParticipants.add(participantId);\n }\n });\n }\n\n return agentParticipants.size >= 2;\n};\n"],"mappings":";;;;;;AAAA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,SAAS,GAAGA,CAACC,IAAW,EAAEC,OAAe,KAAc;EAClE,IAAI,CAACD,IAAI,CAACE,IAAI,EAAEC,WAAW,EAAEC,KAAK,EAAE;IAClC;IACA,OAAOJ,IAAI,CAACE,IAAI,CAACD,OAAO,KAAKA,OAAO;EACtC;EAEA,OAAOD,IAAI,CAACE,IAAI,CAACC,WAAW,CAACC,KAAK,KAAKH,OAAO;AAChD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAI,OAAA,CAAAN,SAAA,GAAAA,SAAA;AAMO,MAAMO,8BAA8B,GAAGA,CAACN,IAAW,EAAEC,OAAe,KAAc;EACvF,IAAI,CAACD,IAAI,EAAEE,IAAI,EAAEC,WAAW,EAAEI,KAAK,EAAE;IACnC,OAAO,KAAK;EACd;EAEA,OAAOC,MAAM,CAACC,MAAM,CAACT,IAAI,CAACE,IAAI,CAACC,WAAW,CAACI,KAAK,CAAC,CAACG,IAAI,CACnDC,QAAQ,IACPA,QAAQ,IAAIA,QAAQ,CAACC,KAAK,KAAK,UAAU,IAAID,QAAQ,CAACE,YAAY,EAAEC,QAAQ,CAACb,OAAO,CACxF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAI,OAAA,CAAAC,8BAAA,GAAAA,8BAAA;AAMO,MAAMS,gCAAgC,GAAGA,CAACf,IAAW,EAAEC,OAAe,KAAc;EACzF,IAAI,CAACD,IAAI,EAAEE,IAAI,EAAEC,WAAW,EAAEU,YAAY,EAAE;IAC1C,OAAO,IAAI;EACb;EACA,MAAM;IAACX;EAAI,CAAC,GAAGF,IAAI;EAEnB,OACE,EAAEC,OAAO,IAAIC,IAAI,CAACC,WAAW,CAACU,YAAY,CAAC,IAC1CZ,OAAO,IAAIC,IAAI,CAACC,WAAW,CAACU,YAAY,IAAIX,IAAI,CAACC,WAAW,CAACU,YAAY,CAACZ,OAAO,CAAC,CAACe,OAAQ;AAEhG,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAX,OAAA,CAAAU,gCAAA,GAAAA,gCAAA;AAKO,MAAME,yBAAyB,GAAIjB,IAAW,IAAc;EACjE,MAAMkB,aAAa,GAAGlB,IAAI,EAAEE,IAAI,EAAEC,WAAW,EAAEI,KAAK,GAAGP,IAAI,EAAEE,IAAI,EAAEiB,aAAa,CAAC;EACjF,MAAMC,sBAAsB,GAAG,IAAIC,GAAG,CAACH,aAAa,EAAEL,YAAY,CAAC;EACnE,MAAMA,YAAY,GAAGb,IAAI,EAAEE,IAAI,EAAEC,WAAW,EAAEU,YAAY;EAE1D,MAAMS,iBAAiB,GAAG,IAAID,GAAG,CAAC,CAAC;EACnC,IAAID,sBAAsB,CAACG,IAAI,GAAG,CAAC,EAAE;IACnCH,sBAAsB,CAACI,OAAO,CAAEC,aAAqB,IAAK;MACxD,MAAMC,WAAW,GAAGb,YAAY,GAAGY,aAAa,CAAC;MACjD,IACEC,WAAW,IACXA,WAAW,CAACC,KAAK,KAAK,UAAU,IAChCD,WAAW,CAACC,KAAK,KAAK,YAAY,IAClC,CAACD,WAAW,CAACV,OAAO,IACpBU,WAAW,CAACC,KAAK,KAAK,KAAK,EAC3B;QACAL,iBAAiB,CAACM,GAAG,CAACH,aAAa,CAAC;MACtC;IACF,CAAC,CAAC;EACJ;EAEA,OAAOH,iBAAiB,CAACC,IAAI,IAAI,CAAC;AACpC,CAAC;AAAClB,OAAA,CAAAY,yBAAA,GAAAA,yBAAA"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.WRAPUP = exports.UNHOLD = exports.TRANSFER = exports.TASK_MESSAGE_TYPE = exports.TASK_MANAGER_FILE = exports.TASK_FILE = exports.TASK_API = exports.RESUME = exports.PAUSE = exports.METHODS = exports.HOLD = exports.END = exports.CONSULT_TRANSFER = exports.CONSULT_END = exports.CONSULT_ACCEPT = exports.CONSULT = void 0;
|
|
6
|
+
exports.WRAPUP = exports.UNHOLD = exports.TRANSFER = exports.TASK_MESSAGE_TYPE = exports.TASK_MANAGER_FILE = exports.TASK_FILE = exports.TASK_API = exports.RESUME = exports.PRESERVED_TASK_DATA_FIELDS = exports.PAUSE = exports.METHODS = exports.KEYS_TO_NOT_DELETE = exports.HOLD = exports.END = exports.CONSULT_TRANSFER = exports.CONSULT_END = exports.CONSULT_CONFERENCE = exports.CONSULT_ACCEPT = exports.CONSULT = exports.CONFERENCE_TRANSFER = exports.CONFERENCE_EXIT = void 0;
|
|
7
7
|
/**
|
|
8
8
|
* Constants for Task Service
|
|
9
9
|
* @module @webex/contact-center/services/task/constants
|
|
@@ -23,9 +23,31 @@ const PAUSE = exports.PAUSE = '/record/pause';
|
|
|
23
23
|
const RESUME = exports.RESUME = '/record/resume';
|
|
24
24
|
const WRAPUP = exports.WRAPUP = '/wrapup';
|
|
25
25
|
const END = exports.END = '/end';
|
|
26
|
+
const CONSULT_CONFERENCE = exports.CONSULT_CONFERENCE = '/consult/conference';
|
|
27
|
+
const CONFERENCE_EXIT = exports.CONFERENCE_EXIT = '/conference/exit';
|
|
28
|
+
const CONFERENCE_TRANSFER = exports.CONFERENCE_TRANSFER = '/conference/transfer';
|
|
26
29
|
const TASK_MANAGER_FILE = exports.TASK_MANAGER_FILE = 'taskManager';
|
|
27
30
|
const TASK_FILE = exports.TASK_FILE = 'task';
|
|
28
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Task data field names that should be preserved during reconciliation
|
|
34
|
+
* These fields are retained even if not present in new data during updates
|
|
35
|
+
*/
|
|
36
|
+
const PRESERVED_TASK_DATA_FIELDS = exports.PRESERVED_TASK_DATA_FIELDS = {
|
|
37
|
+
/** Indicates if the task is in consultation state */
|
|
38
|
+
IS_CONSULTED: 'isConsulted',
|
|
39
|
+
/** Indicates if wrap-up is required for this task */
|
|
40
|
+
WRAP_UP_REQUIRED: 'wrapUpRequired',
|
|
41
|
+
/** Indicates if a conference is currently in progress (2+ active agents) */
|
|
42
|
+
IS_CONFERENCE_IN_PROGRESS: 'isConferenceInProgress'
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Array of task data field names that should not be deleted during reconciliation
|
|
47
|
+
* Used by reconcileData method to preserve important task state fields
|
|
48
|
+
*/
|
|
49
|
+
const KEYS_TO_NOT_DELETE = exports.KEYS_TO_NOT_DELETE = Object.values(PRESERVED_TASK_DATA_FIELDS);
|
|
50
|
+
|
|
29
51
|
// METHOD NAMES
|
|
30
52
|
const METHODS = exports.METHODS = {
|
|
31
53
|
// Task class methods
|
|
@@ -42,6 +64,9 @@ const METHODS = exports.METHODS = {
|
|
|
42
64
|
END_CONSULT: 'endConsult',
|
|
43
65
|
TRANSFER: 'transfer',
|
|
44
66
|
CONSULT_TRANSFER: 'consultTransfer',
|
|
67
|
+
CONSULT_CONFERENCE: 'consultConference',
|
|
68
|
+
EXIT_CONFERENCE: 'exitConference',
|
|
69
|
+
TRANSFER_CONFERENCE: 'transferConference',
|
|
45
70
|
UPDATE_TASK_DATA: 'updateTaskData',
|
|
46
71
|
RECONCILE_DATA: 'reconcileData',
|
|
47
72
|
// TaskManager class methods
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TASK_MESSAGE_TYPE","exports","TASK_API","HOLD","UNHOLD","CONSULT","CONSULT_ACCEPT","CONSULT_END","TRANSFER","CONSULT_TRANSFER","PAUSE","RESUME","WRAPUP","END","TASK_MANAGER_FILE","TASK_FILE","METHODS","ACCEPT","TOGGLE_MUTE","DECLINE","PAUSE_RECORDING","RESUME_RECORDING","END_CONSULT","UPDATE_TASK_DATA","RECONCILE_DATA","HANDLE_INCOMING_WEB_CALL","REGISTER_TASK_LISTENERS","REMOVE_TASK_FROM_COLLECTION","HANDLE_TASK_CLEANUP","GET_TASK","GET_ALL_TASKS","GET_TASK_MANAGER","SETUP_AUTO_WRAPUP_TIMER","CANCEL_AUTO_WRAPUP_TIMER"],"sources":["constants.ts"],"sourcesContent":["/**\n * Constants for Task Service\n * @module @webex/contact-center/services/task/constants\n * @ignore\n */\n\nexport const TASK_MESSAGE_TYPE = 'RoutingMessage';\nexport const TASK_API = '/v1/tasks/';\nexport const HOLD = '/hold';\nexport const UNHOLD = '/unhold';\nexport const CONSULT = '/consult';\nexport const CONSULT_ACCEPT = '/consult/accept';\nexport const CONSULT_END = '/consult/end';\nexport const TRANSFER = '/transfer';\nexport const CONSULT_TRANSFER = '/consult/transfer';\nexport const PAUSE = '/record/pause';\nexport const RESUME = '/record/resume';\nexport const WRAPUP = '/wrapup';\nexport const END = '/end';\nexport const TASK_MANAGER_FILE = 'taskManager';\nexport const TASK_FILE = 'task';\n\n// METHOD NAMES\nexport const METHODS = {\n // Task class methods\n ACCEPT: 'accept',\n TOGGLE_MUTE: 'toggleMute',\n DECLINE: 'decline',\n HOLD: 'hold',\n RESUME: 'resume',\n END: 'end',\n WRAPUP: 'wrapup',\n PAUSE_RECORDING: 'pauseRecording',\n RESUME_RECORDING: 'resumeRecording',\n CONSULT: 'consult',\n END_CONSULT: 'endConsult',\n TRANSFER: 'transfer',\n CONSULT_TRANSFER: 'consultTransfer',\n UPDATE_TASK_DATA: 'updateTaskData',\n RECONCILE_DATA: 'reconcileData',\n\n // TaskManager class methods\n HANDLE_INCOMING_WEB_CALL: 'handleIncomingWebCall',\n REGISTER_TASK_LISTENERS: 'registerTaskListeners',\n REMOVE_TASK_FROM_COLLECTION: 'removeTaskFromCollection',\n HANDLE_TASK_CLEANUP: 'handleTaskCleanup',\n GET_TASK: 'getTask',\n GET_ALL_TASKS: 'getAllTasks',\n GET_TASK_MANAGER: 'getTaskManager',\n SETUP_AUTO_WRAPUP_TIMER: 'setupAutoWrapupTimer',\n CANCEL_AUTO_WRAPUP_TIMER: 'cancelAutoWrapupTimer',\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEO,MAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,gBAAgB;AAC1C,MAAME,QAAQ,GAAAD,OAAA,CAAAC,QAAA,GAAG,YAAY;AAC7B,MAAMC,IAAI,GAAAF,OAAA,CAAAE,IAAA,GAAG,OAAO;AACpB,MAAMC,MAAM,GAAAH,OAAA,CAAAG,MAAA,GAAG,SAAS;AACxB,MAAMC,OAAO,GAAAJ,OAAA,CAAAI,OAAA,GAAG,UAAU;AAC1B,MAAMC,cAAc,GAAAL,OAAA,CAAAK,cAAA,GAAG,iBAAiB;AACxC,MAAMC,WAAW,GAAAN,OAAA,CAAAM,WAAA,GAAG,cAAc;AAClC,MAAMC,QAAQ,GAAAP,OAAA,CAAAO,QAAA,GAAG,WAAW;AAC5B,MAAMC,gBAAgB,GAAAR,OAAA,CAAAQ,gBAAA,GAAG,mBAAmB;AAC5C,MAAMC,KAAK,GAAAT,OAAA,CAAAS,KAAA,GAAG,eAAe;AAC7B,MAAMC,MAAM,GAAAV,OAAA,CAAAU,MAAA,GAAG,gBAAgB;AAC/B,MAAMC,MAAM,GAAAX,OAAA,CAAAW,MAAA,GAAG,SAAS;AACxB,MAAMC,GAAG,GAAAZ,OAAA,CAAAY,GAAA,GAAG,MAAM;AAClB,MAAMC,
|
|
1
|
+
{"version":3,"names":["TASK_MESSAGE_TYPE","exports","TASK_API","HOLD","UNHOLD","CONSULT","CONSULT_ACCEPT","CONSULT_END","TRANSFER","CONSULT_TRANSFER","PAUSE","RESUME","WRAPUP","END","CONSULT_CONFERENCE","CONFERENCE_EXIT","CONFERENCE_TRANSFER","TASK_MANAGER_FILE","TASK_FILE","PRESERVED_TASK_DATA_FIELDS","IS_CONSULTED","WRAP_UP_REQUIRED","IS_CONFERENCE_IN_PROGRESS","KEYS_TO_NOT_DELETE","Object","values","METHODS","ACCEPT","TOGGLE_MUTE","DECLINE","PAUSE_RECORDING","RESUME_RECORDING","END_CONSULT","EXIT_CONFERENCE","TRANSFER_CONFERENCE","UPDATE_TASK_DATA","RECONCILE_DATA","HANDLE_INCOMING_WEB_CALL","REGISTER_TASK_LISTENERS","REMOVE_TASK_FROM_COLLECTION","HANDLE_TASK_CLEANUP","GET_TASK","GET_ALL_TASKS","GET_TASK_MANAGER","SETUP_AUTO_WRAPUP_TIMER","CANCEL_AUTO_WRAPUP_TIMER"],"sources":["constants.ts"],"sourcesContent":["/**\n * Constants for Task Service\n * @module @webex/contact-center/services/task/constants\n * @ignore\n */\n\nexport const TASK_MESSAGE_TYPE = 'RoutingMessage';\nexport const TASK_API = '/v1/tasks/';\nexport const HOLD = '/hold';\nexport const UNHOLD = '/unhold';\nexport const CONSULT = '/consult';\nexport const CONSULT_ACCEPT = '/consult/accept';\nexport const CONSULT_END = '/consult/end';\nexport const TRANSFER = '/transfer';\nexport const CONSULT_TRANSFER = '/consult/transfer';\nexport const PAUSE = '/record/pause';\nexport const RESUME = '/record/resume';\nexport const WRAPUP = '/wrapup';\nexport const END = '/end';\nexport const CONSULT_CONFERENCE = '/consult/conference';\nexport const CONFERENCE_EXIT = '/conference/exit';\nexport const CONFERENCE_TRANSFER = '/conference/transfer';\nexport const TASK_MANAGER_FILE = 'taskManager';\nexport const TASK_FILE = 'task';\n\n/**\n * Task data field names that should be preserved during reconciliation\n * These fields are retained even if not present in new data during updates\n */\nexport const PRESERVED_TASK_DATA_FIELDS = {\n /** Indicates if the task is in consultation state */\n IS_CONSULTED: 'isConsulted',\n /** Indicates if wrap-up is required for this task */\n WRAP_UP_REQUIRED: 'wrapUpRequired',\n /** Indicates if a conference is currently in progress (2+ active agents) */\n IS_CONFERENCE_IN_PROGRESS: 'isConferenceInProgress',\n};\n\n/**\n * Array of task data field names that should not be deleted during reconciliation\n * Used by reconcileData method to preserve important task state fields\n */\nexport const KEYS_TO_NOT_DELETE: string[] = Object.values(PRESERVED_TASK_DATA_FIELDS);\n\n// METHOD NAMES\nexport const METHODS = {\n // Task class methods\n ACCEPT: 'accept',\n TOGGLE_MUTE: 'toggleMute',\n DECLINE: 'decline',\n HOLD: 'hold',\n RESUME: 'resume',\n END: 'end',\n WRAPUP: 'wrapup',\n PAUSE_RECORDING: 'pauseRecording',\n RESUME_RECORDING: 'resumeRecording',\n CONSULT: 'consult',\n END_CONSULT: 'endConsult',\n TRANSFER: 'transfer',\n CONSULT_TRANSFER: 'consultTransfer',\n CONSULT_CONFERENCE: 'consultConference',\n EXIT_CONFERENCE: 'exitConference',\n TRANSFER_CONFERENCE: 'transferConference',\n UPDATE_TASK_DATA: 'updateTaskData',\n RECONCILE_DATA: 'reconcileData',\n\n // TaskManager class methods\n HANDLE_INCOMING_WEB_CALL: 'handleIncomingWebCall',\n REGISTER_TASK_LISTENERS: 'registerTaskListeners',\n REMOVE_TASK_FROM_COLLECTION: 'removeTaskFromCollection',\n HANDLE_TASK_CLEANUP: 'handleTaskCleanup',\n GET_TASK: 'getTask',\n GET_ALL_TASKS: 'getAllTasks',\n GET_TASK_MANAGER: 'getTaskManager',\n SETUP_AUTO_WRAPUP_TIMER: 'setupAutoWrapupTimer',\n CANCEL_AUTO_WRAPUP_TIMER: 'cancelAutoWrapupTimer',\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEO,MAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,gBAAgB;AAC1C,MAAME,QAAQ,GAAAD,OAAA,CAAAC,QAAA,GAAG,YAAY;AAC7B,MAAMC,IAAI,GAAAF,OAAA,CAAAE,IAAA,GAAG,OAAO;AACpB,MAAMC,MAAM,GAAAH,OAAA,CAAAG,MAAA,GAAG,SAAS;AACxB,MAAMC,OAAO,GAAAJ,OAAA,CAAAI,OAAA,GAAG,UAAU;AAC1B,MAAMC,cAAc,GAAAL,OAAA,CAAAK,cAAA,GAAG,iBAAiB;AACxC,MAAMC,WAAW,GAAAN,OAAA,CAAAM,WAAA,GAAG,cAAc;AAClC,MAAMC,QAAQ,GAAAP,OAAA,CAAAO,QAAA,GAAG,WAAW;AAC5B,MAAMC,gBAAgB,GAAAR,OAAA,CAAAQ,gBAAA,GAAG,mBAAmB;AAC5C,MAAMC,KAAK,GAAAT,OAAA,CAAAS,KAAA,GAAG,eAAe;AAC7B,MAAMC,MAAM,GAAAV,OAAA,CAAAU,MAAA,GAAG,gBAAgB;AAC/B,MAAMC,MAAM,GAAAX,OAAA,CAAAW,MAAA,GAAG,SAAS;AACxB,MAAMC,GAAG,GAAAZ,OAAA,CAAAY,GAAA,GAAG,MAAM;AAClB,MAAMC,kBAAkB,GAAAb,OAAA,CAAAa,kBAAA,GAAG,qBAAqB;AAChD,MAAMC,eAAe,GAAAd,OAAA,CAAAc,eAAA,GAAG,kBAAkB;AAC1C,MAAMC,mBAAmB,GAAAf,OAAA,CAAAe,mBAAA,GAAG,sBAAsB;AAClD,MAAMC,iBAAiB,GAAAhB,OAAA,CAAAgB,iBAAA,GAAG,aAAa;AACvC,MAAMC,SAAS,GAAAjB,OAAA,CAAAiB,SAAA,GAAG,MAAM;;AAE/B;AACA;AACA;AACA;AACO,MAAMC,0BAA0B,GAAAlB,OAAA,CAAAkB,0BAAA,GAAG;EACxC;EACAC,YAAY,EAAE,aAAa;EAC3B;EACAC,gBAAgB,EAAE,gBAAgB;EAClC;EACAC,yBAAyB,EAAE;AAC7B,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAMC,kBAA4B,GAAAtB,OAAA,CAAAsB,kBAAA,GAAGC,MAAM,CAACC,MAAM,CAACN,0BAA0B,CAAC;;AAErF;AACO,MAAMO,OAAO,GAAAzB,OAAA,CAAAyB,OAAA,GAAG;EACrB;EACAC,MAAM,EAAE,QAAQ;EAChBC,WAAW,EAAE,YAAY;EACzBC,OAAO,EAAE,SAAS;EAClB1B,IAAI,EAAE,MAAM;EACZQ,MAAM,EAAE,QAAQ;EAChBE,GAAG,EAAE,KAAK;EACVD,MAAM,EAAE,QAAQ;EAChBkB,eAAe,EAAE,gBAAgB;EACjCC,gBAAgB,EAAE,iBAAiB;EACnC1B,OAAO,EAAE,SAAS;EAClB2B,WAAW,EAAE,YAAY;EACzBxB,QAAQ,EAAE,UAAU;EACpBC,gBAAgB,EAAE,iBAAiB;EACnCK,kBAAkB,EAAE,mBAAmB;EACvCmB,eAAe,EAAE,gBAAgB;EACjCC,mBAAmB,EAAE,oBAAoB;EACzCC,gBAAgB,EAAE,gBAAgB;EAClCC,cAAc,EAAE,eAAe;EAE/B;EACAC,wBAAwB,EAAE,uBAAuB;EACjDC,uBAAuB,EAAE,uBAAuB;EAChDC,2BAA2B,EAAE,0BAA0B;EACvDC,mBAAmB,EAAE,mBAAmB;EACxCC,QAAQ,EAAE,SAAS;EACnBC,aAAa,EAAE,aAAa;EAC5BC,gBAAgB,EAAE,gBAAgB;EAClCC,uBAAuB,EAAE,sBAAsB;EAC/CC,wBAAwB,EAAE;AAC5B,CAAC"}
|
|
@@ -458,6 +458,92 @@ function routingContact(aqm) {
|
|
|
458
458
|
},
|
|
459
459
|
errId: 'Service.aqm.task.cancelCtq'
|
|
460
460
|
}
|
|
461
|
+
})),
|
|
462
|
+
/*
|
|
463
|
+
* Start consult conference
|
|
464
|
+
*/
|
|
465
|
+
consultConference: aqm.req(p => ({
|
|
466
|
+
url: `${_constants3.TASK_API}${p.interactionId}${_constants3.CONSULT_CONFERENCE}`,
|
|
467
|
+
data: p.data,
|
|
468
|
+
host: _constants.WCC_API_GATEWAY,
|
|
469
|
+
err: _Utils.createErrDetailsObject,
|
|
470
|
+
notifSuccess: {
|
|
471
|
+
bind: {
|
|
472
|
+
type: _constants3.TASK_MESSAGE_TYPE,
|
|
473
|
+
data: {
|
|
474
|
+
type: [_types.CC_EVENTS.AGENT_CONSULT_CONFERENCED, _types.CC_EVENTS.AGENT_CONSULT_CONFERENCING],
|
|
475
|
+
interactionId: p.interactionId
|
|
476
|
+
} // any of the two events can be received for API success event
|
|
477
|
+
},
|
|
478
|
+
|
|
479
|
+
msg: {}
|
|
480
|
+
},
|
|
481
|
+
notifFail: {
|
|
482
|
+
bind: {
|
|
483
|
+
type: _constants3.TASK_MESSAGE_TYPE,
|
|
484
|
+
data: {
|
|
485
|
+
type: _types.CC_EVENTS.AGENT_CONSULT_CONFERENCE_FAILED
|
|
486
|
+
}
|
|
487
|
+
},
|
|
488
|
+
errId: 'Service.aqm.task.consultConference'
|
|
489
|
+
}
|
|
490
|
+
})),
|
|
491
|
+
/*
|
|
492
|
+
* Exit conference
|
|
493
|
+
*/
|
|
494
|
+
exitConference: aqm.req(p => ({
|
|
495
|
+
url: `${_constants3.TASK_API}${p.interactionId}${_constants3.CONFERENCE_EXIT}`,
|
|
496
|
+
data: {},
|
|
497
|
+
host: _constants.WCC_API_GATEWAY,
|
|
498
|
+
err: _Utils.createErrDetailsObject,
|
|
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_LEFT_CONFERENCE_FAILED
|
|
514
|
+
} // to be finalized
|
|
515
|
+
},
|
|
516
|
+
|
|
517
|
+
errId: 'Service.aqm.task.consultConference'
|
|
518
|
+
}
|
|
519
|
+
})),
|
|
520
|
+
/*
|
|
521
|
+
* Transfer conference
|
|
522
|
+
*/
|
|
523
|
+
conferenceTransfer: aqm.req(p => ({
|
|
524
|
+
url: `${_constants3.TASK_API}${p.interactionId}${_constants3.CONFERENCE_TRANSFER}`,
|
|
525
|
+
data: {},
|
|
526
|
+
host: _constants.WCC_API_GATEWAY,
|
|
527
|
+
err: _Utils.createErrDetailsObject,
|
|
528
|
+
notifSuccess: {
|
|
529
|
+
bind: {
|
|
530
|
+
type: _constants3.TASK_MESSAGE_TYPE,
|
|
531
|
+
data: {
|
|
532
|
+
type: _types.CC_EVENTS.PARTICIPANT_LEFT_CONFERENCE,
|
|
533
|
+
interactionId: p.interactionId
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
msg: {}
|
|
537
|
+
},
|
|
538
|
+
notifFail: {
|
|
539
|
+
bind: {
|
|
540
|
+
type: _constants3.TASK_MESSAGE_TYPE,
|
|
541
|
+
data: {
|
|
542
|
+
type: _types.CC_EVENTS.AGENT_CONFERENCE_TRANSFER_FAILED
|
|
543
|
+
}
|
|
544
|
+
},
|
|
545
|
+
errId: 'Service.aqm.task.consultConference'
|
|
546
|
+
}
|
|
461
547
|
}))
|
|
462
548
|
};
|
|
463
549
|
}
|
|
@@ -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"],"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} 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"],"mappings":"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"}
|
|
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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"}
|