@webex/contact-center 3.9.0 → 3.10.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cc.js +196 -47
- package/dist/cc.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/logger-proxy.js +24 -1
- package/dist/logger-proxy.js.map +1 -1
- package/dist/metrics/MetricsManager.js +1 -1
- package/dist/metrics/MetricsManager.js.map +1 -1
- package/dist/metrics/behavioral-events.js +89 -0
- package/dist/metrics/behavioral-events.js.map +1 -1
- package/dist/metrics/constants.js +32 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/services/AddressBook.js +271 -0
- package/dist/services/AddressBook.js.map +1 -0
- package/dist/services/EntryPoint.js +227 -0
- package/dist/services/EntryPoint.js.map +1 -0
- package/dist/services/Queue.js +261 -0
- package/dist/services/Queue.js.map +1 -0
- package/dist/services/config/constants.js +36 -2
- package/dist/services/config/constants.js.map +1 -1
- package/dist/services/config/index.js +29 -21
- package/dist/services/config/index.js.map +1 -1
- package/dist/services/config/types.js +33 -1
- package/dist/services/config/types.js.map +1 -1
- package/dist/services/core/GlobalTypes.js.map +1 -1
- package/dist/services/core/Utils.js +162 -2
- package/dist/services/core/Utils.js.map +1 -1
- package/dist/services/core/aqm-reqs.js +0 -4
- package/dist/services/core/aqm-reqs.js.map +1 -1
- package/dist/services/core/websocket/WebSocketManager.js +0 -4
- package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
- package/dist/services/task/TaskManager.js +114 -3
- package/dist/services/task/TaskManager.js.map +1 -1
- package/dist/services/task/TaskUtils.js +76 -0
- package/dist/services/task/TaskUtils.js.map +1 -0
- package/dist/services/task/constants.js +26 -1
- package/dist/services/task/constants.js.map +1 -1
- package/dist/services/task/contact.js +86 -0
- package/dist/services/task/contact.js.map +1 -1
- package/dist/services/task/index.js +418 -87
- package/dist/services/task/index.js.map +1 -1
- package/dist/services/task/types.js +14 -0
- package/dist/services/task/types.js.map +1 -1
- package/dist/types/cc.d.ts +115 -35
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/metrics/constants.d.ts +25 -1
- package/dist/types/services/AddressBook.d.ts +74 -0
- package/dist/types/services/EntryPoint.d.ts +67 -0
- package/dist/types/services/Queue.d.ts +76 -0
- package/dist/types/services/config/constants.d.ts +35 -1
- package/dist/types/services/config/index.d.ts +6 -9
- package/dist/types/services/config/types.d.ts +79 -58
- package/dist/types/services/core/GlobalTypes.d.ts +25 -0
- package/dist/types/services/core/Utils.d.ts +40 -1
- package/dist/types/services/task/TaskUtils.d.ts +28 -0
- package/dist/types/services/task/constants.d.ts +23 -0
- package/dist/types/services/task/contact.d.ts +10 -0
- package/dist/types/services/task/index.d.ts +85 -4
- package/dist/types/services/task/types.d.ts +233 -21
- package/dist/types/types.d.ts +162 -0
- package/dist/types/utils/PageCache.d.ts +173 -0
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/PageCache.js +192 -0
- package/dist/utils/PageCache.js.map +1 -0
- package/dist/webex.js +1 -1
- package/package.json +10 -9
- package/src/cc.ts +221 -52
- package/src/constants.ts +1 -0
- package/src/index.ts +16 -2
- package/src/logger-proxy.ts +24 -1
- package/src/metrics/MetricsManager.ts +1 -1
- package/src/metrics/behavioral-events.ts +94 -0
- package/src/metrics/constants.ts +37 -1
- package/src/services/AddressBook.ts +291 -0
- package/src/services/EntryPoint.ts +241 -0
- package/src/services/Queue.ts +277 -0
- package/src/services/config/constants.ts +42 -2
- package/src/services/config/index.ts +30 -30
- package/src/services/config/types.ts +59 -58
- package/src/services/core/GlobalTypes.ts +27 -0
- package/src/services/core/Utils.ts +199 -1
- package/src/services/core/aqm-reqs.ts +0 -5
- package/src/services/core/websocket/WebSocketManager.ts +0 -4
- package/src/services/task/TaskManager.ts +123 -5
- package/src/services/task/TaskUtils.ts +81 -0
- package/src/services/task/constants.ts +25 -0
- package/src/services/task/contact.ts +80 -0
- package/src/services/task/index.ts +510 -71
- package/src/services/task/types.ts +251 -20
- package/src/types.ts +180 -0
- package/src/utils/PageCache.ts +252 -0
- package/test/unit/spec/cc.ts +282 -85
- package/test/unit/spec/metrics/MetricsManager.ts +0 -1
- package/test/unit/spec/metrics/behavioral-events.ts +42 -0
- package/test/unit/spec/services/AddressBook.ts +332 -0
- package/test/unit/spec/services/EntryPoint.ts +259 -0
- package/test/unit/spec/services/Queue.ts +323 -0
- package/test/unit/spec/services/config/index.ts +279 -65
- package/test/unit/spec/services/core/Utils.ts +50 -0
- package/test/unit/spec/services/core/aqm-reqs.ts +1 -3
- package/test/unit/spec/services/core/websocket/WebSocketManager.ts +0 -4
- package/test/unit/spec/services/task/TaskManager.ts +390 -1
- package/test/unit/spec/services/task/TaskUtils.ts +131 -0
- package/test/unit/spec/services/task/contact.ts +31 -1
- package/test/unit/spec/services/task/index.ts +585 -130
- package/umd/contact-center.min.js +2 -2
- package/umd/contact-center.min.js.map +1 -1
package/dist/cc.js
CHANGED
|
@@ -9,19 +9,22 @@ var _events = _interopRequireDefault(require("events"));
|
|
|
9
9
|
var _uuid = require("uuid");
|
|
10
10
|
var _types = require("./types");
|
|
11
11
|
var _constants = require("./constants");
|
|
12
|
-
var _constants2 = require("./services/constants");
|
|
12
|
+
var _constants2 = require("./services/config/constants");
|
|
13
|
+
var _constants3 = require("./services/constants");
|
|
13
14
|
var _services = _interopRequireDefault(require("./services"));
|
|
14
15
|
var _WebexRequest = _interopRequireDefault(require("./services/core/WebexRequest"));
|
|
15
16
|
var _loggerProxy = _interopRequireDefault(require("./logger-proxy"));
|
|
16
17
|
var _types2 = require("./services/agent/types");
|
|
17
18
|
var _Utils = require("./services/core/Utils");
|
|
18
19
|
var _types3 = require("./services/config/types");
|
|
19
|
-
var _constants3 = require("./services/config/constants");
|
|
20
20
|
var _TaskManager = _interopRequireDefault(require("./services/task/TaskManager"));
|
|
21
21
|
var _WebCallingService = _interopRequireDefault(require("./services/WebCallingService"));
|
|
22
22
|
var _types4 = require("./services/task/types");
|
|
23
23
|
var _MetricsManager = _interopRequireDefault(require("./metrics/MetricsManager"));
|
|
24
24
|
var _constants4 = require("./metrics/constants");
|
|
25
|
+
var _EntryPoint = _interopRequireDefault(require("./services/EntryPoint"));
|
|
26
|
+
var _AddressBook = _interopRequireDefault(require("./services/AddressBook"));
|
|
27
|
+
var _Queue = _interopRequireDefault(require("./services/Queue"));
|
|
25
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
29
|
/**
|
|
27
30
|
* @module CCPlugin
|
|
@@ -135,6 +138,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
135
138
|
*
|
|
136
139
|
* @public
|
|
137
140
|
*/
|
|
141
|
+
|
|
138
142
|
class ContactCenter extends _webexCore.WebexPlugin {
|
|
139
143
|
/**
|
|
140
144
|
* The plugin's unique namespace identifier in the Webex SDK.
|
|
@@ -206,6 +210,68 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
206
210
|
* @private
|
|
207
211
|
*/
|
|
208
212
|
|
|
213
|
+
/**
|
|
214
|
+
* API instance for managing Webex Contact Center entry points
|
|
215
|
+
* Provides functionality to fetch entry points with caching support
|
|
216
|
+
* @type {EntryPoint}
|
|
217
|
+
* @public
|
|
218
|
+
* @example
|
|
219
|
+
* ```typescript
|
|
220
|
+
* const cc = webex.cc;
|
|
221
|
+
* await cc.register();
|
|
222
|
+
* await cc.stationLogin({ teamId: 'team123', loginOption: 'BROWSER' });
|
|
223
|
+
*
|
|
224
|
+
* // Access EntryPointRecord
|
|
225
|
+
* const response = await cc.entryPoint.getEntryPoints({
|
|
226
|
+
* page: 0,
|
|
227
|
+
* pageSize: 50
|
|
228
|
+
* });
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* API instance for managing Webex Contact Center address book contacts
|
|
234
|
+
* Provides functionality to fetch address book entries with caching support
|
|
235
|
+
* @type {AddressBook}
|
|
236
|
+
* @public
|
|
237
|
+
* @example
|
|
238
|
+
* ```typescript
|
|
239
|
+
* const cc = webex.cc;
|
|
240
|
+
* await cc.register();
|
|
241
|
+
* await cc.stationLogin({ teamId: 'team123', loginOption: 'BROWSER' });
|
|
242
|
+
*
|
|
243
|
+
* // Access AddressBook API
|
|
244
|
+
* const response = await cc.addressBook.getEntries({
|
|
245
|
+
* page: 0,
|
|
246
|
+
* pageSize: 25
|
|
247
|
+
* });
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* API instance for managing Webex Contact Center queues
|
|
253
|
+
* Provides functionality to fetch queues with caching support
|
|
254
|
+
* @type {Queue}
|
|
255
|
+
* @public
|
|
256
|
+
* @example
|
|
257
|
+
* ```typescript
|
|
258
|
+
* const cc = webex.cc;
|
|
259
|
+
* await cc.register();
|
|
260
|
+
* await cc.stationLogin({ teamId: 'team123', loginOption: 'BROWSER' });
|
|
261
|
+
*
|
|
262
|
+
* // Access Queue API
|
|
263
|
+
* const response = await cc.queue.getQueues({
|
|
264
|
+
* page: 0,
|
|
265
|
+
* pageSize: 50
|
|
266
|
+
* });
|
|
267
|
+
*
|
|
268
|
+
* // Filter queues by specific criteria
|
|
269
|
+
* const filteredQueues = await cc.queue.getQueues({
|
|
270
|
+
* filter: 'id=="queue-id-123"'
|
|
271
|
+
* });
|
|
272
|
+
* ```
|
|
273
|
+
*/
|
|
274
|
+
|
|
209
275
|
/**
|
|
210
276
|
* Logger utility for Contact Center plugin
|
|
211
277
|
* Provides consistent logging across the plugin
|
|
@@ -245,6 +311,14 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
245
311
|
});
|
|
246
312
|
this.taskManager = _TaskManager.default.getTaskManager(this.services.contact, this.webCallingService, this.services.webSocketManager);
|
|
247
313
|
this.incomingTaskListener();
|
|
314
|
+
|
|
315
|
+
// Initialize API instances
|
|
316
|
+
// will have future function for indivdual fetch etc so better be in an object
|
|
317
|
+
this.entryPoint = new _EntryPoint.default(this.$webex);
|
|
318
|
+
this.addressBook = new _AddressBook.default(this.$webex, () => this.agentConfig?.addressBookId);
|
|
319
|
+
this.queue = new _Queue.default(this.$webex);
|
|
320
|
+
|
|
321
|
+
// Initialize logger
|
|
248
322
|
_loggerProxy.default.initialize(this.$webex.logger);
|
|
249
323
|
});
|
|
250
324
|
}
|
|
@@ -522,6 +596,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
522
596
|
});
|
|
523
597
|
// TODO: Make profile a singleton to make it available throughout app/sdk so we dont need to inject info everywhere
|
|
524
598
|
this.taskManager.setWrapupData(this.agentConfig.wrapUpData);
|
|
599
|
+
this.taskManager.setAgentId(this.agentConfig.agentId);
|
|
525
600
|
if (this.agentConfig.webRtcEnabled && this.agentConfig.loginVoiceOptions.includes(_types.LoginOption.BROWSER)) {
|
|
526
601
|
this.$webex.internal.mercury.connect().then(() => {
|
|
527
602
|
_loggerProxy.default.log('Authentication: webex.internal.mercury.connect successful', {
|
|
@@ -596,14 +671,14 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
596
671
|
};
|
|
597
672
|
throw error;
|
|
598
673
|
}
|
|
599
|
-
const loginResponse = this.services.agent.stationLogin({
|
|
674
|
+
const loginResponse = await this.services.agent.stationLogin({
|
|
600
675
|
data: {
|
|
601
676
|
dialNumber: data.loginOption === _types.LoginOption.BROWSER ? this.agentConfig.agentId : data.dialNumber,
|
|
602
677
|
teamId: data.teamId,
|
|
603
678
|
deviceType: data.loginOption,
|
|
604
679
|
isExtension: data.loginOption === _types.LoginOption.EXTENSION,
|
|
605
680
|
deviceId: this.getDeviceId(data.loginOption, data.dialNumber),
|
|
606
|
-
roles: [
|
|
681
|
+
roles: [_constants3.AGENT],
|
|
607
682
|
teamName: _constants.EMPTY_STRING,
|
|
608
683
|
siteId: _constants.EMPTY_STRING,
|
|
609
684
|
usesOtherDN: false,
|
|
@@ -726,7 +801,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
726
801
|
if (loginOption === _types.LoginOption.EXTENSION || loginOption === _types.LoginOption.AGENT_DN) {
|
|
727
802
|
return dialNumber;
|
|
728
803
|
}
|
|
729
|
-
return
|
|
804
|
+
return _constants3.WEB_RTC_PREFIX + this.agentConfig.agentId;
|
|
730
805
|
}
|
|
731
806
|
|
|
732
807
|
/**
|
|
@@ -837,6 +912,18 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
837
912
|
module: _constants.CC_FILE,
|
|
838
913
|
method: _constants.METHODS.HANDLE_WEBSOCKET_MESSAGE
|
|
839
914
|
});
|
|
915
|
+
|
|
916
|
+
// Emit metrics for all websocket events except keepalive and welcome
|
|
917
|
+
const topLevelType = eventData.type;
|
|
918
|
+
const nestedType = eventData?.data?.type;
|
|
919
|
+
if (topLevelType !== _types3.CC_EVENTS.WELCOME && eventData.keepalive !== 'true') {
|
|
920
|
+
const metricsPayload = {
|
|
921
|
+
ws_event_type: nestedType || topLevelType,
|
|
922
|
+
top_level_type: topLevelType,
|
|
923
|
+
has_data: Boolean(eventData.data)
|
|
924
|
+
};
|
|
925
|
+
this.metricsManager.trackEvent(_constants4.METRIC_EVENT_NAMES.WEBSOCKET_EVENT_RECEIVED, metricsPayload, ['operational']);
|
|
926
|
+
}
|
|
840
927
|
switch (eventData.type) {
|
|
841
928
|
case _types3.CC_EVENTS.AGENT_MULTI_LOGIN:
|
|
842
929
|
// @ts-ignore
|
|
@@ -1001,9 +1088,9 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
1001
1088
|
module: _constants.CC_FILE,
|
|
1002
1089
|
method: _constants.METHODS.SILENT_RELOGIN
|
|
1003
1090
|
});
|
|
1004
|
-
auxCodeId =
|
|
1091
|
+
auxCodeId = _constants2.AGENT_STATE_AVAILABLE_ID;
|
|
1005
1092
|
const stateChangeData = {
|
|
1006
|
-
state:
|
|
1093
|
+
state: _constants2.AGENT_STATE_AVAILABLE,
|
|
1007
1094
|
auxCodeId,
|
|
1008
1095
|
lastStateChangeReason,
|
|
1009
1096
|
agentId
|
|
@@ -1085,6 +1172,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
1085
1172
|
* Makes an outbound call to a specified phone number.
|
|
1086
1173
|
*
|
|
1087
1174
|
* @param {string} destination - The phone number to dial (e.g., '+1234567890').
|
|
1175
|
+
* @param {string} origin - The contact center number that will be used while making a call to the customer.
|
|
1088
1176
|
* Should include country code and be in E.164 format.
|
|
1089
1177
|
* @returns {Promise<TaskResponse>} Resolves with the task response containing:
|
|
1090
1178
|
* - interactionId: Unique identifier for the outbound call
|
|
@@ -1120,7 +1208,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
1120
1208
|
*
|
|
1121
1209
|
* // Start the outbound call
|
|
1122
1210
|
* const destination = '+1234567890';
|
|
1123
|
-
* const task = await cc.startOutdial(destination);
|
|
1211
|
+
* const task = await cc.startOutdial(destination, origin);
|
|
1124
1212
|
*
|
|
1125
1213
|
* // Listen for all relevant task events
|
|
1126
1214
|
* task.on('task:ringing', () => {
|
|
@@ -1188,7 +1276,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
1188
1276
|
* }
|
|
1189
1277
|
* ```
|
|
1190
1278
|
*/
|
|
1191
|
-
async startOutdial(destination) {
|
|
1279
|
+
async startOutdial(destination, origin) {
|
|
1192
1280
|
_loggerProxy.default.info('Starting outbound dial', {
|
|
1193
1281
|
module: _constants.CC_FILE,
|
|
1194
1282
|
method: _constants.METHODS.START_OUTDIAL
|
|
@@ -1199,6 +1287,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
1199
1287
|
// Construct the outdial payload.
|
|
1200
1288
|
const outDialPayload = {
|
|
1201
1289
|
destination,
|
|
1290
|
+
origin,
|
|
1202
1291
|
entryPointId: this.agentConfig.outDialEp,
|
|
1203
1292
|
direction: _constants.OUTDIAL_DIRECTION,
|
|
1204
1293
|
attributes: _constants.ATTRIBUTES,
|
|
@@ -1211,6 +1300,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
1211
1300
|
this.metricsManager.trackEvent(_constants4.METRIC_EVENT_NAMES.TASK_OUTDIAL_SUCCESS, {
|
|
1212
1301
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponse(result),
|
|
1213
1302
|
destination,
|
|
1303
|
+
origin,
|
|
1214
1304
|
mediaType: _constants.OUTDIAL_MEDIA_TYPE
|
|
1215
1305
|
}, ['behavioral', 'business', 'operational']);
|
|
1216
1306
|
_loggerProxy.default.log(`Outbound dial completed successfully`, {
|
|
@@ -1225,6 +1315,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
1225
1315
|
this.metricsManager.trackEvent(_constants4.METRIC_EVENT_NAMES.TASK_OUTDIAL_FAILED, {
|
|
1226
1316
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(failure),
|
|
1227
1317
|
destination,
|
|
1318
|
+
origin,
|
|
1228
1319
|
mediaType: _constants.OUTDIAL_MEDIA_TYPE
|
|
1229
1320
|
}, ['behavioral', 'business', 'operational']);
|
|
1230
1321
|
const {
|
|
@@ -1235,65 +1326,105 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
1235
1326
|
}
|
|
1236
1327
|
|
|
1237
1328
|
/**
|
|
1238
|
-
*
|
|
1239
|
-
*
|
|
1240
|
-
*
|
|
1241
|
-
*
|
|
1242
|
-
*
|
|
1243
|
-
*
|
|
1244
|
-
* @
|
|
1329
|
+
* Fetches outdial ANI (Automatic Number Identification) entries for an outdial ANI ID.
|
|
1330
|
+
*
|
|
1331
|
+
* This method retrieves the list of phone numbers that can be used as caller ID when making
|
|
1332
|
+
* outbound calls. The ANI data is associated with an outdial ANI ID and can be filtered
|
|
1333
|
+
* and paginated as needed.
|
|
1334
|
+
*
|
|
1335
|
+
* @param {string} outdialANI - The outdial ANI ID to fetch ANI data for
|
|
1336
|
+
* @param {number} [page] - Optional page number for pagination (0-based)
|
|
1337
|
+
* @param {number} [pageSize] - Optional number of items per page
|
|
1338
|
+
* @param {string} [search] - Optional search term to filter results by name or number
|
|
1339
|
+
* @param {string} [filter] - Optional filter string
|
|
1340
|
+
* @param {string} [attributes] - Optional attributes to include in response
|
|
1341
|
+
* @returns {Promise<OutdialAniEntriesResponse>} Promise resolving to outdial ANI response containing:
|
|
1342
|
+
* - data: Array of ANI entries with number and name
|
|
1343
|
+
* - meta: Pagination metadata
|
|
1344
|
+
* @throws {Error} If the operation fails or agent is not registered
|
|
1245
1345
|
* @public
|
|
1246
1346
|
* @example
|
|
1247
1347
|
* ```typescript
|
|
1248
1348
|
* const cc = webex.cc;
|
|
1249
1349
|
* await cc.register();
|
|
1250
|
-
* await cc.stationLogin({ teamId: 'team123', loginOption: 'BROWSER' });
|
|
1251
1350
|
*
|
|
1252
|
-
* //
|
|
1253
|
-
* const
|
|
1351
|
+
* // Get agent profile to obtain outdial ANI ID
|
|
1352
|
+
* const agentProfile = cc.agentConfig;
|
|
1353
|
+
* const outdialANI = agentProfile.outdialANIId;
|
|
1254
1354
|
*
|
|
1255
|
-
* //
|
|
1256
|
-
* const
|
|
1355
|
+
* // Basic usage - get all ANI data for an outdial ANI ID
|
|
1356
|
+
* const aniData = await cc.getOutdialAniEntries({ outdialANI });
|
|
1257
1357
|
*
|
|
1258
|
-
* //
|
|
1259
|
-
* const
|
|
1260
|
-
*
|
|
1261
|
-
*
|
|
1262
|
-
*
|
|
1263
|
-
*
|
|
1264
|
-
* );
|
|
1358
|
+
* // With pagination and search
|
|
1359
|
+
* const paginatedAni = await cc.getOutdialAniEntries({
|
|
1360
|
+
* outdialANI,
|
|
1361
|
+
* page: 0,
|
|
1362
|
+
* pageSize: 50,
|
|
1363
|
+
* search: '555' // search for numbers containing '555'
|
|
1364
|
+
* });
|
|
1265
1365
|
*
|
|
1266
|
-
* // Process
|
|
1267
|
-
*
|
|
1268
|
-
* console.log(
|
|
1269
|
-
* id: queue.queueId,
|
|
1270
|
-
* name: queue.queueName,
|
|
1271
|
-
* channelType: queue.channelType,
|
|
1272
|
-
* isActive: queue.isActive,
|
|
1273
|
-
* description: queue.description
|
|
1274
|
-
* });
|
|
1366
|
+
* // Process the results
|
|
1367
|
+
* paginatedAni.forEach(ani => {
|
|
1368
|
+
* console.log(`ANI: ${ani.number} - ${ani.name}`);
|
|
1275
1369
|
* });
|
|
1276
1370
|
* ```
|
|
1277
1371
|
*/
|
|
1278
|
-
async
|
|
1279
|
-
|
|
1372
|
+
async getOutdialAniEntries(params) {
|
|
1373
|
+
const {
|
|
1374
|
+
outdialANI,
|
|
1375
|
+
page,
|
|
1376
|
+
pageSize,
|
|
1377
|
+
search,
|
|
1378
|
+
filter,
|
|
1379
|
+
attributes
|
|
1380
|
+
} = params;
|
|
1381
|
+
_loggerProxy.default.info('Fetching outdial ANI entries', {
|
|
1280
1382
|
module: _constants.CC_FILE,
|
|
1281
|
-
method: _constants.METHODS.
|
|
1383
|
+
method: _constants.METHODS.GET_OUTDIAL_ANI_ENTRIES
|
|
1282
1384
|
});
|
|
1283
1385
|
const orgId = this.$webex.credentials.getOrgId();
|
|
1284
1386
|
if (!orgId) {
|
|
1285
1387
|
_loggerProxy.default.error('Org ID not found.', {
|
|
1286
1388
|
module: _constants.CC_FILE,
|
|
1287
|
-
method: _constants.METHODS.
|
|
1389
|
+
method: _constants.METHODS.GET_OUTDIAL_ANI_ENTRIES
|
|
1288
1390
|
});
|
|
1289
1391
|
throw new Error('Org ID not found.');
|
|
1290
1392
|
}
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1393
|
+
try {
|
|
1394
|
+
const result = await this.services.config.getOutdialAniEntries(orgId, {
|
|
1395
|
+
outdialANI,
|
|
1396
|
+
page,
|
|
1397
|
+
pageSize,
|
|
1398
|
+
search,
|
|
1399
|
+
filter,
|
|
1400
|
+
attributes
|
|
1401
|
+
});
|
|
1402
|
+
this.metricsManager.trackEvent(_constants4.METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_SUCCESS, {
|
|
1403
|
+
outdialANI,
|
|
1404
|
+
resultCount: result?.length || 0
|
|
1405
|
+
}, ['behavioral', 'business', 'operational']);
|
|
1406
|
+
_loggerProxy.default.log(`Successfully retrieved outdial ANI entries for ANI ID ${outdialANI}`, {
|
|
1407
|
+
module: _constants.CC_FILE,
|
|
1408
|
+
method: _constants.METHODS.GET_OUTDIAL_ANI_ENTRIES
|
|
1409
|
+
});
|
|
1410
|
+
return result;
|
|
1411
|
+
} catch (error) {
|
|
1412
|
+
const failure = error.details;
|
|
1413
|
+
this.metricsManager.trackEvent(_constants4.METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_FAILED, {
|
|
1414
|
+
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(failure),
|
|
1415
|
+
outdialANI,
|
|
1416
|
+
error
|
|
1417
|
+
}, ['behavioral', 'business', 'operational']);
|
|
1418
|
+
_loggerProxy.default.error(`Failed to fetch outdial ANI entries for ANI ID ${outdialANI} due to: ${error}`, {
|
|
1419
|
+
module: _constants.CC_FILE,
|
|
1420
|
+
method: _constants.METHODS.GET_OUTDIAL_ANI_ENTRIES,
|
|
1421
|
+
trackingId: failure.trackingId
|
|
1422
|
+
});
|
|
1423
|
+
const {
|
|
1424
|
+
error: detailedError
|
|
1425
|
+
} = (0, _Utils.getErrorDetails)(error, _constants.METHODS.GET_OUTDIAL_ANI_ENTRIES, _constants.CC_FILE);
|
|
1426
|
+
throw detailedError;
|
|
1427
|
+
}
|
|
1297
1428
|
}
|
|
1298
1429
|
|
|
1299
1430
|
/**
|
|
@@ -1411,6 +1542,24 @@ class ContactCenter extends _webexCore.WebexPlugin {
|
|
|
1411
1542
|
throw error;
|
|
1412
1543
|
}
|
|
1413
1544
|
}
|
|
1545
|
+
|
|
1546
|
+
/**
|
|
1547
|
+
* Returns paginated entry points for the organization.
|
|
1548
|
+
* Thin wrapper around internal EntryPoint instance.
|
|
1549
|
+
* @public
|
|
1550
|
+
*/
|
|
1551
|
+
async getEntryPoints(params = {}) {
|
|
1552
|
+
return this.entryPoint.getEntryPoints(params);
|
|
1553
|
+
}
|
|
1554
|
+
|
|
1555
|
+
/**
|
|
1556
|
+
* Returns paginated contact service queues for the organization.
|
|
1557
|
+
* Thin wrapper around internal Queue instance.
|
|
1558
|
+
* @public
|
|
1559
|
+
*/
|
|
1560
|
+
async getQueues(params = {}) {
|
|
1561
|
+
return this.queue.getQueues(params);
|
|
1562
|
+
}
|
|
1414
1563
|
}
|
|
1415
1564
|
exports.default = ContactCenter;
|
|
1416
1565
|
//# sourceMappingURL=cc.js.map
|