@webex/calling 3.9.0 → 3.10.0-next.1

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 +43 -43
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +157 -152
  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 +11 -11
  15. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  16. package/dist/CallSettings/WxCallBackendConnector.js +53 -52
  17. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  18. package/dist/CallSettings/WxCallBackendConnector.test.js +112 -110
  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 +458 -203
  24. package/dist/CallingClient/CallingClient.js.map +1 -1
  25. package/dist/CallingClient/CallingClient.test.js +458 -315
  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 +405 -372
  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 +68 -69
  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 +9 -6
  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 +10 -9
  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 +285 -205
  53. package/dist/CallingClient/registration/register.js.map +1 -1
  54. package/dist/CallingClient/registration/register.test.js +251 -180
  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 +25 -10
  59. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  60. package/dist/CallingClient/registration/webWorker.test.js +85 -38
  61. package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
  62. package/dist/CallingClient/registration/webWorkerStr.js +1 -1
  63. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
  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 -247
  68. package/dist/Contacts/ContactsClient.js.map +1 -1
  69. package/dist/Contacts/ContactsClient.test.js +93 -93
  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.map +1 -1
  85. package/dist/Events/impl/index.js +4 -3
  86. package/dist/Events/impl/index.js.map +1 -1
  87. package/dist/Events/types.js.map +1 -1
  88. package/dist/Logger/index.js +3 -3
  89. package/dist/Logger/index.js.map +1 -1
  90. package/dist/Logger/index.test.js +1 -1
  91. package/dist/Logger/index.test.js.map +1 -1
  92. package/dist/Logger/types.js.map +1 -1
  93. package/dist/Metrics/index.js +221 -104
  94. package/dist/Metrics/index.js.map +1 -1
  95. package/dist/Metrics/index.test.js +112 -23
  96. package/dist/Metrics/index.test.js.map +1 -1
  97. package/dist/Metrics/types.js +15 -1
  98. package/dist/Metrics/types.js.map +1 -1
  99. package/dist/SDKConnector/index.js +0 -1
  100. package/dist/SDKConnector/index.js.map +1 -1
  101. package/dist/SDKConnector/index.test.js.map +1 -1
  102. package/dist/SDKConnector/types.js.map +1 -1
  103. package/dist/SDKConnector/utils.js.map +1 -1
  104. package/dist/SDKConnector/utils.test.js.map +1 -1
  105. package/dist/Voicemail/BroadworksBackendConnector.js +55 -61
  106. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  107. package/dist/Voicemail/BroadworksBackendConnector.test.js +129 -122
  108. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  109. package/dist/Voicemail/UcmBackendConnector.js +53 -50
  110. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  111. package/dist/Voicemail/UcmBackendConnector.test.js +73 -74
  112. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  113. package/dist/Voicemail/Voicemail.js +89 -113
  114. package/dist/Voicemail/Voicemail.js.map +1 -1
  115. package/dist/Voicemail/Voicemail.test.js +2 -2
  116. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  117. package/dist/Voicemail/WxCallBackendConnector.js +87 -92
  118. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  119. package/dist/Voicemail/WxCallBackendConnector.test.js +228 -203
  120. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  121. package/dist/Voicemail/constants.js.map +1 -1
  122. package/dist/Voicemail/types.js.map +1 -1
  123. package/dist/Voicemail/voicemailFixture.js.map +1 -1
  124. package/dist/api.js.map +1 -1
  125. package/dist/common/Utils.js +85 -66
  126. package/dist/common/Utils.js.map +1 -1
  127. package/dist/common/Utils.test.js +113 -123
  128. package/dist/common/Utils.test.js.map +1 -1
  129. package/dist/common/constants.js.map +1 -1
  130. package/dist/common/index.js.map +1 -1
  131. package/dist/common/testUtil.js +1 -1
  132. package/dist/common/testUtil.js.map +1 -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 +17 -8
  137. package/dist/module/CallSettings/UcmBackendConnector.js +2 -2
  138. package/dist/module/CallSettings/WxCallBackendConnector.js +14 -14
  139. package/dist/module/CallingClient/CallingClient.js +176 -36
  140. package/dist/module/CallingClient/calling/call.js +91 -61
  141. package/dist/module/CallingClient/constants.js +8 -4
  142. package/dist/module/CallingClient/line/index.js +3 -3
  143. package/dist/module/CallingClient/registration/register.js +37 -13
  144. package/dist/module/CallingClient/registration/webWorker.js +17 -3
  145. package/dist/module/CallingClient/registration/webWorkerStr.js +19 -3
  146. package/dist/module/CallingClient/windowsChromiumIceWarmupUtils.js +59 -0
  147. package/dist/module/Contacts/ContactsClient.js +33 -37
  148. package/dist/module/Contacts/constants.js +1 -1
  149. package/dist/module/Events/impl/index.js +2 -1
  150. package/dist/module/Logger/index.js +2 -2
  151. package/dist/module/Metrics/index.js +142 -55
  152. package/dist/module/Metrics/types.js +14 -0
  153. package/dist/module/Voicemail/BroadworksBackendConnector.js +10 -17
  154. package/dist/module/Voicemail/UcmBackendConnector.js +11 -10
  155. package/dist/module/Voicemail/Voicemail.js +42 -68
  156. package/dist/module/Voicemail/WxCallBackendConnector.js +22 -28
  157. package/dist/module/common/Utils.js +29 -12
  158. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  159. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  160. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  161. package/dist/types/CallingClient/CallingClient.d.ts +12 -1
  162. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  163. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  164. package/dist/types/CallingClient/calling/types.d.ts +2 -1
  165. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  166. package/dist/types/CallingClient/constants.d.ts +8 -4
  167. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  168. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  169. package/dist/types/CallingClient/registration/register.d.ts +1 -0
  170. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  171. package/dist/types/CallingClient/registration/webWorker.d.ts +2 -1
  172. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
  173. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  174. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  175. package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts +5 -0
  176. package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts.map +1 -0
  177. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  178. package/dist/types/Contacts/constants.d.ts +1 -1
  179. package/dist/types/Contacts/constants.d.ts.map +1 -1
  180. package/dist/types/Events/impl/index.d.ts.map +1 -1
  181. package/dist/types/Logger/index.d.ts +1 -2
  182. package/dist/types/Logger/index.d.ts.map +1 -1
  183. package/dist/types/Metrics/index.d.ts.map +1 -1
  184. package/dist/types/Metrics/types.d.ts +18 -3
  185. package/dist/types/Metrics/types.d.ts.map +1 -1
  186. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  187. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  188. package/dist/types/Voicemail/Voicemail.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 +1 -0
  192. package/dist/types/common/types.d.ts.map +1 -1
  193. package/package.json +10 -8
