@webex/contact-center 3.9.0 → 3.10.0-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/cc.js +207 -47
  2. package/dist/cc.js.map +1 -1
  3. package/dist/constants.js +1 -0
  4. package/dist/constants.js.map +1 -1
  5. package/dist/index.js +9 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/logger-proxy.js +24 -1
  8. package/dist/logger-proxy.js.map +1 -1
  9. package/dist/metrics/MetricsManager.js +1 -1
  10. package/dist/metrics/MetricsManager.js.map +1 -1
  11. package/dist/metrics/behavioral-events.js +89 -0
  12. package/dist/metrics/behavioral-events.js.map +1 -1
  13. package/dist/metrics/constants.js +32 -2
  14. package/dist/metrics/constants.js.map +1 -1
  15. package/dist/services/AddressBook.js +271 -0
  16. package/dist/services/AddressBook.js.map +1 -0
  17. package/dist/services/EntryPoint.js +227 -0
  18. package/dist/services/EntryPoint.js.map +1 -0
  19. package/dist/services/Queue.js +261 -0
  20. package/dist/services/Queue.js.map +1 -0
  21. package/dist/services/config/constants.js +36 -2
  22. package/dist/services/config/constants.js.map +1 -1
  23. package/dist/services/config/index.js +29 -21
  24. package/dist/services/config/index.js.map +1 -1
  25. package/dist/services/config/types.js +33 -1
  26. package/dist/services/config/types.js.map +1 -1
  27. package/dist/services/core/GlobalTypes.js.map +1 -1
  28. package/dist/services/core/Utils.js +181 -2
  29. package/dist/services/core/Utils.js.map +1 -1
  30. package/dist/services/core/aqm-reqs.js +0 -4
  31. package/dist/services/core/aqm-reqs.js.map +1 -1
  32. package/dist/services/core/constants.js +17 -1
  33. package/dist/services/core/constants.js.map +1 -1
  34. package/dist/services/core/websocket/WebSocketManager.js +0 -4
  35. package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
  36. package/dist/services/task/TaskManager.js +151 -7
  37. package/dist/services/task/TaskManager.js.map +1 -1
  38. package/dist/services/task/TaskUtils.js +104 -0
  39. package/dist/services/task/TaskUtils.js.map +1 -0
  40. package/dist/services/task/constants.js +26 -1
  41. package/dist/services/task/constants.js.map +1 -1
  42. package/dist/services/task/contact.js +86 -0
  43. package/dist/services/task/contact.js.map +1 -1
  44. package/dist/services/task/index.js +428 -91
  45. package/dist/services/task/index.js.map +1 -1
  46. package/dist/services/task/types.js +12 -0
  47. package/dist/services/task/types.js.map +1 -1
  48. package/dist/types/cc.d.ts +121 -35
  49. package/dist/types/constants.d.ts +1 -0
  50. package/dist/types/index.d.ts +4 -3
  51. package/dist/types/metrics/constants.d.ts +25 -1
  52. package/dist/types/services/AddressBook.d.ts +74 -0
  53. package/dist/types/services/EntryPoint.d.ts +67 -0
  54. package/dist/types/services/Queue.d.ts +76 -0
  55. package/dist/types/services/config/constants.d.ts +35 -1
  56. package/dist/types/services/config/index.d.ts +6 -9
  57. package/dist/types/services/config/types.d.ts +79 -58
  58. package/dist/types/services/core/GlobalTypes.d.ts +25 -0
  59. package/dist/types/services/core/Utils.d.ts +55 -1
  60. package/dist/types/services/core/constants.d.ts +14 -0
  61. package/dist/types/services/task/TaskUtils.d.ts +42 -0
  62. package/dist/types/services/task/constants.d.ts +23 -0
  63. package/dist/types/services/task/contact.d.ts +10 -0
  64. package/dist/types/services/task/index.d.ts +85 -4
  65. package/dist/types/services/task/types.d.ts +245 -21
  66. package/dist/types/types.d.ts +162 -0
  67. package/dist/types/utils/PageCache.d.ts +173 -0
  68. package/dist/types.js +17 -0
  69. package/dist/types.js.map +1 -1
  70. package/dist/utils/PageCache.js +192 -0
  71. package/dist/utils/PageCache.js.map +1 -0
  72. package/dist/webex.js +1 -1
  73. package/package.json +10 -9
  74. package/src/cc.ts +232 -52
  75. package/src/constants.ts +1 -0
  76. package/src/index.ts +17 -2
  77. package/src/logger-proxy.ts +24 -1
  78. package/src/metrics/MetricsManager.ts +1 -1
  79. package/src/metrics/behavioral-events.ts +94 -0
  80. package/src/metrics/constants.ts +37 -1
  81. package/src/services/AddressBook.ts +291 -0
  82. package/src/services/EntryPoint.ts +241 -0
  83. package/src/services/Queue.ts +277 -0
  84. package/src/services/config/constants.ts +42 -2
  85. package/src/services/config/index.ts +30 -30
  86. package/src/services/config/types.ts +59 -58
  87. package/src/services/core/GlobalTypes.ts +27 -0
  88. package/src/services/core/Utils.ts +215 -1
  89. package/src/services/core/aqm-reqs.ts +0 -5
  90. package/src/services/core/constants.ts +16 -0
  91. package/src/services/core/websocket/WebSocketManager.ts +0 -4
  92. package/src/services/task/TaskManager.ts +182 -9
  93. package/src/services/task/TaskUtils.ts +113 -0
  94. package/src/services/task/constants.ts +25 -0
  95. package/src/services/task/contact.ts +80 -0
  96. package/src/services/task/index.ts +497 -71
  97. package/src/services/task/types.ts +264 -20
  98. package/src/types.ts +180 -0
  99. package/src/utils/PageCache.ts +252 -0
  100. package/test/unit/spec/cc.ts +282 -85
  101. package/test/unit/spec/metrics/MetricsManager.ts +0 -1
  102. package/test/unit/spec/metrics/behavioral-events.ts +42 -0
  103. package/test/unit/spec/services/AddressBook.ts +332 -0
  104. package/test/unit/spec/services/EntryPoint.ts +259 -0
  105. package/test/unit/spec/services/Queue.ts +323 -0
  106. package/test/unit/spec/services/config/index.ts +279 -65
  107. package/test/unit/spec/services/core/Utils.ts +282 -1
  108. package/test/unit/spec/services/core/aqm-reqs.ts +1 -3
  109. package/test/unit/spec/services/core/websocket/WebSocketManager.ts +0 -4
  110. package/test/unit/spec/services/task/TaskManager.ts +760 -2
  111. package/test/unit/spec/services/task/TaskUtils.ts +131 -0
  112. package/test/unit/spec/services/task/contact.ts +31 -1
  113. package/test/unit/spec/services/task/index.ts +873 -163
  114. package/umd/contact-center.min.js +2 -2
  115. 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
  }
