@webex/contact-center 3.12.0-llmrefactor.1 → 3.12.0-llmrefactor.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.sdd/manifest.json +7 -5
- package/ai-docs/ARCHITECTURE.md +1 -1
- package/ai-docs/CONTRACTS.md +8 -3
- package/ai-docs/SECURITY.md +1 -1
- package/ai-docs/contact-center-spec.md +22 -4
- package/ai-docs/features/consult-transfer-list-policy/spec/feature-spec.md +362 -0
- package/dist/cc.js +544 -12
- package/dist/cc.js.map +1 -1
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +10 -2
- package/dist/constants.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/metrics/MetricsManager.js +16 -0
- package/dist/metrics/MetricsManager.js.map +1 -1
- package/dist/metrics/behavioral-events.js +104 -0
- package/dist/metrics/behavioral-events.js.map +1 -1
- package/dist/metrics/constants.js +18 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/services/AddressBook.js +18 -15
- package/dist/services/AddressBook.js.map +1 -1
- package/dist/services/AnswerCallOnWebexService.js +202 -0
- package/dist/services/AnswerCallOnWebexService.js.map +1 -0
- package/dist/services/EntryPoint.js +46 -68
- package/dist/services/EntryPoint.js.map +1 -1
- package/dist/services/Queue.js +27 -22
- package/dist/services/Queue.js.map +1 -1
- package/dist/services/WebexCrossClientService.js +222 -0
- package/dist/services/WebexCrossClientService.js.map +1 -0
- package/dist/services/WxAppTelephonyMercurySync.js +108 -0
- package/dist/services/WxAppTelephonyMercurySync.js.map +1 -0
- package/dist/services/config/Util.js +3 -0
- package/dist/services/config/Util.js.map +1 -1
- package/dist/services/config/constants.js +10 -6
- package/dist/services/config/constants.js.map +1 -1
- package/dist/services/config/types.js +4 -0
- package/dist/services/config/types.js.map +1 -1
- package/dist/services/core/Err.js.map +1 -1
- package/dist/services/core/WebexRequest.js +6 -2
- package/dist/services/core/WebexRequest.js.map +1 -1
- package/dist/services/core/aqm-reqs.js +28 -14
- package/dist/services/core/aqm-reqs.js.map +1 -1
- package/dist/services/core/types.js.map +1 -1
- package/dist/services/task/Task.js +73 -7
- package/dist/services/task/Task.js.map +1 -1
- package/dist/services/task/TaskFactory.js +8 -4
- package/dist/services/task/TaskFactory.js.map +1 -1
- package/dist/services/task/TaskManager.js +490 -21
- package/dist/services/task/TaskManager.js.map +1 -1
- package/dist/services/task/WebexCallingUtils.js +70 -0
- package/dist/services/task/WebexCallingUtils.js.map +1 -0
- package/dist/services/task/constants.js +4 -1
- package/dist/services/task/constants.js.map +1 -1
- package/dist/services/task/contact.js +29 -0
- package/dist/services/task/contact.js.map +1 -1
- package/dist/services/task/digital/Digital.js +3 -2
- package/dist/services/task/digital/Digital.js.map +1 -1
- package/dist/services/task/state-machine/TaskStateMachine.js +162 -53
- package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -1
- package/dist/services/task/state-machine/actions.js +6 -1
- package/dist/services/task/state-machine/actions.js.map +1 -1
- package/dist/services/task/state-machine/guards.js +7 -10
- package/dist/services/task/state-machine/guards.js.map +1 -1
- package/dist/services/task/state-machine/types.js.map +1 -1
- package/dist/services/task/state-machine/uiControlsComputer.js +118 -18
- package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -1
- package/dist/services/task/types.js +16 -1
- package/dist/services/task/types.js.map +1 -1
- package/dist/services/task/voice/Voice.js +456 -15
- package/dist/services/task/voice/Voice.js.map +1 -1
- package/dist/services/task/voice/WebRTC.js +4 -1
- package/dist/services/task/voice/WebRTC.js.map +1 -1
- package/dist/services/task/voice/wxAppVoiceMethods.js +354 -0
- package/dist/services/task/voice/wxAppVoiceMethods.js.map +1 -0
- package/dist/services/wxAppDiagnosticLogging.js +122 -0
- package/dist/services/wxAppDiagnosticLogging.js.map +1 -0
- package/dist/services/wxAppTelephonyUtils.js +19 -0
- package/dist/services/wxAppTelephonyUtils.js.map +1 -0
- package/dist/types/cc.d.ts +78 -4
- package/dist/types/config.d.ts +7 -0
- package/dist/types/constants.d.ts +8 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/metrics/MetricsManager.d.ts +6 -0
- package/dist/types/metrics/constants.d.ts +17 -0
- package/dist/types/services/AddressBook.d.ts +2 -1
- package/dist/types/services/AnswerCallOnWebexService.d.ts +38 -0
- package/dist/types/services/EntryPoint.d.ts +7 -5
- package/dist/types/services/Queue.d.ts +5 -3
- package/dist/types/services/WebexCrossClientService.d.ts +32 -0
- package/dist/types/services/WxAppTelephonyMercurySync.d.ts +28 -0
- package/dist/types/services/config/constants.d.ts +8 -5
- package/dist/types/services/config/types.d.ts +17 -4
- package/dist/types/services/core/Err.d.ts +2 -0
- package/dist/types/services/core/WebexRequest.d.ts +1 -0
- package/dist/types/services/core/types.d.ts +2 -0
- package/dist/types/services/task/Task.d.ts +20 -2
- package/dist/types/services/task/TaskFactory.d.ts +2 -1
- package/dist/types/services/task/WebexCallingUtils.d.ts +11 -0
- package/dist/types/services/task/constants.d.ts +3 -0
- package/dist/types/services/task/contact.d.ts +4 -0
- package/dist/types/services/task/digital/Digital.d.ts +2 -2
- package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +304 -56
- package/dist/types/services/task/state-machine/guards.d.ts +6 -5
- package/dist/types/services/task/state-machine/types.d.ts +9 -1
- package/dist/types/services/task/types.d.ts +81 -4
- package/dist/types/services/task/voice/Voice.d.ts +52 -9
- package/dist/types/services/task/voice/WebRTC.d.ts +2 -2
- package/dist/types/services/task/voice/wxAppVoiceMethods.d.ts +55 -0
- package/dist/types/services/wxAppDiagnosticLogging.d.ts +51 -0
- package/dist/types/services/wxAppTelephonyUtils.d.ts +5 -0
- package/dist/types/types.d.ts +14 -8
- package/dist/types/utils/PageCache.d.ts +20 -3
- package/dist/types.js +7 -2
- package/dist/types.js.map +1 -1
- package/dist/utils/PageCache.js +19 -5
- package/dist/utils/PageCache.js.map +1 -1
- package/dist/webex.js +1 -1
- package/package.json +8 -8
- package/src/cc.ts +657 -12
- package/src/config.ts +7 -0
- package/src/constants.ts +8 -0
- package/src/index.ts +2 -0
- package/src/metrics/MetricsManager.ts +16 -0
- package/src/metrics/ai-docs/metrics-spec.md +78 -10
- package/src/metrics/behavioral-events.ts +106 -0
- package/src/metrics/constants.ts +20 -0
- package/src/services/AddressBook.ts +17 -6
- package/src/services/AnswerCallOnWebexService.ts +239 -0
- package/src/services/EntryPoint.ts +59 -60
- package/src/services/Queue.ts +29 -12
- package/src/services/WebexCrossClientService.ts +293 -0
- package/src/services/WxAppTelephonyMercurySync.ts +142 -0
- package/src/services/agent/ai-docs/agent-spec.md +1 -0
- package/src/services/ai-docs/AGENTS.md +10 -10
- package/src/services/ai-docs/services-spec.md +6 -1
- package/src/services/config/Util.ts +3 -0
- package/src/services/config/ai-docs/AGENTS.md +1 -1
- package/src/services/config/ai-docs/ARCHITECTURE.md +2 -2
- package/src/services/config/ai-docs/config-spec.md +6 -0
- package/src/services/config/constants.ts +10 -6
- package/src/services/config/types.ts +16 -4
- package/src/services/core/Err.ts +1 -0
- package/src/services/core/WebexRequest.ts +3 -1
- package/src/services/core/ai-docs/core-spec.md +5 -1
- package/src/services/core/aqm-reqs.ts +30 -15
- package/src/services/core/types.ts +2 -0
- package/src/services/task/Task.ts +79 -8
- package/src/services/task/TaskFactory.ts +8 -3
- package/src/services/task/TaskManager.ts +716 -17
- package/src/services/task/WebexCallingUtils.ts +136 -0
- package/src/services/task/ai-docs/ARCHITECTURE.md +1 -0
- package/src/services/task/ai-docs/task-spec.md +156 -3
- package/src/services/task/constants.ts +3 -0
- package/src/services/task/contact.ts +30 -0
- package/src/services/task/digital/Digital.ts +4 -2
- package/src/services/task/state-machine/TaskStateMachine.ts +235 -81
- package/src/services/task/state-machine/actions.ts +5 -2
- package/src/services/task/state-machine/ai-docs/AGENTS.md +6 -4
- package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +35 -16
- package/src/services/task/state-machine/ai-docs/task-state-machine-spec.md +103 -33
- package/src/services/task/state-machine/guards.ts +7 -10
- package/src/services/task/state-machine/types.ts +16 -1
- package/src/services/task/state-machine/uiControlsComputer.ts +206 -32
- package/src/services/task/types.ts +114 -4
- package/src/services/task/voice/Voice.ts +595 -14
- package/src/services/task/voice/WebRTC.ts +5 -1
- package/src/services/task/voice/wxAppVoiceMethods.ts +516 -0
- package/src/services/wxAppDiagnosticLogging.ts +174 -0
- package/src/services/wxAppTelephonyUtils.ts +14 -0
- package/src/types.ts +33 -9
- package/src/utils/AGENTS.md +21 -10
- package/src/utils/PageCache.ts +38 -5
- package/src/utils/ai-docs/utils-spec.md +21 -11
- package/test/unit/spec/cc.ts +1522 -19
- package/test/unit/spec/metrics/MetricsManager.ts +25 -0
- package/test/unit/spec/metrics/behavioral-events.ts +60 -0
- package/test/unit/spec/services/AddressBook.ts +37 -6
- package/test/unit/spec/services/AnswerCallOnWebexService.ts +264 -0
- package/test/unit/spec/services/EntryPoint.ts +87 -40
- package/test/unit/spec/services/Queue.ts +123 -12
- package/test/unit/spec/services/WebexCrossClientService.ts +467 -0
- package/test/unit/spec/services/WxAppTelephonyMercurySync.ts +136 -0
- package/test/unit/spec/services/config/Util.ts +85 -0
- package/test/unit/spec/services/core/WebexRequest.ts +3 -1
- package/test/unit/spec/services/core/aqm-reqs.ts +113 -1
- package/test/unit/spec/services/task/Task.ts +274 -6
- package/test/unit/spec/services/task/TaskFactory.ts +39 -2
- package/test/unit/spec/services/task/TaskManager.ts +1717 -9
- package/test/unit/spec/services/task/WebexCallingUtils.ts +153 -0
- package/test/unit/spec/services/task/contact.ts +33 -0
- package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +1485 -109
- package/test/unit/spec/services/task/state-machine/guards.ts +210 -8
- package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +445 -7
- package/test/unit/spec/services/task/voice/Voice.ts +1412 -0
- package/test/unit/spec/services/task/voice/wxAppVoiceMethods.ts +603 -0
- package/test/unit/spec/services/wxAppDiagnosticLogging.ts +143 -0
- package/umd/contact-center.min.js +2 -2
- package/umd/contact-center.min.js.map +1 -1
package/dist/types/cc.d.ts
CHANGED
|
@@ -163,6 +163,28 @@ export default class ContactCenter extends WebexPlugin implements IContactCenter
|
|
|
163
163
|
* @private
|
|
164
164
|
*/
|
|
165
165
|
private webCallingService;
|
|
166
|
+
/**
|
|
167
|
+
* REST telephony for wxApp thick-client answer (WXCC-6026)
|
|
168
|
+
* @private
|
|
169
|
+
*/
|
|
170
|
+
private answerCallOnWebexService;
|
|
171
|
+
/**
|
|
172
|
+
* usersub cross-client state for Webex App toast suppression
|
|
173
|
+
* @private
|
|
174
|
+
*/
|
|
175
|
+
private webexCrossClientService;
|
|
176
|
+
/**
|
|
177
|
+
* Mercury telephony mute sync for wxApp thick-client answer
|
|
178
|
+
* @private
|
|
179
|
+
*/
|
|
180
|
+
private wxAppTelephonyMercurySync;
|
|
181
|
+
/** True when wxApp mute sync opened Mercury (Extension/DN-only profiles). */
|
|
182
|
+
private wxAppMercuryConnectedByCc;
|
|
183
|
+
/** True when wxApp mute sync registered the Webex device. */
|
|
184
|
+
private wxAppDeviceRegisteredByCc;
|
|
185
|
+
private static readonly WXAPP_FALSE_PUBLISH_RETRY_DELAY_MS;
|
|
186
|
+
private static readonly WXAPP_FALSE_PUBLISH_MAX_RETRIES;
|
|
187
|
+
private wxAppFalsePublishRetryTimer?;
|
|
166
188
|
/**
|
|
167
189
|
* Core service managers for Contact Center operations
|
|
168
190
|
* Includes agent, connection, and configuration services
|
|
@@ -574,6 +596,58 @@ export default class ContactCenter extends WebexPlugin implements IContactCenter
|
|
|
574
596
|
* @private
|
|
575
597
|
*/
|
|
576
598
|
private validatePluginConfig;
|
|
599
|
+
/**
|
|
600
|
+
* Whether wxApp thick-client answer is enabled for this SDK instance.
|
|
601
|
+
* @public
|
|
602
|
+
*/
|
|
603
|
+
isWxBetterTogetherEnabled(): boolean;
|
|
604
|
+
/**
|
|
605
|
+
* Current station login option (Extension, Dial Number, or Browser/Desktop).
|
|
606
|
+
* Prefer webCallingService — updated on every stationLogin before wxApp hooks run.
|
|
607
|
+
* @private
|
|
608
|
+
*/
|
|
609
|
+
private getCurrentStationLoginOption;
|
|
610
|
+
/**
|
|
611
|
+
* wxApp thick-client answer is supported for Extension and Dial Number station login only —
|
|
612
|
+
* not Browser/Desktop (WebRTC) login.
|
|
613
|
+
* @private
|
|
614
|
+
*/
|
|
615
|
+
private assertWxAppStationLoginSupportedForEnable;
|
|
616
|
+
/**
|
|
617
|
+
* Clears runtime wxApp config after logout/deregister so stale flags do not apply on relogin.
|
|
618
|
+
* @private
|
|
619
|
+
*/
|
|
620
|
+
private resetEnableWxBetterTogetherConfig;
|
|
621
|
+
private getWxAppTelephonyTaskType;
|
|
622
|
+
private ensureWxAppPostStationLogin;
|
|
623
|
+
private clearWxAppFalsePublishRetryTimer;
|
|
624
|
+
private scheduleForcedFalsePublishRetry;
|
|
625
|
+
/**
|
|
626
|
+
* Retries compensating false publish after rollback failure, regardless of enabled flag.
|
|
627
|
+
* @private
|
|
628
|
+
*/
|
|
629
|
+
private scheduleCompensatingFalsePublishRetry;
|
|
630
|
+
private scheduleFalsePublishRetry;
|
|
631
|
+
/**
|
|
632
|
+
* Best-effort rollback when usersub true was published but wxApp setup did not complete.
|
|
633
|
+
* @private
|
|
634
|
+
*/
|
|
635
|
+
private revertWxAppCrossClientPublish;
|
|
636
|
+
private ensureWxAppDeviceRegistered;
|
|
637
|
+
private ensureWxAppMercuryConnected;
|
|
638
|
+
/**
|
|
639
|
+
* Disconnects Mercury and unregisters the device when wxApp mute sync opened them.
|
|
640
|
+
* @private
|
|
641
|
+
*/
|
|
642
|
+
private releaseWxAppMercuryResources;
|
|
643
|
+
/**
|
|
644
|
+
* Clears wxApp runtime state and feature-owned resources. Publish failures are logged;
|
|
645
|
+
* optional rethrow for deregister when callers need to surface usersub errors.
|
|
646
|
+
* @private
|
|
647
|
+
*/
|
|
648
|
+
private teardownWxAppLocalState;
|
|
649
|
+
private ensureWxAppMercuryAndSubscribe;
|
|
650
|
+
private publishAnswerOnWebexCrossClientState;
|
|
577
651
|
/**
|
|
578
652
|
* Initializes event listeners for the Contact Center service
|
|
579
653
|
* Sets up handlers for connection state changes and other core events
|
|
@@ -880,14 +954,14 @@ export default class ContactCenter extends WebexPlugin implements IContactCenter
|
|
|
880
954
|
*/
|
|
881
955
|
updateAgentProfile(data: AgentProfileUpdate): Promise<UpdateDeviceTypeResponse>;
|
|
882
956
|
/**
|
|
883
|
-
* Returns paginated entry points
|
|
884
|
-
*
|
|
957
|
+
* Returns paginated entry points using the EntryPoint service defaults.
|
|
958
|
+
* Existing request parameters can override those defaults.
|
|
885
959
|
* @public
|
|
886
960
|
*/
|
|
887
961
|
getEntryPoints(params?: EntryPointSearchParams): Promise<EntryPointListResponse>;
|
|
888
962
|
/**
|
|
889
|
-
* Returns paginated contact service queues
|
|
890
|
-
*
|
|
963
|
+
* Returns paginated contact service queues using the Queue service defaults.
|
|
964
|
+
* Existing request parameters can override those defaults.
|
|
891
965
|
* @public
|
|
892
966
|
*/
|
|
893
967
|
getQueues(params?: ContactServiceQueueSearchParams): Promise<ContactServiceQueuesResponse>;
|
package/dist/types/config.d.ts
CHANGED
|
@@ -31,6 +31,13 @@ declare const _default: {
|
|
|
31
31
|
* @default false
|
|
32
32
|
*/
|
|
33
33
|
disableWebRTCRegistration: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Whether wxApp Better Together is enabled at SDK init.
|
|
36
|
+
* Must be set before SDK init. Default false (WXCC-6026).
|
|
37
|
+
* @type {boolean}
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
enableWxBetterTogether: boolean;
|
|
34
41
|
/**
|
|
35
42
|
* The type of client making the connection.
|
|
36
43
|
* @type {string}
|
|
@@ -13,6 +13,7 @@ export declare const AQM_REQS_FILE = "aqm-reqs";
|
|
|
13
13
|
export declare const WEBEX_REQUEST_FILE = "WebexRequest";
|
|
14
14
|
export declare const TASK_MANAGER_FILE = "TaskManager";
|
|
15
15
|
export declare const TASK_FILE = "Task";
|
|
16
|
+
export declare const INBOUND_DIRECTION = "INBOUND";
|
|
16
17
|
export declare const OUTDIAL_DIRECTION = "OUTBOUND";
|
|
17
18
|
export declare const ATTRIBUTES: {};
|
|
18
19
|
export declare const OUTDIAL_MEDIA_TYPE = "telephony";
|
|
@@ -50,9 +51,11 @@ export declare const METHODS: {
|
|
|
50
51
|
TRANSFER_CALL: string;
|
|
51
52
|
CONSULT_TRANSFER: string;
|
|
52
53
|
CONSULT_CONFERENCE: string;
|
|
54
|
+
DROP_CONFERENCE_PARTICIPANT: string;
|
|
53
55
|
EXIT_CONFERENCE: string;
|
|
54
56
|
TRANSFER_CONFERENCE: string;
|
|
55
57
|
TOGGLE_MUTE: string;
|
|
58
|
+
TRANSMIT_DTMF: string;
|
|
56
59
|
COMPLETE_TRANSFER: string;
|
|
57
60
|
GET_OUTDIAL_ANI_ENTRIES: string;
|
|
58
61
|
ACCEPT_PREVIEW_CONTACT: string;
|
|
@@ -63,4 +66,9 @@ export declare const METHODS: {
|
|
|
63
66
|
GET_REAL_TIME_ASSISTANCE: string;
|
|
64
67
|
SEND_REAL_TIME_ASSISTANCE_USER_ACTION: string;
|
|
65
68
|
FETCH_HISTORIC_TRANSCRIPTS: string;
|
|
69
|
+
SET_MANAGE_WEBEX_CALLING_IN_WXCC: string;
|
|
70
|
+
IS_WX_BETTER_TOGETHER_ENABLED: string;
|
|
71
|
+
SYNC_WXAPP_MUTE_FROM_MERCURY: string;
|
|
72
|
+
GET_CALL_DETAILS_ON_WEBEX: string;
|
|
73
|
+
ENSURE_WXAPP_MERCURY_CONNECTED: string;
|
|
66
74
|
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -98,7 +98,9 @@ IEventEmitter,
|
|
|
98
98
|
/** Task interface */
|
|
99
99
|
ITask, Interaction, TaskData,
|
|
100
100
|
/** Task response */
|
|
101
|
-
TaskResponse,
|
|
101
|
+
TaskResponse,
|
|
102
|
+
/** Conference participant drop request */
|
|
103
|
+
DropConferenceParticipantPayload, ConsultPayload, ConsultEndPayload, ConsultTransferPayLoad,
|
|
102
104
|
/** Dialer payload */
|
|
103
105
|
DialerPayload, TransferPayLoad, ResumeRecordingPayload, WrapupPayLoad,
|
|
104
106
|
/** UI control types for task buttons */
|
|
@@ -178,6 +178,12 @@ export default class MetricsManager {
|
|
|
178
178
|
* MetricsManager.getInstance().timeEvent(['AGENT_LOGIN', 'AGENT_LOGOUT']);
|
|
179
179
|
*/
|
|
180
180
|
timeEvent(keys: string | string[]): void;
|
|
181
|
+
/**
|
|
182
|
+
* Clears a running timed event without emitting a metric.
|
|
183
|
+
* @param keys - A string or array of strings representing event keys (same as timeEvent).
|
|
184
|
+
* @public
|
|
185
|
+
*/
|
|
186
|
+
cancelTimedEvent(keys: string | string[]): void;
|
|
181
187
|
/**
|
|
182
188
|
* Sets the Webex SDK instance and marks the manager as ready when the SDK is ready.
|
|
183
189
|
* @param webex - The Webex SDK instance.
|
|
@@ -124,10 +124,27 @@ export declare const METRIC_EVENT_NAMES: {
|
|
|
124
124
|
readonly TASK_CONFERENCE_TRANSFER_FAILED: "Task Conference Transfer Failed";
|
|
125
125
|
readonly TASK_CONFERENCE_EXIT_SUCCESS: "Task Conference Exit Success";
|
|
126
126
|
readonly TASK_CONFERENCE_EXIT_FAILED: "Task Conference Exit Failed";
|
|
127
|
+
readonly TASK_CONFERENCE_PARTICIPANT_DROP_SUCCESS: "Task Conference Participant Drop Success";
|
|
128
|
+
readonly TASK_CONFERENCE_PARTICIPANT_DROP_FAILED: "Task Conference Participant Drop Failed";
|
|
127
129
|
readonly TASK_SWITCH_CALL_SUCCESS: "Task Switch Call Success";
|
|
128
130
|
readonly TASK_SWITCH_CALL_FAILED: "Task Switch Call Failed";
|
|
129
131
|
readonly TASK_OUTDIAL_SUCCESS: "Task Outdial Success";
|
|
130
132
|
readonly TASK_OUTDIAL_FAILED: "Task Outdial Failed";
|
|
133
|
+
readonly WXAPP_TASK_MUTE_SUCCESS: "WxApp Task Mute Success";
|
|
134
|
+
readonly WXAPP_TASK_MUTE_FAILED: "WxApp Task Mute Failed";
|
|
135
|
+
readonly WXAPP_TASK_DTMF_SUCCESS: "WxApp Task Dtmf Success";
|
|
136
|
+
readonly WXAPP_TASK_DTMF_FAILED: "WxApp Task Dtmf Failed";
|
|
137
|
+
readonly WXAPP_TASK_ACCEPT_SUCCESS: "WxApp Task Accept Success";
|
|
138
|
+
readonly WXAPP_TASK_ACCEPT_FAILED: "WxApp Task Accept Failed";
|
|
139
|
+
readonly WXAPP_TASK_DECLINE_SUCCESS: "WxApp Task Decline Success";
|
|
140
|
+
readonly WXAPP_TASK_DECLINE_FAILED: "WxApp Task Decline Failed";
|
|
141
|
+
readonly WXAPP_SESSION_INIT_SUCCESS: "WxApp Session Init Success";
|
|
142
|
+
readonly WXAPP_SESSION_INIT_FAILED: "WxApp Session Init Failed";
|
|
143
|
+
readonly WXAPP_SESSION_SKIPPED: "WxApp Session Skipped";
|
|
144
|
+
readonly WXAPP_USERSUB_PUBLISH_SUCCESS: "WxApp Usersub Publish Success";
|
|
145
|
+
readonly WXAPP_USERSUB_PUBLISH_FAILED: "WxApp Usersub Publish Failed";
|
|
146
|
+
readonly WXAPP_MERCURY_SUBSCRIBE_SUCCESS: "WxApp Mercury Subscribe Success";
|
|
147
|
+
readonly WXAPP_MERCURY_SUBSCRIBE_FAILED: "WxApp Mercury Subscribe Failed";
|
|
131
148
|
readonly UPLOAD_LOGS_SUCCESS: "Upload Logs Success";
|
|
132
149
|
readonly UPLOAD_LOGS_FAILED: "Upload Logs Failed";
|
|
133
150
|
readonly WEBSOCKET_DEREGISTER_SUCCESS: "Websocket Deregister Success";
|
|
@@ -52,7 +52,8 @@ export declare class AddressBook {
|
|
|
52
52
|
constructor(webex: WebexSDK, getAddressBookId: () => string);
|
|
53
53
|
/**
|
|
54
54
|
* Fetches address book entries for a specific address book using the entry API
|
|
55
|
-
* @param {AddressBookEntrySearchParams} [params] - Search and
|
|
55
|
+
* @param {AddressBookEntrySearchParams} [params] - Search, pagination, and optional sort parameters
|
|
56
|
+
* including addressBookId. Sorting defaults to name ascending.
|
|
56
57
|
* @returns {Promise<AddressBookEntriesResponse>} Promise resolving to address book entries
|
|
57
58
|
* @throws {Error} If the API call fails
|
|
58
59
|
* @public
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { IHttpResponse, WebexSDK } from '../types';
|
|
2
|
+
export type WxAppTelephonyError = Error & {
|
|
3
|
+
isWxAppTelephonyError: true;
|
|
4
|
+
trackingId?: string;
|
|
5
|
+
status?: number | string;
|
|
6
|
+
};
|
|
7
|
+
export type AnswerCallParams = {
|
|
8
|
+
callId: string;
|
|
9
|
+
endpointId: string;
|
|
10
|
+
lineOwnerId?: string;
|
|
11
|
+
};
|
|
12
|
+
export type CallIdParams = {
|
|
13
|
+
callId: string;
|
|
14
|
+
lineOwnerId?: string;
|
|
15
|
+
};
|
|
16
|
+
export type TransmitDtmfParams = CallIdParams & {
|
|
17
|
+
dtmf: string;
|
|
18
|
+
};
|
|
19
|
+
export type CallDetailsResponse = {
|
|
20
|
+
muted?: boolean;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* REST telephony client for wxApp thick-client answer (WXCC-6026).
|
|
24
|
+
* Separate from WebCallingService (WebRTC/Mobius).
|
|
25
|
+
*/
|
|
26
|
+
export default class AnswerCallOnWebexService {
|
|
27
|
+
private webex;
|
|
28
|
+
constructor(webex: WebexSDK);
|
|
29
|
+
private getTelephonyBaseUrl;
|
|
30
|
+
private extractTrackingId;
|
|
31
|
+
private telephonyRequest;
|
|
32
|
+
answerCall(params: AnswerCallParams): Promise<IHttpResponse>;
|
|
33
|
+
rejectCall(params: CallIdParams): Promise<IHttpResponse>;
|
|
34
|
+
muteCall(params: CallIdParams): Promise<IHttpResponse>;
|
|
35
|
+
unmuteCall(params: CallIdParams): Promise<IHttpResponse>;
|
|
36
|
+
transmitDtmf(params: TransmitDtmfParams): Promise<IHttpResponse>;
|
|
37
|
+
getCallDetails(params: CallIdParams): Promise<CallDetailsResponse>;
|
|
38
|
+
}
|
|
@@ -27,7 +27,7 @@ import type { EntryPointListResponse, EntryPointSearchParams } from '../types';
|
|
|
27
27
|
* });
|
|
28
28
|
*
|
|
29
29
|
* // Search for specific entry points
|
|
30
|
-
* const searchResults = await entryPointAPI.
|
|
30
|
+
* const searchResults = await entryPointAPI.getEntryPoints({
|
|
31
31
|
* search: 'support',
|
|
32
32
|
* filter: 'type=="voice"'
|
|
33
33
|
* });
|
|
@@ -37,7 +37,6 @@ export declare class EntryPoint {
|
|
|
37
37
|
private webexRequest;
|
|
38
38
|
private webex;
|
|
39
39
|
private metricsManager;
|
|
40
|
-
private pageCache;
|
|
41
40
|
/**
|
|
42
41
|
* Creates an instance of EntryPoint
|
|
43
42
|
* @param {WebexSDK} webex - The Webex SDK instance
|
|
@@ -45,14 +44,17 @@ export declare class EntryPoint {
|
|
|
45
44
|
*/
|
|
46
45
|
constructor(webex: WebexSDK);
|
|
47
46
|
/**
|
|
48
|
-
* Fetches entry
|
|
49
|
-
*
|
|
47
|
+
* Fetches entry-point dial-number mappings for the organization with pagination support. By
|
|
48
|
+
* default, returns the agent's desktop-profile-filtered mappings in backend entry-point-name order.
|
|
49
|
+
* Search, filter, attribute, and sort parameters can customize the request while desktop-profile
|
|
50
|
+
* scoping and required mapping fields remain SDK-owned.
|
|
51
|
+
* @param {EntryPointSearchParams} [params] - Search, pagination, and compatible override parameters.
|
|
50
52
|
* @returns {Promise<EntryPointListResponse>} Promise resolving to paginated entry points
|
|
51
53
|
* @throws {Error} If the API call fails
|
|
52
54
|
* @public
|
|
53
55
|
* @example
|
|
54
56
|
* ```typescript
|
|
55
|
-
* // Get first page
|
|
57
|
+
* // Get the first page using the default entry-point policy
|
|
56
58
|
* const response = await entryPointAPI.getEntryPoints();
|
|
57
59
|
*
|
|
58
60
|
* // Get specific page with custom page size
|
|
@@ -48,14 +48,16 @@ export declare class Queue {
|
|
|
48
48
|
*/
|
|
49
49
|
constructor(webex: WebexSDK);
|
|
50
50
|
/**
|
|
51
|
-
* Fetches contact service queues for the organization
|
|
52
|
-
*
|
|
51
|
+
* Fetches contact service queues for the organization. By default, returns active inbound
|
|
52
|
+
* telephony queues in backend name-ascending order using the agent's desktop profile views.
|
|
53
|
+
* Existing filter, sort, and desktop-profile parameters override those defaults.
|
|
54
|
+
* @param {ContactServiceQueueSearchParams} [params] - Search, pagination, and override parameters
|
|
53
55
|
* @returns {Promise<ContactServiceQueuesResponse>} Promise resolving to contact service queues
|
|
54
56
|
* @throws {Error} If the API call fails
|
|
55
57
|
* @public
|
|
56
58
|
* @example
|
|
57
59
|
* ```typescript
|
|
58
|
-
* // Get
|
|
60
|
+
* // Get queues using the default list policy and pagination
|
|
59
61
|
* const response = await queueAPI.getQueues();
|
|
60
62
|
*
|
|
61
63
|
* // Get queues with specific pagination
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { WebexSDK } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Publishes usersub cross-client state so Webex App suppresses native calling toasts (WXCC-6026).
|
|
4
|
+
*/
|
|
5
|
+
export default class WebexCrossClientService {
|
|
6
|
+
private webex;
|
|
7
|
+
private refreshTimer?;
|
|
8
|
+
private refreshRetryTimer?;
|
|
9
|
+
private answerCallsState;
|
|
10
|
+
private appName;
|
|
11
|
+
/** Incremented on teardown/disable to ignore stale refresh timer callbacks. */
|
|
12
|
+
private refreshGeneration;
|
|
13
|
+
/** Monotonic id for usersub publish metrics timers; stale publishes cancel only their own timer. */
|
|
14
|
+
private usersubPublishMetricsId;
|
|
15
|
+
constructor(webex: WebexSDK);
|
|
16
|
+
private extractDeviceIdFromUrl;
|
|
17
|
+
private getDeviceUrl;
|
|
18
|
+
private clearRefreshTimer;
|
|
19
|
+
private scheduleRefreshRetry;
|
|
20
|
+
private startRefreshTimer;
|
|
21
|
+
private publishCrossClientState;
|
|
22
|
+
setManageWebexCallingInWxcc(enable: boolean, options?: {
|
|
23
|
+
userId?: string;
|
|
24
|
+
ttl?: number;
|
|
25
|
+
appName?: string;
|
|
26
|
+
trackPublishMetrics?: boolean;
|
|
27
|
+
}): Promise<void>;
|
|
28
|
+
private trackUsersubPreflightFailure;
|
|
29
|
+
teardown(): void;
|
|
30
|
+
/** Whether usersub `answer-calls-on-wxcc: true` was successfully published this session. */
|
|
31
|
+
isAnswerCallsStateActive(): boolean;
|
|
32
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { WebexSDK } from '../types';
|
|
2
|
+
export declare const TELEPHONY_CALL_MUTED = "event:telephony_calls.muted";
|
|
3
|
+
export declare const TELEPHONY_CALL_UNMUTED = "event:telephony_calls.unmuted";
|
|
4
|
+
export type UpdatedCallMuteStateEvent = {
|
|
5
|
+
data: {
|
|
6
|
+
actorId: string;
|
|
7
|
+
callId: string;
|
|
8
|
+
muted: boolean;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
type MuteChangeHandler = (callId: string, muted: boolean) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Subscribes to Mercury telephony mute/unmute events for wxApp thick-client sync (AD parity).
|
|
14
|
+
*/
|
|
15
|
+
export default class WxAppTelephonyMercurySync {
|
|
16
|
+
private webex;
|
|
17
|
+
private subscribedAgentId?;
|
|
18
|
+
private muteChangeHandler?;
|
|
19
|
+
private boundMuteHandler?;
|
|
20
|
+
private boundUnmuteHandler?;
|
|
21
|
+
constructor(webex: WebexSDK);
|
|
22
|
+
private decodeBase64;
|
|
23
|
+
private handleMuteStateEvent;
|
|
24
|
+
subscribe(agentId: string, onMuteChange: MuteChangeHandler): void;
|
|
25
|
+
unsubscribe(): void;
|
|
26
|
+
isSubscribed(): boolean;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
export declare const DEFAULT_PAGE = 0;
|
|
2
|
+
/** Desktop Profile access levels for collaboration destination categories. */
|
|
3
|
+
export declare const COLLABORATION_ACCESS: {
|
|
4
|
+
readonly ALL: "ALL";
|
|
5
|
+
readonly SPECIFIC: "SPECIFIC";
|
|
6
|
+
readonly NONE: "NONE";
|
|
7
|
+
};
|
|
2
8
|
/**
|
|
3
9
|
* Default page size for paginated API requests.
|
|
4
10
|
* @type {number}
|
|
@@ -212,16 +218,13 @@ export declare const endPointMap: {
|
|
|
212
218
|
*/
|
|
213
219
|
queueList: (orgId: string, queryParams: string) => string;
|
|
214
220
|
/**
|
|
215
|
-
* Gets the
|
|
221
|
+
* Gets the desktop-profile-filtered dial-number mappings used by entry-point destination lists.
|
|
216
222
|
* @param orgId - Organization ID.
|
|
217
223
|
* @param queryParams - Query parameters string.
|
|
218
224
|
* @returns The endpoint URL string.
|
|
219
|
-
* @public
|
|
220
|
-
* @example
|
|
221
|
-
* const url = endPointMap.entryPointList('org123', 'page=0&pageSize=10');
|
|
222
225
|
* @ignore
|
|
223
226
|
*/
|
|
224
|
-
|
|
227
|
+
entryPointDialNumberList: (orgId: string, queryParams: string) => string;
|
|
225
228
|
/**
|
|
226
229
|
* Gets the endpoint for address book entries with custom query parameters.
|
|
227
230
|
* @param orgId - Organization ID.
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import * as Agent from '../agent/types';
|
|
2
|
+
import { COLLABORATION_ACCESS } from './constants';
|
|
3
|
+
/** Desktop Profile access level for a collaboration destination category. */
|
|
4
|
+
export type CollaborationAccess = Enum<typeof COLLABORATION_ACCESS>;
|
|
2
5
|
/**
|
|
3
6
|
* Events emitted on task objects
|
|
4
7
|
* @enum {string}
|
|
@@ -50,6 +53,8 @@ export declare const CC_TASK_EVENTS: {
|
|
|
50
53
|
readonly PARTICIPANT_LEFT_CONFERENCE: "ParticipantLeftConference";
|
|
51
54
|
/** Event emitted when participant leaving conference fails */
|
|
52
55
|
readonly PARTICIPANT_LEFT_CONFERENCE_FAILED: "ParticipantLeftConferenceFailed";
|
|
56
|
+
/** Event emitted when dropping another conference participant fails */
|
|
57
|
+
readonly PARTICIPANT_DROP_CONFERENCE_FAILED: "ParticipantDropConferenceFailed";
|
|
53
58
|
/** Event emitted when consultation conference end fails */
|
|
54
59
|
readonly AGENT_CONSULT_CONFERENCE_END_FAILED: "AgentConsultConferenceEndFailed";
|
|
55
60
|
/** Event emitted when conference is successfully transferred */
|
|
@@ -227,6 +232,8 @@ export declare const CC_EVENTS: {
|
|
|
227
232
|
readonly PARTICIPANT_LEFT_CONFERENCE: "ParticipantLeftConference";
|
|
228
233
|
/** Event emitted when participant leaving conference fails */
|
|
229
234
|
readonly PARTICIPANT_LEFT_CONFERENCE_FAILED: "ParticipantLeftConferenceFailed";
|
|
235
|
+
/** Event emitted when dropping another conference participant fails */
|
|
236
|
+
readonly PARTICIPANT_DROP_CONFERENCE_FAILED: "ParticipantDropConferenceFailed";
|
|
230
237
|
/** Event emitted when consultation conference end fails */
|
|
231
238
|
readonly AGENT_CONSULT_CONFERENCE_END_FAILED: "AgentConsultConferenceEndFailed";
|
|
232
239
|
/** Event emitted when conference is successfully transferred */
|
|
@@ -513,9 +520,9 @@ export type DesktopProfileResponse = {
|
|
|
513
520
|
*/
|
|
514
521
|
allowAutoWrapUpExtension: boolean;
|
|
515
522
|
/**
|
|
516
|
-
* Access control for queues assigned to the agent (ALL or
|
|
523
|
+
* Access control for queues assigned to the agent (ALL, SPECIFIC, or NONE).
|
|
517
524
|
*/
|
|
518
|
-
accessQueue:
|
|
525
|
+
accessQueue: CollaborationAccess;
|
|
519
526
|
/**
|
|
520
527
|
* Queue identifiers available to the agent when access is SPECIFIC.
|
|
521
528
|
*/
|
|
@@ -523,7 +530,7 @@ export type DesktopProfileResponse = {
|
|
|
523
530
|
/**
|
|
524
531
|
* Access control for entry points assigned to the agent.
|
|
525
532
|
*/
|
|
526
|
-
accessEntryPoint:
|
|
533
|
+
accessEntryPoint: CollaborationAccess;
|
|
527
534
|
/**
|
|
528
535
|
* Entry point identifiers available to the agent when access is SPECIFIC.
|
|
529
536
|
*/
|
|
@@ -531,7 +538,7 @@ export type DesktopProfileResponse = {
|
|
|
531
538
|
/**
|
|
532
539
|
* Access control for buddy teams assigned to the agent.
|
|
533
540
|
*/
|
|
534
|
-
accessBuddyTeam:
|
|
541
|
+
accessBuddyTeam: CollaborationAccess;
|
|
535
542
|
/**
|
|
536
543
|
* Buddy team identifiers available to the agent when access is SPECIFIC.
|
|
537
544
|
*/
|
|
@@ -1197,6 +1204,12 @@ export type Profile = {
|
|
|
1197
1204
|
agentAnalyzerId?: string;
|
|
1198
1205
|
/** Whether consult to queue is allowed */
|
|
1199
1206
|
allowConsultToQueue: boolean;
|
|
1207
|
+
/** Access control for queues on Desktop Profile Collaboration tab */
|
|
1208
|
+
accessQueue?: CollaborationAccess;
|
|
1209
|
+
/** Access control for entry points on Desktop Profile Collaboration tab */
|
|
1210
|
+
accessEntryPoint?: CollaborationAccess;
|
|
1211
|
+
/** Access control for buddy teams on Desktop Profile Collaboration tab */
|
|
1212
|
+
accessBuddyTeam?: CollaborationAccess;
|
|
1200
1213
|
/** Additional campaign manager information */
|
|
1201
1214
|
campaignManagerAdditionalInfo?: string;
|
|
1202
1215
|
/** Whether personal statistics are enabled */
|
|
@@ -49,6 +49,8 @@ export type TaskErrorIds = {
|
|
|
49
49
|
'Service.aqm.task.consultAccept': Failure;
|
|
50
50
|
} | {
|
|
51
51
|
'Service.aqm.task.consultConference': Failure;
|
|
52
|
+
} | {
|
|
53
|
+
'Service.aqm.task.dropConferenceParticipant': Failure;
|
|
52
54
|
} | {
|
|
53
55
|
'Service.aqm.task.consultEnd': Failure;
|
|
54
56
|
} | {
|
|
@@ -18,6 +18,8 @@ export type Req<TRes, TErr> = {
|
|
|
18
18
|
url: string;
|
|
19
19
|
host?: string;
|
|
20
20
|
method?: HTTP_METHODS;
|
|
21
|
+
/** Suppress request URLs and routing payloads from AQM logs for sensitive operations. */
|
|
22
|
+
redactSensitiveLogs?: boolean;
|
|
21
23
|
err?: ((errObj: WebexRequestPayload) => Err.Details<'Service.reqs.generic.failure'>) | Err.IdsMessage | ((e: WebexRequestPayload) => Err.Message | Err.Details<Err.IdsDetails>);
|
|
22
24
|
notifSuccess: {
|
|
23
25
|
bind: Bind;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import type { ActorRefFrom, SnapshotFrom } from 'xstate';
|
|
4
|
-
import { ITask, TaskData, TaskResponse, WrapupPayLoad, TaskId, TransferPayLoad, TASK_EVENTS, TaskUIControls, ConsultEndPayload, ConsultPayload, ConsultTransferPayLoad, ResumeRecordingPayload, CallId } from './types';
|
|
4
|
+
import { ITask, TaskData, TaskResponse, WrapupPayLoad, TaskId, TransferPayLoad, TASK_EVENTS, TaskUIControls, DropConferenceParticipantPayload, ConsultEndPayload, ConsultPayload, ConsultTransferPayLoad, ResumeRecordingPayload, CallId, TaskToggleMuteOptions, TaskTransmitDtmfOptions } from './types';
|
|
5
5
|
import routingContact from './contact';
|
|
6
6
|
import MetricsManager from '../../metrics/MetricsManager';
|
|
7
7
|
import { TaskState } from './state-machine';
|
|
@@ -34,10 +34,12 @@ export default abstract class Task extends EventEmitter implements ITask {
|
|
|
34
34
|
endConsult(consultEndPayload: ConsultEndPayload): Promise<TaskResponse>;
|
|
35
35
|
consultTransfer(consultTransferPayload?: ConsultTransferPayLoad): Promise<TaskResponse>;
|
|
36
36
|
consultConference(): Promise<TaskResponse>;
|
|
37
|
+
dropConferenceParticipant(payload: DropConferenceParticipantPayload): Promise<TaskResponse>;
|
|
37
38
|
exitConference(): Promise<TaskResponse>;
|
|
38
39
|
transferConference(): Promise<TaskResponse>;
|
|
39
40
|
switchCall(): Promise<TaskResponse>;
|
|
40
|
-
toggleMute(): Promise<void>;
|
|
41
|
+
toggleMute(options?: TaskToggleMuteOptions): Promise<void>;
|
|
42
|
+
transmitDtmf(options: TaskTransmitDtmfOptions): Promise<void>;
|
|
41
43
|
unregisterWebCallListeners(): void;
|
|
42
44
|
/**
|
|
43
45
|
* Cancel any in-progress auto wrap-up timer.
|
|
@@ -69,6 +71,22 @@ export default abstract class Task extends EventEmitter implements ITask {
|
|
|
69
71
|
*
|
|
70
72
|
* @returns UI control states for all task actions
|
|
71
73
|
*/
|
|
74
|
+
/**
|
|
75
|
+
* Update wxApp thick-client answer flag at runtime (Voice overrides).
|
|
76
|
+
*/
|
|
77
|
+
setEnableWxBetterTogether(_enabled: boolean): void;
|
|
78
|
+
/**
|
|
79
|
+
* Apply wxApp mute state from external sync (Voice overrides).
|
|
80
|
+
*/
|
|
81
|
+
applyWxAppMuteStateFromSync(_incomingCallId: string, _muted: boolean): void;
|
|
82
|
+
/**
|
|
83
|
+
* Hook for post-assign wxApp sync (Voice overrides).
|
|
84
|
+
*/
|
|
85
|
+
protected onTaskAssigned(): void;
|
|
86
|
+
/**
|
|
87
|
+
* Hook for post-hydrate wxApp sync (Voice overrides).
|
|
88
|
+
*/
|
|
89
|
+
protected onTaskHydrated(): void;
|
|
72
90
|
protected computeUIControls(): TaskUIControls;
|
|
73
91
|
/**
|
|
74
92
|
* Stop the state machine service
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import routingContact from './contact';
|
|
2
2
|
import WebCallingService from '../WebCallingService';
|
|
3
|
+
import AnswerCallOnWebexService from '../AnswerCallOnWebexService';
|
|
3
4
|
import Task from './Task';
|
|
4
5
|
import { TaskData } from './types';
|
|
5
6
|
import { ConfigFlags } from '../../types';
|
|
@@ -8,5 +9,5 @@ export default class TaskFactory {
|
|
|
8
9
|
/**
|
|
9
10
|
* Creates the correct Task subclass based on mediaType & loginOption
|
|
10
11
|
*/
|
|
11
|
-
static createTask(contact: ReturnType<typeof routingContact>, webCallingService: WebCallingService, data: TaskData, configFlags: ConfigFlags, wrapupData?: WrapupData, agentId?: string): Task;
|
|
12
|
+
static createTask(contact: ReturnType<typeof routingContact>, webCallingService: WebCallingService, data: TaskData, configFlags: ConfigFlags, wrapupData?: WrapupData, agentId?: string, answerCallOnWebexService?: AnswerCallOnWebexService): Task;
|
|
12
13
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TaskState } from './state-machine/constants';
|
|
2
|
+
export type WebexCallingDeviceDetails = {
|
|
3
|
+
deviceType: string;
|
|
4
|
+
deviceId: string;
|
|
5
|
+
deviceCallId: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function getWebexCallingDeviceDetailsForAgent(agentId: string | undefined, participants: unknown): WebexCallingDeviceDetails | undefined;
|
|
8
|
+
export declare function isWebexCallingCallForAgent(agentId: string | undefined, participants: unknown): boolean;
|
|
9
|
+
/** Matches wxAppVoiceMethods.getWebexCallingCallId engaged semantics for uiControls. */
|
|
10
|
+
export declare function isWxAppEngagedForControls(enableWxBetterTogether: boolean, agentId: string | undefined, participants: unknown, state: TaskState): boolean;
|
|
11
|
+
export declare function decodedLineOwnerId(lineOwnerId?: string): string | undefined;
|
|
@@ -11,6 +11,8 @@ export declare const CONSULT = "/consult";
|
|
|
11
11
|
export declare const CONSULT_ACCEPT = "/consult/accept";
|
|
12
12
|
export declare const CONSULT_END = "/consult/end";
|
|
13
13
|
export declare const TRANSFER = "/transfer";
|
|
14
|
+
/** Backend destination value for direct entry-point transfers through the vteam endpoint. */
|
|
15
|
+
export declare const ENTRY_POINT_TRANSFER_DESTINATION_TYPE = "entrypointDialNumber";
|
|
14
16
|
export declare const CONSULT_TRANSFER = "/consult/transfer";
|
|
15
17
|
export declare const PAUSE = "/record/pause";
|
|
16
18
|
export declare const RESUME = "/record/resume";
|
|
@@ -65,6 +67,7 @@ export declare const METHODS: {
|
|
|
65
67
|
TRANSFER: string;
|
|
66
68
|
CONSULT_TRANSFER: string;
|
|
67
69
|
CONSULT_CONFERENCE: string;
|
|
70
|
+
DROP_CONFERENCE_PARTICIPANT: string;
|
|
68
71
|
EXIT_CONFERENCE: string;
|
|
69
72
|
TRANSFER_CONFERENCE: string;
|
|
70
73
|
UPDATE_TASK_DATA: string;
|
|
@@ -60,6 +60,10 @@ export default function routingContact(aqm: AqmReqs): {
|
|
|
60
60
|
interactionId: string;
|
|
61
61
|
data: Contact.ConsultConferenceData;
|
|
62
62
|
}>;
|
|
63
|
+
dropConferenceParticipant: import("../core/types").Res<Contact.AgentContact, {
|
|
64
|
+
interactionId: string;
|
|
65
|
+
participantId: string;
|
|
66
|
+
}>;
|
|
63
67
|
exitConference: import("../core/types").Res<Contact.AgentContact, {
|
|
64
68
|
interactionId: string;
|
|
65
69
|
}>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { IDigital, TaskResponse, TaskData } from '../types';
|
|
1
|
+
import { ConsultTransferDestinationConfig, IDigital, TaskResponse, TaskData } from '../types';
|
|
2
2
|
import { WrapupData } from '../../config/types';
|
|
3
3
|
import Task from '../Task';
|
|
4
4
|
import routingContact from '../contact';
|
|
5
5
|
export default class Digital extends Task implements IDigital {
|
|
6
|
-
constructor(contact: ReturnType<typeof routingContact>, data: TaskData, wrapupData?: WrapupData, agentId?: string);
|
|
6
|
+
constructor(contact: ReturnType<typeof routingContact>, data: TaskData, wrapupData?: WrapupData, agentId?: string, consultTransferConfig?: ConsultTransferDestinationConfig);
|
|
7
7
|
/**
|
|
8
8
|
* Refresh the digital task with the latest backend payload and recompute UI controls.
|
|
9
9
|
*/
|