@@ -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,6 +75,47 @@ class MetricManager {
62
75
  setDeviceInfo(deviceInfo) {
63
76
  this.deviceInfo = deviceInfo;
64
77
  }
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
+ }
65
119
  submitRegistrationMetric(name, metricAction, type, caller, serverType, trackingId, keepaliveCount, clientError) {
66
120
  let data;
67
121
  switch (name) {
@@ -85,33 +139,66 @@ class MetricManager {
85
139
  break;
86
140
  }
87
141
  case METRIC_EVENT.REGISTRATION_ERROR: {
142
+ let errorData;
88
143
  if (clientError) {
89
- data = {
90
- tags: {
91
- action: metricAction,
92
- device_id: this.deviceInfo?.device?.deviceId,
93
- service_indicator: this.serviceIndicator,
94
- },
95
- fields: {
96
- device_url: this.deviceInfo?.device?.clientDeviceUri,
97
- mobius_url: this.deviceInfo?.device?.uri,
98
- calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,
99
- reg_source: caller,
100
- server_type: serverType,
101
- trackingId,
102
- keepalive_count: keepaliveCount,
103
- error: clientError.getError().message,
104
- error_type: clientError.getError().type,
105
- },
106
- type,
144
+ errorData = {
145
+ msg: clientError.getError().message,
146
+ type: clientError.getError().type,
107
147
  };
108
148
  }
149
+ data = {
150
+ tags: {
151
+ action: metricAction,
152
+ device_id: this.deviceInfo?.device?.deviceId,
153
+ service_indicator: this.serviceIndicator,
154
+ },
155
+ fields: {
156
+ device_url: this.deviceInfo?.device?.clientDeviceUri,
157
+ mobius_url: this.deviceInfo?.device?.uri,
158
+ calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,
159
+ reg_source: caller,
160
+ server_type: serverType,
161
+ trackingId,
162
+ error: errorData?.msg,
163
+ error_type: errorData?.type,
164
+ },
165
+ type,
166
+ };
167
+ break;
168
+ }
169
+ case METRIC_EVENT.KEEPALIVE_ERROR: {
170
+ let errorData;
171
+ if (clientError) {
172
+ errorData = {
173
+ msg: clientError.getError().message,
174
+ type: clientError.getError().type,
175
+ };
176
+ }
177
+ data = {
178
+ tags: {
179
+ action: metricAction,
180
+ device_id: this.deviceInfo?.device?.deviceId,
181
+ service_indicator: this.serviceIndicator,
182
+ },
183
+ fields: {
184
+ device_url: this.deviceInfo?.device?.clientDeviceUri,
185
+ mobius_url: this.deviceInfo?.device?.uri,
186
+ calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,
187
+ reg_source: caller,
188
+ server_type: serverType,
189
+ trackingId,
190
+ keepalive_count: keepaliveCount,
191
+ error: errorData?.msg,
192
+ error_type: errorData?.type,
193
+ },
194
+ type,
195
+ };
109
196
  break;
110
197
  }
111
198
  default:
112
199
  log.warn('Invalid metric name received. Rejecting request to submit metric.', {
113
200
  file: METRIC_FILE,
114
- method: this.submitRegistrationMetric.name,
201
+ method: 'submitRegistrationMetric',
115
202
  });
116
203
  break;
117
204
  }
@@ -165,7 +252,7 @@ class MetricManager {
165
252
  default:
166
253
  log.warn('Invalid metric name received. Rejecting request to submit metric.', {
167
254
  file: METRIC_FILE,
168
- method: this.submitCallMetric.name,
255
+ method: 'submitCallMetric',
169
256
  });
170
257
  break;
171
258
  }
@@ -223,7 +310,7 @@ class MetricManager {
223
310
  default:
224
311
  log.warn('Invalid metric name received. Rejecting request to submit metric.', {
225
312
  file: METRIC_FILE,
226
- method: this.submitMediaMetric.name,
313
+ method: 'submitMediaMetric',
227
314
  });
228
315
  break;
229
316
  }
@@ -273,7 +360,7 @@ class MetricManager {
273
360
  default:
274
361
  log.warn('Invalid metric name received. Rejecting request to submit metric.', {
275
362
  file: METRIC_FILE,
276
- method: this.submitVoicemailMetric.name,
363
+ method: 'submitVoicemailMetric',
277
364
  });
278
365
  break;
279
366
  }
@@ -302,7 +389,7 @@ class MetricManager {
302
389
  else {
303
390
  log.warn('Invalid metric name received. Rejecting request to submit metric.', {
304
391
  file: METRIC_FILE,
305
- method: this.submitBNRMetric.name,
392
+ method: 'submitBNRMetric',
306
393
  });
307
394
  }
308
395
  if (data) {
@@ -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 = {}));
@@ -56,8 +56,7 @@ export class BroadworksBackendConnector {
56
56
  const errorInfo = {
57
57
  statusCode: err instanceof Error ? Number(err.message) : '',
58
58
  };
59
- const extendedError = new Error(`Failed to get userId: ${err}`);
60
- log.error(extendedError, loggerContext);
59
+ log.error(`Failed to get userId: ${JSON.stringify(err)}`, loggerContext);
61
60
  await uploadLogs();
62
61
  return serviceErrorCodeHandler(errorInfo, loggerContext);
63
62
  }
@@ -78,11 +77,7 @@ export class BroadworksBackendConnector {
78
77
  log.log('Successfully fetched Broadworks token', loggerContext);
79
78
  }
80
79
  catch (err) {
81
- const extendedError = new Error(`Broadworks token exception: ${err}`);
82
- log.error(extendedError, {
83
- file: BROADWORKS_VOICEMAIL_FILE,
84
- method: METHODS.GET_BW_TOKEN,
85
- });
80
+ log.error(`Broadworks token exception: ${JSON.stringify(err)}`, loggerContext);
86
81
  await uploadLogs();
87
82
  }
88
83
  }
@@ -128,6 +123,7 @@ export class BroadworksBackendConnector {
128
123
  throw new Error(`${response.status}`);
129
124
  }
130
125
  const voicemailListResponse = (await response.json());
126
+ log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);
131
127
  if (Object.keys(voicemailListResponse?.VoiceMessagingMessages?.messageInfoList).length === 0) {
132
128
  messageinfo = [];
133
129
  }
