@webex/contact-center 3.11.0 → 3.12.0-auth-prejoin-fetch.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.sdd/manifest.json +883 -0
- package/AGENTS.md +94 -0
- package/ai-docs/ARCHITECTURE.md +168 -0
- package/ai-docs/CONTRACTS.md +50 -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 +818 -59
- package/dist/cc.js.map +1 -1
- package/dist/config.js +13 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +31 -3
- package/dist/constants.js.map +1 -1
- package/dist/index.js +27 -5
- package/dist/index.js.map +1 -1
- package/dist/metrics/behavioral-events.js +127 -0
- package/dist/metrics/behavioral-events.js.map +1 -1
- package/dist/metrics/constants.js +34 -3
- 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 +174 -0
- package/dist/services/AnswerCallOnWebexService.js.map +1 -0
- package/dist/services/ApiAiAssistant.js +318 -0
- package/dist/services/ApiAiAssistant.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/UserPreference.js +427 -0
- package/dist/services/UserPreference.js.map +1 -0
- package/dist/services/WebexCrossClientService.js +171 -0
- package/dist/services/WebexCrossClientService.js.map +1 -0
- package/dist/services/WxAppTelephonyMercurySync.js +93 -0
- package/dist/services/WxAppTelephonyMercurySync.js.map +1 -0
- package/dist/services/agent/types.js.map +1 -1
- package/dist/services/config/Util.js +11 -4
- package/dist/services/config/Util.js.map +1 -1
- package/dist/services/config/constants.js +45 -8
- package/dist/services/config/constants.js.map +1 -1
- package/dist/services/config/index.js +41 -2
- package/dist/services/config/index.js.map +1 -1
- package/dist/services/config/types.js +70 -8
- package/dist/services/config/types.js.map +1 -1
- package/dist/services/constants.js +27 -1
- package/dist/services/constants.js.map +1 -1
- package/dist/services/core/Err.js.map +1 -1
- package/dist/services/core/Utils.js +122 -25
- package/dist/services/core/Utils.js.map +1 -1
- package/dist/services/core/WebexRequest.js +6 -2
- package/dist/services/core/WebexRequest.js.map +1 -1
- package/dist/services/core/aqm-reqs.js +119 -30
- 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 +22 -6
- package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
- package/dist/services/core/websocket/connection-service.js +3 -1
- package/dist/services/core/websocket/connection-service.js.map +1 -1
- package/dist/services/core/websocket/types.js.map +1 -1
- package/dist/services/index.js +6 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/task/Task.js +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 +1073 -447
- package/dist/services/task/TaskManager.js.map +1 -1
- package/dist/services/task/TaskUtils.js +220 -23
- package/dist/services/task/TaskUtils.js.map +1 -1
- package/dist/services/task/WebexCallingUtils.js +70 -0
- package/dist/services/task/WebexCallingUtils.js.map +1 -0
- package/dist/services/task/constants.js +26 -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 +129 -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 +971 -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 +409 -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 +243 -5
- package/dist/services/task/types.js.map +1 -1
- package/dist/services/task/voice/Voice.js +1380 -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 +201 -0
- package/dist/services/task/voice/wxAppVoiceMethods.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 +967 -0
- package/dist/types/config.d.ts +79 -0
- package/dist/types/constants.d.ts +74 -0
- package/dist/types/index.d.ts +201 -0
- package/dist/types/logger-proxy.d.ts +71 -0
- package/dist/types/metrics/MetricsManager.d.ts +223 -0
- package/dist/types/metrics/behavioral-events.d.ts +29 -0
- package/dist/types/metrics/constants.d.ts +183 -0
- package/dist/types/services/AddressBook.d.ts +75 -0
- package/dist/types/services/AnswerCallOnWebexService.d.ts +37 -0
- package/dist/types/services/ApiAiAssistant.d.ts +49 -0
- package/dist/types/services/EntryPoint.d.ts +69 -0
- package/dist/types/services/Queue.d.ts +78 -0
- package/dist/types/services/UserPreference.d.ts +118 -0
- package/dist/types/services/WebCallingService.d.ts +1 -0
- package/dist/types/services/WebexCrossClientService.d.ts +28 -0
- package/dist/types/services/WxAppTelephonyMercurySync.d.ts +28 -0
- package/dist/types/services/agent/index.d.ts +46 -0
- package/dist/types/services/agent/types.d.ts +413 -0
- package/dist/types/services/config/Util.d.ts +20 -0
- package/dist/types/services/config/constants.d.ts +273 -0
- package/dist/types/services/config/index.d.ts +177 -0
- package/dist/types/services/config/types.d.ts +1381 -0
- package/dist/types/services/constants.d.ts +110 -0
- package/dist/types/services/core/Err.d.ts +127 -0
- package/dist/types/services/core/GlobalTypes.d.ts +58 -0
- package/dist/types/services/core/Utils.d.ts +121 -0
- package/dist/types/services/core/WebexRequest.d.ts +23 -0
- package/dist/types/services/core/aqm-reqs.d.ts +65 -0
- package/dist/types/services/core/constants.d.ts +99 -0
- package/dist/types/services/core/types.d.ts +49 -0
- package/dist/types/services/core/websocket/WebSocketManager.d.ts +36 -0
- package/dist/types/services/core/websocket/connection-service.d.ts +27 -0
- package/dist/types/services/core/websocket/keepalive.worker.d.ts +2 -0
- package/dist/types/services/core/websocket/types.d.ts +37 -0
- package/dist/types/services/index.d.ts +54 -0
- package/dist/types/services/task/AutoWrapup.d.ts +40 -0
- package/dist/types/services/task/Task.d.ts +175 -0
- package/dist/types/services/task/TaskFactory.d.ts +13 -0
- package/dist/types/services/task/TaskManager.d.ts +1 -0
- package/dist/types/services/task/TaskUtils.d.ts +138 -0
- package/dist/types/services/task/WebexCallingUtils.d.ts +11 -0
- package/dist/types/services/task/constants.d.ts +94 -0
- package/dist/types/services/task/contact.d.ts +73 -0
- package/dist/types/services/task/dialer.d.ts +73 -0
- package/dist/types/services/task/digital/Digital.d.ts +22 -0
- package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +1398 -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 +1933 -0
- package/dist/types/services/task/voice/Voice.d.ts +223 -0
- package/dist/types/services/task/voice/WebRTC.d.ts +53 -0
- package/dist/types/services/task/voice/wxAppVoiceMethods.d.ts +52 -0
- package/dist/types/services/wxAppTelephonyUtils.d.ts +5 -0
- package/dist/types/types.d.ts +784 -0
- package/dist/types/utils/PageCache.d.ts +190 -0
- package/dist/types/webex-config.d.ts +53 -0
- package/dist/types/webex.d.ts +8 -0
- package/dist/types.js +137 -3
- 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 +983 -60
- package/src/config.ts +13 -0
- package/src/constants.ts +29 -1
- package/src/index.ts +26 -5
- package/src/metrics/ai-docs/AGENTS.md +350 -0
- package/src/metrics/ai-docs/ARCHITECTURE.md +338 -0
- package/src/metrics/ai-docs/metrics-spec.md +860 -0
- package/src/metrics/behavioral-events.ts +134 -0
- package/src/metrics/constants.ts +39 -3
- package/src/services/AddressBook.ts +17 -6
- package/src/services/AnswerCallOnWebexService.ts +206 -0
- package/src/services/ApiAiAssistant.ts +412 -0
- 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 +212 -0
- package/src/services/WxAppTelephonyMercurySync.ts +115 -0
- package/src/services/agent/ai-docs/AGENTS.md +240 -0
- package/src/services/agent/ai-docs/ARCHITECTURE.md +304 -0
- package/src/services/agent/ai-docs/agent-spec.md +504 -0
- package/src/services/agent/types.ts +1 -1
- package/src/services/ai-docs/AGENTS.md +386 -0
- package/src/services/ai-docs/services-spec.md +497 -0
- package/src/services/config/Util.ts +13 -2
- package/src/services/config/ai-docs/AGENTS.md +255 -0
- package/src/services/config/ai-docs/ARCHITECTURE.md +426 -0
- package/src/services/config/ai-docs/config-spec.md +675 -0
- package/src/services/config/constants.ts +47 -7
- package/src/services/config/index.ts +45 -1
- package/src/services/config/types.ts +253 -11
- package/src/services/constants.ts +29 -0
- package/src/services/core/Err.ts +4 -0
- package/src/services/core/Utils.ts +143 -30
- 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 +125 -32
- package/src/services/core/types.ts +2 -0
- package/src/services/core/websocket/WebSocketManager.ts +23 -6
- package/src/services/core/websocket/connection-service.ts +5 -1
- package/src/services/core/websocket/types.ts +1 -1
- package/src/services/index.ts +4 -0
- package/src/services/task/Task.ts +908 -0
- package/src/services/task/TaskFactory.ts +60 -0
- package/src/services/task/TaskManager.ts +1291 -513
- package/src/services/task/TaskUtils.ts +314 -24
- 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 +1469 -0
- package/src/services/task/constants.ts +26 -0
- package/src/services/task/contact.ts +30 -0
- package/src/services/task/dialer.ts +136 -1
- package/src/services/task/digital/Digital.ts +97 -0
- package/src/services/task/state-machine/TaskStateMachine.ts +1313 -0
- package/src/services/task/state-machine/actions.ts +741 -0
- package/src/services/task/state-machine/ai-docs/AGENTS.md +462 -0
- package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +1146 -0
- package/src/services/task/state-machine/ai-docs/task-state-machine-spec.md +2209 -0
- package/src/services/task/state-machine/constants.ts +172 -0
- package/src/services/task/state-machine/guards.ts +498 -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 +843 -70
- package/src/services/task/voice/Voice.ts +1720 -0
- package/src/services/task/voice/WebRTC.ts +191 -0
- package/src/services/task/voice/wxAppVoiceMethods.ts +307 -0
- package/src/services/wxAppTelephonyUtils.ts +14 -0
- package/src/types.ts +238 -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 +1856 -122
- package/test/unit/spec/logger-proxy.ts +70 -0
- package/test/unit/spec/metrics/behavioral-events.ts +18 -0
- package/test/unit/spec/services/AddressBook.ts +37 -6
- package/test/unit/spec/services/AnswerCallOnWebexService.ts +223 -0
- package/test/unit/spec/services/ApiAiAssistant.ts +273 -0
- 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 +261 -0
- package/test/unit/spec/services/WxAppTelephonyMercurySync.ts +113 -0
- package/test/unit/spec/services/config/Util.ts +85 -0
- package/test/unit/spec/services/config/index.ts +85 -29
- package/test/unit/spec/services/core/Utils.ts +481 -2
- package/test/unit/spec/services/core/WebexRequest.ts +3 -1
- package/test/unit/spec/services/core/aqm-reqs.ts +113 -1
- package/test/unit/spec/services/core/websocket/WebSocketManager.ts +137 -41
- package/test/unit/spec/services/core/websocket/connection-service.ts +3 -1
- package/test/unit/spec/services/task/AutoWrapup.ts +63 -0
- package/test/unit/spec/services/task/Task.ts +677 -0
- package/test/unit/spec/services/task/TaskFactory.ts +99 -0
- package/test/unit/spec/services/task/TaskManager.ts +2209 -918
- 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 +372 -96
- package/test/unit/spec/services/task/digital/Digital.ts +105 -0
- package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +3433 -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 +1523 -0
- package/test/unit/spec/services/task/voice/WebRTC.ts +235 -0
- package/test/unit/spec/services/task/voice/wxAppVoiceMethods.ts +459 -0
- package/umd/contact-center.min.js +2 -2
- package/umd/contact-center.min.js.map +1 -1
- package/dist/services/task/index.js +0 -1525
- package/dist/services/task/index.js.map +0 -1
- package/src/services/task/index.ts +0 -1801
- package/test/unit/spec/services/task/index.ts +0 -2184
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
// making query params configurable for List Teams and List Aux Codes API
|
|
2
2
|
export const DEFAULT_PAGE = 0;
|
|
3
3
|
|
|
4
|
+
/** Desktop Profile access levels for collaboration destination categories. */
|
|
5
|
+
export const COLLABORATION_ACCESS = {
|
|
6
|
+
ALL: 'ALL',
|
|
7
|
+
SPECIFIC: 'SPECIFIC',
|
|
8
|
+
NONE: 'NONE',
|
|
9
|
+
} as const;
|
|
10
|
+
|
|
4
11
|
/**
|
|
5
12
|
* Default page size for paginated API requests.
|
|
6
13
|
* @type {number}
|
|
@@ -67,6 +74,8 @@ export const METHODS = {
|
|
|
67
74
|
GET_TENANT_DATA: 'getTenantData',
|
|
68
75
|
GET_URL_MAPPING: 'getURLMapping',
|
|
69
76
|
GET_DIAL_PLAN_DATA: 'getDialPlanData',
|
|
77
|
+
GET_AI_FEATURE_FLAGS: 'getAIFeatureFlags',
|
|
78
|
+
GET_QUEUES: 'getQueues',
|
|
70
79
|
|
|
71
80
|
// Util methods
|
|
72
81
|
PARSE_AGENT_CONFIGS: 'parseAgentConfigs',
|
|
@@ -164,7 +173,7 @@ export const endPointMap = {
|
|
|
164
173
|
) =>
|
|
165
174
|
`organization/${orgId}/v2/auxiliary-code?page=${page}&pageSize=${pageSize}${
|
|
166
175
|
filter && filter.length > 0 ? `&filter=id=in=(${filter})` : ''
|
|
167
|
-
}&attributes=${attributes}`,
|
|
176
|
+
}&attributes=${attributes}&desktopProfileFilter=true`,
|
|
168
177
|
|
|
169
178
|
/**
|
|
170
179
|
* Gets the endpoint for organization info.
|
|
@@ -232,6 +241,16 @@ export const endPointMap = {
|
|
|
232
241
|
* @ignore
|
|
233
242
|
*/
|
|
234
243
|
dialPlan: (orgId: string) => `organization/${orgId}/dial-plan?agentView=true`,
|
|
244
|
+
/**
|
|
245
|
+
* Gets the endpoint for listing AI feature flags.
|
|
246
|
+
* @param orgId - Organization ID.
|
|
247
|
+
* @returns The endpoint URL string.
|
|
248
|
+
* @public
|
|
249
|
+
* @example
|
|
250
|
+
* const url = endPointMap.aiFeatureFlags('org123');
|
|
251
|
+
* @ignore
|
|
252
|
+
*/
|
|
253
|
+
aiFeature: (orgId: string) => `organization/${orgId}/v2/ai-feature?page=0&pageSize=100`,
|
|
235
254
|
|
|
236
255
|
/**
|
|
237
256
|
* Gets the endpoint for the queue list with custom query parameters.
|
|
@@ -246,17 +265,14 @@ export const endPointMap = {
|
|
|
246
265
|
queueList: (orgId: string, queryParams: string) =>
|
|
247
266
|
`/organization/${orgId}/v2/contact-service-queue?${queryParams}`,
|
|
248
267
|
/**
|
|
249
|
-
* Gets the
|
|
268
|
+
* Gets the desktop-profile-filtered dial-number mappings used by entry-point destination lists.
|
|
250
269
|
* @param orgId - Organization ID.
|
|
251
270
|
* @param queryParams - Query parameters string.
|
|
252
271
|
* @returns The endpoint URL string.
|
|
253
|
-
* @public
|
|
254
|
-
* @example
|
|
255
|
-
* const url = endPointMap.entryPointList('org123', 'page=0&pageSize=10');
|
|
256
272
|
* @ignore
|
|
257
273
|
*/
|
|
258
|
-
|
|
259
|
-
`/organization/${orgId}/
|
|
274
|
+
entryPointDialNumberList: (orgId: string, queryParams: string) =>
|
|
275
|
+
`/organization/${orgId}/v3/dial-number?${queryParams}`,
|
|
260
276
|
/**
|
|
261
277
|
* Gets the endpoint for address book entries with custom query parameters.
|
|
262
278
|
* @param orgId - Organization ID.
|
|
@@ -286,4 +302,28 @@ export const endPointMap = {
|
|
|
286
302
|
`organization/${orgId}/v2/outdial-ani/${outdialANI}/entry${
|
|
287
303
|
queryParams ? `?${queryParams}` : ''
|
|
288
304
|
}`,
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Gets the endpoint for user preference by user ID.
|
|
308
|
+
* @param orgId - Organization ID.
|
|
309
|
+
* @param userId - User ID.
|
|
310
|
+
* @returns The endpoint URL string.
|
|
311
|
+
* @public
|
|
312
|
+
* @example
|
|
313
|
+
* const url = endPointMap.userPreference('org123', 'user456');
|
|
314
|
+
* @ignore
|
|
315
|
+
*/
|
|
316
|
+
userPreference: (orgId: string, userId: string) =>
|
|
317
|
+
`organization/${orgId}/user-preference/${userId}`,
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Gets the endpoint for creating user preference.
|
|
321
|
+
* @param orgId - Organization ID.
|
|
322
|
+
* @returns The endpoint URL string.
|
|
323
|
+
* @public
|
|
324
|
+
* @example
|
|
325
|
+
* const url = endPointMap.userPreferenceCreate('org123');
|
|
326
|
+
* @ignore
|
|
327
|
+
*/
|
|
328
|
+
userPreferenceCreate: (orgId: string) => `organization/${orgId}/user-preference`,
|
|
289
329
|
};
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
SiteInfo,
|
|
23
23
|
OutdialAniEntriesResponse,
|
|
24
24
|
OutdialAniParams,
|
|
25
|
+
AIFeatureFlagsResponse,
|
|
25
26
|
} from './types';
|
|
26
27
|
import WebexRequest from '../core/WebexRequest';
|
|
27
28
|
import {WCC_API_GATEWAY} from '../constants';
|
|
@@ -61,6 +62,7 @@ export default class AgentConfigService {
|
|
|
61
62
|
const orgSettingsPromise = this.getOrganizationSetting(orgId);
|
|
62
63
|
const tenantDataPromise = this.getTenantData(orgId);
|
|
63
64
|
const urlMappingPromise = this.getURLMapping(orgId);
|
|
65
|
+
const aiFeatureFlagsPromise = this.getAIFeatureFlags(orgId);
|
|
64
66
|
const auxCodesPromise = this.getAllAuxCodes(
|
|
65
67
|
orgId,
|
|
66
68
|
DEFAULT_PAGE_SIZE,
|
|
@@ -94,6 +96,7 @@ export default class AgentConfigService {
|
|
|
94
96
|
orgSettingsData,
|
|
95
97
|
tenantData,
|
|
96
98
|
urlMappingData,
|
|
99
|
+
aiFeatureFlagsData,
|
|
97
100
|
auxCodesData,
|
|
98
101
|
] = await Promise.all([
|
|
99
102
|
agentProfilePromise,
|
|
@@ -104,9 +107,9 @@ export default class AgentConfigService {
|
|
|
104
107
|
orgSettingsPromise,
|
|
105
108
|
tenantDataPromise,
|
|
106
109
|
urlMappingPromise,
|
|
110
|
+
aiFeatureFlagsPromise,
|
|
107
111
|
auxCodesPromise,
|
|
108
112
|
]);
|
|
109
|
-
|
|
110
113
|
const multimediaProfileId =
|
|
111
114
|
userConfigData.multimediaProfileId ||
|
|
112
115
|
userTeamData[0]?.multiMediaProfileId ||
|
|
@@ -128,6 +131,7 @@ export default class AgentConfigService {
|
|
|
128
131
|
dialPlanData: userDialPlanData,
|
|
129
132
|
urlMapping: urlMappingData,
|
|
130
133
|
multimediaProfileId,
|
|
134
|
+
aiFeatureFlags: aiFeatureFlagsData,
|
|
131
135
|
});
|
|
132
136
|
|
|
133
137
|
LoggerProxy.info('Parsing completed for agent-config', {
|
|
@@ -651,6 +655,46 @@ export default class AgentConfigService {
|
|
|
651
655
|
}
|
|
652
656
|
}
|
|
653
657
|
|
|
658
|
+
/**
|
|
659
|
+
* Fetches AI feature resources for the organization.
|
|
660
|
+
* @ignore
|
|
661
|
+
* @param {string} orgId - organization ID for which AI feature resources are to be fetched.
|
|
662
|
+
* @returns {Promise<AIFeatureFlagsResponse>} - AI feature resources response.
|
|
663
|
+
* @throws {Error} - Throws an error if the API call fails or if the response status is not 200.
|
|
664
|
+
* @private
|
|
665
|
+
*/
|
|
666
|
+
public async getAIFeatureFlags(orgId: string): Promise<AIFeatureFlagsResponse> {
|
|
667
|
+
LoggerProxy.info('Fetching AI feature resources', {
|
|
668
|
+
module: CONFIG_FILE_NAME,
|
|
669
|
+
method: METHODS.GET_AI_FEATURE_FLAGS,
|
|
670
|
+
});
|
|
671
|
+
try {
|
|
672
|
+
const resource = endPointMap.aiFeature(orgId);
|
|
673
|
+
const response = await this.webexReq.request({
|
|
674
|
+
service: WCC_API_GATEWAY,
|
|
675
|
+
resource,
|
|
676
|
+
method: HTTP_METHODS.GET,
|
|
677
|
+
});
|
|
678
|
+
|
|
679
|
+
if (response.statusCode !== 200) {
|
|
680
|
+
throw new Error(`API call failed with ${response.statusCode}`);
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
LoggerProxy.log('getAIFeatureFlags api success.', {
|
|
684
|
+
module: CONFIG_FILE_NAME,
|
|
685
|
+
method: METHODS.GET_AI_FEATURE_FLAGS,
|
|
686
|
+
});
|
|
687
|
+
|
|
688
|
+
return Promise.resolve(response.body);
|
|
689
|
+
} catch (error) {
|
|
690
|
+
LoggerProxy.error(`getAIFeatureFlags API call failed with ${error}`, {
|
|
691
|
+
module: CONFIG_FILE_NAME,
|
|
692
|
+
method: METHODS.GET_AI_FEATURE_FLAGS,
|
|
693
|
+
});
|
|
694
|
+
throw error;
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
|
|
654
698
|
/**
|
|
655
699
|
* Fetches the dial plan data for the given orgId.
|
|
656
700
|
* @ignore
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as Agent from '../agent/types';
|
|
2
|
+
import {COLLABORATION_ACCESS} from './constants';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Generic type for converting a const enum object into a union type of its values
|
|
@@ -6,6 +7,9 @@ import * as Agent from '../agent/types';
|
|
|
6
7
|
*/
|
|
7
8
|
type Enum<T extends Record<string, unknown>> = T[keyof T];
|
|
8
9
|
|
|
10
|
+
/** Desktop Profile access level for a collaboration destination category. */
|
|
11
|
+
export type CollaborationAccess = Enum<typeof COLLABORATION_ACCESS>;
|
|
12
|
+
|
|
9
13
|
/**
|
|
10
14
|
* Events emitted on task objects
|
|
11
15
|
* @enum {string}
|
|
@@ -57,6 +61,8 @@ export const CC_TASK_EVENTS = {
|
|
|
57
61
|
PARTICIPANT_LEFT_CONFERENCE: 'ParticipantLeftConference',
|
|
58
62
|
/** Event emitted when participant leaving conference fails */
|
|
59
63
|
PARTICIPANT_LEFT_CONFERENCE_FAILED: 'ParticipantLeftConferenceFailed',
|
|
64
|
+
/** Event emitted when dropping another conference participant fails */
|
|
65
|
+
PARTICIPANT_DROP_CONFERENCE_FAILED: 'ParticipantDropConferenceFailed',
|
|
60
66
|
/** Event emitted when consultation conference end fails */
|
|
61
67
|
AGENT_CONSULT_CONFERENCE_END_FAILED: 'AgentConsultConferenceEndFailed',
|
|
62
68
|
/** Event emitted when conference is successfully transferred */
|
|
@@ -65,6 +71,8 @@ export const CC_TASK_EVENTS = {
|
|
|
65
71
|
AGENT_CONFERENCE_TRANSFER_FAILED: 'AgentConferenceTransferFailed',
|
|
66
72
|
/** Event emitted for post-call activity by participant */
|
|
67
73
|
PARTICIPANT_POST_CALL_ACTIVITY: 'ParticipantPostCallActivity',
|
|
74
|
+
/** Event emitted when consulted participant is being moved/transferred */
|
|
75
|
+
CONSULTED_PARTICIPANT_MOVING: 'ConsultedParticipantMoving',
|
|
68
76
|
/** Event emitted when contact is blind transferred */
|
|
69
77
|
AGENT_BLIND_TRANSFERRED: 'AgentBlindTransferred',
|
|
70
78
|
/** Event emitted when blind transfer fails */
|
|
@@ -81,6 +89,8 @@ export const CC_TASK_EVENTS = {
|
|
|
81
89
|
AGENT_CONSULT_TRANSFER_FAILED: 'AgentConsultTransferFailed',
|
|
82
90
|
/** Event emitted when contact recording is paused */
|
|
83
91
|
CONTACT_RECORDING_PAUSED: 'ContactRecordingPaused',
|
|
92
|
+
/** Event emitted when contact recording is started */
|
|
93
|
+
CONTACT_RECORDING_STARTED: 'ContactRecordingStarted',
|
|
84
94
|
/** Event emitted when pausing contact recording fails */
|
|
85
95
|
CONTACT_RECORDING_PAUSE_FAILED: 'ContactRecordingPauseFailed',
|
|
86
96
|
/** Event emitted when contact recording is resumed */
|
|
@@ -91,6 +101,10 @@ export const CC_TASK_EVENTS = {
|
|
|
91
101
|
CONTACT_ENDED: 'ContactEnded',
|
|
92
102
|
/** Event emitted when contact is merged */
|
|
93
103
|
CONTACT_MERGED: 'ContactMerged',
|
|
104
|
+
/** Event emitted when contact payload is updated (routing updates) */
|
|
105
|
+
CONTACT_UPDATED: 'ContactUpdated',
|
|
106
|
+
/** Event emitted when contact owner changes */
|
|
107
|
+
CONTACT_OWNER_CHANGED: 'ContactOwnerChanged',
|
|
94
108
|
/** Event emitted when ending contact fails */
|
|
95
109
|
AGENT_CONTACT_END_FAILED: 'AgentContactEndFailed',
|
|
96
110
|
/** Event emitted when agent enters wrap-up state */
|
|
@@ -111,6 +125,26 @@ export const CC_TASK_EVENTS = {
|
|
|
111
125
|
AGENT_CONTACT_UNASSIGNED: 'AgentContactUnassigned',
|
|
112
126
|
/** Event emitted when inviting agent fails */
|
|
113
127
|
AGENT_INVITE_FAILED: 'AgentInviteFailed',
|
|
128
|
+
/** Event emitted when a campaign preview contact is offered to the agent */
|
|
129
|
+
AGENT_OFFER_CAMPAIGN_RESERVATION: 'AgentOfferCampaignReservation',
|
|
130
|
+
/** Event emitted when campaign contact is updated */
|
|
131
|
+
CAMPAIGN_CONTACT_UPDATED: 'CampaignContactUpdated',
|
|
132
|
+
/** Event emitted when accepting a campaign preview contact fails */
|
|
133
|
+
CAMPAIGN_PREVIEW_ACCEPT_FAILED: 'CampaignPreviewAcceptFailed',
|
|
134
|
+
/** Event emitted when skipping a campaign preview contact fails */
|
|
135
|
+
CAMPAIGN_PREVIEW_SKIP_FAILED: 'CampaignPreviewSkipFailed',
|
|
136
|
+
/** Event emitted when removing a campaign preview contact fails */
|
|
137
|
+
CAMPAIGN_PREVIEW_REMOVE_FAILED: 'CampaignPreviewRemoveFailed',
|
|
138
|
+
/** Event emitted when a real-time transcript chunk is received */
|
|
139
|
+
REAL_TIME_TRANSCRIPTION: 'REAL_TIME_TRANSCRIPTION',
|
|
140
|
+
/** Event emitted when an AI assistant suggested response is available */
|
|
141
|
+
SUGGESTED_RESPONSE: 'SUGGESTED_RESPONSE',
|
|
142
|
+
/** Event emitted when backend acknowledges it is listening for more context */
|
|
143
|
+
SUGGESTED_RESPONSE_ACKNOWLEDGE: 'SUGGESTED_RESPONSE_ACKNOWLEDGE',
|
|
144
|
+
/** Event emitted when a mid-call summary is available */
|
|
145
|
+
MID_CALL_SUMMARY: 'MID_CALL_SUMMARY',
|
|
146
|
+
/** Event emitted when a post-call summary is available */
|
|
147
|
+
POST_CALL_SUMMARY: 'POST_CALL_SUMMARY',
|
|
114
148
|
} as const;
|
|
115
149
|
|
|
116
150
|
/**
|
|
@@ -177,6 +211,15 @@ export type WelcomeEvent = {
|
|
|
177
211
|
agentId: string;
|
|
178
212
|
};
|
|
179
213
|
|
|
214
|
+
/**
|
|
215
|
+
* Available login options for voice channel access
|
|
216
|
+
* 'AGENT_DN' - Login using agent's DN
|
|
217
|
+
* 'EXTENSION' - Login using extension number
|
|
218
|
+
* 'BROWSER' - Login using browser-based WebRTC
|
|
219
|
+
* @public
|
|
220
|
+
*/
|
|
221
|
+
export type LoginOption = 'AGENT_DN' | 'EXTENSION' | 'BROWSER';
|
|
222
|
+
|
|
180
223
|
/**
|
|
181
224
|
* Response type for welcome events which can be either success or error
|
|
182
225
|
* @public
|
|
@@ -267,14 +310,40 @@ export type AgentResponse = {
|
|
|
267
310
|
|
|
268
311
|
/**
|
|
269
312
|
* The default dialed number of the agent.
|
|
313
|
+
* Note: The API returns this field as "deafultDialledNumber" (with typo).
|
|
270
314
|
*/
|
|
271
|
-
|
|
315
|
+
deafultDialledNumber?: string;
|
|
272
316
|
};
|
|
273
317
|
|
|
274
318
|
/**
|
|
275
319
|
* Represents the response from getDesktopProfileById method.
|
|
276
320
|
*/
|
|
277
321
|
export type DesktopProfileResponse = {
|
|
322
|
+
/**
|
|
323
|
+
* Unique identifier of the agent profile configuration.
|
|
324
|
+
*/
|
|
325
|
+
id: string;
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Display name for the agent profile.
|
|
329
|
+
*/
|
|
330
|
+
name: string;
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Description of the agent profile.
|
|
334
|
+
*/
|
|
335
|
+
description: string;
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Parent entity type for the profile (for example ORGANIZATION).
|
|
339
|
+
*/
|
|
340
|
+
parentType: string;
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* Indicates whether screen pop is enabled.
|
|
344
|
+
*/
|
|
345
|
+
screenPopup: boolean;
|
|
346
|
+
|
|
278
347
|
/**
|
|
279
348
|
* Represents the voice options of an agent.
|
|
280
349
|
*/
|
|
@@ -315,6 +384,11 @@ export type DesktopProfileResponse = {
|
|
|
315
384
|
*/
|
|
316
385
|
autoWrapUp: boolean;
|
|
317
386
|
|
|
387
|
+
/**
|
|
388
|
+
* Whether the agent personal greeting is enabled.
|
|
389
|
+
*/
|
|
390
|
+
agentPersonalGreeting: boolean;
|
|
391
|
+
|
|
318
392
|
/**
|
|
319
393
|
* Auto answer allowed.
|
|
320
394
|
*/
|
|
@@ -335,6 +409,36 @@ export type DesktopProfileResponse = {
|
|
|
335
409
|
*/
|
|
336
410
|
allowAutoWrapUpExtension: boolean;
|
|
337
411
|
|
|
412
|
+
/**
|
|
413
|
+
* Access control for queues assigned to the agent (ALL, SPECIFIC, or NONE).
|
|
414
|
+
*/
|
|
415
|
+
accessQueue: CollaborationAccess;
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* Queue identifiers available to the agent when access is SPECIFIC.
|
|
419
|
+
*/
|
|
420
|
+
queues: string[];
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* Access control for entry points assigned to the agent.
|
|
424
|
+
*/
|
|
425
|
+
accessEntryPoint: CollaborationAccess;
|
|
426
|
+
|
|
427
|
+
/**
|
|
428
|
+
* Entry point identifiers available to the agent when access is SPECIFIC.
|
|
429
|
+
*/
|
|
430
|
+
entryPoints: string[];
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* Access control for buddy teams assigned to the agent.
|
|
434
|
+
*/
|
|
435
|
+
accessBuddyTeam: CollaborationAccess;
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Buddy team identifiers available to the agent when access is SPECIFIC.
|
|
439
|
+
*/
|
|
440
|
+
buddyTeams: string[];
|
|
441
|
+
|
|
338
442
|
/**
|
|
339
443
|
* Outdial enabled for the agent.
|
|
340
444
|
*/
|
|
@@ -378,6 +482,11 @@ export type DesktopProfileResponse = {
|
|
|
378
482
|
*/
|
|
379
483
|
agentDNValidation: string;
|
|
380
484
|
|
|
485
|
+
/**
|
|
486
|
+
* Additional DN validation criteria configured for the agent.
|
|
487
|
+
*/
|
|
488
|
+
agentDNValidationCriterions: string[];
|
|
489
|
+
|
|
381
490
|
/**
|
|
382
491
|
* Dial plans of the agent.
|
|
383
492
|
*/
|
|
@@ -412,6 +521,31 @@ export type DesktopProfileResponse = {
|
|
|
412
521
|
* State synchronization in Webex enabled or not.
|
|
413
522
|
*/
|
|
414
523
|
stateSynchronizationWebex: boolean;
|
|
524
|
+
|
|
525
|
+
/**
|
|
526
|
+
* Threshold rules configured for the agent profile.
|
|
527
|
+
*/
|
|
528
|
+
thresholdRules: Array<Record<string, string | number>>;
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* Whether the agent profile is currently active.
|
|
532
|
+
*/
|
|
533
|
+
active: boolean;
|
|
534
|
+
|
|
535
|
+
/**
|
|
536
|
+
* Whether this profile is the system default.
|
|
537
|
+
*/
|
|
538
|
+
systemDefault: boolean;
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* Timestamp when the profile was created.
|
|
542
|
+
*/
|
|
543
|
+
createdTime: number;
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* Timestamp when the profile was last updated.
|
|
547
|
+
*/
|
|
548
|
+
lastUpdatedTime: number;
|
|
415
549
|
};
|
|
416
550
|
|
|
417
551
|
/**
|
|
@@ -580,6 +714,8 @@ export type OrgInfo = {
|
|
|
580
714
|
tenantId: string;
|
|
581
715
|
/** Organization timezone */
|
|
582
716
|
timezone: string;
|
|
717
|
+
/** Current environment (e.g., 'produs1', 'intgus1') */
|
|
718
|
+
environment: string;
|
|
583
719
|
};
|
|
584
720
|
|
|
585
721
|
/**
|
|
@@ -856,15 +992,6 @@ export type WrapupData = {
|
|
|
856
992
|
};
|
|
857
993
|
};
|
|
858
994
|
|
|
859
|
-
/**
|
|
860
|
-
* Available login options for voice channel access
|
|
861
|
-
* 'AGENT_DN' - Login using agent's DN
|
|
862
|
-
* 'EXTENSION' - Login using extension number
|
|
863
|
-
* 'BROWSER' - Login using browser-based WebRTC
|
|
864
|
-
* @public
|
|
865
|
-
*/
|
|
866
|
-
export type LoginOption = 'AGENT_DN' | 'EXTENSION' | 'BROWSER';
|
|
867
|
-
|
|
868
995
|
/**
|
|
869
996
|
* Team configuration information
|
|
870
997
|
* @public
|
|
@@ -900,6 +1027,59 @@ export type URLMappings = {
|
|
|
900
1027
|
acqueonConsoleUrl: string;
|
|
901
1028
|
};
|
|
902
1029
|
|
|
1030
|
+
/**
|
|
1031
|
+
* AI feature resource row returned by /v2/ai-feature API.
|
|
1032
|
+
* @public
|
|
1033
|
+
*/
|
|
1034
|
+
export type AIFeatureFlags = {
|
|
1035
|
+
id: string;
|
|
1036
|
+
realtimeTranscripts?: {
|
|
1037
|
+
enable?: boolean;
|
|
1038
|
+
agentInclusionType?: string;
|
|
1039
|
+
};
|
|
1040
|
+
suggestedResponses?: {
|
|
1041
|
+
enable?: boolean;
|
|
1042
|
+
};
|
|
1043
|
+
generatedSummaries?: {
|
|
1044
|
+
callDropSummariesEnabled?: boolean;
|
|
1045
|
+
virtualAgentTransferSummariesEnabled?: boolean;
|
|
1046
|
+
consultTransferSummariesEnabled?: boolean;
|
|
1047
|
+
wrapUpSummariesEnabled?: boolean;
|
|
1048
|
+
queuesInclusionType?: string;
|
|
1049
|
+
};
|
|
1050
|
+
agentWellbeing?: {
|
|
1051
|
+
enable?: boolean;
|
|
1052
|
+
agentInclusionType?: string;
|
|
1053
|
+
wellnessBreakReminders?: string;
|
|
1054
|
+
};
|
|
1055
|
+
autoCSAT?: {
|
|
1056
|
+
enable?: boolean;
|
|
1057
|
+
queuesInclusionType?: string;
|
|
1058
|
+
surveyDataSource?: string;
|
|
1059
|
+
};
|
|
1060
|
+
links?: string[];
|
|
1061
|
+
createdTime?: number;
|
|
1062
|
+
lastUpdatedTime?: number;
|
|
1063
|
+
};
|
|
1064
|
+
|
|
1065
|
+
/**
|
|
1066
|
+
* Response type for list AI feature resources API.
|
|
1067
|
+
* @public
|
|
1068
|
+
*/
|
|
1069
|
+
export type AIFeatureFlagsResponse = {
|
|
1070
|
+
meta?: {
|
|
1071
|
+
orgid?: string;
|
|
1072
|
+
page?: number;
|
|
1073
|
+
pageSize?: number;
|
|
1074
|
+
totalPages?: number;
|
|
1075
|
+
totalRecords?: number;
|
|
1076
|
+
links?: {
|
|
1077
|
+
self?: string;
|
|
1078
|
+
};
|
|
1079
|
+
};
|
|
1080
|
+
data: AIFeatureFlags[];
|
|
1081
|
+
};
|
|
1082
|
+
|
|
903
1083
|
/**
|
|
904
1084
|
* Comprehensive agent profile configuration in the contact center system
|
|
905
1085
|
* Contains all settings and capabilities for an agent
|
|
@@ -984,7 +1164,7 @@ export type Profile = {
|
|
|
984
1164
|
/** Outbound entry point */
|
|
985
1165
|
outDialEp: string;
|
|
986
1166
|
/** Whether ending calls is enabled */
|
|
987
|
-
|
|
1167
|
+
isEndTaskEnabled: boolean;
|
|
988
1168
|
/** Whether ending consultations is enabled */
|
|
989
1169
|
isEndConsultEnabled: boolean;
|
|
990
1170
|
/** Optional lifecycle manager URL */
|
|
@@ -995,6 +1175,12 @@ export type Profile = {
|
|
|
995
1175
|
agentAnalyzerId?: string;
|
|
996
1176
|
/** Whether consult to queue is allowed */
|
|
997
1177
|
allowConsultToQueue: boolean;
|
|
1178
|
+
/** Access control for queues on Desktop Profile Collaboration tab */
|
|
1179
|
+
accessQueue?: CollaborationAccess;
|
|
1180
|
+
/** Access control for entry points on Desktop Profile Collaboration tab */
|
|
1181
|
+
accessEntryPoint?: CollaborationAccess;
|
|
1182
|
+
/** Access control for buddy teams on Desktop Profile Collaboration tab */
|
|
1183
|
+
accessBuddyTeam?: CollaborationAccess;
|
|
998
1184
|
/** Additional campaign manager information */
|
|
999
1185
|
campaignManagerAdditionalInfo?: string;
|
|
1000
1186
|
/** Whether personal statistics are enabled */
|
|
@@ -1031,6 +1217,8 @@ export type Profile = {
|
|
|
1031
1217
|
isAnalyzerEnabled?: boolean;
|
|
1032
1218
|
/** Tenant timezone */
|
|
1033
1219
|
tenantTimezone?: string;
|
|
1220
|
+
/** Current environment (e.g., 'produs1', 'intgus1') */
|
|
1221
|
+
environment?: string;
|
|
1034
1222
|
/** Available voice login options */
|
|
1035
1223
|
loginVoiceOptions?: LoginOption[];
|
|
1036
1224
|
/** Current login device type */
|
|
@@ -1055,6 +1243,8 @@ export type Profile = {
|
|
|
1055
1243
|
lastStateChangeTimestamp?: number;
|
|
1056
1244
|
/** Timestamp of last idle code change */
|
|
1057
1245
|
lastIdleCodeChangeTimestamp?: number;
|
|
1246
|
+
/** AI feature flags resolved from organization config */
|
|
1247
|
+
aiFeature?: AIFeatureFlags;
|
|
1058
1248
|
};
|
|
1059
1249
|
|
|
1060
1250
|
/**
|
|
@@ -1116,3 +1306,55 @@ export type OutdialAniParams = {
|
|
|
1116
1306
|
/** Comma-separated list of attributes to include in response (optional) */
|
|
1117
1307
|
attributes?: string;
|
|
1118
1308
|
};
|
|
1309
|
+
|
|
1310
|
+
/**
|
|
1311
|
+
* User preference data structure
|
|
1312
|
+
* @public
|
|
1313
|
+
*/
|
|
1314
|
+
export type UserPreference = {
|
|
1315
|
+
/** Unique identifier for the user preference */
|
|
1316
|
+
id: string;
|
|
1317
|
+
/** Organization ID */
|
|
1318
|
+
organizationId: string;
|
|
1319
|
+
/** User ID (CI user ID) */
|
|
1320
|
+
userId: string;
|
|
1321
|
+
/** User preference data as key-value pairs */
|
|
1322
|
+
preferences: Record<string, unknown>;
|
|
1323
|
+
/** Timestamp when this preference was created (Unix timestamp in milliseconds) */
|
|
1324
|
+
createdTime?: number;
|
|
1325
|
+
/** Timestamp when this preference was last updated (Unix timestamp in milliseconds) */
|
|
1326
|
+
lastUpdatedTime?: number;
|
|
1327
|
+
};
|
|
1328
|
+
|
|
1329
|
+
/**
|
|
1330
|
+
* Request payload for creating user preferences
|
|
1331
|
+
* @public
|
|
1332
|
+
*/
|
|
1333
|
+
export type CreateUserPreferenceRequest = {
|
|
1334
|
+
/** User ID (CI user ID) */
|
|
1335
|
+
userId: string;
|
|
1336
|
+
/** Desktop preference data as a JSON string (required) */
|
|
1337
|
+
desktopPreference: string;
|
|
1338
|
+
};
|
|
1339
|
+
|
|
1340
|
+
/**
|
|
1341
|
+
* Request payload for updating user preferences
|
|
1342
|
+
* @public
|
|
1343
|
+
*/
|
|
1344
|
+
export type UpdateUserPreferenceRequest = {
|
|
1345
|
+
/** Desktop preference data as a JSON string (required) */
|
|
1346
|
+
desktopPreference: string;
|
|
1347
|
+
};
|
|
1348
|
+
|
|
1349
|
+
/**
|
|
1350
|
+
* Query parameters for fetching user preferences
|
|
1351
|
+
* @public
|
|
1352
|
+
*/
|
|
1353
|
+
export type GetUserPreferenceParams = {
|
|
1354
|
+
/** User ID to fetch preferences for. Defaults to current user's CI user ID. */
|
|
1355
|
+
userId?: string;
|
|
1356
|
+
/** Page number (0-indexed). Default: 0 */
|
|
1357
|
+
page?: number;
|
|
1358
|
+
/** Number of items per page. Default: 100 */
|
|
1359
|
+
pageSize?: number;
|
|
1360
|
+
};
|
|
@@ -59,6 +59,14 @@ export const AGENT = 'agent';
|
|
|
59
59
|
*/
|
|
60
60
|
export const SUBSCRIBE_API = 'v1/notification/subscribe';
|
|
61
61
|
|
|
62
|
+
/**
|
|
63
|
+
* API path for realtime transcription subscription.
|
|
64
|
+
* @type {string}
|
|
65
|
+
* @public
|
|
66
|
+
* @ignore
|
|
67
|
+
*/
|
|
68
|
+
export const RTD_SUBSCRIBE_API = 'v1/realtime/subscribe';
|
|
69
|
+
|
|
62
70
|
/**
|
|
63
71
|
* API path for agent login.
|
|
64
72
|
* @type {string}
|
|
@@ -109,3 +117,24 @@ export const METHODS = {
|
|
|
109
117
|
MAP_CALL_TO_TASK: 'mapCallToTask',
|
|
110
118
|
GET_TASK_ID_FOR_CALL: 'getTaskIdForCall',
|
|
111
119
|
};
|
|
120
|
+
|
|
121
|
+
export const AI_ASSISTANT_API_URLS = {
|
|
122
|
+
EVENT: '/event',
|
|
123
|
+
TRANSCRIPTS_LIST: '/transcripts/list',
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export const AI_ASSISTANT_BASE_URL_TEMPLATE = 'https://api-ai-assistant.%s.ciscoccservice.com';
|
|
127
|
+
|
|
128
|
+
export const AI_ASSISTANT_ENV_MAP: Record<string, string> = {
|
|
129
|
+
'api.intgus1.ciscoccservice.com': 'intgus1',
|
|
130
|
+
'api.qaus1.ciscoccservice.com': 'qaus1',
|
|
131
|
+
'api.wxcc-us1.cisco.com': 'produs1',
|
|
132
|
+
'api.wxcc-eu1.cisco.com': 'prodeu1',
|
|
133
|
+
'api.wxcc-eu2.cisco.com': 'prodeu2',
|
|
134
|
+
'api.wxcc-anz1.cisco.com': 'prodanz1',
|
|
135
|
+
'api.wxcc-ca1.cisco.com': 'prodca1',
|
|
136
|
+
'api.wxcc-jp1.cisco.com': 'prodjp1',
|
|
137
|
+
'api.wxcc-sg1.cisco.com': 'prodsg1',
|
|
138
|
+
'api.wxcc-in1.cisco.com': 'prodin1',
|
|
139
|
+
'api.loadus1.cisco.com': 'loadus1',
|
|
140
|
+
};
|
package/src/services/core/Err.ts
CHANGED
|
@@ -30,6 +30,7 @@ export type TaskErrorIds =
|
|
|
30
30
|
| {'Service.aqm.err.trackingId': {trackingId: string}}
|
|
31
31
|
| {'Service.aqm.task.consultAccept': Failure}
|
|
32
32
|
| {'Service.aqm.task.consultConference': Failure}
|
|
33
|
+
| {'Service.aqm.task.dropConferenceParticipant': Failure}
|
|
33
34
|
| {'Service.aqm.task.consultEnd': Failure}
|
|
34
35
|
| {'Service.aqm.task.cancelCtq': Failure}
|
|
35
36
|
| {'Service.aqm.task.hold': Failure}
|
|
@@ -38,6 +39,9 @@ export type TaskErrorIds =
|
|
|
38
39
|
| {'Service.aqm.task.pauseRecording': Failure}
|
|
39
40
|
| {'Service.aqm.task.resumeRecording': Failure}
|
|
40
41
|
| {'Service.aqm.dialer.startOutdial': Failure}
|
|
42
|
+
| {'Service.aqm.dialer.acceptPreviewContact': Failure}
|
|
43
|
+
| {'Service.aqm.dialer.skipPreviewContact': Failure}
|
|
44
|
+
| {'Service.aqm.dialer.removePreviewContact': Failure}
|
|
41
45
|
| {'Service.reqs.generic.failure': {trackingId: string}};
|
|
42
46
|
|
|
43
47
|
export type ReqError =
|