@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.
Files changed (111) hide show
  1. package/dist/cc.js +196 -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 +162 -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/websocket/WebSocketManager.js +0 -4
  33. package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
  34. package/dist/services/task/TaskManager.js +114 -3
  35. package/dist/services/task/TaskManager.js.map +1 -1
  36. package/dist/services/task/TaskUtils.js +76 -0
  37. package/dist/services/task/TaskUtils.js.map +1 -0
  38. package/dist/services/task/constants.js +26 -1
  39. package/dist/services/task/constants.js.map +1 -1
  40. package/dist/services/task/contact.js +86 -0
  41. package/dist/services/task/contact.js.map +1 -1
  42. package/dist/services/task/index.js +418 -87
  43. package/dist/services/task/index.js.map +1 -1
  44. package/dist/services/task/types.js +14 -0
  45. package/dist/services/task/types.js.map +1 -1
  46. package/dist/types/cc.d.ts +115 -35
  47. package/dist/types/constants.d.ts +1 -0
  48. package/dist/types/index.d.ts +3 -2
  49. package/dist/types/metrics/constants.d.ts +25 -1
  50. package/dist/types/services/AddressBook.d.ts +74 -0
  51. package/dist/types/services/EntryPoint.d.ts +67 -0
  52. package/dist/types/services/Queue.d.ts +76 -0
  53. package/dist/types/services/config/constants.d.ts +35 -1
  54. package/dist/types/services/config/index.d.ts +6 -9
  55. package/dist/types/services/config/types.d.ts +79 -58
  56. package/dist/types/services/core/GlobalTypes.d.ts +25 -0
  57. package/dist/types/services/core/Utils.d.ts +40 -1
  58. package/dist/types/services/task/TaskUtils.d.ts +28 -0
  59. package/dist/types/services/task/constants.d.ts +23 -0
  60. package/dist/types/services/task/contact.d.ts +10 -0
  61. package/dist/types/services/task/index.d.ts +85 -4
  62. package/dist/types/services/task/types.d.ts +233 -21
  63. package/dist/types/types.d.ts +162 -0
  64. package/dist/types/utils/PageCache.d.ts +173 -0
  65. package/dist/types.js +17 -0
  66. package/dist/types.js.map +1 -1
  67. package/dist/utils/PageCache.js +192 -0
  68. package/dist/utils/PageCache.js.map +1 -0
  69. package/dist/webex.js +1 -1
  70. package/package.json +10 -9
  71. package/src/cc.ts +221 -52
  72. package/src/constants.ts +1 -0
  73. package/src/index.ts +16 -2
  74. package/src/logger-proxy.ts +24 -1
  75. package/src/metrics/MetricsManager.ts +1 -1
  76. package/src/metrics/behavioral-events.ts +94 -0
  77. package/src/metrics/constants.ts +37 -1
  78. package/src/services/AddressBook.ts +291 -0
  79. package/src/services/EntryPoint.ts +241 -0
  80. package/src/services/Queue.ts +277 -0
  81. package/src/services/config/constants.ts +42 -2
  82. package/src/services/config/index.ts +30 -30
  83. package/src/services/config/types.ts +59 -58
  84. package/src/services/core/GlobalTypes.ts +27 -0
  85. package/src/services/core/Utils.ts +199 -1
  86. package/src/services/core/aqm-reqs.ts +0 -5
  87. package/src/services/core/websocket/WebSocketManager.ts +0 -4
  88. package/src/services/task/TaskManager.ts +123 -5
  89. package/src/services/task/TaskUtils.ts +81 -0
  90. package/src/services/task/constants.ts +25 -0
  91. package/src/services/task/contact.ts +80 -0
  92. package/src/services/task/index.ts +510 -71
  93. package/src/services/task/types.ts +251 -20
  94. package/src/types.ts +180 -0
  95. package/src/utils/PageCache.ts +252 -0
  96. package/test/unit/spec/cc.ts +282 -85
  97. package/test/unit/spec/metrics/MetricsManager.ts +0 -1
  98. package/test/unit/spec/metrics/behavioral-events.ts +42 -0
  99. package/test/unit/spec/services/AddressBook.ts +332 -0
  100. package/test/unit/spec/services/EntryPoint.ts +259 -0
  101. package/test/unit/spec/services/Queue.ts +323 -0
  102. package/test/unit/spec/services/config/index.ts +279 -65
  103. package/test/unit/spec/services/core/Utils.ts +50 -0
  104. package/test/unit/spec/services/core/aqm-reqs.ts +1 -3
  105. package/test/unit/spec/services/core/websocket/WebSocketManager.ts +0 -4
  106. package/test/unit/spec/services/task/TaskManager.ts +390 -1
  107. package/test/unit/spec/services/task/TaskUtils.ts +131 -0
  108. package/test/unit/spec/services/task/contact.ts +31 -1
  109. package/test/unit/spec/services/task/index.ts +585 -130
  110. package/umd/contact-center.min.js +2 -2
  111. 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: [_constants2.AGENT],
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 _constants2.WEB_RTC_PREFIX + this.agentConfig.agentId;
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 = _constants3.AGENT_STATE_AVAILABLE_ID;
1091
+ auxCodeId = _constants2.AGENT_STATE_AVAILABLE_ID;
1005
1092
  const stateChangeData = {
1006
- state: _constants3.AGENT_STATE_AVAILABLE,
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
- * 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
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
- * // Basic usage - get all queues
1253
- * const allQueues = await cc.getQueues();
1351
+ * // Get agent profile to obtain outdial ANI ID
1352
+ * const agentProfile = cc.agentConfig;
1353
+ * const outdialANI = agentProfile.outdialANIId;
1254
1354
  *
1255
- * // Search for specific queues
1256
- * const salesQueues = await cc.getQueues('sales'); // Search for 'sales' in queue names
1355
+ * // Basic usage - get all ANI data for an outdial ANI ID
1356
+ * const aniData = await cc.getOutdialAniEntries({ outdialANI });
1257
1357
  *
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
- * );
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 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
- * });
1366
+ * // Process the results
1367
+ * paginatedAni.forEach(ani => {
1368
+ * console.log(`ANI: ${ani.number} - ${ani.name}`);
1275
1369
  * });
1276
1370
  * ```
1277
1371
  */
1278
- async getQueues(search, filter, page = _constants3.DEFAULT_PAGE, pageSize = _constants3.DEFAULT_PAGE_SIZE) {
1279
- _loggerProxy.default.info('Fetching queues', {
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.GET_QUEUES
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.GET_QUEUES
1389
+ method: _constants.METHODS.GET_OUTDIAL_ANI_ENTRIES
1288
1390
  });
1289
1391
  throw new Error('Org ID not found.');
1290
1392
  }
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;
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