@webex/contact-center 3.12.0-next.149 → 3.12.0-next.150
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 +1 -1
- package/ai-docs/CONTRACTS.md +1 -0
- package/dist/cc.js +4 -4
- package/dist/cc.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/services/config/Util.js +38 -45
- package/dist/services/config/Util.js.map +1 -1
- package/dist/services/config/constants.js +15 -71
- package/dist/services/config/constants.js.map +1 -1
- package/dist/services/config/index.js +49 -226
- package/dist/services/config/index.js.map +1 -1
- package/dist/services/config/types.js +33 -11
- package/dist/services/config/types.js.map +1 -1
- package/dist/types/cc.d.ts +3 -3
- package/dist/types/index.d.ts +16 -8
- package/dist/types/services/config/Util.d.ts +4 -8
- package/dist/types/services/config/constants.d.ts +15 -71
- package/dist/types/services/config/index.d.ts +16 -64
- package/dist/types/services/config/types.d.ts +97 -160
- package/dist/webex.js +1 -1
- package/package.json +1 -1
- package/src/cc.ts +4 -4
- package/src/index.ts +16 -8
- package/src/services/agent/ai-docs/AGENTS.md +1 -1
- package/src/services/config/Util.ts +43 -82
- package/src/services/config/ai-docs/AGENTS.md +34 -39
- package/src/services/config/ai-docs/ARCHITECTURE.md +88 -101
- package/src/services/config/ai-docs/config-spec.md +115 -132
- package/src/services/config/constants.ts +18 -80
- package/src/services/config/index.ts +52 -278
- package/src/services/config/types.ts +101 -185
- package/test/unit/spec/index.ts +6 -2
- package/test/unit/spec/services/config/Util.ts +442 -70
- package/test/unit/spec/services/config/index.ts +246 -544
- package/typedoc.md +1 -1
- package/umd/contact-center.min.js +2 -2
- package/umd/contact-center.min.js.map +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @packageDocumentation
|
|
3
3
|
* @module AgentConfigService
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { ListAuxCodesResponse, OrgDesktopLoginResponse, UserDesktopLoginResponse, TeamList, DialPlanEntity, Profile, ListTeamsResponse, AuxCode, MultimediaProfileResponse, SiteInfo, OutdialAniEntriesResponse, OutdialAniParams } from './types';
|
|
6
6
|
/**
|
|
7
7
|
* The AgentConfigService class provides methods to fetch agent configuration data.
|
|
8
8
|
* @private
|
|
@@ -21,25 +21,24 @@ export default class AgentConfigService {
|
|
|
21
21
|
*/
|
|
22
22
|
getAgentConfig(orgId: string, agentId: string): Promise<Profile>;
|
|
23
23
|
/**
|
|
24
|
-
* Fetches the
|
|
24
|
+
* Fetches the aggregated organization desktop-login configuration for the given orgId.
|
|
25
25
|
* @ignore
|
|
26
|
-
* @param {string} orgId - organization ID for which the
|
|
27
|
-
* @
|
|
28
|
-
* @returns {Promise<AgentResponse>} - A promise that resolves to the agent configuration response.
|
|
26
|
+
* @param {string} orgId - organization ID for which the configuration is to be fetched.
|
|
27
|
+
* @returns {Promise<OrgDesktopLoginResponse>} - A promise that resolves to the organization configuration.
|
|
29
28
|
* @throws {Error} - Throws an error if the API call fails or if the response status is not 200.
|
|
30
29
|
* @private
|
|
31
30
|
*/
|
|
32
|
-
|
|
31
|
+
getOrgDesktopLoginConfig(orgId: string): Promise<OrgDesktopLoginResponse>;
|
|
33
32
|
/**
|
|
34
|
-
* Fetches the desktop
|
|
33
|
+
* Fetches the aggregated user desktop-login configuration for the given orgId and ciUserId.
|
|
35
34
|
* @ignore
|
|
36
|
-
* @param {string} orgId - organization ID for which the
|
|
37
|
-
* @param {string}
|
|
38
|
-
* @returns {Promise<
|
|
35
|
+
* @param {string} orgId - organization ID for which the configuration is to be fetched.
|
|
36
|
+
* @param {string} ciUserId - CI user ID of the agent whose configuration is to be fetched.
|
|
37
|
+
* @returns {Promise<UserDesktopLoginResponse>} - A promise that resolves to the user configuration.
|
|
39
38
|
* @throws {Error} - Throws an error if the API call fails or if the response status is not 200.
|
|
40
39
|
* @private
|
|
41
40
|
*/
|
|
42
|
-
|
|
41
|
+
getUserDesktopLoginConfig(orgId: string, ciUserId: string): Promise<UserDesktopLoginResponse>;
|
|
43
42
|
/**
|
|
44
43
|
* Fetches the multimedia profile data for the given orgId and multimediaProfileId.
|
|
45
44
|
* @ignore
|
|
@@ -51,30 +50,28 @@ export default class AgentConfigService {
|
|
|
51
50
|
*/
|
|
52
51
|
getMultimediaProfileById(orgId: string, multimediaProfileId: string): Promise<MultimediaProfileResponse>;
|
|
53
52
|
/**
|
|
54
|
-
* fetches the list of teams
|
|
53
|
+
* fetches the list of teams the given user belongs to.
|
|
55
54
|
* @ignore
|
|
56
55
|
* @param {string} orgId - organization ID for which the teams are to be fetched.
|
|
57
56
|
* @param {number} page - the page number to fetch.
|
|
58
57
|
* @param {number} pageSize - the number of teams to fetch per page.
|
|
59
|
-
* @param {string
|
|
60
|
-
* @param {string[]} attributes - optional attributes to include in the response.
|
|
58
|
+
* @param {string} userDbId - database ID of the user whose teams are to be fetched.
|
|
61
59
|
* @returns {Promise<ListTeamsResponse>} - A promise that resolves to the list of teams response.
|
|
62
60
|
* @throws {Error} - Throws an error if the API call fails or if the response status is not 200.
|
|
63
61
|
* @private
|
|
64
62
|
*/
|
|
65
|
-
getListOfTeams(orgId: string, page: number, pageSize: number,
|
|
63
|
+
getListOfTeams(orgId: string, page: number, pageSize: number, userDbId: string): Promise<ListTeamsResponse>;
|
|
66
64
|
/**
|
|
67
|
-
* Fetches all teams
|
|
65
|
+
* Fetches all teams the given user belongs to, from all pages
|
|
68
66
|
* @ignore
|
|
69
67
|
* @param {string} orgId - organization ID for which the teams are to be fetched.
|
|
70
68
|
* @param {number} pageSize - the number of teams to fetch per page.
|
|
71
|
-
* @param {string
|
|
72
|
-
* @param {string[]} attributes - optional attributes to include in the response.
|
|
69
|
+
* @param {string} userDbId - database ID of the user whose teams are to be fetched.
|
|
73
70
|
* @returns {Promise<TeamList[]>} - A promise that resolves to the list of teams.
|
|
74
71
|
* @throws {Error} - Throws an error if the API call fails or if the response status is not 200.
|
|
75
72
|
* @private
|
|
76
73
|
*/
|
|
77
|
-
getAllTeams(orgId: string, pageSize: number,
|
|
74
|
+
getAllTeams(orgId: string, pageSize: number, userDbId: string): Promise<TeamList[]>;
|
|
78
75
|
/**
|
|
79
76
|
* fetches the list of aux codes for the given orgId.
|
|
80
77
|
* @ignore
|
|
@@ -110,51 +107,6 @@ export default class AgentConfigService {
|
|
|
110
107
|
* @private
|
|
111
108
|
*/
|
|
112
109
|
getSiteInfo(orgId: string, siteId: string): Promise<SiteInfo>;
|
|
113
|
-
/**
|
|
114
|
-
* Fetches the organization info for the given orgId.
|
|
115
|
-
* @ignore
|
|
116
|
-
* @param {string} orgId - organization ID for which the organization info is to be fetched.
|
|
117
|
-
* @returns {Promise<OrgInfo>} - A promise that resolves to the organization info response.
|
|
118
|
-
* @throws {Error} - Throws an error if the API call fails or if the response status is not 200.
|
|
119
|
-
* @private
|
|
120
|
-
*/
|
|
121
|
-
getOrgInfo(orgId: string): Promise<OrgInfo>;
|
|
122
|
-
/**
|
|
123
|
-
* Fetches the organization settings for the given orgId.
|
|
124
|
-
* @ignore
|
|
125
|
-
* @param {string} orgId - organization ID for which the organization settings are to be fetched.
|
|
126
|
-
* @returns {Promise<OrgSettings>} - A promise that resolves to the organization settings response.
|
|
127
|
-
* @throws {Error} - Throws an error if the API call fails or if the response status is not 200.
|
|
128
|
-
* @private
|
|
129
|
-
*/
|
|
130
|
-
getOrganizationSetting(orgId: string): Promise<OrgSettings>;
|
|
131
|
-
/**
|
|
132
|
-
* Fetches the tenant data for the given orgId.
|
|
133
|
-
* @ignore
|
|
134
|
-
* @param {string} orgId - organization ID for which the tenant data is to be fetched.
|
|
135
|
-
* @returns {Promise<TenantData>} - A promise that resolves to the tenant data response.
|
|
136
|
-
* @throws {Error} - Throws an error if the API call fails or if the response status is not 200.
|
|
137
|
-
* @private
|
|
138
|
-
*/
|
|
139
|
-
getTenantData(orgId: string): Promise<TenantData>;
|
|
140
|
-
/**
|
|
141
|
-
* Fetches the URL mapping data for the given orgId.
|
|
142
|
-
* @ignore
|
|
143
|
-
* @param {string} orgId - organization ID for which the URL mapping is to be fetched.
|
|
144
|
-
* @returns {Promise<URLMapping[]>} - A promise that resolves to the URL mapping response.
|
|
145
|
-
* @throws {Error} - Throws an error if the API call fails or if the response status is not 200.
|
|
146
|
-
* @private
|
|
147
|
-
*/
|
|
148
|
-
getURLMapping(orgId: string): Promise<URLMapping[]>;
|
|
149
|
-
/**
|
|
150
|
-
* Fetches AI feature resources for the organization.
|
|
151
|
-
* @ignore
|
|
152
|
-
* @param {string} orgId - organization ID for which AI feature resources are to be fetched.
|
|
153
|
-
* @returns {Promise<AIFeatureFlagsResponse>} - AI feature resources response.
|
|
154
|
-
* @throws {Error} - Throws an error if the API call fails or if the response status is not 200.
|
|
155
|
-
* @private
|
|
156
|
-
*/
|
|
157
|
-
getAIFeatureFlags(orgId: string): Promise<AIFeatureFlagsResponse>;
|
|
158
110
|
/**
|
|
159
111
|
* Fetches the dial plan data for the given orgId.
|
|
160
112
|
* @ignore
|
|
@@ -403,7 +403,7 @@ export type WebSocketEvent = {
|
|
|
403
403
|
data: WelcomeEvent | Agent.StationLoginSuccess | Agent.LogoutSuccess | Agent.ReloginSuccess | Agent.StateChangeSuccess | Agent.BuddyAgentsSuccess;
|
|
404
404
|
};
|
|
405
405
|
/**
|
|
406
|
-
*
|
|
406
|
+
* Agent identity carried by the `user` section of the user desktop-login aggregate.
|
|
407
407
|
*/
|
|
408
408
|
export type AgentResponse = {
|
|
409
409
|
/**
|
|
@@ -430,14 +430,6 @@ export type AgentResponse = {
|
|
|
430
430
|
* The email address of the agent.
|
|
431
431
|
*/
|
|
432
432
|
email: string;
|
|
433
|
-
/**
|
|
434
|
-
* Team IDs assigned to the agent.
|
|
435
|
-
*/
|
|
436
|
-
teamIds: string[];
|
|
437
|
-
/**
|
|
438
|
-
* Multimedia profile ID associated with the agent.
|
|
439
|
-
*/
|
|
440
|
-
multimediaProfileId: string;
|
|
441
433
|
/**
|
|
442
434
|
* Skill profile ID of the agent.
|
|
443
435
|
*/
|
|
@@ -447,9 +439,10 @@ export type AgentResponse = {
|
|
|
447
439
|
*/
|
|
448
440
|
siteId: string;
|
|
449
441
|
/**
|
|
450
|
-
* Database ID of the agent
|
|
442
|
+
* Database ID of the agent, distinct from `ciUserId`. Passed as `userDbId` to the team lookup,
|
|
443
|
+
* which sends it as the backend's `filter=userId==` value.
|
|
451
444
|
*/
|
|
452
|
-
dbId
|
|
445
|
+
dbId: string;
|
|
453
446
|
/**
|
|
454
447
|
* The default dialed number of the agent.
|
|
455
448
|
* Note: The API returns this field as "deafultDialledNumber" (with typo).
|
|
@@ -457,31 +450,12 @@ export type AgentResponse = {
|
|
|
457
450
|
deafultDialledNumber?: string;
|
|
458
451
|
};
|
|
459
452
|
/**
|
|
460
|
-
*
|
|
453
|
+
* Desktop Profile settings carried by the `agentProfile` section of the user desktop-login
|
|
454
|
+
* aggregate.
|
|
461
455
|
*/
|
|
462
|
-
export type
|
|
463
|
-
/**
|
|
464
|
-
* Unique identifier of the agent profile configuration.
|
|
465
|
-
*/
|
|
466
|
-
id: string;
|
|
467
|
-
/**
|
|
468
|
-
* Display name for the agent profile.
|
|
469
|
-
*/
|
|
470
|
-
name: string;
|
|
456
|
+
export type AgentProfile = {
|
|
471
457
|
/**
|
|
472
|
-
*
|
|
473
|
-
*/
|
|
474
|
-
description: string;
|
|
475
|
-
/**
|
|
476
|
-
* Parent entity type for the profile (for example ORGANIZATION).
|
|
477
|
-
*/
|
|
478
|
-
parentType: string;
|
|
479
|
-
/**
|
|
480
|
-
* Indicates whether screen pop is enabled.
|
|
481
|
-
*/
|
|
482
|
-
screenPopup: boolean;
|
|
483
|
-
/**
|
|
484
|
-
* Represents the voice options of an agent.
|
|
458
|
+
* Represents the voice options of an agent. The order is nondeterministic; treat as a set.
|
|
485
459
|
*/
|
|
486
460
|
loginVoiceOptions: LoginOption[];
|
|
487
461
|
/**
|
|
@@ -492,14 +466,6 @@ export type DesktopProfileResponse = {
|
|
|
492
466
|
* Idle codes that the agents can select in Agent Desktop. It can take one of these values: ALL - To make all idle codes available. SPECIFIC - To make specific codes available.
|
|
493
467
|
*/
|
|
494
468
|
accessIdleCode: string;
|
|
495
|
-
/**
|
|
496
|
-
* Wrap-up codes list that the agents can select when they wrap up a contact.
|
|
497
|
-
*/
|
|
498
|
-
wrapUpCodes: string[];
|
|
499
|
-
/**
|
|
500
|
-
* Idle codes list that the agents can select in Agent Desktop.
|
|
501
|
-
*/
|
|
502
|
-
idleCodes: string[];
|
|
503
469
|
/**
|
|
504
470
|
* Dial plan enabled for the agent.
|
|
505
471
|
*/
|
|
@@ -515,11 +481,7 @@ export type DesktopProfileResponse = {
|
|
|
515
481
|
/**
|
|
516
482
|
* Whether the agent personal greeting is enabled.
|
|
517
483
|
*/
|
|
518
|
-
agentPersonalGreeting
|
|
519
|
-
/**
|
|
520
|
-
* Auto answer allowed.
|
|
521
|
-
*/
|
|
522
|
-
autoAnswer: boolean;
|
|
484
|
+
agentPersonalGreeting?: boolean;
|
|
523
485
|
/**
|
|
524
486
|
* Auto wrap-up after seconds.
|
|
525
487
|
*/
|
|
@@ -536,26 +498,14 @@ export type DesktopProfileResponse = {
|
|
|
536
498
|
* Access control for queues assigned to the agent (ALL, SPECIFIC, or NONE).
|
|
537
499
|
*/
|
|
538
500
|
accessQueue: CollaborationAccess;
|
|
539
|
-
/**
|
|
540
|
-
* Queue identifiers available to the agent when access is SPECIFIC.
|
|
541
|
-
*/
|
|
542
|
-
queues: string[];
|
|
543
501
|
/**
|
|
544
502
|
* Access control for entry points assigned to the agent.
|
|
545
503
|
*/
|
|
546
504
|
accessEntryPoint: CollaborationAccess;
|
|
547
|
-
/**
|
|
548
|
-
* Entry point identifiers available to the agent when access is SPECIFIC.
|
|
549
|
-
*/
|
|
550
|
-
entryPoints: string[];
|
|
551
505
|
/**
|
|
552
506
|
* Access control for buddy teams assigned to the agent.
|
|
553
507
|
*/
|
|
554
508
|
accessBuddyTeam: CollaborationAccess;
|
|
555
|
-
/**
|
|
556
|
-
* Buddy team identifiers available to the agent when access is SPECIFIC.
|
|
557
|
-
*/
|
|
558
|
-
buddyTeams: string[];
|
|
559
509
|
/**
|
|
560
510
|
* Outdial enabled for the agent.
|
|
561
511
|
*/
|
|
@@ -568,6 +518,10 @@ export type DesktopProfileResponse = {
|
|
|
568
518
|
* Outdial ANI ID of the agent.
|
|
569
519
|
*/
|
|
570
520
|
outdialANIId: string;
|
|
521
|
+
/**
|
|
522
|
+
* Whether the agent can schedule and manage callbacks.
|
|
523
|
+
*/
|
|
524
|
+
scheduleAndManageCallBack?: boolean;
|
|
571
525
|
/**
|
|
572
526
|
* Consult to queue allowed.
|
|
573
527
|
*/
|
|
@@ -575,31 +529,18 @@ export type DesktopProfileResponse = {
|
|
|
575
529
|
/**
|
|
576
530
|
* Address book ID of the agent.
|
|
577
531
|
*/
|
|
578
|
-
addressBookId
|
|
532
|
+
addressBookId?: string;
|
|
579
533
|
/**
|
|
580
534
|
* Viewable statistics of the agent.
|
|
581
535
|
*/
|
|
582
536
|
viewableStatistics: {
|
|
583
|
-
id: string;
|
|
584
537
|
agentStats: boolean;
|
|
585
|
-
|
|
586
|
-
contactServiceQueues: string[];
|
|
587
|
-
loggedInTeamStats: boolean;
|
|
588
|
-
accessTeamStats: string;
|
|
589
|
-
teams: string[];
|
|
538
|
+
aiAgentPerformance?: boolean;
|
|
590
539
|
};
|
|
591
540
|
/**
|
|
592
541
|
* Agent DN validation of the agent.
|
|
593
542
|
*/
|
|
594
543
|
agentDNValidation: string;
|
|
595
|
-
/**
|
|
596
|
-
* Additional DN validation criteria configured for the agent.
|
|
597
|
-
*/
|
|
598
|
-
agentDNValidationCriterions: string[];
|
|
599
|
-
/**
|
|
600
|
-
* Dial plans of the agent.
|
|
601
|
-
*/
|
|
602
|
-
dialPlans: string[];
|
|
603
544
|
/**
|
|
604
545
|
* Timeout desktop inactivity custom enabled.
|
|
605
546
|
*/
|
|
@@ -607,43 +548,7 @@ export type DesktopProfileResponse = {
|
|
|
607
548
|
/**
|
|
608
549
|
* Timeout desktop inactivity minutes.
|
|
609
550
|
*/
|
|
610
|
-
timeoutDesktopInactivityMins
|
|
611
|
-
/**
|
|
612
|
-
* Show user details in Microsoft enabled or not.
|
|
613
|
-
*/
|
|
614
|
-
showUserDetailsMS: boolean;
|
|
615
|
-
/**
|
|
616
|
-
* State synchronization in Microsoft enabled or not.
|
|
617
|
-
*/
|
|
618
|
-
stateSynchronizationMS: boolean;
|
|
619
|
-
/**
|
|
620
|
-
* Show user details in Webex enabled or not.
|
|
621
|
-
*/
|
|
622
|
-
showUserDetailsWebex: boolean;
|
|
623
|
-
/**
|
|
624
|
-
* State synchronization in Webex enabled or not.
|
|
625
|
-
*/
|
|
626
|
-
stateSynchronizationWebex: boolean;
|
|
627
|
-
/**
|
|
628
|
-
* Threshold rules configured for the agent profile.
|
|
629
|
-
*/
|
|
630
|
-
thresholdRules: Array<Record<string, string | number>>;
|
|
631
|
-
/**
|
|
632
|
-
* Whether the agent profile is currently active.
|
|
633
|
-
*/
|
|
634
|
-
active: boolean;
|
|
635
|
-
/**
|
|
636
|
-
* Whether this profile is the system default.
|
|
637
|
-
*/
|
|
638
|
-
systemDefault: boolean;
|
|
639
|
-
/**
|
|
640
|
-
* Timestamp when the profile was created.
|
|
641
|
-
*/
|
|
642
|
-
createdTime: number;
|
|
643
|
-
/**
|
|
644
|
-
* Timestamp when the profile was last updated.
|
|
645
|
-
*/
|
|
646
|
-
lastUpdatedTime: number;
|
|
551
|
+
timeoutDesktopInactivityMins?: number;
|
|
647
552
|
};
|
|
648
553
|
/**
|
|
649
554
|
* Response containing multimedia profile configuration for an agent
|
|
@@ -790,7 +695,8 @@ export type ListTeamsResponse = {
|
|
|
790
695
|
};
|
|
791
696
|
};
|
|
792
697
|
/**
|
|
793
|
-
* Basic organization information
|
|
698
|
+
* Basic organization information carried by the `organization` section of the org desktop-login
|
|
699
|
+
* aggregate.
|
|
794
700
|
* @private
|
|
795
701
|
* @ignore
|
|
796
702
|
*/
|
|
@@ -799,11 +705,10 @@ export type OrgInfo = {
|
|
|
799
705
|
tenantId: string;
|
|
800
706
|
/** Organization timezone */
|
|
801
707
|
timezone: string;
|
|
802
|
-
/** Current environment (e.g., 'produs1', 'intgus1') */
|
|
803
|
-
environment: string;
|
|
804
708
|
};
|
|
805
709
|
/**
|
|
806
|
-
* Organization-wide feature settings
|
|
710
|
+
* Organization-wide feature settings carried by the `organizationSetting` section of the org
|
|
711
|
+
* desktop-login aggregate.
|
|
807
712
|
* @private
|
|
808
713
|
*/
|
|
809
714
|
export type OrgSettings = {
|
|
@@ -833,12 +738,13 @@ export type SiteInfo = {
|
|
|
833
738
|
systemDefault: boolean;
|
|
834
739
|
};
|
|
835
740
|
/**
|
|
836
|
-
* Tenant-level configuration
|
|
741
|
+
* Tenant-level configuration carried by the `tenantConfiguration` section of the org
|
|
742
|
+
* desktop-login aggregate.
|
|
837
743
|
* @private
|
|
838
744
|
*/
|
|
839
745
|
export type TenantData = {
|
|
840
|
-
/** Desktop inactivity timeout in minutes */
|
|
841
|
-
timeoutDesktopInactivityMins
|
|
746
|
+
/** Desktop inactivity timeout in minutes. Omitted when the timeout is not enabled. */
|
|
747
|
+
timeoutDesktopInactivityMins?: number;
|
|
842
748
|
/** Whether default DN is enforced */
|
|
843
749
|
forceDefaultDn: boolean;
|
|
844
750
|
/** Regex pattern for default DN validation */
|
|
@@ -861,16 +767,44 @@ export type TenantData = {
|
|
|
861
767
|
lostConnectionRecoveryTimeout: number;
|
|
862
768
|
};
|
|
863
769
|
/**
|
|
864
|
-
* URL
|
|
770
|
+
* URL mappings carried by the `urlMappings` section of the org desktop-login aggregate, keyed by
|
|
771
|
+
* mapping name. The aggregate returns `{}` when the organization has no Acqueon configuration.
|
|
865
772
|
* @public
|
|
866
773
|
*/
|
|
867
|
-
export type
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
774
|
+
export type OrgUrlMappings = {
|
|
775
|
+
/** Acqueon API endpoint URL */
|
|
776
|
+
ACQUEON_API_URL?: string;
|
|
777
|
+
/** Acqueon console URL */
|
|
778
|
+
ACQUEON_CONSOLE_URL?: string;
|
|
779
|
+
};
|
|
780
|
+
/**
|
|
781
|
+
* Organization-level Microsoft Teams integration configuration carried by the `microsoftConfig`
|
|
782
|
+
* section of the org desktop-login aggregate. The whole section is absent when the organization
|
|
783
|
+
* has no Microsoft integration.
|
|
784
|
+
* @public
|
|
785
|
+
*/
|
|
786
|
+
export type MicrosoftConfig = {
|
|
787
|
+
/** Whether to show user details in Teams */
|
|
788
|
+
showUserDetails?: boolean;
|
|
789
|
+
/** Whether to sync agent state with Teams */
|
|
790
|
+
stateSynchronization?: boolean;
|
|
791
|
+
/** Whether the integration is enabled organization-wide */
|
|
792
|
+
active?: boolean;
|
|
793
|
+
/** Idle codes mapped to Teams presence states */
|
|
794
|
+
idleCodes?: Record<string, string>;
|
|
795
|
+
};
|
|
796
|
+
/**
|
|
797
|
+
* Organization-level Webex integration configuration carried by the `webexConfig` section of the
|
|
798
|
+
* org desktop-login aggregate.
|
|
799
|
+
* @public
|
|
800
|
+
*/
|
|
801
|
+
export type WebexConfig = {
|
|
802
|
+
/** Whether to show user details in Webex */
|
|
803
|
+
showUserDetails?: boolean;
|
|
804
|
+
/** Whether to sync agent state with Webex */
|
|
805
|
+
stateSynchronization?: boolean;
|
|
806
|
+
/** Idle codes mapped to Webex presence states */
|
|
807
|
+
idleCodes?: Record<string, string>;
|
|
874
808
|
};
|
|
875
809
|
/**
|
|
876
810
|
* Constant representing idle code
|
|
@@ -940,6 +874,8 @@ export type DialPlanEntity = {
|
|
|
940
874
|
strippedChars: string;
|
|
941
875
|
/** Name of the dial plan */
|
|
942
876
|
name: string;
|
|
877
|
+
/** Whether the dial plan is active */
|
|
878
|
+
active: boolean;
|
|
943
879
|
};
|
|
944
880
|
/**
|
|
945
881
|
* Complete dial plan configuration for number handling
|
|
@@ -1041,18 +977,6 @@ export type WrapupData = {
|
|
|
1041
977
|
allowCancelAutoWrapup?: boolean;
|
|
1042
978
|
};
|
|
1043
979
|
};
|
|
1044
|
-
/**
|
|
1045
|
-
* Team configuration information
|
|
1046
|
-
* @public
|
|
1047
|
-
*/
|
|
1048
|
-
export type Team = {
|
|
1049
|
-
/** Unique team identifier */
|
|
1050
|
-
teamId: string;
|
|
1051
|
-
/** Team display name */
|
|
1052
|
-
teamName: string;
|
|
1053
|
-
/** Optional desktop layout configuration identifier */
|
|
1054
|
-
desktopLayoutId?: string;
|
|
1055
|
-
};
|
|
1056
980
|
/**
|
|
1057
981
|
* Basic queue configuration information
|
|
1058
982
|
* @public
|
|
@@ -1074,11 +998,12 @@ export type URLMappings = {
|
|
|
1074
998
|
acqueonConsoleUrl: string;
|
|
1075
999
|
};
|
|
1076
1000
|
/**
|
|
1077
|
-
* AI feature
|
|
1001
|
+
* AI feature flags carried by the `aiFeature` section of the org desktop-login aggregate.
|
|
1078
1002
|
* @public
|
|
1079
1003
|
*/
|
|
1080
1004
|
export type AIFeatureFlags = {
|
|
1081
|
-
id
|
|
1005
|
+
/** Not carried by the aggregate; retained for responses that still supply a record id. */
|
|
1006
|
+
id?: string;
|
|
1082
1007
|
realtimeTranscripts?: {
|
|
1083
1008
|
enable?: boolean;
|
|
1084
1009
|
agentInclusionType?: string;
|
|
@@ -1103,26 +1028,40 @@ export type AIFeatureFlags = {
|
|
|
1103
1028
|
queuesInclusionType?: string;
|
|
1104
1029
|
surveyDataSource?: string;
|
|
1105
1030
|
};
|
|
1106
|
-
links?: string[];
|
|
1107
|
-
createdTime?: number;
|
|
1108
|
-
lastUpdatedTime?: number;
|
|
1109
1031
|
};
|
|
1110
1032
|
/**
|
|
1111
|
-
*
|
|
1033
|
+
* Aggregated organization configuration returned by `organization/{orgId}/desktop-login`.
|
|
1034
|
+
* Replaces the separate organization, organization-setting, tenant-configuration,
|
|
1035
|
+
* org-url-mapping and ai-feature calls.
|
|
1112
1036
|
* @public
|
|
1113
1037
|
*/
|
|
1114
|
-
export type
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1038
|
+
export type OrgDesktopLoginResponse = {
|
|
1039
|
+
/** Organization identity and timezone */
|
|
1040
|
+
organization: OrgInfo;
|
|
1041
|
+
/** Organization-wide feature settings */
|
|
1042
|
+
organizationSetting: OrgSettings;
|
|
1043
|
+
/** Tenant-level configuration */
|
|
1044
|
+
tenantConfiguration: TenantData;
|
|
1045
|
+
/** External integration URLs, keyed by mapping name */
|
|
1046
|
+
urlMappings?: OrgUrlMappings;
|
|
1047
|
+
/** AI feature flags */
|
|
1048
|
+
aiFeature?: AIFeatureFlags;
|
|
1049
|
+
/** Microsoft Teams integration configuration; absent when not configured */
|
|
1050
|
+
microsoftConfig?: MicrosoftConfig;
|
|
1051
|
+
/** Webex integration configuration */
|
|
1052
|
+
webexConfig?: WebexConfig;
|
|
1053
|
+
};
|
|
1054
|
+
/**
|
|
1055
|
+
* Aggregated user configuration returned by
|
|
1056
|
+
* `organization/{orgId}/v2/user/by-ci-user-id/{ciUserId}/desktop-login`.
|
|
1057
|
+
* Replaces the separate user and agent-profile calls.
|
|
1058
|
+
* @public
|
|
1059
|
+
*/
|
|
1060
|
+
export type UserDesktopLoginResponse = {
|
|
1061
|
+
/** Agent identity */
|
|
1062
|
+
user: AgentResponse;
|
|
1063
|
+
/** Desktop Profile settings for the agent */
|
|
1064
|
+
agentProfile: AgentProfile;
|
|
1126
1065
|
};
|
|
1127
1066
|
/**
|
|
1128
1067
|
* Comprehensive agent profile configuration in the contact center system
|
|
@@ -1144,8 +1083,8 @@ export type Profile = {
|
|
|
1144
1083
|
/** Whether to sync agent state with Webex */
|
|
1145
1084
|
stateSynchronizationWebex?: boolean;
|
|
1146
1085
|
};
|
|
1147
|
-
/** List of teams the agent belongs to */
|
|
1148
|
-
teams:
|
|
1086
|
+
/** List of teams the agent belongs to, as returned by the team API */
|
|
1087
|
+
teams: TeamList[];
|
|
1149
1088
|
/** Agent's default dial number */
|
|
1150
1089
|
defaultDn: string;
|
|
1151
1090
|
dn?: string;
|
|
@@ -1261,8 +1200,6 @@ export type Profile = {
|
|
|
1261
1200
|
isAnalyzerEnabled?: boolean;
|
|
1262
1201
|
/** Tenant timezone */
|
|
1263
1202
|
tenantTimezone?: string;
|
|
1264
|
-
/** Current environment (e.g., 'produs1', 'intgus1') */
|
|
1265
|
-
environment?: string;
|
|
1266
1203
|
/** Available voice login options */
|
|
1267
1204
|
loginVoiceOptions?: LoginOption[];
|
|
1268
1205
|
/** Current login device type */
|
package/dist/webex.js
CHANGED
package/package.json
CHANGED
package/src/cc.ts
CHANGED
|
@@ -170,7 +170,7 @@ import type {
|
|
|
170
170
|
*
|
|
171
171
|
* // Login with browser-based calling
|
|
172
172
|
* await cc.stationLogin({
|
|
173
|
-
* teamId: profile.teams[0].
|
|
173
|
+
* teamId: profile.teams[0].id,
|
|
174
174
|
* loginOption: 'BROWSER'
|
|
175
175
|
* });
|
|
176
176
|
*
|
|
@@ -701,12 +701,12 @@ export default class ContactCenter extends WebexPlugin implements IContactCenter
|
|
|
701
701
|
*
|
|
702
702
|
* console.log('Agent ID:', profile.agentId);
|
|
703
703
|
* console.log('Default DN:', profile.defaultDn);
|
|
704
|
-
* console.log('Teams:', profile.teams.map(t => t.
|
|
704
|
+
* console.log('Teams:', profile.teams.map(t => t.id));
|
|
705
705
|
* console.log('WebRTC Enabled:', profile.webRtcEnabled);
|
|
706
706
|
* console.log('Supported Login Options:', profile.loginVoiceOptions);
|
|
707
707
|
*
|
|
708
708
|
* // Now you can proceed with station login, state changes, etc.
|
|
709
|
-
* await cc.stationLogin({ teamId: profile.teams[0].
|
|
709
|
+
* await cc.stationLogin({ teamId: profile.teams[0].id, loginOption: 'BROWSER' });
|
|
710
710
|
* ```
|
|
711
711
|
*/
|
|
712
712
|
public async register(): Promise<Profile> {
|
|
@@ -1436,7 +1436,7 @@ export default class ContactCenter extends WebexPlugin implements IContactCenter
|
|
|
1436
1436
|
{
|
|
1437
1437
|
...MetricsManager.getCommonTrackingFieldForAQMResponse(agentStatusResponse),
|
|
1438
1438
|
requestedState: data.state,
|
|
1439
|
-
teamId: this.agentConfig?.teams[0]?.
|
|
1439
|
+
teamId: this.agentConfig?.teams[0]?.id ?? EMPTY_STRING,
|
|
1440
1440
|
status: agentStatusResponse.data?.status,
|
|
1441
1441
|
subStatus: agentStatusResponse.data?.subStatus,
|
|
1442
1442
|
auxCodeId: data.auxCodeId,
|
package/src/index.ts
CHANGED
|
@@ -206,10 +206,14 @@ export type {
|
|
|
206
206
|
export type {
|
|
207
207
|
/** Profile interface */
|
|
208
208
|
Profile,
|
|
209
|
-
/**
|
|
209
|
+
/** Aggregated organization configuration from getOrgDesktopLoginConfig */
|
|
210
|
+
OrgDesktopLoginResponse,
|
|
211
|
+
/** Aggregated user configuration from getUserDesktopLoginConfig */
|
|
212
|
+
UserDesktopLoginResponse,
|
|
213
|
+
/** Agent identity, the `user` section of the user desktop-login aggregate */
|
|
210
214
|
AgentResponse,
|
|
211
|
-
/**
|
|
212
|
-
|
|
215
|
+
/** Desktop Profile settings, the `agentProfile` section of the user desktop-login aggregate */
|
|
216
|
+
AgentProfile,
|
|
213
217
|
/** Response from getMultimediaProfileById */
|
|
214
218
|
MultimediaProfileResponse,
|
|
215
219
|
/** Response from getListOfTeams */
|
|
@@ -218,14 +222,18 @@ export type {
|
|
|
218
222
|
ListAuxCodesResponse,
|
|
219
223
|
/** Response from getSiteInfo */
|
|
220
224
|
SiteInfo,
|
|
221
|
-
/**
|
|
225
|
+
/** Organization identity, the `organization` section of the org desktop-login aggregate */
|
|
222
226
|
OrgInfo,
|
|
223
|
-
/**
|
|
227
|
+
/** Organization settings, the `organizationSetting` section of the org desktop-login aggregate */
|
|
224
228
|
OrgSettings,
|
|
225
|
-
/**
|
|
229
|
+
/** Tenant configuration, the `tenantConfiguration` section of the org desktop-login aggregate */
|
|
226
230
|
TenantData,
|
|
227
|
-
/**
|
|
228
|
-
|
|
231
|
+
/** Microsoft Teams integration configuration, from the org desktop-login aggregate */
|
|
232
|
+
MicrosoftConfig,
|
|
233
|
+
/** Webex integration configuration, from the org desktop-login aggregate */
|
|
234
|
+
WebexConfig,
|
|
235
|
+
/** External integration URLs, the `urlMappings` section of the org desktop-login aggregate */
|
|
236
|
+
OrgUrlMappings,
|
|
229
237
|
/** Response from getDialPlanData */
|
|
230
238
|
DialPlanEntity,
|
|
231
239
|
/** Auxiliary code information */
|