@@ -269,6 +343,16 @@ class ContactCenter extends _webexCore.WebexPlugin {
269
343
  this.trigger(_types4.TASK_EVENTS.TASK_HYDRATE, task);
270
344
  };
271
345
 
346
+ /**
347
+ * Handles task merged events when tasks are combined eg: EPDN merge/transfer
348
+ * @private
349
+ * @param {ITask} task The task object that has been merged
350
+ */
351
+ handleTaskMerged = task => {
352
+ // @ts-ignore
353
+ this.trigger(_types4.TASK_EVENTS.TASK_MERGED, task);
354
+ };
355
+
272
356
  /**
273
357
  * Sets up event listeners for incoming tasks and task hydration
274
358
  * Subscribes to task events from the task manager
@@ -277,6 +361,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
277
361
  incomingTaskListener() {
278
362
  this.taskManager.on(_types4.TASK_EVENTS.TASK_INCOMING, this.handleIncomingTask);
279
363
  this.taskManager.on(_types4.TASK_EVENTS.TASK_HYDRATE, this.handleTaskHydrate);
364
+ this.taskManager.on(_types4.TASK_EVENTS.TASK_MERGED, this.handleTaskMerged);
280
365
  }
281
366
 
282
367
  /**
@@ -522,6 +607,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
522
607
  });
523
608
  // TODO: Make profile a singleton to make it available throughout app/sdk so we dont need to inject info everywhere
524
609
  this.taskManager.setWrapupData(this.agentConfig.wrapUpData);
610
+ this.taskManager.setAgentId(this.agentConfig.agentId);
525
611
  if (this.agentConfig.webRtcEnabled && this.agentConfig.loginVoiceOptions.includes(_types.LoginOption.BROWSER)) {
526
612
  this.$webex.internal.mercury.connect().then(() => {
527
613
  _loggerProxy.default.log('Authentication: webex.internal.mercury.connect successful', {
@@ -596,14 +682,14 @@ class ContactCenter extends _webexCore.WebexPlugin {
596
682
  };
597
683
  throw error;
598
684
  }
599
- const loginResponse = this.services.agent.stationLogin({
685
+ const loginResponse = await this.services.agent.stationLogin({
600
686
  data: {
601
687
  dialNumber: data.loginOption === _types.LoginOption.BROWSER ? this.agentConfig.agentId : data.dialNumber,
602
688
  teamId: data.teamId,
603
689
  deviceType: data.loginOption,
604
690
  isExtension: data.loginOption === _types.LoginOption.EXTENSION,
605
691
  deviceId: this.getDeviceId(data.loginOption, data.dialNumber),
606
- roles: [_constants2.AGENT],
692
+ roles: [_constants3.AGENT],
607
693
  teamName: _constants.EMPTY_STRING,
608
694
  siteId: _constants.EMPTY_STRING,
609
695
  usesOtherDN: false,
@@ -726,7 +812,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
726
812
  if (loginOption === _types.LoginOption.EXTENSION || loginOption === _types.LoginOption.AGENT_DN) {
727
813
  return dialNumber;
728
814
  }
729
- return _constants2.WEB_RTC_PREFIX + this.agentConfig.agentId;
815
+ return _constants3.WEB_RTC_PREFIX + this.agentConfig.agentId;
730
816
  }
731
817
 
732
818
  /**
@@ -837,6 +923,18 @@ class ContactCenter extends _webexCore.WebexPlugin {
837
923
  module: _constants.CC_FILE,
838
924
  method: _constants.METHODS.HANDLE_WEBSOCKET_MESSAGE
839
925
  });
926
+
927
+ // Emit metrics for all websocket events except keepalive and welcome
928
+ const topLevelType = eventData.type;
929
+ const nestedType = eventData?.data?.type;
930
+ if (topLevelType !== _types3.CC_EVENTS.WELCOME && eventData.keepalive !== 'true') {
931
+ const metricsPayload = {
932
+ ws_event_type: nestedType || topLevelType,
933
+ top_level_type: topLevelType,
934
+ has_data: Boolean(eventData.data)
935
+ };
936
+ this.metricsManager.trackEvent(_constants4.METRIC_EVENT_NAMES.WEBSOCKET_EVENT_RECEIVED, metricsPayload, ['operational']);
937
+ }
840
938
  switch (eventData.type) {
841
939
  case _types3.CC_EVENTS.AGENT_MULTI_LOGIN:
842
940
  // @ts-ignore
@@ -1001,9 +1099,9 @@ class ContactCenter extends _webexCore.WebexPlugin {
1001
1099
  module: _constants.CC_FILE,
1002
1100
  method: _constants.METHODS.SILENT_RELOGIN
1003
1101
  });
1004
- auxCodeId = _constants3.AGENT_STATE_AVAILABLE_ID;
1102
+ auxCodeId = _constants2.AGENT_STATE_AVAILABLE_ID;
1005
1103
  const stateChangeData = {
1006
- state: _constants3.AGENT_STATE_AVAILABLE,
1104
+ state: _constants2.AGENT_STATE_AVAILABLE,
1007
1105
  auxCodeId,
1008
1106
  lastStateChangeReason,
1009
1107
  agentId
@@ -1085,6 +1183,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
1085
1183
  * Makes an outbound call to a specified phone number.
1086
1184
  *
1087
1185
  * @param {string} destination - The phone number to dial (e.g., '+1234567890').
1186
+ * @param {string} origin - The contact center number that will be used while making a call to the customer.
1088
1187
  * Should include country code and be in E.164 format.
1089
1188
  * @returns {Promise<TaskResponse>} Resolves with the task response containing:
1090
1189
  * - interactionId: Unique identifier for the outbound call
@@ -1120,7 +1219,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
1120
1219
  *
1121
1220
  * // Start the outbound call
1122
1221
  * const destination = '+1234567890';
1123
- * const task = await cc.startOutdial(destination);
1222
+ * const task = await cc.startOutdial(destination, origin);
1124
1223
  *
1125
1224
  * // Listen for all relevant task events
1126
1225
  * task.on('task:ringing', () => {
@@ -1188,7 +1287,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
1188
1287
  * }
1189
1288
  * ```
1190
1289
  */