@@ -145,8 +141,7 @@ export class BroadworksBackendConnector {
145
141
  const errorInfo = {
146
142
  statusCode: err instanceof Error ? Number(err.message) : '',
147
143
  };
148
- const extendedError = new Error(`Failed to get voicemail list: ${err}`);
149
- log.error(extendedError, loggerContext);
144
+ log.error(`Failed to get voicemail list: ${JSON.stringify(err)}`, loggerContext);
150
145
  await uploadLogs();
151
146
  const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
152
147
  return errorStatus;
@@ -181,6 +176,7 @@ export class BroadworksBackendConnector {
181
176
  throw new Error(`${response.status}`);
182
177
  }
183
178
  const xmlData = await response.text();
179
+ log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);
184
180
  const parser = new DOMParser();
185
181
  const xmlDOM = parser.parseFromString(xmlData, XML_TYPE);
186
182
  const mediaDetails = xmlDOM.getElementsByTagName(MESSAGE_MEDIA_CONTENT)[0];
@@ -204,8 +200,7 @@ export class BroadworksBackendConnector {
204
200
  const errorInfo = {
205
201
  statusCode: err instanceof Error ? Number(err.message) : '',
206
202
  };
207
- const extendedError = new Error(`Failed to get voicemail content: ${err}`);
208
- log.error(extendedError, loggerContext);
203
+ log.error(`Failed to get voicemail content: ${JSON.stringify(err)}`, loggerContext);
209
204
  await uploadLogs();
210
205
  const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
211
206
  return errorStatus;
@@ -232,6 +227,7 @@ export class BroadworksBackendConnector {
232
227
  throw new Error(`${response.status}`);
233
228
  }
234
229
  log.log(`Successfully marked voicemail with ID ${messageId} as read`, loggerContext);
230
+ log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);
235
231
  const responseDetails = {
236
232
  statusCode: response.status,
237
233
  data: {},
@@ -243,8 +239,7 @@ export class BroadworksBackendConnector {
243
239
  const errorInfo = {
244
240
  statusCode: err instanceof Error ? Number(err.message) : '',
245
241
  };
246
- const extendedError = new Error(`Failed to mark voicemail as read: ${err}`);
247
- log.error(extendedError, loggerContext);
242
+ log.error(`Failed to mark voicemail as read: ${JSON.stringify(err)}`, loggerContext);
248
243
  await uploadLogs();
249
244
  const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
250
245
  return errorStatus;
@@ -279,8 +274,7 @@ export class BroadworksBackendConnector {
279
274
  const errorInfo = {
280
275
  statusCode: err instanceof Error ? Number(err.message) : '',
281
276
  };
282
- const extendedError = new Error(`Failed to mark voicemail as unread: ${err}`);
283
- log.error(extendedError, loggerContext);
277
+ log.error(`Failed to mark voicemail as unread: ${JSON.stringify(err)}`, loggerContext);
284
278
  await uploadLogs();
285
279
  const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
286
280
  return errorStatus;
@@ -315,8 +309,7 @@ export class BroadworksBackendConnector {
315
309
  const errorInfo = {
316
310
  statusCode: err instanceof Error ? Number(err.message) : '',
317
311
  };
318
- const extendedError = new Error(`Failed to delete voicemail: ${err}`);
319
- log.error(extendedError, loggerContext);
312
+ log.error(`Failed to delete voicemail: ${JSON.stringify(err)}`, loggerContext);
320
313
  await uploadLogs();
321
314
  const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
322
315
  return errorStatus;
@@ -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;
@@ -101,8 +102,7 @@ export class UcmBackendConnector {
101
102
  return responseDetails;
102
103
  }
103
104
  catch (err) {
104
- const extendedError = new Error(`Failed to get voicemail list: ${err}`);
105
- log.error(extendedError, loggerContext);
105
+ log.error(`Failed to get voicemail list: ${JSON.stringify(err)}`, loggerContext);
106
106
  await uploadLogs();
107
107
  const errorInfo = err;
108
108
  const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
@@ -121,8 +121,7 @@ export class UcmBackendConnector {
121
121
  return response;
122
122
  }
123
123
  catch (err) {
124
- const extendedError = new Error(`Failed to get voicemail content: ${err}`);
125
- log.error(extendedError, loggerContext);
124
+ log.error(`Failed to get voicemail content: ${JSON.stringify(err)}`, loggerContext);
126
125
  await uploadLogs();
127
126
  const errorInfo = err;
128
127
  const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
@@ -186,6 +185,8 @@ export class UcmBackendConnector {
186
185
  mercuryHostname: mercuryApi,
187
186
  },
188
187
  });
188
+ log.log(`Response code: ${response.statusCode}`, loggerContext);
189
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
189
190
  const contentInfo = response?.body;
190
191
  const respHeaders = response.headers;
191
192
  const statusCode = response.statusCode;
@@ -224,6 +225,7 @@ export class UcmBackendConnector {
224
225
  read: 'true',
225
226
  },
226
227
  });
228
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
227
229
  const responseDetails = {
228
230
  statusCode: Number(response.statusCode),
229
231
  data: {},
@@ -233,8 +235,7 @@ export class UcmBackendConnector {
233
235
  return responseDetails;
234
236
  }
235
237
  catch (err) {
236
- const extendedError = new Error(`Failed to mark voicemail as read: ${err}`);
237
- log.error(extendedError, loggerContext);
238
+ log.error(`Failed to mark voicemail as read: ${JSON.stringify(err)}`, loggerContext);
238
239
  await uploadLogs();
239
240
  const errorInfo = err;
240
241
  const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
@@ -259,6 +260,7 @@ export class UcmBackendConnector {
259
260
  read: 'false',
260
261
  },
261
262
  });
263
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
262
264
  const responseDetails = {
263
265
  statusCode: Number(response.statusCode),
264
266
  data: {},
@@ -268,8 +270,7 @@ export class UcmBackendConnector {
268
270
  return responseDetails;
269
271
  }
270
272
  catch (err) {
271
- const extendedError = new Error(`Failed to mark voicemail as unread: ${err}`);
272
- log.error(extendedError, loggerContext);
273
+ log.error(`Failed to mark voicemail as unread: ${JSON.stringify(err)}`, loggerContext);
273
274
  await uploadLogs();
274
275
  const errorInfo = err;
275
276
  const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
@@ -291,6 +292,7 @@ export class UcmBackendConnector {
291
292
  orgId: this.orgId,
292
293
  },
293
294
  });
295
+ log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);
294
296
  const responseDetails = {
295
297
  statusCode: Number(response.statusCode),
296
298
  data: {},
@@ -300,8 +302,7 @@ export class UcmBackendConnector {
300
302
  return responseDetails;
301
303
  }
302
304
  catch (err) {
303
- const extendedError = new Error(`Failed to delete voicemail: ${err}`);
304
- log.error(extendedError, loggerContext);
305
+ log.error(`Failed to delete voicemail: ${JSON.stringify(err)}`, loggerContext);
305
306
  await uploadLogs();
306
307
  const errorInfo = err;
307
308
  const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
@@ -31,24 +31,18 @@ export class Voicemail extends Eventing {
31
31
  log.setLogger(logger.level, VOICEMAIL_FILE);
32
32
  }
33
33
  async init() {
34
+ const loggerContext = {
35
+ file: VOICEMAIL_FILE,
36
+ method: METHODS.INIT,
37
+ };
34
38
  try {
35
- log.info(METHOD_START_MESSAGE, {
36
- file: VOICEMAIL_FILE,
37
- method: METHODS.INIT,
38
- });
39
+ log.info(METHOD_START_MESSAGE, loggerContext);
39
40
  const response = this.backendConnector.init();
40
- log.log('Voicemail connector initialized successfully', {
41
- file: VOICEMAIL_FILE,
42
- method: METHODS.INIT,
43
- });
41
+ log.log('Voicemail connector initialized successfully', loggerContext);
44
42
  return response;
45
43
  }
46
44
  catch (err) {
47
- const extendedError = new Error(`Failed to initialize voicemail: ${err}`);
48
- log.error(extendedError, {
49
- file: VOICEMAIL_FILE,
50
- method: METHODS.INIT,
51
- });
45
+ log.error(`Failed to initialize voicemail: ${JSON.stringify(err)}`, loggerContext);
52
46
  await uploadLogs();
53
47
  throw err;
54
48
  }
@@ -86,121 +80,101 @@ export class Voicemail extends Eventing {
86
80
  }
87
81
  }
88
82
  async getVoicemailList(offset, offsetLimit, sort, refresh) {
83
+ const loggerContext = {
84
+ file: VOICEMAIL_FILE,
85
+ method: METHODS.GET_VOICEMAIL_LIST,
86
+ };
89
87
  try {
90
- log.info(`${METHOD_START_MESSAGE} with: offset=${offset}, limit=${offsetLimit}, sort=${sort}, refresh=${refresh}`, {
91
- file: VOICEMAIL_FILE,
92
- method: METHODS.GET_VOICEMAIL_LIST,
93
- });
88
+ log.info(`${METHOD_START_MESSAGE} with: offset=${offset}, limit=${offsetLimit}, sort=${sort}, refresh=${refresh}`, loggerContext);
94
89
  const response = await this.backendConnector.getVoicemailList(offset, offsetLimit, sort, refresh);
95
90
  this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAILS);
96
- log.log(`Successfully retrieved voicemail list: statusCode=${response.statusCode}`, {
97
- file: VOICEMAIL_FILE,
98
- method: METHODS.GET_VOICEMAIL_LIST,
99
- });
91
+ log.log(`Successfully retrieved voicemail list: statusCode=${response.statusCode}`, loggerContext);
100
92
  return response;
101
93
  }
102
94
  catch (err) {
103
- const extendedError = new Error(`Failed to get voicemail list: ${err}`);
104
- log.error(extendedError, {
105
- file: VOICEMAIL_FILE,
106
- method: METHODS.GET_VOICEMAIL_LIST,
107
- });
95
+ log.error(`Failed to get voicemail list: ${JSON.stringify(err)}`, loggerContext);
108
96
  await uploadLogs();
109
97
  throw err;
110
98
  }
111
99
  }
112
100
  async getVoicemailContent(messageId) {
113
- log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, {
101
+ const loggerContext = {
114
102
  file: VOICEMAIL_FILE,
115
103
  method: METHODS.GET_VOICEMAIL_CONTENT,
116
- });
104
+ };
105
+ log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, loggerContext);
117
106
  const response = await this.backendConnector.getVoicemailContent(messageId);
118
107
  this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAIL_CONTENT, messageId);
