@webex/contact-center 3.12.0-next.12 → 3.12.0-next.121
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 +884 -0
- package/AGENTS.md +94 -0
- package/ai-docs/ARCHITECTURE.md +168 -0
- package/ai-docs/CONTRACTS.md +51 -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 +359 -0
- package/ai-docs/features/consult-transfer-list-policy/spec/feature-spec.md +362 -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 +808 -40
- package/dist/cc.js.map +1 -1
- package/dist/config.js +13 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +27 -3
- package/dist/constants.js.map +1 -1
- package/dist/index.js +20 -5
- 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 +205 -0
- package/dist/metrics/behavioral-events.js.map +1 -1
- package/dist/metrics/constants.js +43 -4
- 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/ApiAiAssistant.js +153 -8
- package/dist/services/ApiAiAssistant.js.map +1 -1
- 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/UserPreference.js +427 -0
- package/dist/services/UserPreference.js.map +1 -0
- 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 +6 -3
- package/dist/services/config/Util.js.map +1 -1
- package/dist/services/config/constants.js +33 -8
- package/dist/services/config/constants.js.map +1 -1
- package/dist/services/config/types.js +53 -9
- package/dist/services/config/types.js.map +1 -1
- package/dist/services/core/Err.js.map +1 -1
- package/dist/services/core/Utils.js +107 -32
- package/dist/services/core/Utils.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/core/websocket/WebSocketManager.js +2 -1
- package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
- package/dist/services/core/websocket/types.js.map +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/task/Task.js +754 -0
- package/dist/services/task/Task.js.map +1 -0
- package/dist/services/task/TaskFactory.js +49 -0
- package/dist/services/task/TaskFactory.js.map +1 -0
- package/dist/services/task/TaskManager.js +1053 -520
- package/dist/services/task/TaskManager.js.map +1 -1
- package/dist/services/task/TaskUtils.js +211 -27
- package/dist/services/task/TaskUtils.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 +12 -2
- 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/dialer.js +78 -0
- package/dist/services/task/dialer.js.map +1 -1
- package/dist/services/task/digital/Digital.js +78 -0
- package/dist/services/task/digital/Digital.js.map +1 -0
- package/dist/services/task/state-machine/TaskStateMachine.js +954 -0
- package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -0
- package/dist/services/task/state-machine/actions.js +572 -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 +379 -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 +703 -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 +228 -5
- package/dist/services/task/types.js.map +1 -1
- package/dist/services/task/voice/Voice.js +1447 -0
- package/dist/services/task/voice/Voice.js.map +1 -0
- package/dist/services/task/voice/WebRTC.js +152 -0
- package/dist/services/task/voice/WebRTC.js.map +1 -0
- 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 +172 -5
- package/dist/types/config.d.ts +13 -0
- package/dist/types/constants.d.ts +25 -1
- package/dist/types/index.d.ts +24 -7
- package/dist/types/metrics/MetricsManager.d.ts +6 -0
- package/dist/types/metrics/constants.d.ts +38 -1
- package/dist/types/services/AddressBook.d.ts +2 -1
- package/dist/types/services/AnswerCallOnWebexService.d.ts +38 -0
- package/dist/types/services/ApiAiAssistant.d.ts +22 -4
- package/dist/types/services/EntryPoint.d.ts +7 -5
- package/dist/types/services/Queue.d.ts +5 -3
- package/dist/types/services/UserPreference.d.ts +118 -0
- 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 +29 -5
- package/dist/types/services/config/types.d.ts +184 -10
- package/dist/types/services/core/Err.d.ts +6 -0
- package/dist/types/services/core/Utils.d.ts +33 -13
- package/dist/types/services/core/WebexRequest.d.ts +1 -0
- package/dist/types/services/core/types.d.ts +2 -0
- package/dist/types/services/core/websocket/WebSocketManager.d.ts +1 -0
- package/dist/types/services/core/websocket/types.d.ts +1 -1
- package/dist/types/services/index.d.ts +1 -1
- package/dist/types/services/task/Task.d.ts +175 -0
- package/dist/types/services/task/TaskFactory.d.ts +13 -0
- package/dist/types/services/task/TaskUtils.d.ts +48 -2
- package/dist/types/services/task/WebexCallingUtils.d.ts +11 -0
- package/dist/types/services/task/constants.d.ts +10 -0
- package/dist/types/services/task/contact.d.ts +4 -0
- package/dist/types/services/task/dialer.d.ts +30 -0
- package/dist/types/services/task/digital/Digital.d.ts +22 -0
- package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +1356 -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 +103 -0
- package/dist/types/services/task/state-machine/index.d.ts +13 -0
- package/dist/types/services/task/state-machine/types.d.ts +277 -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 +680 -66
- package/dist/types/services/task/voice/Voice.d.ts +227 -0
- package/dist/types/services/task/voice/WebRTC.d.ts +53 -0
- 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 +149 -8
- package/dist/types/utils/PageCache.d.ts +20 -3
- package/dist/types/webex.d.ts +1 -0
- package/dist/types.js +125 -4
- 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 +14 -2
- package/dist/webex.js.map +1 -1
- package/package.json +16 -12
- package/src/cc.ts +986 -42
- package/src/config.ts +13 -0
- package/src/constants.ts +25 -1
- package/src/index.ts +25 -5
- package/src/metrics/MetricsManager.ts +16 -0
- 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 +922 -0
- package/src/metrics/behavioral-events.ts +212 -0
- package/src/metrics/constants.ts +47 -4
- package/src/services/AddressBook.ts +17 -6
- package/src/services/AnswerCallOnWebexService.ts +239 -0
- package/src/services/ApiAiAssistant.ts +203 -8
- package/src/services/EntryPoint.ts +59 -60
- package/src/services/Queue.ts +29 -12
- package/src/services/UserPreference.ts +509 -0
- package/src/services/WebexCrossClientService.ts +293 -0
- package/src/services/WxAppTelephonyMercurySync.ts +142 -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 +505 -0
- package/src/services/ai-docs/AGENTS.md +386 -0
- package/src/services/ai-docs/services-spec.md +497 -0
- package/src/services/config/Util.ts +6 -3
- 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 +675 -0
- package/src/services/config/constants.ts +35 -7
- package/src/services/config/types.ts +186 -11
- package/src/services/core/Err.ts +3 -0
- package/src/services/core/Utils.ts +123 -37
- package/src/services/core/WebexRequest.ts +3 -1
- 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 +787 -0
- package/src/services/core/aqm-reqs.ts +30 -15
- package/src/services/core/types.ts +2 -0
- package/src/services/core/websocket/WebSocketManager.ts +2 -0
- package/src/services/core/websocket/types.ts +1 -1
- package/src/services/index.ts +1 -1
- package/src/services/task/Task.ts +908 -0
- package/src/services/task/TaskFactory.ts +60 -0
- package/src/services/task/TaskManager.ts +1239 -608
- package/src/services/task/TaskUtils.ts +303 -25
- package/src/services/task/WebexCallingUtils.ts +136 -0
- package/src/services/task/ai-docs/AGENTS.md +457 -0
- package/src/services/task/ai-docs/ARCHITECTURE.md +595 -0
- package/src/services/task/ai-docs/task-spec.md +1470 -0
- package/src/services/task/constants.ts +10 -0
- package/src/services/task/contact.ts +30 -0
- package/src/services/task/dialer.ts +80 -0
- package/src/services/task/digital/Digital.ts +97 -0
- package/src/services/task/state-machine/TaskStateMachine.ts +1293 -0
- package/src/services/task/state-machine/actions.ts +741 -0
- package/src/services/task/state-machine/ai-docs/AGENTS.md +460 -0
- package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +1145 -0
- package/src/services/task/state-machine/ai-docs/task-state-machine-spec.md +2207 -0
- package/src/services/task/state-machine/constants.ts +172 -0
- package/src/services/task/state-machine/guards.ts +442 -0
- package/src/services/task/state-machine/index.ts +28 -0
- package/src/services/task/state-machine/types.ts +258 -0
- package/src/services/task/state-machine/uiControlsComputer.ts +1135 -0
- package/src/services/task/taskDataNormalizer.ts +137 -0
- package/src/services/task/types.ts +819 -70
- package/src/services/task/voice/Voice.ts +1809 -0
- package/src/services/task/voice/WebRTC.ts +191 -0
- 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 +199 -11
- package/src/utils/AGENTS.md +289 -0
- package/src/utils/PageCache.ts +38 -5
- package/src/utils/ai-docs/utils-spec.md +391 -0
- package/src/webex.js +2 -0
- package/test/unit/spec/cc.ts +1947 -124
- package/test/unit/spec/logger-proxy.ts +70 -0
- 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/ApiAiAssistant.ts +178 -20
- package/test/unit/spec/services/EntryPoint.ts +87 -40
- package/test/unit/spec/services/Queue.ts +123 -12
- package/test/unit/spec/services/UserPreference.ts +401 -0
- package/test/unit/spec/services/WebCallingService.ts +7 -1
- 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/config/index.ts +30 -30
- package/test/unit/spec/services/core/Utils.ts +425 -8
- 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/core/websocket/WebSocketManager.ts +66 -40
- package/test/unit/spec/services/task/AutoWrapup.ts +63 -0
- package/test/unit/spec/services/task/Task.ts +677 -0
- package/test/unit/spec/services/task/TaskFactory.ts +99 -0
- package/test/unit/spec/services/task/TaskManager.ts +1972 -1549
- package/test/unit/spec/services/task/TaskUtils.ts +235 -0
- 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/dialer.ts +190 -0
- package/test/unit/spec/services/task/digital/Digital.ts +105 -0
- package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +3459 -0
- package/test/unit/spec/services/task/state-machine/guards.ts +839 -0
- package/test/unit/spec/services/task/state-machine/types.ts +18 -0
- package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +3101 -0
- package/test/unit/spec/services/task/taskTestUtils.ts +87 -0
- package/test/unit/spec/services/task/voice/Voice.ts +1903 -0
- package/test/unit/spec/services/task/voice/WebRTC.ts +235 -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/services/task/index.js +0 -1525
- package/dist/services/task/index.js.map +0 -1
- package/dist/types/services/task/index.d.ts +0 -650
- package/src/services/task/index.ts +0 -1801
- package/test/unit/spec/services/task/index.ts +0 -2184
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { WebexSDK } from '../types';
|
|
2
|
+
import type { UserPreference as UserPreferenceResponse, CreateUserPreferenceRequest, UpdateUserPreferenceRequest, GetUserPreferenceParams } from './config/types';
|
|
3
|
+
/**
|
|
4
|
+
* UserPreference API class for managing Webex Contact Center user preferences.
|
|
5
|
+
* Provides functionality to get, create, update, and delete user preferences.
|
|
6
|
+
*
|
|
7
|
+
* @class UserPreference
|
|
8
|
+
* @public
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import Webex from 'webex';
|
|
12
|
+
*
|
|
13
|
+
* const webex = new Webex({ credentials: 'YOUR_ACCESS_TOKEN' });
|
|
14
|
+
* const cc = webex.cc;
|
|
15
|
+
*
|
|
16
|
+
* // Register and login first
|
|
17
|
+
* await cc.register();
|
|
18
|
+
* await cc.stationLogin({ teamId: 'team123', loginOption: 'BROWSER' });
|
|
19
|
+
*
|
|
20
|
+
* // Get UserPreference API instance from ContactCenter
|
|
21
|
+
* const userPreferenceAPI = cc.userPreference;
|
|
22
|
+
*
|
|
23
|
+
* // Get user preferences for the current user
|
|
24
|
+
* const preferences = await userPreferenceAPI.getUserPreference();
|
|
25
|
+
*
|
|
26
|
+
* // Create new user preferences
|
|
27
|
+
* const newPreferences = await userPreferenceAPI.createUserPreference({
|
|
28
|
+
* userId: 'user123',
|
|
29
|
+
* preferences: { e911Reminder: true }
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* // Update user preferences
|
|
33
|
+
* const updatedPreferences = await userPreferenceAPI.updateUserPreference('user123', {
|
|
34
|
+
* preferences: { e911Reminder: false }
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* // Delete user preferences
|
|
38
|
+
* await userPreferenceAPI.deleteUserPreference('user123');
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare class UserPreference {
|
|
42
|
+
private webexRequest;
|
|
43
|
+
private webex;
|
|
44
|
+
private getUserId;
|
|
45
|
+
private metricsManager;
|
|
46
|
+
/**
|
|
47
|
+
* Creates an instance of UserPreference
|
|
48
|
+
* @param {WebexSDK} webex - The Webex SDK instance
|
|
49
|
+
* @param {() => string} getUserId - Function to get the current user's CI user ID
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
constructor(webex: WebexSDK, getUserId: () => string);
|
|
53
|
+
/**
|
|
54
|
+
* Fetches user preferences for a specific user
|
|
55
|
+
* @param {GetUserPreferenceParams} [params] - Optional parameters for fetching preferences
|
|
56
|
+
* @param {string} [params.userId] - User ID to fetch preferences for. Defaults to current user's CI user ID.
|
|
57
|
+
* @param {number} [params.page=0] - Page number (0-indexed). Default: 0
|
|
58
|
+
* @param {number} [params.pageSize=100] - Number of items per page. Default: 100
|
|
59
|
+
* @returns {Promise<UserPreferenceResponse>} Promise resolving to user preferences
|
|
60
|
+
* @throws {Error} If the API call fails
|
|
61
|
+
* @public
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* // Get preferences for current user
|
|
65
|
+
* const preferences = await userPreferenceAPI.getUserPreference();
|
|
66
|
+
*
|
|
67
|
+
* // Get preferences for a specific user
|
|
68
|
+
* const preferences = await userPreferenceAPI.getUserPreference({ userId: 'user123' });
|
|
69
|
+
*
|
|
70
|
+
* // Get preferences with pagination
|
|
71
|
+
* const preferences = await userPreferenceAPI.getUserPreference({ page: 0, pageSize: 50 });
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
getUserPreference(params?: GetUserPreferenceParams): Promise<UserPreferenceResponse>;
|
|
75
|
+
/**
|
|
76
|
+
* Creates new user preferences
|
|
77
|
+
* @param {CreateUserPreferenceRequest} data - The user preference data to create
|
|
78
|
+
* @returns {Promise<UserPreference>} Promise resolving to created user preferences
|
|
79
|
+
* @throws {Error} If the API call fails
|
|
80
|
+
* @public
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const newPreferences = await userPreferenceAPI.createUserPreference({
|
|
84
|
+
* userId: 'user123',
|
|
85
|
+
* preferences: { e911Reminder: true, notificationSettings: { email: true } }
|
|
86
|
+
* });
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
createUserPreference(data: CreateUserPreferenceRequest): Promise<UserPreferenceResponse>;
|
|
90
|
+
/**
|
|
91
|
+
* Updates existing user preferences
|
|
92
|
+
* @param {string} userId - User ID to update preferences for
|
|
93
|
+
* @param {UpdateUserPreferenceRequest} data - The user preference data to update
|
|
94
|
+
* @returns {Promise<UserPreference>} Promise resolving to updated user preferences
|
|
95
|
+
* @throws {Error} If the API call fails
|
|
96
|
+
* @public
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const updatedPreferences = await userPreferenceAPI.updateUserPreference('user123', {
|
|
100
|
+
* preferences: { e911Reminder: false }
|
|
101
|
+
* });
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
updateUserPreference(userId: string, data: UpdateUserPreferenceRequest): Promise<UserPreferenceResponse>;
|
|
105
|
+
/**
|
|
106
|
+
* Deletes user preferences for a specific user
|
|
107
|
+
* @param {string} userId - User ID to delete preferences for
|
|
108
|
+
* @returns {Promise<void>} Promise resolving when deletion is complete
|
|
109
|
+
* @throws {Error} If the API call fails
|
|
110
|
+
* @public
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* await userPreferenceAPI.deleteUserPreference('user123');
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
deleteUserPreference(userId: string): Promise<void>;
|
|
117
|
+
}
|
|
118
|
+
export default UserPreference;
|
|
@@ -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.
|
|
@@ -246,4 +249,25 @@ export declare const endPointMap: {
|
|
|
246
249
|
* @ignore
|
|
247
250
|
*/
|
|
248
251
|
outdialAniEntries: (orgId: string, outdialANI: string, queryParams: string) => string;
|
|
252
|
+
/**
|
|
253
|
+
* Gets the endpoint for user preference by user ID.
|
|
254
|
+
* @param orgId - Organization ID.
|
|
255
|
+
* @param userId - User ID.
|
|
256
|
+
* @returns The endpoint URL string.
|
|
257
|
+
* @public
|
|
258
|
+
* @example
|
|
259
|
+
* const url = endPointMap.userPreference('org123', 'user456');
|
|
260
|
+
* @ignore
|
|
261
|
+
*/
|
|
262
|
+
userPreference: (orgId: string, userId: string) => string;
|
|
263
|
+
/**
|
|
264
|
+
* Gets the endpoint for creating user preference.
|
|
265
|
+
* @param orgId - Organization ID.
|
|
266
|
+
* @returns The endpoint URL string.
|
|
267
|
+
* @public
|
|
268
|
+
* @example
|
|
269
|
+
* const url = endPointMap.userPreferenceCreate('org123');
|
|
270
|
+
* @ignore
|
|
271
|
+
*/
|
|
272
|
+
userPreferenceCreate: (orgId: string) => string;
|
|
249
273
|
};
|
|
@@ -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 */
|
|
@@ -58,6 +63,8 @@ export declare const CC_TASK_EVENTS: {
|
|
|
58
63
|
readonly AGENT_CONFERENCE_TRANSFER_FAILED: "AgentConferenceTransferFailed";
|
|
59
64
|
/** Event emitted for post-call activity by participant */
|
|
60
65
|
readonly PARTICIPANT_POST_CALL_ACTIVITY: "ParticipantPostCallActivity";
|
|
66
|
+
/** Event emitted when consulted participant is being moved/transferred */
|
|
67
|
+
readonly CONSULTED_PARTICIPANT_MOVING: "ConsultedParticipantMoving";
|
|
61
68
|
/** Event emitted when contact is blind transferred */
|
|
62
69
|
readonly AGENT_BLIND_TRANSFERRED: "AgentBlindTransferred";
|
|
63
70
|
/** Event emitted when blind transfer fails */
|
|
@@ -74,6 +81,8 @@ export declare const CC_TASK_EVENTS: {
|
|
|
74
81
|
readonly AGENT_CONSULT_TRANSFER_FAILED: "AgentConsultTransferFailed";
|
|
75
82
|
/** Event emitted when contact recording is paused */
|
|
76
83
|
readonly CONTACT_RECORDING_PAUSED: "ContactRecordingPaused";
|
|
84
|
+
/** Event emitted when contact recording is started */
|
|
85
|
+
readonly CONTACT_RECORDING_STARTED: "ContactRecordingStarted";
|
|
77
86
|
/** Event emitted when pausing contact recording fails */
|
|
78
87
|
readonly CONTACT_RECORDING_PAUSE_FAILED: "ContactRecordingPauseFailed";
|
|
79
88
|
/** Event emitted when contact recording is resumed */
|
|
@@ -84,6 +93,10 @@ export declare const CC_TASK_EVENTS: {
|
|
|
84
93
|
readonly CONTACT_ENDED: "ContactEnded";
|
|
85
94
|
/** Event emitted when contact is merged */
|
|
86
95
|
readonly CONTACT_MERGED: "ContactMerged";
|
|
96
|
+
/** Event emitted when contact payload is updated (routing updates) */
|
|
97
|
+
readonly CONTACT_UPDATED: "ContactUpdated";
|
|
98
|
+
/** Event emitted when contact owner changes */
|
|
99
|
+
readonly CONTACT_OWNER_CHANGED: "ContactOwnerChanged";
|
|
87
100
|
/** Event emitted when ending contact fails */
|
|
88
101
|
readonly AGENT_CONTACT_END_FAILED: "AgentContactEndFailed";
|
|
89
102
|
/** Event emitted when agent enters wrap-up state */
|
|
@@ -110,8 +123,20 @@ export declare const CC_TASK_EVENTS: {
|
|
|
110
123
|
readonly CAMPAIGN_CONTACT_UPDATED: "CampaignContactUpdated";
|
|
111
124
|
/** Event emitted when accepting a campaign preview contact fails */
|
|
112
125
|
readonly CAMPAIGN_PREVIEW_ACCEPT_FAILED: "CampaignPreviewAcceptFailed";
|
|
126
|
+
/** Event emitted when skipping a campaign preview contact fails */
|
|
127
|
+
readonly CAMPAIGN_PREVIEW_SKIP_FAILED: "CampaignPreviewSkipFailed";
|
|
128
|
+
/** Event emitted when removing a campaign preview contact fails */
|
|
129
|
+
readonly CAMPAIGN_PREVIEW_REMOVE_FAILED: "CampaignPreviewRemoveFailed";
|
|
113
130
|
/** Event emitted when a real-time transcript chunk is received */
|
|
114
131
|
readonly REAL_TIME_TRANSCRIPTION: "REAL_TIME_TRANSCRIPTION";
|
|
132
|
+
/** Event emitted when an AI assistant suggested response is available */
|
|
133
|
+
readonly SUGGESTED_RESPONSE: "SUGGESTED_RESPONSE";
|
|
134
|
+
/** Event emitted when backend acknowledges it is listening for more context */
|
|
135
|
+
readonly SUGGESTED_RESPONSE_ACKNOWLEDGE: "SUGGESTED_RESPONSE_ACKNOWLEDGE";
|
|
136
|
+
/** Event emitted when a mid-call summary is available */
|
|
137
|
+
readonly MID_CALL_SUMMARY: "MID_CALL_SUMMARY";
|
|
138
|
+
/** Event emitted when a post-call summary is available */
|
|
139
|
+
readonly POST_CALL_SUMMARY: "POST_CALL_SUMMARY";
|
|
115
140
|
};
|
|
116
141
|
/**
|
|
117
142
|
* Events emitted on Contact Center agent operations
|
|
@@ -207,6 +232,8 @@ export declare const CC_EVENTS: {
|
|
|
207
232
|
readonly PARTICIPANT_LEFT_CONFERENCE: "ParticipantLeftConference";
|
|
208
233
|
/** Event emitted when participant leaving conference fails */
|
|
209
234
|
readonly PARTICIPANT_LEFT_CONFERENCE_FAILED: "ParticipantLeftConferenceFailed";
|
|
235
|
+
/** Event emitted when dropping another conference participant fails */
|
|
236
|
+
readonly PARTICIPANT_DROP_CONFERENCE_FAILED: "ParticipantDropConferenceFailed";
|
|
210
237
|
/** Event emitted when consultation conference end fails */
|
|
211
238
|
readonly AGENT_CONSULT_CONFERENCE_END_FAILED: "AgentConsultConferenceEndFailed";
|
|
212
239
|
/** Event emitted when conference is successfully transferred */
|
|
@@ -215,6 +242,8 @@ export declare const CC_EVENTS: {
|
|
|
215
242
|
readonly AGENT_CONFERENCE_TRANSFER_FAILED: "AgentConferenceTransferFailed";
|
|
216
243
|
/** Event emitted for post-call activity by participant */
|
|
217
244
|
readonly PARTICIPANT_POST_CALL_ACTIVITY: "ParticipantPostCallActivity";
|
|
245
|
+
/** Event emitted when consulted participant is being moved/transferred */
|
|
246
|
+
readonly CONSULTED_PARTICIPANT_MOVING: "ConsultedParticipantMoving";
|
|
218
247
|
/** Event emitted when contact is blind transferred */
|
|
219
248
|
readonly AGENT_BLIND_TRANSFERRED: "AgentBlindTransferred";
|
|
220
249
|
/** Event emitted when blind transfer fails */
|
|
@@ -231,6 +260,8 @@ export declare const CC_EVENTS: {
|
|
|
231
260
|
readonly AGENT_CONSULT_TRANSFER_FAILED: "AgentConsultTransferFailed";
|
|
232
261
|
/** Event emitted when contact recording is paused */
|
|
233
262
|
readonly CONTACT_RECORDING_PAUSED: "ContactRecordingPaused";
|
|
263
|
+
/** Event emitted when contact recording is started */
|
|
264
|
+
readonly CONTACT_RECORDING_STARTED: "ContactRecordingStarted";
|
|
234
265
|
/** Event emitted when pausing contact recording fails */
|
|
235
266
|
readonly CONTACT_RECORDING_PAUSE_FAILED: "ContactRecordingPauseFailed";
|
|
236
267
|
/** Event emitted when contact recording is resumed */
|
|
@@ -241,6 +272,10 @@ export declare const CC_EVENTS: {
|
|
|
241
272
|
readonly CONTACT_ENDED: "ContactEnded";
|
|
242
273
|
/** Event emitted when contact is merged */
|
|
243
274
|
readonly CONTACT_MERGED: "ContactMerged";
|
|
275
|
+
/** Event emitted when contact payload is updated (routing updates) */
|
|
276
|
+
readonly CONTACT_UPDATED: "ContactUpdated";
|
|
277
|
+
/** Event emitted when contact owner changes */
|
|
278
|
+
readonly CONTACT_OWNER_CHANGED: "ContactOwnerChanged";
|
|
244
279
|
/** Event emitted when ending contact fails */
|
|
245
280
|
readonly AGENT_CONTACT_END_FAILED: "AgentContactEndFailed";
|
|
246
281
|
/** Event emitted when agent enters wrap-up state */
|
|
@@ -267,8 +302,20 @@ export declare const CC_EVENTS: {
|
|
|
267
302
|
readonly CAMPAIGN_CONTACT_UPDATED: "CampaignContactUpdated";
|
|
268
303
|
/** Event emitted when accepting a campaign preview contact fails */
|
|
269
304
|
readonly CAMPAIGN_PREVIEW_ACCEPT_FAILED: "CampaignPreviewAcceptFailed";
|
|
305
|
+
/** Event emitted when skipping a campaign preview contact fails */
|
|
306
|
+
readonly CAMPAIGN_PREVIEW_SKIP_FAILED: "CampaignPreviewSkipFailed";
|
|
307
|
+
/** Event emitted when removing a campaign preview contact fails */
|
|
308
|
+
readonly CAMPAIGN_PREVIEW_REMOVE_FAILED: "CampaignPreviewRemoveFailed";
|
|
270
309
|
/** Event emitted when a real-time transcript chunk is received */
|
|
271
310
|
readonly REAL_TIME_TRANSCRIPTION: "REAL_TIME_TRANSCRIPTION";
|
|
311
|
+
/** Event emitted when an AI assistant suggested response is available */
|
|
312
|
+
readonly SUGGESTED_RESPONSE: "SUGGESTED_RESPONSE";
|
|
313
|
+
/** Event emitted when backend acknowledges it is listening for more context */
|
|
314
|
+
readonly SUGGESTED_RESPONSE_ACKNOWLEDGE: "SUGGESTED_RESPONSE_ACKNOWLEDGE";
|
|
315
|
+
/** Event emitted when a mid-call summary is available */
|
|
316
|
+
readonly MID_CALL_SUMMARY: "MID_CALL_SUMMARY";
|
|
317
|
+
/** Event emitted when a post-call summary is available */
|
|
318
|
+
readonly POST_CALL_SUMMARY: "POST_CALL_SUMMARY";
|
|
272
319
|
/** Welcome event when agent connects to websocket/backend */
|
|
273
320
|
readonly WELCOME: "Welcome";
|
|
274
321
|
/** Event emitted when agent re-login is successful */
|
|
@@ -314,6 +361,14 @@ export type WelcomeEvent = {
|
|
|
314
361
|
/** ID of the agent that connected */
|
|
315
362
|
agentId: string;
|
|
316
363
|
};
|
|
364
|
+
/**
|
|
365
|
+
* Available login options for voice channel access
|
|
366
|
+
* 'AGENT_DN' - Login using agent's DN
|
|
367
|
+
* 'EXTENSION' - Login using extension number
|
|
368
|
+
* 'BROWSER' - Login using browser-based WebRTC
|
|
369
|
+
* @public
|
|
370
|
+
*/
|
|
371
|
+
export type LoginOption = 'AGENT_DN' | 'EXTENSION' | 'BROWSER';
|
|
317
372
|
/**
|
|
318
373
|
* Response type for welcome events which can be either success or error
|
|
319
374
|
* @public
|
|
@@ -384,13 +439,34 @@ export type AgentResponse = {
|
|
|
384
439
|
dbId?: string;
|
|
385
440
|
/**
|
|
386
441
|
* The default dialed number of the agent.
|
|
442
|
+
* Note: The API returns this field as "deafultDialledNumber" (with typo).
|
|
387
443
|
*/
|
|
388
|
-
|
|
444
|
+
deafultDialledNumber?: string;
|
|
389
445
|
};
|
|
390
446
|
/**
|
|
391
447
|
* Represents the response from getDesktopProfileById method.
|
|
392
448
|
*/
|
|
393
449
|
export type DesktopProfileResponse = {
|
|
450
|
+
/**
|
|
451
|
+
* Unique identifier of the agent profile configuration.
|
|
452
|
+
*/
|
|
453
|
+
id: string;
|
|
454
|
+
/**
|
|
455
|
+
* Display name for the agent profile.
|
|
456
|
+
*/
|
|
457
|
+
name: string;
|
|
458
|
+
/**
|
|
459
|
+
* Description of the agent profile.
|
|
460
|
+
*/
|
|
461
|
+
description: string;
|
|
462
|
+
/**
|
|
463
|
+
* Parent entity type for the profile (for example ORGANIZATION).
|
|
464
|
+
*/
|
|
465
|
+
parentType: string;
|
|
466
|
+
/**
|
|
467
|
+
* Indicates whether screen pop is enabled.
|
|
468
|
+
*/
|
|
469
|
+
screenPopup: boolean;
|
|
394
470
|
/**
|
|
395
471
|
* Represents the voice options of an agent.
|
|
396
472
|
*/
|
|
@@ -423,6 +499,10 @@ export type DesktopProfileResponse = {
|
|
|
423
499
|
* Auto wrap-up allowed.
|
|
424
500
|
*/
|
|
425
501
|
autoWrapUp: boolean;
|
|
502
|
+
/**
|
|
503
|
+
* Whether the agent personal greeting is enabled.
|
|
504
|
+
*/
|
|
505
|
+
agentPersonalGreeting: boolean;
|
|
426
506
|
/**
|
|
427
507
|
* Auto answer allowed.
|
|
428
508
|
*/
|
|
@@ -439,6 +519,30 @@ export type DesktopProfileResponse = {
|
|
|
439
519
|
* Allow auto wrap-up extension.
|
|
440
520
|
*/
|
|
441
521
|
allowAutoWrapUpExtension: boolean;
|
|
522
|
+
/**
|
|
523
|
+
* Access control for queues assigned to the agent (ALL, SPECIFIC, or NONE).
|
|
524
|
+
*/
|
|
525
|
+
accessQueue: CollaborationAccess;
|
|
526
|
+
/**
|
|
527
|
+
* Queue identifiers available to the agent when access is SPECIFIC.
|
|
528
|
+
*/
|
|
529
|
+
queues: string[];
|
|
530
|
+
/**
|
|
531
|
+
* Access control for entry points assigned to the agent.
|
|
532
|
+
*/
|
|
533
|
+
accessEntryPoint: CollaborationAccess;
|
|
534
|
+
/**
|
|
535
|
+
* Entry point identifiers available to the agent when access is SPECIFIC.
|
|
536
|
+
*/
|
|
537
|
+
entryPoints: string[];
|
|
538
|
+
/**
|
|
539
|
+
* Access control for buddy teams assigned to the agent.
|
|
540
|
+
*/
|
|
541
|
+
accessBuddyTeam: CollaborationAccess;
|
|
542
|
+
/**
|
|
543
|
+
* Buddy team identifiers available to the agent when access is SPECIFIC.
|
|
544
|
+
*/
|
|
545
|
+
buddyTeams: string[];
|
|
442
546
|
/**
|
|
443
547
|
* Outdial enabled for the agent.
|
|
444
548
|
*/
|
|
@@ -475,6 +579,10 @@ export type DesktopProfileResponse = {
|
|
|
475
579
|
* Agent DN validation of the agent.
|
|
476
580
|
*/
|
|
477
581
|
agentDNValidation: string;
|
|
582
|
+
/**
|
|
583
|
+
* Additional DN validation criteria configured for the agent.
|
|
584
|
+
*/
|
|
585
|
+
agentDNValidationCriterions: string[];
|
|
478
586
|
/**
|
|
479
587
|
* Dial plans of the agent.
|
|
480
588
|
*/
|
|
@@ -503,6 +611,26 @@ export type DesktopProfileResponse = {
|
|
|
503
611
|
* State synchronization in Webex enabled or not.
|
|
504
612
|
*/
|
|
505
613
|
stateSynchronizationWebex: boolean;
|
|
614
|
+
/**
|
|
615
|
+
* Threshold rules configured for the agent profile.
|
|
616
|
+
*/
|
|
617
|
+
thresholdRules: Array<Record<string, string | number>>;
|
|
618
|
+
/**
|
|
619
|
+
* Whether the agent profile is currently active.
|
|
620
|
+
*/
|
|
621
|
+
active: boolean;
|
|
622
|
+
/**
|
|
623
|
+
* Whether this profile is the system default.
|
|
624
|
+
*/
|
|
625
|
+
systemDefault: boolean;
|
|
626
|
+
/**
|
|
627
|
+
* Timestamp when the profile was created.
|
|
628
|
+
*/
|
|
629
|
+
createdTime: number;
|
|
630
|
+
/**
|
|
631
|
+
* Timestamp when the profile was last updated.
|
|
632
|
+
*/
|
|
633
|
+
lastUpdatedTime: number;
|
|
506
634
|
};
|
|
507
635
|
/**
|
|
508
636
|
* Response containing multimedia profile configuration for an agent
|
|
@@ -898,14 +1026,6 @@ export type WrapupData = {
|
|
|
898
1026
|
allowCancelAutoWrapup?: boolean;
|
|
899
1027
|
};
|
|
900
1028
|
};
|
|
901
|
-
/**
|
|
902
|
-
* Available login options for voice channel access
|
|
903
|
-
* 'AGENT_DN' - Login using agent's DN
|
|
904
|
-
* 'EXTENSION' - Login using extension number
|
|
905
|
-
* 'BROWSER' - Login using browser-based WebRTC
|
|
906
|
-
* @public
|
|
907
|
-
*/
|
|
908
|
-
export type LoginOption = 'AGENT_DN' | 'EXTENSION' | 'BROWSER';
|
|
909
1029
|
/**
|
|
910
1030
|
* Team configuration information
|
|
911
1031
|
* @public
|
|
@@ -1073,7 +1193,7 @@ export type Profile = {
|
|
|
1073
1193
|
/** Outbound entry point */
|
|
1074
1194
|
outDialEp: string;
|
|
1075
1195
|
/** Whether ending calls is enabled */
|
|
1076
|
-
|
|
1196
|
+
isEndTaskEnabled: boolean;
|
|
1077
1197
|
/** Whether ending consultations is enabled */
|
|
1078
1198
|
isEndConsultEnabled: boolean;
|
|
1079
1199
|
/** Optional lifecycle manager URL */
|
|
@@ -1084,6 +1204,12 @@ export type Profile = {
|
|
|
1084
1204
|
agentAnalyzerId?: string;
|
|
1085
1205
|
/** Whether consult to queue is allowed */
|
|
1086
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;
|
|
1087
1213
|
/** Additional campaign manager information */
|
|
1088
1214
|
campaignManagerAdditionalInfo?: string;
|
|
1089
1215
|
/** Whether personal statistics are enabled */
|
|
@@ -1205,3 +1331,51 @@ export type OutdialAniParams = {
|
|
|
1205
1331
|
/** Comma-separated list of attributes to include in response (optional) */
|
|
1206
1332
|
attributes?: string;
|
|
1207
1333
|
};
|
|
1334
|
+
/**
|
|
1335
|
+
* User preference data structure
|
|
1336
|
+
* @public
|
|
1337
|
+
*/
|
|
1338
|
+
export type UserPreference = {
|
|
1339
|
+
/** Unique identifier for the user preference */
|
|
1340
|
+
id: string;
|
|
1341
|
+
/** Organization ID */
|
|
1342
|
+
organizationId: string;
|
|
1343
|
+
/** User ID (CI user ID) */
|
|
1344
|
+
userId: string;
|
|
1345
|
+
/** User preference data as key-value pairs */
|
|
1346
|
+
preferences: Record<string, unknown>;
|
|
1347
|
+
/** Timestamp when this preference was created (Unix timestamp in milliseconds) */
|
|
1348
|
+
createdTime?: number;
|
|
1349
|
+
/** Timestamp when this preference was last updated (Unix timestamp in milliseconds) */
|
|
1350
|
+
lastUpdatedTime?: number;
|
|
1351
|
+
};
|
|
1352
|
+
/**
|
|
1353
|
+
* Request payload for creating user preferences
|
|
1354
|
+
* @public
|
|
1355
|
+
*/
|
|
1356
|
+
export type CreateUserPreferenceRequest = {
|
|
1357
|
+
/** User ID (CI user ID) */
|
|
1358
|
+
userId: string;
|
|
1359
|
+
/** Desktop preference data as a JSON string (required) */
|
|
1360
|
+
desktopPreference: string;
|
|
1361
|
+
};
|
|
1362
|
+
/**
|
|
1363
|
+
* Request payload for updating user preferences
|
|
1364
|
+
* @public
|
|
1365
|
+
*/
|
|
1366
|
+
export type UpdateUserPreferenceRequest = {
|
|
1367
|
+
/** Desktop preference data as a JSON string (required) */
|
|
1368
|
+
desktopPreference: string;
|
|
1369
|
+
};
|
|
1370
|
+
/**
|
|
1371
|
+
* Query parameters for fetching user preferences
|
|
1372
|
+
* @public
|
|
1373
|
+
*/
|
|
1374
|
+
export type GetUserPreferenceParams = {
|
|
1375
|
+
/** User ID to fetch preferences for. Defaults to current user's CI user ID. */
|
|
1376
|
+
userId?: string;
|
|
1377
|
+
/** Page number (0-indexed). Default: 0 */
|
|
1378
|
+
page?: number;
|
|
1379
|
+
/** Number of items per page. Default: 100 */
|
|
1380
|
+
pageSize?: number;
|
|
1381
|
+
};
|
|
@@ -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
|
} | {
|
|
@@ -67,6 +69,10 @@ export type TaskErrorIds = {
|
|
|
67
69
|
'Service.aqm.dialer.startOutdial': Failure;
|
|
68
70
|
} | {
|
|
69
71
|
'Service.aqm.dialer.acceptPreviewContact': Failure;
|
|
72
|
+
} | {
|
|
73
|
+
'Service.aqm.dialer.skipPreviewContact': Failure;
|
|
74
|
+
} | {
|
|
75
|
+
'Service.aqm.dialer.removePreviewContact': Failure;
|
|
70
76
|
} | {
|
|
71
77
|
'Service.reqs.generic.failure': {
|
|
72
78
|
trackingId: string;
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
import * as Err from './Err';
|
|
2
2
|
import { LoginOption, WebexRequestPayload } from '../../types';
|
|
3
3
|
import { Failure, AugmentedError } from './GlobalTypes';
|
|
4
|
-
import {
|
|
4
|
+
import { ConsultConferenceData, consultConferencePayloadData, ConsultTransferDestinationType, TaskData, Interaction } from '../task/types';
|
|
5
5
|
import { DialPlan } from '../config/types';
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Strips characters defined in the dial plan entry from the input string.
|
|
8
|
+
*
|
|
9
|
+
* @param input - The dial number to sanitize
|
|
10
|
+
* @param strippedChars - String of characters to remove from the input
|
|
11
|
+
* @returns The sanitized input with specified characters removed
|
|
12
|
+
*/
|
|
13
|
+
export declare const stripDialPlanChars: (input: string, strippedChars: string) => string;
|
|
7
14
|
/**
|
|
8
15
|
* Validates a dial number against the provided dial plan regex patterns.
|
|
9
16
|
* A number is valid if it matches at least one regex pattern in the dial plans.
|
|
10
|
-
*
|
|
17
|
+
* Skips validation when no dial plan entries are configured, deferring to the server.
|
|
11
18
|
*
|
|
12
19
|
* @param input - The dial number to validate
|
|
13
20
|
* @param dialPlanEntries - Array of dial plan entries containing regex patterns
|
|
14
|
-
* @returns true if the input matches at least one dial plan regex pattern, false otherwise
|
|
21
|
+
* @returns true if the input matches at least one dial plan regex pattern or no entries are configured, false otherwise
|
|
15
22
|
*/
|
|
16
23
|
export declare const isValidDialNumber: (input: string, dialPlanEntries: DialPlan['dialPlanEntity']) => boolean;
|
|
17
24
|
export declare const getStationLoginErrorData: (failure: Failure, loginOption: LoginOption) => {
|
|
@@ -61,14 +68,6 @@ export declare const generateTaskErrorObject: (error: any, methodName: string, m
|
|
|
61
68
|
* @ignore
|
|
62
69
|
*/
|
|
63
70
|
export declare const createErrDetailsObject: (errObj: WebexRequestPayload) => Err.Details<"Service.reqs.generic.failure">;
|
|
64
|
-
/**
|
|
65
|
-
* Gets the consulted agent ID from the media object by finding the agent
|
|
66
|
-
* in the consult media participants (excluding the current agent).
|
|
67
|
-
*
|
|
68
|
-
* @param media - The media object from the interaction
|
|
69
|
-
* @param agentId - The current agent's ID to exclude from the search
|
|
70
|
-
* @returns The consulted agent ID, or empty string if none found
|
|
71
|
-
*/
|
|
72
71
|
export declare const getConsultedAgentId: (media: Interaction['media'], agentId: string) => string;
|
|
73
72
|
/**
|
|
74
73
|
* Gets the destination agent ID for CBT (Capacity Based Team) scenarios.
|
|
@@ -98,4 +97,25 @@ export declare const calculateDestAgentId: (interaction: Interaction, agentId: s
|
|
|
98
97
|
* @returns The destination agent ID for determining destination type
|
|
99
98
|
*/
|
|
100
99
|
export declare const calculateDestType: (interaction: Interaction, agentId: string) => string;
|
|
101
|
-
|
|
100
|
+
/**
|
|
101
|
+
* Gets the destination agent ID from participants.
|
|
102
|
+
* Finds a participant who is not the current agent and is an agent type.
|
|
103
|
+
*
|
|
104
|
+
* @param participants - The participants object from interaction
|
|
105
|
+
* @param agentId - The current agent's ID
|
|
106
|
+
* @returns The destination agent ID, or undefined if none found
|
|
107
|
+
*/
|
|
108
|
+
export declare const buildConsultConferenceParamData: (dataPassed: consultConferencePayloadData, interactionIdPassed: string) => {
|
|
109
|
+
interactionId: string;
|
|
110
|
+
data: ConsultConferenceData;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Derives the consult transfer destination type based on task data.
|
|
114
|
+
* This function determines the appropriate destination type for a consult transfer
|
|
115
|
+
* by examining the destination type stored in the task data.
|
|
116
|
+
*
|
|
117
|
+
* @param taskData - The task data containing destination information
|
|
118
|
+
* @returns The derived consult transfer destination type
|
|
119
|
+
* @public
|
|
120
|
+
*/
|
|
121
|
+
export declare const deriveConsultTransferDestinationType: (taskData: TaskData) => ConsultTransferDestinationType;
|