@webex/calling 3.8.1 → 3.9.0-multi-llms.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 (193) hide show
  1. package/dist/CallHistory/CallHistory.js +51 -46
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +146 -147
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
  6. package/dist/CallHistory/constants.js.map +1 -1
  7. package/dist/CallHistory/types.js.map +1 -1
  8. package/dist/CallSettings/CallSettings.js +8 -8
  9. package/dist/CallSettings/CallSettings.js.map +1 -1
  10. package/dist/CallSettings/CallSettings.test.js +1 -1
  11. package/dist/CallSettings/CallSettings.test.js.map +1 -1
  12. package/dist/CallSettings/UcmBackendConnector.js +12 -11
  13. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  14. package/dist/CallSettings/UcmBackendConnector.test.js +9 -10
  15. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  16. package/dist/CallSettings/WxCallBackendConnector.js +68 -61
  17. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  18. package/dist/CallSettings/WxCallBackendConnector.test.js +168 -102
  19. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  20. package/dist/CallSettings/constants.js.map +1 -1
  21. package/dist/CallSettings/testFixtures.js.map +1 -1
  22. package/dist/CallSettings/types.js.map +1 -1
  23. package/dist/CallingClient/CallingClient.js +530 -219
  24. package/dist/CallingClient/CallingClient.js.map +1 -1
  25. package/dist/CallingClient/CallingClient.test.js +500 -291
  26. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  27. package/dist/CallingClient/callRecordFixtures.js.map +1 -1
  28. package/dist/CallingClient/calling/CallerId/index.js +2 -2
  29. package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
  30. package/dist/CallingClient/calling/CallerId/index.test.js +8 -7
  31. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
  32. package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
  33. package/dist/CallingClient/calling/call.js +369 -333
  34. package/dist/CallingClient/calling/call.js.map +1 -1
  35. package/dist/CallingClient/calling/call.test.js +411 -410
  36. package/dist/CallingClient/calling/call.test.js.map +1 -1
  37. package/dist/CallingClient/calling/callManager.js +3 -4
  38. package/dist/CallingClient/calling/callManager.js.map +1 -1
  39. package/dist/CallingClient/calling/callManager.test.js +67 -68
  40. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  41. package/dist/CallingClient/calling/index.js.map +1 -1
  42. package/dist/CallingClient/calling/types.js.map +1 -1
  43. package/dist/CallingClient/callingClientFixtures.js.map +1 -1
  44. package/dist/CallingClient/constants.js +11 -8
  45. package/dist/CallingClient/constants.js.map +1 -1
  46. package/dist/CallingClient/line/index.js +10 -11
  47. package/dist/CallingClient/line/index.js.map +1 -1
  48. package/dist/CallingClient/line/line.test.js +12 -17
  49. package/dist/CallingClient/line/line.test.js.map +1 -1
  50. package/dist/CallingClient/line/types.js.map +1 -1
  51. package/dist/CallingClient/registration/index.js.map +1 -1
  52. package/dist/CallingClient/registration/register.js +557 -442
  53. package/dist/CallingClient/registration/register.js.map +1 -1
  54. package/dist/CallingClient/registration/register.test.js +526 -395
  55. package/dist/CallingClient/registration/register.test.js.map +1 -1
  56. package/dist/CallingClient/registration/registerFixtures.js.map +1 -1
  57. package/dist/CallingClient/registration/types.js.map +1 -1
  58. package/dist/CallingClient/registration/webWorker.js +116 -0
  59. package/dist/CallingClient/registration/webWorker.js.map +1 -0
  60. package/dist/CallingClient/registration/webWorker.test.js +256 -0
  61. package/dist/CallingClient/registration/webWorker.test.js.map +1 -0
  62. package/dist/CallingClient/registration/webWorkerStr.js +15 -0
  63. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -0
  64. package/dist/CallingClient/types.js.map +1 -1
  65. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +142 -0
  66. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -0
  67. package/dist/Contacts/ContactsClient.js +244 -238
  68. package/dist/Contacts/ContactsClient.js.map +1 -1
  69. package/dist/Contacts/ContactsClient.test.js +89 -90
  70. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  71. package/dist/Contacts/constants.js +2 -2
  72. package/dist/Contacts/constants.js.map +1 -1
  73. package/dist/Contacts/contactFixtures.js.map +1 -1
  74. package/dist/Contacts/types.js.map +1 -1
  75. package/dist/Errors/catalog/CallError.js +2 -2
  76. package/dist/Errors/catalog/CallError.js.map +1 -1
  77. package/dist/Errors/catalog/CallingDeviceError.js +2 -2
  78. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
  79. package/dist/Errors/catalog/ExtendedError.js +3 -3
  80. package/dist/Errors/catalog/ExtendedError.js.map +1 -1
  81. package/dist/Errors/catalog/LineError.js +2 -2
  82. package/dist/Errors/catalog/LineError.js.map +1 -1
  83. package/dist/Errors/index.js.map +1 -1
  84. package/dist/Errors/types.js +2 -0
  85. package/dist/Errors/types.js.map +1 -1
  86. package/dist/Events/impl/index.js +2 -2
  87. package/dist/Events/impl/index.js.map +1 -1
  88. package/dist/Events/types.js.map +1 -1
  89. package/dist/Logger/index.js.map +1 -1
  90. package/dist/Logger/index.test.js.map +1 -1
  91. package/dist/Logger/types.js.map +1 -1
  92. package/dist/Metrics/index.js +175 -86
  93. package/dist/Metrics/index.js.map +1 -1
  94. package/dist/Metrics/index.test.js +70 -4
  95. package/dist/Metrics/index.test.js.map +1 -1
  96. package/dist/Metrics/types.js +15 -1
  97. package/dist/Metrics/types.js.map +1 -1
  98. package/dist/SDKConnector/index.js +0 -1
  99. package/dist/SDKConnector/index.js.map +1 -1
  100. package/dist/SDKConnector/index.test.js.map +1 -1
  101. package/dist/SDKConnector/types.js.map +1 -1
  102. package/dist/SDKConnector/utils.js.map +1 -1
  103. package/dist/SDKConnector/utils.test.js.map +1 -1
  104. package/dist/Voicemail/BroadworksBackendConnector.js +42 -39
  105. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  106. package/dist/Voicemail/BroadworksBackendConnector.test.js +119 -120
  107. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  108. package/dist/Voicemail/UcmBackendConnector.js +54 -47
  109. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  110. package/dist/Voicemail/UcmBackendConnector.test.js +73 -74
  111. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  112. package/dist/Voicemail/Voicemail.js +12 -11
  113. package/dist/Voicemail/Voicemail.js.map +1 -1
  114. package/dist/Voicemail/Voicemail.test.js +2 -2
  115. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  116. package/dist/Voicemail/WxCallBackendConnector.js +78 -70
  117. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  118. package/dist/Voicemail/WxCallBackendConnector.test.js +184 -185
  119. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  120. package/dist/Voicemail/constants.js.map +1 -1
  121. package/dist/Voicemail/types.js.map +1 -1
  122. package/dist/Voicemail/voicemailFixture.js.map +1 -1
  123. package/dist/api.js.map +1 -1
  124. package/dist/common/Utils.js +125 -99
  125. package/dist/common/Utils.js.map +1 -1
  126. package/dist/common/Utils.test.js +283 -143
  127. package/dist/common/Utils.test.js.map +1 -1
  128. package/dist/common/constants.js.map +1 -1
  129. package/dist/common/index.js.map +1 -1
  130. package/dist/common/testUtil.js +1 -1
  131. package/dist/common/testUtil.js.map +1 -1
  132. package/dist/common/types.js +8 -1
  133. package/dist/common/types.js.map +1 -1
  134. package/dist/index.js +5 -5
  135. package/dist/index.js.map +1 -1
  136. package/dist/module/CallHistory/CallHistory.js +4 -0
  137. package/dist/module/CallSettings/UcmBackendConnector.js +1 -0
  138. package/dist/module/CallSettings/WxCallBackendConnector.js +8 -1
  139. package/dist/module/CallingClient/CallingClient.js +199 -42
  140. package/dist/module/CallingClient/calling/call.js +79 -43
  141. package/dist/module/CallingClient/constants.js +10 -6
  142. package/dist/module/CallingClient/line/index.js +3 -3
  143. package/dist/module/CallingClient/registration/register.js +111 -72
  144. package/dist/module/CallingClient/registration/webWorker.js +60 -0
  145. package/dist/module/CallingClient/registration/webWorkerStr.js +93 -0
  146. package/dist/module/CallingClient/windowsChromiumIceWarmupUtils.js +59 -0
  147. package/dist/module/Contacts/ContactsClient.js +23 -17
  148. package/dist/module/Contacts/constants.js +1 -1
  149. package/dist/module/Errors/types.js +2 -0
  150. package/dist/module/Metrics/index.js +94 -33
  151. package/dist/module/Metrics/types.js +14 -0
  152. package/dist/module/Voicemail/BroadworksBackendConnector.js +3 -0
  153. package/dist/module/Voicemail/UcmBackendConnector.js +6 -0
  154. package/dist/module/Voicemail/WxCallBackendConnector.js +8 -0
  155. package/dist/module/common/Utils.js +37 -12
  156. package/dist/module/common/types.js +7 -0
  157. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  158. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  159. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  160. package/dist/types/CallSettings/types.d.ts +1 -1
  161. package/dist/types/CallSettings/types.d.ts.map +1 -1
  162. package/dist/types/CallingClient/CallingClient.d.ts +12 -1
  163. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  164. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  165. package/dist/types/CallingClient/calling/types.d.ts +2 -1
  166. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  167. package/dist/types/CallingClient/constants.d.ts +10 -6
  168. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  169. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  170. package/dist/types/CallingClient/registration/register.d.ts +2 -2
  171. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  172. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  173. package/dist/types/CallingClient/registration/webWorker.d.ts +3 -0
  174. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -0
  175. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +3 -0
  176. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -0
  177. package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts +5 -0
  178. package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts.map +1 -0
  179. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  180. package/dist/types/Contacts/constants.d.ts +1 -1
  181. package/dist/types/Contacts/constants.d.ts.map +1 -1
  182. package/dist/types/Errors/types.d.ts +2 -0
  183. package/dist/types/Errors/types.d.ts.map +1 -1
  184. package/dist/types/Metrics/index.d.ts.map +1 -1
  185. package/dist/types/Metrics/types.d.ts +20 -4
  186. package/dist/types/Metrics/types.d.ts.map +1 -1
  187. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  188. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  189. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  190. package/dist/types/common/Utils.d.ts.map +1 -1
  191. package/dist/types/common/types.d.ts +13 -0
  192. package/dist/types/common/types.d.ts.map +1 -1
  193. package/package.json +10 -8