119
- log.log(`Successfully retrieved voicemail content for messageId=${messageId}, statusCode=${response.statusCode}`, {
120
- file: VOICEMAIL_FILE,
121
- method: METHODS.GET_VOICEMAIL_CONTENT,
122
- });
108
+ log.log(`Successfully retrieved voicemail content for messageId=${messageId}, statusCode=${response.statusCode}`, loggerContext);
123
109
  return response;
124
110
  }
125
111
  async getVoicemailSummary() {
126
- log.info(METHOD_START_MESSAGE, {
112
+ const loggerContext = {
127
113
  file: VOICEMAIL_FILE,
128
114
  method: METHODS.GET_VOICEMAIL_SUMMARY,
129
- });
115
+ };
116
+ log.info(METHOD_START_MESSAGE, loggerContext);
130
117
  const response = await this.backendConnector.getVoicemailSummary();
131
118
  if (response !== null) {
132
119
  this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY);
133
- log.log(`Successfully retrieved voicemail summary: statusCode=${response.statusCode}`, {
134
- file: VOICEMAIL_FILE,
135
- method: METHODS.GET_VOICEMAIL_SUMMARY,
136
- });
120
+ log.log(`Successfully retrieved voicemail summary: statusCode=${response.statusCode}`, loggerContext);
137
121
  }