1191
- async startOutdial(destination) {
1290
+ async startOutdial(destination, origin) {
1192
1291
  _loggerProxy.default.info('Starting outbound dial', {
1193
1292
  module: _constants.CC_FILE,
1194
1293
  method: _constants.METHODS.START_OUTDIAL
@@ -1199,6 +1298,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
1199
1298
  // Construct the outdial payload.
1200
1299
  const outDialPayload = {
1201
1300
  destination,
1301
+ origin,
1202
1302
  entryPointId: this.agentConfig.outDialEp,
1203
1303
  direction: _constants.OUTDIAL_DIRECTION,
1204
1304
  attributes: _constants.ATTRIBUTES,
@@ -1211,6 +1311,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
1211
1311
  this.metricsManager.trackEvent(_constants4.METRIC_EVENT_NAMES.TASK_OUTDIAL_SUCCESS, {
1212
1312
  ..._MetricsManager.default.getCommonTrackingFieldForAQMResponse(result),
1213
1313
  destination,
1314
+ origin,
1214
1315
  mediaType: _constants.OUTDIAL_MEDIA_TYPE
1215
1316
  }, ['behavioral', 'business', 'operational']);
1216
1317
  _loggerProxy.default.log(`Outbound dial completed successfully`, {
@@ -1225,6 +1326,7 @@ class ContactCenter extends _webexCore.WebexPlugin {
1225
1326
  this.metricsManager.trackEvent(_constants4.METRIC_EVENT_NAMES.TASK_OUTDIAL_FAILED, {
1226
1327
  ..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(failure),
1227
1328
  destination,
1329
+ origin,
1228
1330
  mediaType: _constants.OUTDIAL_MEDIA_TYPE
1229
1331
  }, ['behavioral', 'business', 'operational']);
1230
1332
  const {
@@ -1235,65 +1337,105 @@ class ContactCenter extends _webexCore.WebexPlugin {
1235
1337
  }
1236
1338
 
1237
1339
  /**
1238
- * This is used for getting the list of queues to which a task can be consulted or transferred.
1239
- * @param {string} [search] - Optional search string to filter queues by name
1240
- * @param {string} [filter] - Optional OData filter expression (e.g., 'teamId eq "team123"')
1241
- * @param {number} [page=0] - Page number for paginated results, starting at 0
1242
- * @param {number} [pageSize=100] - Number of queues to return per page
1243
- * @returns Promise<ContactServiceQueue[]> Resolves with the list of queues
1244
- * @throws Error If the operation fails
1340
+ * Fetches outdial ANI (Automatic Number Identification) entries for an outdial ANI ID.
1341
+ *
1342
+ * This method retrieves the list of phone numbers that can be used as caller ID when making
1343
+ * outbound calls. The ANI data is associated with an outdial ANI ID and can be filtered
1344
+ * and paginated as needed.
1345
+ *
1346
+ * @param {string} outdialANI - The outdial ANI ID to fetch ANI data for
1347
+ * @param {number} [page] - Optional page number for pagination (0-based)
1348
+ * @param {number} [pageSize] - Optional number of items per page
1349
+ * @param {string} [search] - Optional search term to filter results by name or number
1350
+ * @param {string} [filter] - Optional filter string
1351
+ * @param {string} [attributes] - Optional attributes to include in response
1352
+ * @returns {Promise<OutdialAniEntriesResponse>} Promise resolving to outdial ANI response containing:
1353
+ * - data: Array of ANI entries with number and name
1354
+ * - meta: Pagination metadata
1355
+ * @throws {Error} If the operation fails or agent is not registered
1245
1356
  * @public
1246
1357
  * @example
1247
1358
  * ```typescript
1248
1359
  * const cc = webex.cc;
1249
1360
  * await cc.register();
1250
- * await cc.stationLogin({ teamId: 'team123', loginOption: 'BROWSER' });
1251
1361
  *
1252
- * // Basic usage - get all queues
1253
- * const allQueues = await cc.getQueues();
1362
+ * // Get agent profile to obtain outdial ANI ID
1363
+ * const agentProfile = cc.agentConfig;
1364
+ * const outdialANI = agentProfile.outdialANIId;
1254
1365
  *
1255
- * // Search for specific queues
1256
- * const salesQueues = await cc.getQueues('sales'); // Search for 'sales' in queue names
1366
+ * // Basic usage - get all ANI data for an outdial ANI ID
1367
+ * const aniData = await cc.getOutdialAniEntries({ outdialANI });
1257
1368
  *
1258
- * // Use filtering and pagination
1259
- * const filteredQueues = await cc.getQueues(
1260
- * '', // No search term
1261
- * 'teamId eq "team123"', // Filter by team
1262
- * 0, // First page
1263
- * 50 // 50 items per page
1264
- * );
1369
+ * // With pagination and search
1370
+ * const paginatedAni = await cc.getOutdialAniEntries({
1371
+ * outdialANI,
1372
+ * page: 0,
1373
+ * pageSize: 50,
1374
+ * search: '555' // search for numbers containing '555'
1375
+ * });
1265
1376
  *
1266
- * // Process queue results
1267
- * queues.forEach(queue => {
1268
- * console.log('Queue:', {
1269
- * id: queue.queueId,
1270
- * name: queue.queueName,
1271
- * channelType: queue.channelType,
1272
- * isActive: queue.isActive,
1273
- * description: queue.description
1274
- * });
1377
+ * // Process the results
1378
+ * paginatedAni.forEach(ani => {
1379
+ * console.log(`ANI: ${ani.number} - ${ani.name}`);
1275
1380
  * });
1276
1381
  * ```
1277
1382
  */
1278
- async getQueues(search, filter, page = _constants3.DEFAULT_PAGE, pageSize = _constants3.DEFAULT_PAGE_SIZE) {
1279
- _loggerProxy.default.info('Fetching queues', {
1383
+ async getOutdialAniEntries(params) {
1384
+ const {
1385
+ outdialANI,
1386
+ page,
1387
+ pageSize,
1388
+ search,
1389
+ filter,
1390
+ attributes
1391
+ } = params;
1392
+ _loggerProxy.default.info('Fetching outdial ANI entries', {
1280
1393
  module: _constants.CC_FILE,
1281
- method: _constants.METHODS.GET_QUEUES
1394
+ method: _constants.METHODS.GET_OUTDIAL_ANI_ENTRIES
1282
1395
  });
1283
1396
  const orgId = this.$webex.credentials.getOrgId();
1284
1397
  if (!orgId) {
1285
1398
  _loggerProxy.default.error('Org ID not found.', {
1286
1399
  module: _constants.CC_FILE,
1287
- method: _constants.METHODS.GET_QUEUES
1400
+ method: _constants.METHODS.GET_OUTDIAL_ANI_ENTRIES
1288
1401
  });
1289
1402
  throw new Error('Org ID not found.');
1290
1403
  }
1291
- const result = await this.services.config.getQueues(orgId, page, pageSize, search, filter);
1292
- _loggerProxy.default.log(`Successfully retrieved ${result?.length} queues`, {
1293
- module: _constants.CC_FILE,
1294
- method: _constants.METHODS.GET_QUEUES
1295
- });
1296
- return result;
1404
+ try {
1405
+ const result = await this.services.config.getOutdialAniEntries(orgId, {
1406
+ outdialANI,
1407
+ page,
1408
+ pageSize,
1409
+ search,
1410
+ filter,
1411
+ attributes
1412
+ });
1413
+ this.metricsManager.trackEvent(_constants4.METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_SUCCESS, {
1414
+ outdialANI,
1415
+ resultCount: result?.length || 0
1416
+ }, ['behavioral', 'business', 'operational']);
1417
+ _loggerProxy.default.log(`Successfully retrieved outdial ANI entries for ANI ID ${outdialANI}`, {
1418
+ module: _constants.CC_FILE,
1419
+ method: _constants.METHODS.GET_OUTDIAL_ANI_ENTRIES
1420
+ });
1421
+ return result;
1422
+ } catch (error) {
1423
+ const failure = error.details;
1424
+ this.metricsManager.trackEvent(_constants4.METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_FAILED, {
1425
+ ..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(failure),
1426
+ outdialANI,
1427
+ error
1428
+ }, ['behavioral', 'business', 'operational']);
1429
+ _loggerProxy.default.error(`Failed to fetch outdial ANI entries for ANI ID ${outdialANI} due to: ${error}`, {
1430
+ module: _constants.CC_FILE,
1431
+ method: _constants.METHODS.GET_OUTDIAL_ANI_ENTRIES,
1432
+ trackingId: failure.trackingId
1433
+ });
1434
+ const {
1435
+ error: detailedError
1436
+ } = (0, _Utils.getErrorDetails)(error, _constants.METHODS.GET_OUTDIAL_ANI_ENTRIES, _constants.CC_FILE);
1437
+ throw detailedError;
1438
+ }
1297
1439
  }
1298
1440
 
1299
1441
  /**
@@ -1411,6 +1553,24 @@ class ContactCenter extends _webexCore.WebexPlugin {
1411
1553
  throw error;
1412
1554
  }
1413
1555
  }
1556
+
1557
+ /**
1558
+ * Returns paginated entry points for the organization.
1559
+ * Thin wrapper around internal EntryPoint instance.
1560
+ * @public
1561
+ */
1562
+ async getEntryPoints(params = {}) {
1563
+ return this.entryPoint.getEntryPoints(params);
1564
+ }
1565
+
1566
+ /**
1567
+ * Returns paginated contact service queues for the organization.
1568
+ * Thin wrapper around internal Queue instance.
1569
+ * @public
1570
+ */
1571
+ async getQueues(params = {}) {
1572
+ return this.queue.getQueues(params);
1573
+ }
1414
1574
  }
1415
1575
  exports.default = ContactCenter;
1416
1576
  //# sourceMappingURL=cc.js.map