@@ -2,7 +2,7 @@ import { FAILURE_MESSAGE, METHOD_START_MESSAGE, SCIM_ENTERPRISE_USER, SCIM_WEBEX
2
2
  import { HTTP_METHODS } from '../common/types';
3
3
  import SDKConnector from '../SDKConnector';
4
4
  import log from '../Logger';
5
- import { CONTACTS_FILE, CONTACTS_SCHEMA, CONTACT_FILTER, DEFAULT_GROUP_NAME, ENCRYPT_FILTER, GROUP_FILTER, METHODS, OR, SCIM_ID_FILTER, USERS, encryptedFields, } from './constants';
5
+ import { CONTACTS_CLIENT, CONTACTS_SCHEMA, CONTACT_FILTER, DEFAULT_GROUP_NAME, ENCRYPT_FILTER, GROUP_FILTER, METHODS, OR, SCIM_ID_FILTER, USERS, encryptedFields, } from './constants';
6
6
  import { ContactType, GroupType, } from './types';
7
7
  import { scimQuery, serviceErrorCodeHandler, uploadLogs } from '../common/Utils';
8
8
  export class ContactsClient {
@@ -22,7 +22,7 @@ export class ContactsClient {
22
22
  this.groups = undefined;
23
23
  this.contacts = undefined;
24
24
  this.defaultGroupId = '';
25
- log.setLogger(logger.level, CONTACTS_FILE);
25
+ log.setLogger(logger.level, CONTACTS_CLIENT);
26
26
  }
27
27
  async decryptContactDetail(encryptionKeyUrl, contactDetails) {
28
28
  const decryptedContactDetail = [...contactDetails];
@@ -130,7 +130,7 @@ export class ContactsClient {
130
130
  }
131
131
  resolveCloudContacts(contactsDataMap, inputList) {
132
132
  const loggerContext = {
133
- file: CONTACTS_FILE,
133
+ file: CONTACTS_CLIENT,
134
134
  method: 'resolveCloudContacts',
135
135
  };
136
136
  const finalContactList = [];
@@ -187,7 +187,7 @@ export class ContactsClient {
187
187
  }
188
188
  async getContacts() {
189
189
  const loggerContext = {
190
- file: CONTACTS_FILE,
190
+ file: CONTACTS_CLIENT,
191
191
  method: METHODS.GET_CONTACTS,
192
192
  };
193
193
  log.info(METHOD_START_MESSAGE, loggerContext);
@@ -198,6 +198,7 @@ export class ContactsClient {
198
198
  uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,
199
199
  method: HTTP_METHODS.GET,
200
200
  });
201
+ log.log(`Response code: ${response.statusCode} and Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
201
202
  const responseBody = response.body;
202
203
  if (!responseBody) {
203
204
  throw new Error(`${response}`);
@@ -259,7 +260,7 @@ export class ContactsClient {
259
260
  }
260
261
  async createNewEncryptionKeyUrl() {
261
262
  const loggerContext = {
262
- file: CONTACTS_FILE,
263
+ file: CONTACTS_CLIENT,
263
264
  method: METHODS.CREATE_NEW_ENCRYPTION_KEY_URL,
264
265
  };
265
266
  log.info(METHOD_START_MESSAGE, loggerContext);
@@ -272,7 +273,7 @@ export class ContactsClient {
272
273
  }
273
274
  async fetchEncryptionKeyUrl() {
274
275
  const loggerContext = {
275
- file: CONTACTS_FILE,
276
+ file: CONTACTS_CLIENT,
276
277
  method: METHODS.FETCH_ENCRYPTION_KEY_URL,
277
278
  };
278
279
  log.info(METHOD_START_MESSAGE, loggerContext);
@@ -287,14 +288,14 @@ export class ContactsClient {
287
288
  }
288
289
  this.encryptionKeyUrl = await this.createNewEncryptionKeyUrl();
289
290
  log.log(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {
290
- file: CONTACTS_FILE,
291
+ file: CONTACTS_CLIENT,
291
292
  method: this.fetchEncryptionKeyUrl.name,
292
293
  });
293
294
  const response = await this.createContactGroup(DEFAULT_GROUP_NAME, this.encryptionKeyUrl);
294
295
  if (response.data.group?.groupId) {
295
296
  this.defaultGroupId = response.data.group?.groupId;
296
297
  log.log(`Successfully created default group with ID: ${this.defaultGroupId}`, {
297
- file: CONTACTS_FILE,
298
+ file: CONTACTS_CLIENT,
298
299
  method: this.fetchEncryptionKeyUrl.name,
299
300
  });
300
301
  }
@@ -302,13 +303,13 @@ export class ContactsClient {
302
303
  }
303
304
  async fetchDefaultGroup() {
304
305
  const loggerContext = {
305
- file: CONTACTS_FILE,
306
+ file: CONTACTS_CLIENT,
306
307
  method: METHODS.FETCH_DEFAULT_GROUP,
307
308
  };
308
309
  log.info(METHOD_START_MESSAGE, loggerContext);
309
310
  if (this.defaultGroupId) {
310
311
  log.log(`Using existing default group with ID: ${this.defaultGroupId}`, {
311
- file: CONTACTS_FILE,
312
+ file: CONTACTS_CLIENT,
312
313
  method: this.fetchDefaultGroup.name,
313
314
  });
314
315
  return this.defaultGroupId;
@@ -318,7 +319,7 @@ export class ContactsClient {
318
319
  if (this.groups[i].displayName === DEFAULT_GROUP_NAME) {
319
320
  this.defaultGroupId = this.groups[i].groupId;
320
321
  log.log(`Found default group with ID: ${this.defaultGroupId}`, {
321
- file: CONTACTS_FILE,
322
+ file: CONTACTS_CLIENT,
322
323
  method: this.fetchDefaultGroup.name,
323
324
  });
324
325
  return this.defaultGroupId;
@@ -326,7 +327,7 @@ export class ContactsClient {
326
327
  }
327
328
  }
328
329
  log.log('No default group found.', {
329
- file: CONTACTS_FILE,
330
+ file: CONTACTS_CLIENT,
330
331
  method: this.fetchDefaultGroup.name,
331
332
  });
332
333
  const response = await this.createContactGroup(DEFAULT_GROUP_NAME);
@@ -334,7 +335,7 @@ export class ContactsClient {
334
335
  if (group) {
335
336
  const groupId = group.groupId;
336
337
  log.log(`Successfully created new default group with ID: ${groupId}`, {
337
- file: CONTACTS_FILE,
338
+ file: CONTACTS_CLIENT,
338
339
  method: this.fetchDefaultGroup.name,
339
340
  });
340
341
  return groupId;
@@ -343,7 +344,7 @@ export class ContactsClient {
343
344
  }
344
345
  async createContactGroup(displayName, encryptionKeyUrl, groupType) {
345
346
  const loggerContext = {
346
- file: CONTACTS_FILE,
347
+ file: CONTACTS_CLIENT,
347
348
  method: METHODS.CREATE_CONTACT_GROUP,
348
349
  };
349
350
  log.info(`${METHOD_START_MESSAGE} with displayName: ${displayName}`, loggerContext);
@@ -377,6 +378,8 @@ export class ContactsClient {
377
378
  method: HTTP_METHODS.POST,
378
379
  body: groupInfo,
379
380
  });
381
+ log.log(`Response code: ${response.statusCode}`, loggerContext);
382
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
380
383
  const group = response.body;
381
384
  group.displayName = displayName;
382
385
  const contactResponse = {
@@ -401,7 +404,7 @@ export class ContactsClient {
401
404
  }
402
405
  async deleteContactGroup(groupId) {
403
406
  const loggerContext = {
404
- file: CONTACTS_FILE,
407
+ file: CONTACTS_CLIENT,
405
408
  method: METHODS.DELETE_CONTACT_GROUP,
406
409
  };
407
410
  log.info(`${METHOD_START_MESSAGE} with groupId: ${groupId}`, loggerContext);
@@ -411,6 +414,7 @@ export class ContactsClient {
411
414
  uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}/${groupId}`,
412
415
  method: HTTP_METHODS.DELETE,
413
416
  });
417
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
414
418
  const contactResponse = {
415
419
  statusCode: Number(response[STATUS_CODE]),
416
420
  data: {},
@@ -437,7 +441,7 @@ export class ContactsClient {
437
441
  }
438
442
  async createContact(contactInfo) {
439
443
  const loggerContext = {
440
- file: CONTACTS_FILE,
444
+ file: CONTACTS_CLIENT,
441
445
  method: METHODS.CREATE_CONTACT,
442
446
  };
443
447
  log.info(`${METHOD_START_MESSAGE} with contactType: ${contactInfo.contactType}`, loggerContext);
@@ -487,6 +491,8 @@ export class ContactsClient {
487
491
  method: HTTP_METHODS.POST,
488
492
  body: requestBody,
489
493
  });
494
+ log.log(`Response code: ${response.statusCode}`, loggerContext);
495
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
490
496
  const newContact = response.body;
491
497
  contact.contactId = newContact.contactId;
492
498
  const contactResponse = {
@@ -521,7 +527,7 @@ export class ContactsClient {
521
527
  }
522
528
  async deleteContact(contactId) {
523
529
  const loggerContext = {
524
- file: CONTACTS_FILE,
530
+ file: CONTACTS_CLIENT,
525
531
  method: METHODS.DELETE_CONTACT,
526
532
  };
527
533
  log.info(`${METHOD_START_MESSAGE} with contactId: ${contactId}`, loggerContext);
@@ -1,4 +1,4 @@
1
- export const CONTACTS_FILE = 'Contacts';
1
+ export const CONTACTS_CLIENT = 'ContactsClient';
2
2
  export const CONTACT_FILTER = 'contacts';
3
3
  export const GROUP_FILTER = 'groups';
4
4
  export const ENCRYPT_FILTER = 'encrypt';
@@ -7,12 +7,14 @@ export var ERROR_TYPE;
7
7
  (function (ERROR_TYPE) {
8
8
  ERROR_TYPE["CALL_ERROR"] = "call_error";
9
9
  ERROR_TYPE["DEFAULT"] = "default_error";
10
+ ERROR_TYPE["BAD_REQUEST"] = "bad_request";
10
11
  ERROR_TYPE["FORBIDDEN_ERROR"] = "forbidden";
11
12
  ERROR_TYPE["NOT_FOUND"] = "not_found";
12
13
  ERROR_TYPE["REGISTRATION_ERROR"] = "registration_error";
13
14
  ERROR_TYPE["SERVICE_UNAVAILABLE"] = "service_unavailable";
14
15
  ERROR_TYPE["TIMEOUT"] = "timeout";
15
16
  ERROR_TYPE["TOKEN_ERROR"] = "token_error";
17
+ ERROR_TYPE["TOO_MANY_REQUESTS"] = "too_many_requests";
16
18
  ERROR_TYPE["SERVER_ERROR"] = "server_error";
17
19
  })(ERROR_TYPE || (ERROR_TYPE = {}));
18
20
  export var ERROR_CODE;
@@ -1,5 +1,6 @@
1
1
  import { METRIC_FILE, VERSION } from '../CallingClient/constants';
2
- import { METRIC_EVENT } from './types';
2
+ import { ServiceIndicator } from '../common/types';
3
+ import { METRIC_EVENT, } from './types';
3
4
  import log from '../Logger';
4
5
  let metricManager;
5
6
  class MetricManager {
@@ -11,48 +12,60 @@ class MetricManager {
11
12
  this.webex = webex;
12
13
  this.serviceIndicator = indicator;
13
14
  }
14
- submitUploadLogsMetric(name, action, type, trackingId, feedbackId, correlationId, stack, callId) {
15
+ submitConnectionMetrics(name, metricAction, type, downTimestamp, upTimestamp) {
16
+ const metricData = {
17
+ tags: {
18
+ metricAction,
19
+ device_id: this.deviceInfo?.device?.deviceId,
20
+ service_indicator: this.serviceIndicator,
21
+ },
22
+ fields: {
23
+ device_url: this.deviceInfo?.device?.clientDeviceUri,
24
+ mobius_url: this.deviceInfo?.device?.uri,
25
+ calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,
26
+ downTimestamp,
27
+ upTimestamp,
28
+ },
29
+ type,
30
+ };
31
+ if (metricData) {
32
+ this.webex.internal.metrics.submitClientMetrics(name, metricData);
33
+ }
34
+ }
35
+ submitUploadLogsMetric(name, action, type, trackingId, feedbackId, correlationId, stack, callId, broadworksCorrelationInfo) {
15
36
  let data;
37
+ const commonData = {
38
+ tags: {
39
+ action,
40
+ device_id: this.deviceInfo?.device?.deviceId,
41
+ service_indicator: this.serviceIndicator,
42
+ },
43
+ fields: {
44
+ device_url: this.deviceInfo?.device?.clientDeviceUri,
45
+ mobius_url: this.deviceInfo?.device?.uri,
46
+ calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,
47
+ correlation_id: correlationId,
48
+ broadworksCorrelationInfo,
49
+ tracking_id: trackingId,
50
+ feedback_id: feedbackId,
51
+ call_id: callId,
52
+ },
53
+ type,
54
+ };
16
55
  switch (name) {
17
56
  case METRIC_EVENT.UPLOAD_LOGS_SUCCESS: {
18
- data = {
19
- tags: {
20
- action,
21
- device_id: this.deviceInfo?.device?.deviceId,
22
- service_indicator: this.serviceIndicator,
23
- },
24
- fields: {
25
- device_url: this.deviceInfo?.device?.clientDeviceUri,
26
- mobius_url: this.deviceInfo?.device?.uri,
27
- calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,
28
- correlation_id: correlationId,
29
- tracking_id: trackingId,
30
- feedback_id: feedbackId,
31
- call_id: callId,
32
- },
33
- type,
34
- };
57
+ data = commonData;
35
58
  break;
36
59
  }
37
60
  case METRIC_EVENT.UPLOAD_LOGS_FAILED: {
38
61
  data = {
39
- tags: {
40
- action,
41
- device_id: this.deviceInfo?.device?.deviceId,
42
- service_indicator: this.serviceIndicator,
43
- },
62
+ ...commonData,
44
63
  fields: {
45
- device_url: this.deviceInfo?.device?.clientDeviceUri,
46
- mobius_url: this.deviceInfo?.device?.uri,
47
- calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,
48
- correlation_id: correlationId,
49
- tracking_id: trackingId,
50
- feedback_id: feedbackId,
64
+ ...commonData.fields,
51
65
  error: stack,
52
- call_id: callId,
53
66
  },
54
- type,
55
67
  };
68
+ break;
56
69
  }
57
70
  }
58
71
  if (data) {
@@ -62,7 +75,48 @@ class MetricManager {
62
75
  setDeviceInfo(deviceInfo) {
63
76
  this.deviceInfo = deviceInfo;
64
77
  }
65
- submitRegistrationMetric(name, metricAction, type, clientError) {
78
+ submitRegionInfoMetric(name, metricAction, type, mobiusHost, clientRegion, countryCode, trackingId) {
79
+ const data = {
80
+ tags: {
81
+ action: metricAction,
82
+ device_id: this.deviceInfo?.device?.deviceId,
83
+ service_indicator: ServiceIndicator.CALLING,
84
+ },
85
+ fields: {
86
+ device_url: this.deviceInfo?.device?.clientDeviceUri,
87
+ mobius_url: this.deviceInfo?.device?.uri,
88
+ calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,
89
+ mobius_host: mobiusHost,
90
+ client_region: clientRegion,
91
+ country_code: countryCode,
92
+ tracking_id: trackingId,
93
+ },
94
+ type,
95
+ };
96
+ this.webex.internal.metrics.submitClientMetrics(name, data);
97
+ }
98
+ submitMobiusServersMetric(name, metricAction, type, mobiusServers, trackingId) {
99
+ const data = {
100
+ tags: {
101
+ action: metricAction,
102
+ device_id: this.deviceInfo?.device?.deviceId,
103
+ service_indicator: ServiceIndicator.CALLING,
104
+ },
105
+ fields: {
106
+ device_url: this.deviceInfo?.device?.clientDeviceUri,
107
+ mobius_url: this.deviceInfo?.device?.uri,
108
+ calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,
109
+ primary_mobius_servers_region: mobiusServers.primary.region,
110
+ primary_mobius_servers_uris: mobiusServers.primary.uris.join(','),
111
+ backup_mobius_servers_region: mobiusServers.backup.region,
112
+ backup_mobius_servers_uris: mobiusServers.backup.uris.join(','),
113
+ tracking_id: trackingId,
114
+ },
115
+ type,
116
+ };
117
+ this.webex.internal.metrics.submitClientMetrics(name, data);
118
+ }
119
+ submitRegistrationMetric(name, metricAction, type, caller, serverType, trackingId, keepaliveCount, clientError) {
66
120
  let data;
67
121
  switch (name) {
68
122
  case METRIC_EVENT.REGISTRATION: {
@@ -76,6 +130,9 @@ class MetricManager {
76
130
  device_url: this.deviceInfo?.device?.clientDeviceUri,
77
131
  mobius_url: this.deviceInfo?.device?.uri,
78
132
  calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,
133
+ reg_source: caller,
134
+ server_type: serverType,
135
+ trackingId,
79
136
  },
80
137
  type,
81
138
  };
@@ -93,6 +150,10 @@ class MetricManager {
93
150
  device_url: this.deviceInfo?.device?.clientDeviceUri,
94
151
  mobius_url: this.deviceInfo?.device?.uri,
95
152
  calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,
153
+ reg_source: caller,
154
+ server_type: serverType,
155
+ trackingId,
156
+ keepalive_count: keepaliveCount,
96
157
  error: clientError.getError().message,
97
158
  error_type: clientError.getError().type,
98
159
  },
@@ -9,15 +9,23 @@ export var METRIC_EVENT;
9
9
  METRIC_EVENT["BNR_DISABLED"] = "web-calling-sdk-bnr-disabled";
10
10
  METRIC_EVENT["CALL"] = "web-calling-sdk-callcontrol";
11
11
  METRIC_EVENT["CALL_ERROR"] = "web-calling-sdk-callcontrol-error";
12
+ METRIC_EVENT["CONNECTION_ERROR"] = "web-calling-sdk-connection";
12
13
  METRIC_EVENT["MEDIA"] = "web-calling-sdk-media";
13
14
  METRIC_EVENT["MEDIA_ERROR"] = "web-calling-sdk-media-error";
14
15
  METRIC_EVENT["REGISTRATION"] = "web-calling-sdk-registration";
15
16
  METRIC_EVENT["REGISTRATION_ERROR"] = "web-calling-sdk-registration-error";
17
+ METRIC_EVENT["KEEPALIVE_ERROR"] = "web-calling-sdk-keepalive-error";
16
18
  METRIC_EVENT["VOICEMAIL"] = "web-calling-sdk-voicemail";
17
19
  METRIC_EVENT["VOICEMAIL_ERROR"] = "web-calling-sdk-voicemail-error";
18
20
  METRIC_EVENT["UPLOAD_LOGS_SUCCESS"] = "web-calling-sdk-upload-logs-success";
19
21
  METRIC_EVENT["UPLOAD_LOGS_FAILED"] = "web-calling-sdk-upload-logs-failed";
22
+ METRIC_EVENT["MOBIUS_DISCOVERY"] = "web-calling-sdk-mobius-discovery";
20
23
  })(METRIC_EVENT || (METRIC_EVENT = {}));
24
+ export var MOBIUS_SERVER_ACTION;
25
+ (function (MOBIUS_SERVER_ACTION) {
26
+ MOBIUS_SERVER_ACTION["REGION_INFO"] = "region-info";
27
+ MOBIUS_SERVER_ACTION["MOBIUS_SERVERS"] = "mobius-servers";
28
+ })(MOBIUS_SERVER_ACTION || (MOBIUS_SERVER_ACTION = {}));
21
29
  export var REG_ACTION;
22
30
  (function (REG_ACTION) {
23
31
  REG_ACTION["REGISTER"] = "register";
@@ -40,3 +48,9 @@ export var VOICEMAIL_ACTION;
40
48
  VOICEMAIL_ACTION["TRANSCRIPT"] = "transcript";
41
49
  })(VOICEMAIL_ACTION || (VOICEMAIL_ACTION = {}));
42
50
  export const UPLOAD_LOGS_ACTION = 'upload_logs';
51
+ export var CONNECTION_ACTION;
52
+ (function (CONNECTION_ACTION) {
53
+ CONNECTION_ACTION["NETWORK_FLAP"] = "network_flap";
54
+ CONNECTION_ACTION["MERCURY_DOWN"] = "mercury_down";
55
+ CONNECTION_ACTION["MERCURY_UP"] = "mercury_up";
56
+ })(CONNECTION_ACTION || (CONNECTION_ACTION = {}));
@@ -128,6 +128,7 @@ export class BroadworksBackendConnector {
128
128
  throw new Error(`${response.status}`);
129
129
  }
130
130
  const voicemailListResponse = (await response.json());
131
+ log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);
131
132
  if (Object.keys(voicemailListResponse?.VoiceMessagingMessages?.messageInfoList).length === 0) {
132
133
  messageinfo = [];
133
134
  }
@@ -181,6 +182,7 @@ export class BroadworksBackendConnector {
181
182
  throw new Error(`${response.status}`);
182
183
  }
183
184
  const xmlData = await response.text();
185
+ log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);
184
186
  const parser = new DOMParser();
185
187
  const xmlDOM = parser.parseFromString(xmlData, XML_TYPE);
186
188
  const mediaDetails = xmlDOM.getElementsByTagName(MESSAGE_MEDIA_CONTENT)[0];
@@ -232,6 +234,7 @@ export class BroadworksBackendConnector {
232
234
  throw new Error(`${response.status}`);
233
235
  }
234
236
  log.log(`Successfully marked voicemail with ID ${messageId} as read`, loggerContext);
237
+ log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);
235
238
  const responseDetails = {
236
239
  statusCode: response.status,
237
240
  data: {},
@@ -59,6 +59,7 @@ export class UcmBackendConnector {
59
59
  orgId: this.orgId,
60
60
  },
61
61
  });
62
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
62
63
  const msgInfo = response.body;
63
64
  const messageinfoArray = [];
64
65
  const ucmVmMsgInfo = msgInfo.Message;
@@ -186,6 +187,8 @@ export class UcmBackendConnector {
186
187
  mercuryHostname: mercuryApi,
187
188
  },
188
189
  });
190
+ log.log(`Response code: ${response.statusCode}`, loggerContext);
191
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
189
192
  const contentInfo = response?.body;
190
193
  const respHeaders = response.headers;
191
194
  const statusCode = response.statusCode;
@@ -224,6 +227,7 @@ export class UcmBackendConnector {
224
227
  read: 'true',
225
228
  },
226
229
  });
230
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
227
231
  const responseDetails = {
228
232
  statusCode: Number(response.statusCode),
229
233
  data: {},
@@ -259,6 +263,7 @@ export class UcmBackendConnector {
259
263
  read: 'false',
260
264
  },
261
265
  });
266
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
262
267
  const responseDetails = {
263
268
  statusCode: Number(response.statusCode),
264
269
  data: {},
@@ -291,6 +296,7 @@ export class UcmBackendConnector {
291
296
  orgId: this.orgId,
292
297
  },
293
298
  });
299
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
294
300
  const responseDetails = {
295
301
  statusCode: Number(response.statusCode),
296
302
  data: {},
@@ -70,6 +70,8 @@ export class WxCallBackendConnector {
70
70
  method: HTTP_METHODS.GET,
71
71
  headers: { ...this.authHeaders },
72
72
  });
73
+ log.log(`Response code: ${response.statusCode}`, loggerContext);
74
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
73
75
  const voicemailListResponse = response.body;
74
76
  if (Object.keys(voicemailListResponse?.VoiceMessagingMessages?.messageInfoList).length === 0) {
75
77
  messageinfo = [];
@@ -123,6 +125,7 @@ export class WxCallBackendConnector {
123
125
  const mediaType = mediaDetails.childNodes[1]?.textContent;
124
126
  const mediaContent = mediaDetails.childNodes[2]?.textContent;
125
127
  log.info(`Media type is ${mediaType}`, loggerContext);
128
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
126
129
  const responseDetails = {
127
130
  statusCode: Number(response.statusCode),
128
131
  data: {
@@ -177,6 +180,7 @@ export class WxCallBackendConnector {
177
180
  },
178
181
  message: SUCCESS_MESSAGE,
179
182
  };
183
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
180
184
  log.log('Successfully fetched voicemail summary', loggerContext);
181
185
  return responseDetails;
182
186
  }
@@ -207,6 +211,7 @@ export class WxCallBackendConnector {
207
211
  data: {},
208
212
  message: SUCCESS_MESSAGE,
209
213
  };
214
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
210
215
  log.log('Successfully marked voicemail as read', loggerContext);
211
216
  return responseDetails;
212
217
  }
@@ -237,6 +242,7 @@ export class WxCallBackendConnector {
237
242
  data: {},
238
243
  message: SUCCESS_MESSAGE,
239
244
  };
245
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
240
246
  log.log('Successfully marked voicemail as unread', loggerContext);
241
247
  return responseDetails;
242
248
  }
@@ -267,6 +273,7 @@ export class WxCallBackendConnector {
267
273
  data: {},
268
274
  message: SUCCESS_MESSAGE,
269
275
  };
276
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
270
277
  log.log('Successfully deleted voicemail', loggerContext);
271
278
  return responseDetails;
272
279
  }
@@ -303,6 +310,7 @@ export class WxCallBackendConnector {
303
310
  },
304
311
  message: status.textContent,
305
312
  };
313
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
306
314
  log.log('Successfully fetched voicemail transcript', loggerContext);
307
315
  return responseDetails;
308
316
  }