138
122
  return response;
139
123
  }
140
124
  async voicemailMarkAsRead(messageId) {
141
- log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, {
125
+ const loggerContext = {
142
126
  file: VOICEMAIL_FILE,
143
127
  method: METHODS.VOICEMAIL_MARK_AS_READ,
144
- });
128
+ };
129
+ log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, loggerContext);
145
130
  const response = await this.backendConnector.voicemailMarkAsRead(messageId);
146
131
  this.submitMetric(response, VOICEMAIL_ACTION.MARK_READ, messageId);
147
- log.log(`Successfully marked voicemail as read: messageId=${messageId}, statusCode=${response.statusCode}`, {
148
- file: VOICEMAIL_FILE,
149
- method: METHODS.VOICEMAIL_MARK_AS_READ,
150
- });
132
+ log.log(`Successfully marked voicemail as read: messageId=${messageId}, statusCode=${response.statusCode}`, loggerContext);
151
133
  return response;
152
134
  }
153
135
  async voicemailMarkAsUnread(messageId) {
154
- log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, {
136
+ const loggerContext = {
155
137
  file: VOICEMAIL_FILE,
156
138
  method: METHODS.VOICEMAIL_MARK_AS_UNREAD,
157
- });
139
+ };
140
+ log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, loggerContext);
158
141
  const response = await this.backendConnector.voicemailMarkAsUnread(messageId);
