@webex/contact-center 3.11.0 → 3.12.0-llmrefactor.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.sdd/manifest.json +882 -0
- package/AGENTS.md +94 -0
- package/ai-docs/ARCHITECTURE.md +168 -0
- package/ai-docs/CONTRACTS.md +46 -0
- package/ai-docs/GETTING_STARTED.md +168 -0
- package/ai-docs/GLOSSARY.md +43 -0
- package/ai-docs/README.md +138 -0
- package/ai-docs/REVIEW_CHECKLIST.md +41 -0
- package/ai-docs/RULES.md +444 -0
- package/ai-docs/SECURITY.md +52 -0
- package/ai-docs/SERVICE_STATE.md +48 -0
- package/ai-docs/SPEC_INDEX.md +65 -0
- package/ai-docs/adr/0001-spec-source-policy.md +55 -0
- package/ai-docs/adr/README.md +8 -0
- package/ai-docs/adr/_adr-template.md +31 -0
- package/ai-docs/contact-center-spec.md +341 -0
- package/ai-docs/features/generated-spec-conformance-fidelity-remediation/spec/feature-spec.md +117 -0
- package/ai-docs/features/residual-warning-coverage-completion/spec/feature-spec.md +203 -0
- package/ai-docs/features/validator-code-fidelity-drift-fix/spec/feature-spec.md +315 -0
- package/ai-docs/patterns/event-driven-patterns.md +485 -0
- package/ai-docs/patterns/testing-patterns.md +480 -0
- package/ai-docs/patterns/typescript-patterns.md +365 -0
- package/ai-docs/templates/README.md +102 -0
- package/ai-docs/templates/documentation/create-agents-md.md +240 -0
- package/ai-docs/templates/documentation/create-architecture-md.md +295 -0
- package/ai-docs/templates/existing-service/bug-fix.md +254 -0
- package/ai-docs/templates/existing-service/feature-enhancement.md +450 -0
- package/ai-docs/templates/new-method/00-master.md +80 -0
- package/ai-docs/templates/new-method/01-requirements.md +232 -0
- package/ai-docs/templates/new-method/02-implementation.md +295 -0
- package/ai-docs/templates/new-method/03-tests.md +201 -0
- package/ai-docs/templates/new-method/04-validation.md +141 -0
- package/ai-docs/templates/new-service/00-master.md +109 -0
- package/ai-docs/templates/new-service/01-pre-questions.md +159 -0
- package/ai-docs/templates/new-service/02-code-generation.md +346 -0
- package/ai-docs/templates/new-service/03-integration.md +178 -0
- package/ai-docs/templates/new-service/04-test-generation.md +205 -0
- package/ai-docs/templates/new-service/05-validation.md +145 -0
- package/dist/cc.js +379 -50
- package/dist/cc.js.map +1 -1
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +22 -2
- package/dist/constants.js.map +1 -1
- package/dist/index.js +27 -5
- package/dist/index.js.map +1 -1
- package/dist/metrics/behavioral-events.js +114 -0
- package/dist/metrics/behavioral-events.js.map +1 -1
- package/dist/metrics/constants.js +32 -3
- package/dist/metrics/constants.js.map +1 -1
- package/dist/services/ApiAiAssistant.js +318 -0
- package/dist/services/ApiAiAssistant.js.map +1 -0
- package/dist/services/UserPreference.js +427 -0
- package/dist/services/UserPreference.js.map +1 -0
- package/dist/services/agent/types.js.map +1 -1
- package/dist/services/config/Util.js +8 -4
- package/dist/services/config/Util.js.map +1 -1
- package/dist/services/config/constants.js +35 -2
- package/dist/services/config/constants.js.map +1 -1
- package/dist/services/config/index.js +41 -2
- package/dist/services/config/index.js.map +1 -1
- package/dist/services/config/types.js +66 -8
- package/dist/services/config/types.js.map +1 -1
- package/dist/services/constants.js +27 -1
- package/dist/services/constants.js.map +1 -1
- package/dist/services/core/Err.js.map +1 -1
- package/dist/services/core/Utils.js +122 -25
- package/dist/services/core/Utils.js.map +1 -1
- package/dist/services/core/aqm-reqs.js +92 -17
- package/dist/services/core/aqm-reqs.js.map +1 -1
- package/dist/services/core/websocket/WebSocketManager.js +22 -6
- package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
- package/dist/services/core/websocket/connection-service.js +3 -1
- package/dist/services/core/websocket/connection-service.js.map +1 -1
- package/dist/services/core/websocket/types.js.map +1 -1
- package/dist/services/index.js +6 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/task/Task.js +688 -0
- package/dist/services/task/Task.js.map +1 -0
- package/dist/services/task/TaskFactory.js +45 -0
- package/dist/services/task/TaskFactory.js.map +1 -0
- package/dist/services/task/TaskManager.js +751 -457
- package/dist/services/task/TaskManager.js.map +1 -1
- package/dist/services/task/TaskUtils.js +220 -23
- package/dist/services/task/TaskUtils.js.map +1 -1
- package/dist/services/task/constants.js +23 -2
- package/dist/services/task/constants.js.map +1 -1
- package/dist/services/task/dialer.js +129 -0
- package/dist/services/task/dialer.js.map +1 -1
- package/dist/services/task/digital/Digital.js +77 -0
- package/dist/services/task/digital/Digital.js.map +1 -0
- package/dist/services/task/state-machine/TaskStateMachine.js +873 -0
- package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -0
- package/dist/services/task/state-machine/actions.js +567 -0
- package/dist/services/task/state-machine/actions.js.map +1 -0
- package/dist/services/task/state-machine/constants.js +161 -0
- package/dist/services/task/state-machine/constants.js.map +1 -0
- package/dist/services/task/state-machine/guards.js +382 -0
- package/dist/services/task/state-machine/guards.js.map +1 -0
- package/dist/services/task/state-machine/index.js +53 -0
- package/dist/services/task/state-machine/index.js.map +1 -0
- package/dist/services/task/state-machine/types.js +54 -0
- package/dist/services/task/state-machine/types.js.map +1 -0
- package/dist/services/task/state-machine/uiControlsComputer.js +603 -0
- package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -0
- package/dist/services/task/taskDataNormalizer.js +99 -0
- package/dist/services/task/taskDataNormalizer.js.map +1 -0
- package/dist/services/task/types.js +227 -4
- package/dist/services/task/types.js.map +1 -1
- package/dist/services/task/voice/Voice.js +1044 -0
- package/dist/services/task/voice/Voice.js.map +1 -0
- package/dist/services/task/voice/WebRTC.js +149 -0
- package/dist/services/task/voice/WebRTC.js.map +1 -0
- package/dist/types/cc.d.ts +894 -0
- package/dist/types/config.d.ts +72 -0
- package/dist/types/constants.d.ts +66 -0
- package/dist/types/index.d.ts +199 -0
- package/dist/types/logger-proxy.d.ts +71 -0
- package/dist/types/metrics/MetricsManager.d.ts +223 -0
- package/dist/types/metrics/behavioral-events.d.ts +29 -0
- package/dist/types/metrics/constants.d.ts +181 -0
- package/dist/types/services/AddressBook.d.ts +74 -0
- package/dist/types/services/ApiAiAssistant.d.ts +49 -0
- package/dist/types/services/EntryPoint.d.ts +67 -0
- package/dist/types/services/Queue.d.ts +76 -0
- package/dist/types/services/UserPreference.d.ts +118 -0
- package/dist/types/services/WebCallingService.d.ts +1 -0
- package/dist/types/services/agent/index.d.ts +46 -0
- package/dist/types/services/agent/types.d.ts +413 -0
- package/dist/types/services/config/Util.d.ts +20 -0
- package/dist/types/services/config/constants.d.ts +270 -0
- package/dist/types/services/config/index.d.ts +177 -0
- package/dist/types/services/config/types.d.ts +1368 -0
- package/dist/types/services/constants.d.ts +110 -0
- package/dist/types/services/core/Err.d.ts +125 -0
- package/dist/types/services/core/GlobalTypes.d.ts +58 -0
- package/dist/types/services/core/Utils.d.ts +121 -0
- package/dist/types/services/core/WebexRequest.d.ts +22 -0
- package/dist/types/services/core/aqm-reqs.d.ts +65 -0
- package/dist/types/services/core/constants.d.ts +99 -0
- package/dist/types/services/core/types.d.ts +47 -0
- package/dist/types/services/core/websocket/WebSocketManager.d.ts +36 -0
- package/dist/types/services/core/websocket/connection-service.d.ts +27 -0
- package/dist/types/services/core/websocket/keepalive.worker.d.ts +2 -0
- package/dist/types/services/core/websocket/types.d.ts +37 -0
- package/dist/types/services/index.d.ts +54 -0
- package/dist/types/services/task/AutoWrapup.d.ts +40 -0
- package/dist/types/services/task/Task.d.ts +157 -0
- package/dist/types/services/task/TaskFactory.d.ts +12 -0
- package/dist/types/services/task/TaskManager.d.ts +1 -0
- package/dist/types/services/task/TaskUtils.d.ts +138 -0
- package/dist/types/services/task/constants.d.ts +91 -0
- package/dist/types/services/task/contact.d.ts +69 -0
- package/dist/types/services/task/dialer.d.ts +73 -0
- package/dist/types/services/task/digital/Digital.d.ts +22 -0
- package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +1194 -0
- package/dist/types/services/task/state-machine/actions.d.ts +10 -0
- package/dist/types/services/task/state-machine/constants.d.ts +107 -0
- package/dist/types/services/task/state-machine/guards.d.ts +102 -0
- package/dist/types/services/task/state-machine/index.d.ts +13 -0
- package/dist/types/services/task/state-machine/types.d.ts +269 -0
- package/dist/types/services/task/state-machine/uiControlsComputer.d.ts +9 -0
- package/dist/types/services/task/taskDataNormalizer.d.ts +10 -0
- package/dist/types/services/task/types.d.ts +1856 -0
- package/dist/types/services/task/voice/Voice.d.ts +184 -0
- package/dist/types/services/task/voice/WebRTC.d.ts +53 -0
- package/dist/types/types.d.ts +778 -0
- package/dist/types/utils/PageCache.d.ts +173 -0
- package/dist/types/webex-config.d.ts +53 -0
- package/dist/types/webex.d.ts +8 -0
- package/dist/types.js +130 -1
- package/dist/types.js.map +1 -1
- package/dist/webex.js +14 -2
- package/dist/webex.js.map +1 -1
- package/package.json +16 -12
- package/src/cc.ts +477 -51
- package/src/config.ts +6 -0
- package/src/constants.ts +21 -1
- package/src/index.ts +24 -5
- package/src/metrics/ai-docs/AGENTS.md +350 -0
- package/src/metrics/ai-docs/ARCHITECTURE.md +338 -0
- package/src/metrics/ai-docs/metrics-spec.md +854 -0
- package/src/metrics/behavioral-events.ts +120 -0
- package/src/metrics/constants.ts +37 -3
- package/src/services/ApiAiAssistant.ts +412 -0
- package/src/services/UserPreference.ts +509 -0
- package/src/services/agent/ai-docs/AGENTS.md +240 -0
- package/src/services/agent/ai-docs/ARCHITECTURE.md +304 -0
- package/src/services/agent/ai-docs/agent-spec.md +504 -0
- package/src/services/agent/types.ts +1 -1
- package/src/services/ai-docs/AGENTS.md +386 -0
- package/src/services/ai-docs/services-spec.md +492 -0
- package/src/services/config/Util.ts +10 -2
- package/src/services/config/ai-docs/AGENTS.md +255 -0
- package/src/services/config/ai-docs/ARCHITECTURE.md +426 -0
- package/src/services/config/ai-docs/config-spec.md +669 -0
- package/src/services/config/constants.ts +37 -1
- package/src/services/config/index.ts +45 -1
- package/src/services/config/types.ts +241 -11
- package/src/services/constants.ts +29 -0
- package/src/services/core/Err.ts +3 -0
- package/src/services/core/Utils.ts +143 -30
- package/src/services/core/ai-docs/AGENTS.md +381 -0
- package/src/services/core/ai-docs/ARCHITECTURE.md +698 -0
- package/src/services/core/ai-docs/core-spec.md +783 -0
- package/src/services/core/aqm-reqs.ts +100 -22
- package/src/services/core/websocket/WebSocketManager.ts +23 -6
- package/src/services/core/websocket/connection-service.ts +5 -1
- package/src/services/core/websocket/types.ts +1 -1
- package/src/services/index.ts +4 -0
- package/src/services/task/Task.ts +837 -0
- package/src/services/task/TaskFactory.ts +55 -0
- package/src/services/task/TaskManager.ts +793 -521
- package/src/services/task/TaskUtils.ts +314 -24
- package/src/services/task/ai-docs/AGENTS.md +457 -0
- package/src/services/task/ai-docs/ARCHITECTURE.md +594 -0
- package/src/services/task/ai-docs/task-spec.md +1319 -0
- package/src/services/task/constants.ts +23 -0
- package/src/services/task/dialer.ts +136 -1
- package/src/services/task/digital/Digital.ts +95 -0
- package/src/services/task/state-machine/TaskStateMachine.ts +1166 -0
- package/src/services/task/state-machine/actions.ts +738 -0
- package/src/services/task/state-machine/ai-docs/AGENTS.md +458 -0
- package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +1137 -0
- package/src/services/task/state-machine/ai-docs/task-state-machine-spec.md +2177 -0
- package/src/services/task/state-machine/constants.ts +172 -0
- package/src/services/task/state-machine/guards.ts +445 -0
- package/src/services/task/state-machine/index.ts +28 -0
- package/src/services/task/state-machine/types.ts +243 -0
- package/src/services/task/state-machine/uiControlsComputer.ts +961 -0
- package/src/services/task/taskDataNormalizer.ts +137 -0
- package/src/services/task/types.ts +734 -71
- package/src/services/task/voice/Voice.ts +1270 -0
- package/src/services/task/voice/WebRTC.ts +187 -0
- package/src/types.ts +205 -2
- package/src/utils/AGENTS.md +278 -0
- package/src/utils/ai-docs/utils-spec.md +381 -0
- package/src/webex.js +2 -0
- package/test/unit/spec/cc.ts +503 -43
- package/test/unit/spec/logger-proxy.ts +70 -0
- package/test/unit/spec/services/ApiAiAssistant.ts +273 -0
- package/test/unit/spec/services/UserPreference.ts +401 -0
- package/test/unit/spec/services/WebCallingService.ts +7 -1
- package/test/unit/spec/services/config/index.ts +85 -29
- package/test/unit/spec/services/core/Utils.ts +481 -2
- package/test/unit/spec/services/core/websocket/WebSocketManager.ts +137 -41
- package/test/unit/spec/services/core/websocket/connection-service.ts +3 -1
- package/test/unit/spec/services/task/AutoWrapup.ts +63 -0
- package/test/unit/spec/services/task/Task.ts +477 -0
- package/test/unit/spec/services/task/TaskFactory.ts +62 -0
- package/test/unit/spec/services/task/TaskManager.ts +1001 -1003
- package/test/unit/spec/services/task/TaskUtils.ts +235 -0
- package/test/unit/spec/services/task/dialer.ts +372 -96
- package/test/unit/spec/services/task/digital/Digital.ts +105 -0
- package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +2651 -0
- package/test/unit/spec/services/task/state-machine/guards.ts +637 -0
- package/test/unit/spec/services/task/state-machine/types.ts +18 -0
- package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +2663 -0
- package/test/unit/spec/services/task/taskTestUtils.ts +87 -0
- package/test/unit/spec/services/task/voice/Voice.ts +649 -0
- package/test/unit/spec/services/task/voice/WebRTC.ts +235 -0
- package/umd/contact-center.min.js +2 -2
- package/umd/contact-center.min.js.map +1 -1
- package/dist/services/task/index.js +0 -1525
- package/dist/services/task/index.js.map +0 -1
- package/src/services/task/index.ts +0 -1801
- package/test/unit/spec/services/task/index.ts +0 -2184
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import routingContact from '../contact';
|
|
2
|
+
import { ConsultPayload, ConsultEndPayload, ResumeRecordingPayload, TaskData, TaskResponse, IVoice, VoiceUIControlOptions, TransferPayLoad } from '../types';
|
|
3
|
+
import Task from '../Task';
|
|
4
|
+
import { TaskActionArgs } from '../state-machine';
|
|
5
|
+
import { WrapupData } from '../../config/types';
|
|
6
|
+
export default class Voice extends Task implements IVoice {
|
|
7
|
+
constructor(contact: ReturnType<typeof routingContact>, data: TaskData, callOptions?: VoiceUIControlOptions, wrapupData?: WrapupData, agentId?: string);
|
|
8
|
+
private getStateMachineSnapshot;
|
|
9
|
+
/**
|
|
10
|
+
* This method is used to accept the task.
|
|
11
|
+
* It is expected to be overridden by child classes.
|
|
12
|
+
* @returns Promise<TaskResponse>
|
|
13
|
+
* @throws Error
|
|
14
|
+
*/
|
|
15
|
+
accept(): Promise<TaskResponse>;
|
|
16
|
+
/**
|
|
17
|
+
* This method is used to decline the task.
|
|
18
|
+
* It is expected to be overridden by child classes.
|
|
19
|
+
* @returns Promise<TaskResponse>
|
|
20
|
+
* @throws Error
|
|
21
|
+
*/
|
|
22
|
+
decline(): Promise<TaskResponse>;
|
|
23
|
+
/**
|
|
24
|
+
* This is used to hold the task.
|
|
25
|
+
* @returns Promise<TaskResponse>
|
|
26
|
+
* @throws Error
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* task.hold().then(()=>{}).catch(()=>{})
|
|
30
|
+
* ```
|
|
31
|
+
* */
|
|
32
|
+
hold(): Promise<TaskResponse>;
|
|
33
|
+
/**
|
|
34
|
+
* This is used to resume the task.
|
|
35
|
+
* @returns Promise<TaskResponse>
|
|
36
|
+
* @throws Error
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* task.resume().then(()=>{}).catch(()=>{})
|
|
40
|
+
* ```
|
|
41
|
+
* */
|
|
42
|
+
resume(): Promise<TaskResponse>;
|
|
43
|
+
/**
|
|
44
|
+
* This is used to hold or resume the task.
|
|
45
|
+
* @param isHeld: boolean - true to hold the task, false to resume it
|
|
46
|
+
* @returns Promise<TaskResponse>
|
|
47
|
+
* @throws Error
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* task.holdResume(isHeld: true).then(()=>{}).catch(()=>{})
|
|
51
|
+
* ```
|
|
52
|
+
* */
|
|
53
|
+
holdResume(): Promise<TaskResponse>;
|
|
54
|
+
/**
|
|
55
|
+
* This is used to pause the call recording
|
|
56
|
+
* @returns Promise<TaskResponse>
|
|
57
|
+
* @throws Error
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* task.pauseRecording().then(()=>{}).catch(()=>{});
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
pauseRecording(): Promise<TaskResponse>;
|
|
64
|
+
/**
|
|
65
|
+
* This is used to pause the call recording
|
|
66
|
+
* @param resumeRecordingPayload
|
|
67
|
+
* @returns Promise<TaskResponse>
|
|
68
|
+
* @throws Error
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* task.resumeRecording(resumeRecordingPayload).then(()=>{}).catch(()=>{});
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
resumeRecording(resumeRecordingPayload?: ResumeRecordingPayload): Promise<TaskResponse>;
|
|
75
|
+
/**
|
|
76
|
+
* This is used to consult the task
|
|
77
|
+
* @param consultPayload
|
|
78
|
+
* @returns Promise<TaskResponse>
|
|
79
|
+
* @throws Error
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* const consultPayload = {
|
|
83
|
+
* destination: 'myBuddyAgentId',
|
|
84
|
+
* destinationType: DESTINATION_TYPE.AGENT,
|
|
85
|
+
* }
|
|
86
|
+
* task.consult(consultPayload).then(()=>{}).catch(()=>{});
|
|
87
|
+
* ```
|
|
88
|
+
* */
|
|
89
|
+
consult(consultPayload?: ConsultPayload): Promise<TaskResponse>;
|
|
90
|
+
/**
|
|
91
|
+
* This is used to end the consult session on the task.
|
|
92
|
+
* @param consultEndPayload - Payload indicating consult end flags and identifiers
|
|
93
|
+
* @returns Promise<TaskResponse>
|
|
94
|
+
* @throws Error
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* task.endConsult({
|
|
98
|
+
* isConsult: true,
|
|
99
|
+
* queueId: 'myQueueId',
|
|
100
|
+
* taskId: 'taskId',
|
|
101
|
+
* });
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
endConsult(consultEndPayload?: ConsultEndPayload): Promise<TaskResponse>;
|
|
105
|
+
/**
|
|
106
|
+
* This is used to transfer the task.
|
|
107
|
+
* @param payload - Transfer payload
|
|
108
|
+
* @returns Promise<TaskResponse>
|
|
109
|
+
* @throws Error
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* task.transfer({
|
|
113
|
+
* to: 'destinationId',
|
|
114
|
+
* destinationType: DESTINATION_TYPE.AGENT,
|
|
115
|
+
* consult: true, // Optional, if true will perform a consult transfer else blind transfer
|
|
116
|
+
* });
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
transfer(payload: TransferPayLoad): Promise<TaskResponse>;
|
|
120
|
+
/**
|
|
121
|
+
* Start a consult conference, merging main and consult calls.
|
|
122
|
+
*/
|
|
123
|
+
consultConference(): Promise<TaskResponse>;
|
|
124
|
+
/**
|
|
125
|
+
* Exit from a conference call.
|
|
126
|
+
* Per conference-spec.md:
|
|
127
|
+
* - Primary agent exits to wrapup
|
|
128
|
+
* - Non-primary agent exits to available/connected
|
|
129
|
+
* - Other participants continue the call
|
|
130
|
+
*
|
|
131
|
+
* @returns Promise<TaskResponse>
|
|
132
|
+
* @throws Error if not in conference or exit fails
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* task.exitConference().then(() => {}).catch(() => {});
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
exitConference(): Promise<TaskResponse>;
|
|
139
|
+
/**
|
|
140
|
+
* Transfer the conference to another participant.
|
|
141
|
+
* Per conference-spec.md: Only primary agent can transfer conference.
|
|
142
|
+
* After transfer, the transferring agent exits to wrapup.
|
|
143
|
+
*
|
|
144
|
+
* @returns Promise<TaskResponse>
|
|
145
|
+
* @throws Error if not in conference or transfer fails
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* task.transferConference().then(() => {}).catch(() => {});
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
transferConference(): Promise<TaskResponse>;
|
|
152
|
+
/**
|
|
153
|
+
* Toggle between consult call and main call during consulting.
|
|
154
|
+
* If on consult leg (consultCallHeld = false), switches to main call by holding consult.
|
|
155
|
+
* If on main call (consultCallHeld = true), switches to consult by resuming consult.
|
|
156
|
+
*
|
|
157
|
+
* @returns Promise<TaskResponse>
|
|
158
|
+
* @throws Error if not in CONSULTING state or no consult media resource
|
|
159
|
+
* @example
|
|
160
|
+
* ```typescript
|
|
161
|
+
* await task.switchCall();
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
switchCall(): Promise<TaskResponse>;
|
|
165
|
+
protected getChannelSpecificActionOverrides(): {
|
|
166
|
+
emitTaskHold: ({ event }: TaskActionArgs) => void;
|
|
167
|
+
emitTaskResume: ({ event }: TaskActionArgs) => void;
|
|
168
|
+
emitTaskRecordingStarted: ({ event }: TaskActionArgs) => void;
|
|
169
|
+
emitTaskRecordingPaused: ({ event }: TaskActionArgs) => void;
|
|
170
|
+
emitTaskRecordingPauseFailed: ({ event }: TaskActionArgs) => void;
|
|
171
|
+
emitTaskRecordingResumed: ({ event }: TaskActionArgs) => void;
|
|
172
|
+
emitTaskRecordingResumeFailed: ({ event }: TaskActionArgs) => void;
|
|
173
|
+
emitTaskParticipantJoined: ({ event }: TaskActionArgs) => void;
|
|
174
|
+
emitTaskParticipantLeft: ({ event }: TaskActionArgs) => void;
|
|
175
|
+
emitTaskConferenceStarted: ({ event }: TaskActionArgs) => void;
|
|
176
|
+
emitTaskConferenceEnded: ({ event }: TaskActionArgs) => void;
|
|
177
|
+
emitTaskConferenceFailed: ({ event }: TaskActionArgs) => void;
|
|
178
|
+
emitTaskExitConference: ({ event }: TaskActionArgs) => void;
|
|
179
|
+
emitTaskTransferConference: ({ event }: TaskActionArgs) => void;
|
|
180
|
+
emitTaskSwitchCall: ({ event }: TaskActionArgs) => void;
|
|
181
|
+
emitTaskTransferConferenceFailed: ({ event }: TaskActionArgs) => void;
|
|
182
|
+
emitTaskOutdialFailed: ({ event }: TaskActionArgs) => void;
|
|
183
|
+
};
|
|
184
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import routingContact from '../contact';
|
|
2
|
+
import { TaskData, TaskResponse, IWebRTC, VoiceUIControlOptions } from '../types';
|
|
3
|
+
import Voice from './Voice';
|
|
4
|
+
import WebCallingService from '../../WebCallingService';
|
|
5
|
+
import { WrapupData } from '../../config/types';
|
|
6
|
+
export default class WebRTC extends Voice implements IWebRTC {
|
|
7
|
+
private localAudioStream;
|
|
8
|
+
private webCallingService;
|
|
9
|
+
constructor(contact: ReturnType<typeof routingContact>, webCallingService: WebCallingService, data: TaskData, callOptions?: VoiceUIControlOptions, wrapupData?: WrapupData, agentId?: string);
|
|
10
|
+
private registerWebCallListeners;
|
|
11
|
+
private handleRemoteMedia;
|
|
12
|
+
/**
|
|
13
|
+
* This method is used to unregister the web call listeners.
|
|
14
|
+
* @returns void
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* task.unregisterWebCallListeners();
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
unregisterWebCallListeners(): void;
|
|
21
|
+
/**
|
|
22
|
+
* This is used for incoming task accept by agent.
|
|
23
|
+
*
|
|
24
|
+
* @returns Promise<TaskResponse>
|
|
25
|
+
* @throws Error
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* task.accept().then(()=>{}).catch(()=>{})
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
accept(): Promise<TaskResponse>;
|
|
32
|
+
/**
|
|
33
|
+
* This is used for the incoming task decline by agent.
|
|
34
|
+
*
|
|
35
|
+
* @returns Promise<TaskResponse>
|
|
36
|
+
* @throws Error
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* task.decline().then(()=>{}).catch(()=>{})
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
decline(): Promise<TaskResponse>;
|
|
43
|
+
/**
|
|
44
|
+
* This is used for the placing the call in mute or unmute by the agent.
|
|
45
|
+
*
|
|
46
|
+
* @throws Error
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* task.toggleMute().then(()=>{}).catch(()=>{})
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
toggleMute(): Promise<void>;
|
|
53
|
+
}
|