159
142
  this.submitMetric(response, VOICEMAIL_ACTION.MARK_UNREAD, messageId);
160
- log.log(`Successfully marked voicemail as unread: messageId=${messageId}, statusCode=${response.statusCode}`, {
161
- file: VOICEMAIL_FILE,
162
- method: METHODS.VOICEMAIL_MARK_AS_UNREAD,
163
- });
143
+ log.log(`Successfully marked voicemail as unread: messageId=${messageId}, statusCode=${response.statusCode}`, loggerContext);
164
144
  return response;
165
145
  }
166
146
  async deleteVoicemail(messageId) {
167
- log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, {
147
+ const loggerContext = {
168
148
  file: VOICEMAIL_FILE,
169
149
  method: METHODS.DELETE_VOICEMAIL,
170
- });
150
+ };
151
+ log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, loggerContext);
171
152
  const response = await this.backendConnector.deleteVoicemail(messageId);
172
153
  this.submitMetric(response, VOICEMAIL_ACTION.DELETE, messageId);
173
- log.log(`Successfully deleted voicemail: messageId=${messageId}, statusCode=${response.statusCode}`, {
174
- file: VOICEMAIL_FILE,
175
- method: METHODS.DELETE_VOICEMAIL,
176
- });
154
+ log.log(`Successfully deleted voicemail: messageId=${messageId}, statusCode=${response.statusCode}`, loggerContext);
177
155
  return response;
178
156
  }
179
157
  async getVMTranscript(messageId) {
180
- log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, {
158
+ const loggerContext = {
181
159
  file: VOICEMAIL_FILE,
182
160
  method: METHODS.GET_VM_TRANSCRIPT,
183
- });
161
+ };
162
+ log.info(`${METHOD_START_MESSAGE} with: messageId=${messageId}`, loggerContext);
184
163
  const response = await this.backendConnector.getVMTranscript(messageId);
185
164
  if (response !== null) {
186
165
  this.submitMetric(response, VOICEMAIL_ACTION.TRANSCRIPT, messageId);
187
- log.log(`Successfully retrieved voicemail transcript: messageId=${messageId}, statusCode=${response.statusCode}`, {
188
- file: VOICEMAIL_FILE,
189
- method: METHODS.GET_VM_TRANSCRIPT,
190
- });
166
+ log.log(`Successfully retrieved voicemail transcript: messageId=${messageId}, statusCode=${response.statusCode}`, loggerContext);
191
167
  }
192
168
  return response;
193
169
  }
194
170
  resolveContact(callingPartyInfo) {
195
- log.info(METHOD_START_MESSAGE, {
171
+ const loggerContext = {
196
172
  file: VOICEMAIL_FILE,
197
173
  method: METHODS.RESOLVE_CONTACT,
198
- });
174
+ };
175
+ log.info(METHOD_START_MESSAGE, loggerContext);
199
176
  const response = this.backendConnector.resolveContact(callingPartyInfo);
200
- log.log('Contact resolution completed successfully', {
201
- file: VOICEMAIL_FILE,
202
- method: METHODS.RESOLVE_CONTACT,
203
- });
177
+ log.log('Contact resolution completed successfully', loggerContext);
204
178
  return response;
205
179
  }
206
180
  getSDKConnector() {