@webex/calling 3.10.0 → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module/CallHistory/CallHistory.js +20 -11
- package/dist/module/CallSettings/UcmBackendConnector.js +21 -8
- package/dist/module/CallSettings/WxCallBackendConnector.js +10 -15
- package/dist/module/CallingClient/CallingClient.js +83 -123
- package/dist/module/CallingClient/calling/call.js +73 -58
- package/dist/module/CallingClient/calling/callManager.js +7 -0
- package/dist/module/CallingClient/constants.js +3 -0
- package/dist/module/CallingClient/registration/register.js +85 -5
- package/dist/module/CallingClient/registration/webWorker.js +2 -2
- package/dist/module/CallingClient/registration/webWorkerStr.js +2 -2
- package/dist/module/Contacts/ContactsClient.js +19 -25
- package/dist/module/Events/impl/index.js +1 -1
- package/dist/module/Logger/index.js +2 -2
- package/dist/module/Voicemail/BroadworksBackendConnector.js +10 -18
- package/dist/module/Voicemail/UcmBackendConnector.js +7 -11
- package/dist/module/Voicemail/Voicemail.js +42 -68
- package/dist/module/Voicemail/WxCallBackendConnector.js +14 -28
- package/dist/module/common/Utils.js +31 -5
- package/dist/module/common/constants.js +2 -0
- package/dist/module/common/testUtil.js +1 -0
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallSettings/UcmBackendConnector.d.ts +1 -0
- package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts +4 -0
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +3 -0
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +4 -0
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/types.d.ts +6 -0
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts +1 -0
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Logger/index.d.ts +1 -2
- package/dist/types/Logger/index.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +16 -0
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts +1 -1
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/constants.d.ts +2 -0
- package/dist/types/common/constants.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +1 -0
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/CallHistory/CallHistory.js +0 -584
- package/dist/CallHistory/CallHistory.js.map +0 -1
- package/dist/CallHistory/CallHistory.test.js +0 -813
- package/dist/CallHistory/CallHistory.test.js.map +0 -1
- package/dist/CallHistory/callHistoryFixtures.js +0 -650
- package/dist/CallHistory/callHistoryFixtures.js.map +0 -1
- package/dist/CallHistory/constants.js +0 -38
- package/dist/CallHistory/constants.js.map +0 -1
- package/dist/CallHistory/types.js +0 -7
- package/dist/CallHistory/types.js.map +0 -1
- package/dist/CallSettings/CallSettings.js +0 -312
- package/dist/CallSettings/CallSettings.js.map +0 -1
- package/dist/CallSettings/CallSettings.test.js +0 -122
- package/dist/CallSettings/CallSettings.test.js.map +0 -1
- package/dist/CallSettings/UcmBackendConnector.js +0 -261
- package/dist/CallSettings/UcmBackendConnector.js.map +0 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +0 -321
- package/dist/CallSettings/UcmBackendConnector.test.js.map +0 -1
- package/dist/CallSettings/WxCallBackendConnector.js +0 -604
- package/dist/CallSettings/WxCallBackendConnector.js.map +0 -1
- package/dist/CallSettings/WxCallBackendConnector.test.js +0 -905
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +0 -1
- package/dist/CallSettings/constants.js +0 -31
- package/dist/CallSettings/constants.js.map +0 -1
- package/dist/CallSettings/testFixtures.js +0 -68
- package/dist/CallSettings/testFixtures.js.map +0 -1
- package/dist/CallSettings/types.js +0 -7
- package/dist/CallSettings/types.js.map +0 -1
- package/dist/CallingClient/CallingClient.js +0 -1071
- package/dist/CallingClient/CallingClient.js.map +0 -1
- package/dist/CallingClient/CallingClient.test.js +0 -1289
- package/dist/CallingClient/CallingClient.test.js.map +0 -1
- package/dist/CallingClient/callRecordFixtures.js +0 -101
- package/dist/CallingClient/callRecordFixtures.js.map +0 -1
- package/dist/CallingClient/calling/CallerId/index.js +0 -276
- package/dist/CallingClient/calling/CallerId/index.js.map +0 -1
- package/dist/CallingClient/calling/CallerId/index.test.js +0 -275
- package/dist/CallingClient/calling/CallerId/index.test.js.map +0 -1
- package/dist/CallingClient/calling/CallerId/types.js +0 -7
- package/dist/CallingClient/calling/CallerId/types.js.map +0 -1
- package/dist/CallingClient/calling/call.js +0 -3444
- package/dist/CallingClient/calling/call.js.map +0 -1
- package/dist/CallingClient/calling/call.test.js +0 -3260
- package/dist/CallingClient/calling/call.test.js.map +0 -1
- package/dist/CallingClient/calling/callManager.js +0 -456
- package/dist/CallingClient/calling/callManager.js.map +0 -1
- package/dist/CallingClient/calling/callManager.test.js +0 -741
- package/dist/CallingClient/calling/callManager.test.js.map +0 -1
- package/dist/CallingClient/calling/index.js +0 -30
- package/dist/CallingClient/calling/index.js.map +0 -1
- package/dist/CallingClient/calling/types.js +0 -74
- package/dist/CallingClient/calling/types.js.map +0 -1
- package/dist/CallingClient/callingClientFixtures.js +0 -143
- package/dist/CallingClient/callingClientFixtures.js.map +0 -1
- package/dist/CallingClient/constants.js +0 -237
- package/dist/CallingClient/constants.js.map +0 -1
- package/dist/CallingClient/line/index.js +0 -349
- package/dist/CallingClient/line/index.js.map +0 -1
- package/dist/CallingClient/line/line.test.js +0 -327
- package/dist/CallingClient/line/line.test.js.map +0 -1
- package/dist/CallingClient/line/types.js +0 -21
- package/dist/CallingClient/line/types.js.map +0 -1
- package/dist/CallingClient/registration/index.js +0 -19
- package/dist/CallingClient/registration/index.js.map +0 -1
- package/dist/CallingClient/registration/register.js +0 -1538
- package/dist/CallingClient/registration/register.js.map +0 -1
- package/dist/CallingClient/registration/register.test.js +0 -1537
- package/dist/CallingClient/registration/register.test.js.map +0 -1
- package/dist/CallingClient/registration/registerFixtures.js +0 -36
- package/dist/CallingClient/registration/registerFixtures.js.map +0 -1
- package/dist/CallingClient/registration/types.js +0 -7
- package/dist/CallingClient/registration/types.js.map +0 -1
- package/dist/CallingClient/registration/webWorker.js +0 -130
- package/dist/CallingClient/registration/webWorker.js.map +0 -1
- package/dist/CallingClient/registration/webWorker.test.js +0 -303
- package/dist/CallingClient/registration/webWorker.test.js.map +0 -1
- package/dist/CallingClient/registration/webWorkerStr.js +0 -15
- package/dist/CallingClient/registration/webWorkerStr.js.map +0 -1
- package/dist/CallingClient/types.js +0 -7
- package/dist/CallingClient/types.js.map +0 -1
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +0 -142
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +0 -1
- package/dist/Contacts/ContactsClient.js +0 -1215
- package/dist/Contacts/ContactsClient.js.map +0 -1
- package/dist/Contacts/ContactsClient.test.js +0 -1003
- package/dist/Contacts/ContactsClient.test.js.map +0 -1
- package/dist/Contacts/constants.js +0 -40
- package/dist/Contacts/constants.js.map +0 -1
- package/dist/Contacts/contactFixtures.js +0 -430
- package/dist/Contacts/contactFixtures.js.map +0 -1
- package/dist/Contacts/types.js +0 -43
- package/dist/Contacts/types.js.map +0 -1
- package/dist/Errors/catalog/CallError.js +0 -92
- package/dist/Errors/catalog/CallError.js.map +0 -1
- package/dist/Errors/catalog/CallingDeviceError.js +0 -86
- package/dist/Errors/catalog/CallingDeviceError.js.map +0 -1
- package/dist/Errors/catalog/ExtendedError.js +0 -44
- package/dist/Errors/catalog/ExtendedError.js.map +0 -1
- package/dist/Errors/catalog/LineError.js +0 -88
- package/dist/Errors/catalog/LineError.js.map +0 -1
- package/dist/Errors/index.js +0 -28
- package/dist/Errors/index.js.map +0 -1
- package/dist/Errors/types.js +0 -59
- package/dist/Errors/types.js.map +0 -1
- package/dist/Events/impl/index.js +0 -81
- package/dist/Events/impl/index.js.map +0 -1
- package/dist/Events/types.js +0 -107
- package/dist/Events/types.js.map +0 -1
- package/dist/Logger/index.js +0 -228
- package/dist/Logger/index.js.map +0 -1
- package/dist/Logger/index.test.js +0 -87
- package/dist/Logger/index.test.js.map +0 -1
- package/dist/Logger/types.js +0 -34
- package/dist/Logger/types.js.map +0 -1
- package/dist/Metrics/index.js +0 -535
- package/dist/Metrics/index.js.map +0 -1
- package/dist/Metrics/index.test.js +0 -463
- package/dist/Metrics/index.test.js.map +0 -1
- package/dist/Metrics/types.js +0 -64
- package/dist/Metrics/types.js.map +0 -1
- package/dist/SDKConnector/index.js +0 -103
- package/dist/SDKConnector/index.js.map +0 -1
- package/dist/SDKConnector/index.test.js +0 -9
- package/dist/SDKConnector/index.test.js.map +0 -1
- package/dist/SDKConnector/types.js +0 -7
- package/dist/SDKConnector/types.js.map +0 -1
- package/dist/SDKConnector/utils.js +0 -39
- package/dist/SDKConnector/utils.js.map +0 -1
- package/dist/SDKConnector/utils.test.js +0 -9
- package/dist/SDKConnector/utils.test.js.map +0 -1
- package/dist/Voicemail/BroadworksBackendConnector.js +0 -707
- package/dist/Voicemail/BroadworksBackendConnector.js.map +0 -1
- package/dist/Voicemail/BroadworksBackendConnector.test.js +0 -812
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +0 -1
- package/dist/Voicemail/UcmBackendConnector.js +0 -632
- package/dist/Voicemail/UcmBackendConnector.js.map +0 -1
- package/dist/Voicemail/UcmBackendConnector.test.js +0 -738
- package/dist/Voicemail/UcmBackendConnector.test.js.map +0 -1
- package/dist/Voicemail/Voicemail.js +0 -500
- package/dist/Voicemail/Voicemail.js.map +0 -1
- package/dist/Voicemail/Voicemail.test.js +0 -391
- package/dist/Voicemail/Voicemail.test.js.map +0 -1
- package/dist/Voicemail/WxCallBackendConnector.js +0 -671
- package/dist/Voicemail/WxCallBackendConnector.js.map +0 -1
- package/dist/Voicemail/WxCallBackendConnector.test.js +0 -1199
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +0 -1
- package/dist/Voicemail/constants.js +0 -61
- package/dist/Voicemail/constants.js.map +0 -1
- package/dist/Voicemail/types.js +0 -7
- package/dist/Voicemail/types.js.map +0 -1
- package/dist/Voicemail/voicemailFixture.js +0 -524
- package/dist/Voicemail/voicemailFixture.js.map +0 -1
- package/dist/api.js +0 -157
- package/dist/api.js.map +0 -1
- package/dist/common/Utils.js +0 -1451
- package/dist/common/Utils.js.map +0 -1
- package/dist/common/Utils.test.js +0 -1744
- package/dist/common/Utils.test.js.map +0 -1
- package/dist/common/constants.js +0 -60
- package/dist/common/constants.js.map +0 -1
- package/dist/common/index.js +0 -19
- package/dist/common/index.js.map +0 -1
- package/dist/common/testUtil.js +0 -982
- package/dist/common/testUtil.js.map +0 -1
- package/dist/common/types.js +0 -75
- package/dist/common/types.js.map +0 -1
- package/dist/index.js +0 -321
- package/dist/index.js.map +0 -1
|
@@ -56,8 +56,7 @@ export class BroadworksBackendConnector {
|
|
|
56
56
|
const errorInfo = {
|
|
57
57
|
statusCode: err instanceof Error ? Number(err.message) : '',
|
|
58
58
|
};
|
|
59
|
-
|
|
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
|
}
|
|
@@ -68,9 +67,11 @@ export class BroadworksBackendConnector {
|
|
|
68
67
|
method: METHODS.GET_BW_TOKEN,
|
|
69
68
|
};
|
|
70
69
|
log.info(METHOD_START_MESSAGE, loggerContext);
|
|
70
|
+
const broadworksIdpProxyUrl = this.webex.internal.services._serviceUrls?.broadworksIdpProxy ||
|
|
71
|
+
this.webex.internal.services.get(this.webex.internal.services._activeServices.broadworksIdpProxy);
|
|
71
72
|
try {
|
|
72
73
|
const bwTokenResponse = await this.webex.request({
|
|
73
|
-
uri: `${
|
|
74
|
+
uri: `${broadworksIdpProxyUrl}${BW_TOKEN_FETCH_ENDPOINT}`,
|
|
74
75
|
method: HTTP_METHODS.GET,
|
|
75
76
|
});
|
|
76
77
|
const response = bwTokenResponse.body;
|
|
@@ -78,11 +79,7 @@ export class BroadworksBackendConnector {
|
|
|
78
79
|
log.log('Successfully fetched Broadworks token', loggerContext);
|
|
79
80
|
}
|
|
80
81
|
catch (err) {
|
|
81
|
-
|
|
82
|
-
log.error(extendedError, {
|
|
83
|
-
file: BROADWORKS_VOICEMAIL_FILE,
|
|
84
|
-
method: METHODS.GET_BW_TOKEN,
|
|
85
|
-
});
|
|
82
|
+
log.error(`Broadworks token exception: ${JSON.stringify(err)}`, loggerContext);
|
|
86
83
|
await uploadLogs();
|
|
87
84
|
}
|
|
88
85
|
}
|
|
@@ -146,8 +143,7 @@ export class BroadworksBackendConnector {
|
|
|
146
143
|
const errorInfo = {
|
|
147
144
|
statusCode: err instanceof Error ? Number(err.message) : '',
|
|
148
145
|
};
|
|
149
|
-
|
|
150
|
-
log.error(extendedError, loggerContext);
|
|
146
|
+
log.error(`Failed to get voicemail list: ${JSON.stringify(err)}`, loggerContext);
|
|
151
147
|
await uploadLogs();
|
|
152
148
|
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
153
149
|
return errorStatus;
|
|
@@ -206,8 +202,7 @@ export class BroadworksBackendConnector {
|
|
|
206
202
|
const errorInfo = {
|
|
207
203
|
statusCode: err instanceof Error ? Number(err.message) : '',
|
|
208
204
|
};
|
|
209
|
-
|
|
210
|
-
log.error(extendedError, loggerContext);
|
|
205
|
+
log.error(`Failed to get voicemail content: ${JSON.stringify(err)}`, loggerContext);
|
|
211
206
|
await uploadLogs();
|
|
212
207
|
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
213
208
|
return errorStatus;
|
|
@@ -246,8 +241,7 @@ export class BroadworksBackendConnector {
|
|
|
246
241
|
const errorInfo = {
|
|
247
242
|
statusCode: err instanceof Error ? Number(err.message) : '',
|
|
248
243
|
};
|
|
249
|
-
|
|
250
|
-
log.error(extendedError, loggerContext);
|
|
244
|
+
log.error(`Failed to mark voicemail as read: ${JSON.stringify(err)}`, loggerContext);
|
|
251
245
|
await uploadLogs();
|
|
252
246
|
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
253
247
|
return errorStatus;
|
|
@@ -282,8 +276,7 @@ export class BroadworksBackendConnector {
|
|
|
282
276
|
const errorInfo = {
|
|
283
277
|
statusCode: err instanceof Error ? Number(err.message) : '',
|
|
284
278
|
};
|
|
285
|
-
|
|
286
|
-
log.error(extendedError, loggerContext);
|
|
279
|
+
log.error(`Failed to mark voicemail as unread: ${JSON.stringify(err)}`, loggerContext);
|
|
287
280
|
await uploadLogs();
|
|
288
281
|
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
289
282
|
return errorStatus;
|
|
@@ -318,8 +311,7 @@ export class BroadworksBackendConnector {
|
|
|
318
311
|
const errorInfo = {
|
|
319
312
|
statusCode: err instanceof Error ? Number(err.message) : '',
|
|
320
313
|
};
|
|
321
|
-
|
|
322
|
-
log.error(extendedError, loggerContext);
|
|
314
|
+
log.error(`Failed to delete voicemail: ${JSON.stringify(err)}`, loggerContext);
|
|
323
315
|
await uploadLogs();
|
|
324
316
|
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
325
317
|
return errorStatus;
|
|
@@ -102,8 +102,7 @@ export class UcmBackendConnector {
|
|
|
102
102
|
return responseDetails;
|
|
103
103
|
}
|
|
104
104
|
catch (err) {
|
|
105
|
-
|
|
106
|
-
log.error(extendedError, loggerContext);
|
|
105
|
+
log.error(`Failed to get voicemail list: ${JSON.stringify(err)}`, loggerContext);
|
|
107
106
|
await uploadLogs();
|
|
108
107
|
const errorInfo = err;
|
|
109
108
|
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
@@ -122,8 +121,7 @@ export class UcmBackendConnector {
|
|
|
122
121
|
return response;
|
|
123
122
|
}
|
|
124
123
|
catch (err) {
|
|
125
|
-
|
|
126
|
-
log.error(extendedError, loggerContext);
|
|
124
|
+
log.error(`Failed to get voicemail content: ${JSON.stringify(err)}`, loggerContext);
|
|
127
125
|
await uploadLogs();
|
|
128
126
|
const errorInfo = err;
|
|
129
127
|
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
@@ -142,7 +140,8 @@ export class UcmBackendConnector {
|
|
|
142
140
|
log.info(`${METHOD_START_MESSAGE} with Message ID: ${messageId}`, loggerContext);
|
|
143
141
|
return new Promise((resolve, reject) => {
|
|
144
142
|
const voicemailContentUrl = `${this.vgVoiceMessageURI}${VOICEMAILS}/${messageId}/${CONTENT}`;
|
|
145
|
-
const mercuryApi =
|
|
143
|
+
const mercuryApi = this.webex.internal.services._serviceUrls?.mercuryApi ||
|
|
144
|
+
this.webex.internal.services.get(this.webex.internal.services._activeServices.mercuryApi);
|
|
146
145
|
this.returnUcmPromise(voicemailContentUrl, mercuryApi)
|
|
147
146
|
.then((response) => {
|
|
148
147
|
if (response.statusCode === 200) {
|
|
@@ -237,8 +236,7 @@ export class UcmBackendConnector {
|
|
|
237
236
|
return responseDetails;
|
|
238
237
|
}
|
|
239
238
|
catch (err) {
|
|
240
|
-
|
|
241
|
-
log.error(extendedError, loggerContext);
|
|
239
|
+
log.error(`Failed to mark voicemail as read: ${JSON.stringify(err)}`, loggerContext);
|
|
242
240
|
await uploadLogs();
|
|
243
241
|
const errorInfo = err;
|
|
244
242
|
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
@@ -273,8 +271,7 @@ export class UcmBackendConnector {
|
|
|
273
271
|
return responseDetails;
|
|
274
272
|
}
|
|
275
273
|
catch (err) {
|
|
276
|
-
|
|
277
|
-
log.error(extendedError, loggerContext);
|
|
274
|
+
log.error(`Failed to mark voicemail as unread: ${JSON.stringify(err)}`, loggerContext);
|
|
278
275
|
await uploadLogs();
|
|
279
276
|
const errorInfo = err;
|
|
280
277
|
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
@@ -306,8 +303,7 @@ export class UcmBackendConnector {
|
|
|
306
303
|
return responseDetails;
|
|
307
304
|
}
|
|
308
305
|
catch (err) {
|
|
309
|
-
|
|
310
|
-
log.error(extendedError, loggerContext);
|
|
306
|
+
log.error(`Failed to delete voicemail: ${JSON.stringify(err)}`, loggerContext);
|
|
311
307
|
await uploadLogs();
|
|
312
308
|
const errorInfo = err;
|
|
313
309
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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() {
|
|
@@ -87,11 +87,9 @@ export class WxCallBackendConnector {
|
|
|
87
87
|
storeVoicemailList(this.context, messageinfo);
|
|
88
88
|
}
|
|
89
89
|
catch (err) {
|
|
90
|
-
|
|
91
|
-
const extendedError = new Error(`Failed to get voicemail list: ${err}`);
|
|
92
|
-
log.error(extendedError, loggerContext);
|
|
90
|
+
log.error(`Failed to get voicemail list: ${JSON.stringify(err)}`, loggerContext);
|
|
93
91
|
await uploadLogs();
|
|
94
|
-
const errorStatus = serviceErrorCodeHandler(
|
|
92
|
+
const errorStatus = serviceErrorCodeHandler(err, loggerContext);
|
|
95
93
|
return errorStatus;
|
|
96
94
|
}
|
|
97
95
|
}
|
|
@@ -140,11 +138,9 @@ export class WxCallBackendConnector {
|
|
|
140
138
|
return responseDetails;
|
|
141
139
|
}
|
|
142
140
|
catch (err) {
|
|
143
|
-
|
|
144
|
-
const extendedError = new Error(`Failed to get voicemail content: ${err}`);
|
|
145
|
-
log.error(extendedError, loggerContext);
|
|
141
|
+
log.error(`Failed to get voicemail content: ${JSON.stringify(err)}`, loggerContext);
|
|
146
142
|
await uploadLogs();
|
|
147
|
-
const errorStatus = serviceErrorCodeHandler(
|
|
143
|
+
const errorStatus = serviceErrorCodeHandler(err, loggerContext);
|
|
148
144
|
return errorStatus;
|
|
149
145
|
}
|
|
150
146
|
}
|
|
@@ -185,11 +181,9 @@ export class WxCallBackendConnector {
|
|
|
185
181
|
return responseDetails;
|
|
186
182
|
}
|
|
187
183
|
catch (err) {
|
|
188
|
-
|
|
189
|
-
const extendedError = new Error(`Failed to get voicemail summary: ${err}`);
|
|
190
|
-
log.error(extendedError, loggerContext);
|
|
184
|
+
log.error(`Failed to get voicemail summary: ${JSON.stringify(err)}`, loggerContext);
|
|
191
185
|
await uploadLogs();
|
|
192
|
-
const errorStatus = serviceErrorCodeHandler(
|
|
186
|
+
const errorStatus = serviceErrorCodeHandler(err, loggerContext);
|
|
193
187
|
return errorStatus;
|
|
194
188
|
}
|
|
195
189
|
}
|
|
@@ -216,11 +210,9 @@ export class WxCallBackendConnector {
|
|
|
216
210
|
return responseDetails;
|
|
217
211
|
}
|
|
218
212
|
catch (err) {
|
|
219
|
-
|
|
220
|
-
const extendedError = new Error(`Failed to mark voicemail as read: ${err}`);
|
|
221
|
-
log.error(extendedError, loggerContext);
|
|
213
|
+
log.error(`Failed to mark voicemail as read: ${JSON.stringify(err)}`, loggerContext);
|
|
222
214
|
await uploadLogs();
|
|
223
|
-
const errorStatus = serviceErrorCodeHandler(
|
|
215
|
+
const errorStatus = serviceErrorCodeHandler(err, loggerContext);
|
|
224
216
|
return errorStatus;
|
|
225
217
|
}
|
|
226
218
|
}
|
|
@@ -247,11 +239,9 @@ export class WxCallBackendConnector {
|
|
|
247
239
|
return responseDetails;
|
|
248
240
|
}
|
|
249
241
|
catch (err) {
|
|
250
|
-
|
|
251
|
-
const extendedError = new Error(`Failed to mark voicemail as unread: ${err}`);
|
|
252
|
-
log.error(extendedError, loggerContext);
|
|
242
|
+
log.error(`Failed to mark voicemail as unread: ${JSON.stringify(err)}`, loggerContext);
|
|
253
243
|
await uploadLogs();
|
|
254
|
-
const errorStatus = serviceErrorCodeHandler(
|
|
244
|
+
const errorStatus = serviceErrorCodeHandler(err, loggerContext);
|
|
255
245
|
return errorStatus;
|
|
256
246
|
}
|
|
257
247
|
}
|
|
@@ -278,11 +268,9 @@ export class WxCallBackendConnector {
|
|
|
278
268
|
return responseDetails;
|
|
279
269
|
}
|
|
280
270
|
catch (err) {
|
|
281
|
-
|
|
282
|
-
const extendedError = new Error(`Failed to delete voicemail: ${err}`);
|
|
283
|
-
log.error(extendedError, loggerContext);
|
|
271
|
+
log.error(`Failed to delete voicemail: ${JSON.stringify(err)}`, loggerContext);
|
|
284
272
|
await uploadLogs();
|
|
285
|
-
const errorStatus = serviceErrorCodeHandler(
|
|
273
|
+
const errorStatus = serviceErrorCodeHandler(err, loggerContext);
|
|
286
274
|
return errorStatus;
|
|
287
275
|
}
|
|
288
276
|
}
|
|
@@ -315,11 +303,9 @@ export class WxCallBackendConnector {
|
|
|
315
303
|
return responseDetails;
|
|
316
304
|
}
|
|
317
305
|
catch (err) {
|
|
318
|
-
|
|
319
|
-
const extendedError = new Error(`Failed to get voicemail transcript: ${err}`);
|
|
320
|
-
log.error(extendedError, loggerContext);
|
|
306
|
+
log.error(`Failed to get voicemail transcript: ${JSON.stringify(err)}`, loggerContext);
|
|
321
307
|
await uploadLogs();
|
|
322
|
-
const errorStatus = serviceErrorCodeHandler(
|
|
308
|
+
const errorStatus = serviceErrorCodeHandler(err, loggerContext);
|
|
323
309
|
return errorStatus;
|
|
324
310
|
}
|
|
325
311
|
}
|
|
@@ -7,7 +7,7 @@ import { DEVICE_ERROR_CODE, ERROR_CODE, ERROR_TYPE, CALL_ERROR_CODE, } from '../
|
|
|
7
7
|
import { CALLING_BACKEND, HTTP_METHODS, RegistrationStatus, SORT, ServiceIndicator, } from './types';
|
|
8
8
|
import log from '../Logger';
|
|
9
9
|
import { createClientError } from '../Errors/catalog/CallingDeviceError';
|
|
10
|
-
import { BYTES_RECEIVED, BYTES_SENT, CALLING_USER_AGENT, CISCO_DEVICE_URL, CODEC_ID, DUMMY_METRICS, INBOUND_CODEC_MATCH, INBOUND_RTP, JITTER_BUFFER_DELAY, JITTER_BUFFER_EMITTED_COUNT, LOCAL_CANDIDATE_ID, MEDIA_ID, MEDIA_SOURCE, MIME_TYPE, NETWORK_TYPE, OUTBOUND_CODEC_MATCH, OUTBOUND_RTP, PACKETS_DISCARDED, PACKETS_LOST, PACKETS_RECEIVED, PACKETS_SENT, REMOTE_INBOUND_RTP, ROUND_TRIP_TIME_MEASUREMENTS, RTC_CODEC, RTC_ICE_CANDIDATE, RTC_ICE_CANDIDATE_PAIR, RTP_RX_STAT, RTP_TX_STAT, SELECTED_CANDIDATE_PAIR_ID, SPARK_USER_AGENT, TARGET_BIT_RATE, TIMESTAMP, TOTAL_ROUND_TRIP_TIME, TOTAL_SAMPLES_DURATION, TRANSPORT, TYPE, URL_ENDPOINT, UTILS_FILE, } from '../CallingClient/constants';
|
|
10
|
+
import { BYTES_RECEIVED, BYTES_SENT, CALLING_USER_AGENT, CISCO_DEVICE_URL, CODEC_ID, DUMMY_METRICS, INBOUND_CODEC_MATCH, INBOUND_RTP, JITTER_BUFFER_DELAY, JITTER_BUFFER_EMITTED_COUNT, LOCAL_CANDIDATE_ID, MEDIA_ID, MEDIA_SOURCE, MIME_TYPE, NETWORK_TYPE, OUTBOUND_CODEC_MATCH, OUTBOUND_RTP, PACKETS_DISCARDED, PACKETS_LOST, PACKETS_RECEIVED, PACKETS_SENT, REMOTE_INBOUND_RTP, ROUND_TRIP_TIME_MEASUREMENTS, RTC_CODEC, RTC_ICE_CANDIDATE, RTC_ICE_CANDIDATE_PAIR, RTP_RX_STAT, RTP_TX_STAT, SELECTED_CANDIDATE_PAIR_ID, SPARK_USER_AGENT, TARGET_BIT_RATE, TIMESTAMP, TOTAL_ROUND_TRIP_TIME, TOTAL_SAMPLES_DURATION, TRANSPORT, TYPE, URL_ENDPOINT, UTILS_FILE, METHODS, DEFAULT_KEEPALIVE_INTERVAL, } from '../CallingClient/constants';
|
|
11
11
|
import { DEVICES, ITEMS, SETTINGS, VALUES, KEY, TIME, PLACEHOLDER_KEY, XSI_ACTION_ENDPOINT_ORG_URL_PARAM, XSI_ACTION_ENDPOINT, INFER_ID_CONSTANT, BW_XSI_URL, ENTITLEMENT_BASIC, ENTITLEMENT_BROADWORKS_CONN, ENTITLEMENT_STANDARD, NATIVE_WEBEX_TEAMS_CALLING, NATIVE_SIP_CALL_TO_UCM, BW_XSI_ENDPOINT_VERSION, IDENTITY_ENDPOINT_RESOURCE, SCIM_ENDPOINT_RESOURCE, SCIM_USER_FILTER, WEBEX_API_PROD, WEBEX_API_BTS, BW_XSI_ENDPOINT_VERSION_WITH_SLASH, } from './constants';
|
|
12
12
|
import SDKConnector from '../SDKConnector';
|
|
13
13
|
import { createLineError } from '../Errors/catalog/LineError';
|
|
@@ -210,6 +210,7 @@ export async function handleCallingClientErrors(err, emitterCb, loggerContext) {
|
|
|
210
210
|
return finalError;
|
|
211
211
|
}
|
|
212
212
|
export async function handleCallErrors(emitterCb, errorLayer, retryCb, correlationId, err, caller, file) {
|
|
213
|
+
let abort = false;
|
|
213
214
|
const loggerContext = {
|
|
214
215
|
file,
|
|
215
216
|
method: caller,
|
|
@@ -217,14 +218,24 @@ export async function handleCallErrors(emitterCb, errorLayer, retryCb, correlati
|
|
|
217
218
|
const callError = createCallError('', loggerContext, ERROR_TYPE.DEFAULT, '', errorLayer);
|
|
218
219
|
const errorCode = Number(err.statusCode);
|
|
219
220
|
log.warn(`Status code: ->${errorCode}`, loggerContext);
|
|
221
|
+
const isKeepalive = caller === METHODS.HANDLE_CALL_ESTABLISHED;
|
|
220
222
|
switch (errorCode) {
|
|
221
223
|
case ERROR_CODE.UNAUTHORIZED: {
|
|
222
224
|
log.warn(`401 Unauthorized`, loggerContext);
|
|
223
225
|
updateCallErrorContext(loggerContext, ERROR_TYPE.TOKEN_ERROR, 'User is unauthorized due to an expired token. Sign out, then sign back in.', correlationId, callError);
|
|
224
226
|
emitterCb(callError);
|
|
227
|
+
if (isKeepalive) {
|
|
228
|
+
abort = true;
|
|
229
|
+
}
|
|
225
230
|
break;
|
|
226
231
|
}
|
|
227
232
|
case ERROR_CODE.FORBIDDEN:
|
|
233
|
+
if (isKeepalive) {
|
|
234
|
+
abort = true;
|
|
235
|
+
updateCallErrorContext(loggerContext, ERROR_TYPE.FORBIDDEN_ERROR, 'An unauthorized action has been received. This action has been blocked. Please contact the administrator if this persists.', correlationId, callError);
|
|
236
|
+
emitterCb(callError);
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
228
239
|
case ERROR_CODE.SERVICE_UNAVAILABLE: {
|
|
229
240
|
const errorBody = err.body;
|
|
230
241
|
if (!errorBody) {
|
|
@@ -233,13 +244,16 @@ export async function handleCallErrors(emitterCb, errorLayer, retryCb, correlati
|
|
|
233
244
|
? 'An unauthorized action has been received. This action has been blocked. Please contact the administrator if this persists.'
|
|
234
245
|
: 'An error occurred on the server while processing the request. Wait a moment and try again.', correlationId, callError);
|
|
235
246
|
emitterCb(callError);
|
|
236
|
-
return;
|
|
247
|
+
return abort;
|
|
237
248
|
}
|
|
238
249
|
if (err.headers && 'retry-after' in err.headers && retryCb) {
|
|
239
250
|
const retryInterval = Number(err.headers['retry-after']);
|
|
240
251
|
log.warn(`Retry Interval received: ${retryInterval}`, loggerContext);
|
|
241
252
|
retryCb(retryInterval);
|
|
242
|
-
return;
|
|
253
|
+
return abort;
|
|
254
|
+
}
|
|
255
|
+
if (isKeepalive) {
|
|
256
|
+
retryCb(DEFAULT_KEEPALIVE_INTERVAL);
|
|
243
257
|
}
|
|
244
258
|
const code = Number(errorBody.errorCode);
|
|
245
259
|
let message;
|
|
@@ -299,18 +313,30 @@ export async function handleCallErrors(emitterCb, errorLayer, retryCb, correlati
|
|
|
299
313
|
log.warn(`404 Call Not Found`, loggerContext);
|
|
300
314
|
updateCallErrorContext(loggerContext, ERROR_TYPE.NOT_FOUND, 'Call is no longer active. Wait a moment and try again.', correlationId, callError);
|
|
301
315
|
emitterCb(callError);
|
|
316
|
+
if (isKeepalive) {
|
|
317
|
+
abort = true;
|
|
318
|
+
}
|
|
302
319
|
break;
|
|
303
320
|
}
|
|
304
321
|
case ERROR_CODE.INTERNAL_SERVER_ERROR: {
|
|
305
322
|
log.warn(`500 Internal Server Error`, loggerContext);
|
|
306
323
|
updateCallErrorContext(loggerContext, ERROR_TYPE.SERVER_ERROR, 'An unknown error occurred in the call. Wait a moment and try again.', correlationId, callError);
|
|
307
324
|
emitterCb(callError);
|
|
325
|
+
if (isKeepalive && retryCb) {
|
|
326
|
+
const retryInterval = err.headers && 'retry-after' in err.headers
|
|
327
|
+
? Number(err.headers['retry-after'])
|
|
328
|
+
: DEFAULT_KEEPALIVE_INTERVAL;
|
|
329
|
+
retryCb(retryInterval);
|
|
330
|
+
}
|
|
308
331
|
break;
|
|
309
332
|
}
|
|
310
333
|
default: {
|
|
311
334
|
log.warn(`Unknown Error`, loggerContext);
|
|
335
|
+
updateCallErrorContext(loggerContext, ERROR_TYPE.DEFAULT, 'An unknown error occurred in the call.', correlationId, callError);
|
|
336
|
+
emitterCb(callError);
|
|
312
337
|
}
|
|
313
338
|
}
|
|
339
|
+
return abort;
|
|
314
340
|
}
|
|
315
341
|
export async function serviceErrorCodeHandler(err, loggerContext) {
|
|
316
342
|
const errorCode = Number(err.statusCode);
|
|
@@ -903,8 +929,8 @@ export async function uploadLogs(metaData = {}, throwError = false) {
|
|
|
903
929
|
};
|
|
904
930
|
}
|
|
905
931
|
catch (error) {
|
|
906
|
-
const errorLog = new Error(`Failed to upload Logs ${error}`);
|
|
907
|
-
log.error(errorLog, {
|
|
932
|
+
const errorLog = new Error(`Failed to upload Logs ${JSON.stringify(error)}`);
|
|
933
|
+
log.error(errorLog.message, {
|
|
908
934
|
file: UTILS_FILE,
|
|
909
935
|
method: 'uploadLogs',
|
|
910
936
|
});
|
|
@@ -47,6 +47,8 @@ export const SCIM_WEBEXIDENTITY_USER = 'urn:scim:schemas:extension:cisco:webexid
|
|
|
47
47
|
export const SCIM_ENTERPRISE_USER = 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User';
|
|
48
48
|
export const WEBEX_API_PROD = 'https://webexapis.com';
|
|
49
49
|
export const WEBEX_API_BTS = 'https://integration.webexapis.com';
|
|
50
|
+
export const WEBEX_API_FEDRAMP = 'https://api-usgov.webex.com';
|
|
50
51
|
export const WEBEX_API_CONFIG_INT_URL = `${WEBEX_API_BTS}/v1/uc/config`;
|
|
51
52
|
export const WEBEX_API_CONFIG_PROD_URL = `${WEBEX_API_PROD}/v1/uc/config`;
|
|
53
|
+
export const WEBEX_API_CONFIG_FEDRAMP_URL = `${WEBEX_API_FEDRAMP}/v1/uc/config`;
|
|
52
54
|
export const METHOD_START_MESSAGE = 'invoking';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallHistory.d.ts","sourceRoot":"","sources":["../../../src/CallHistory/CallHistory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CallHistory.d.ts","sourceRoot":"","sources":["../../../src/CallHistory/CallHistory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAIL,IAAI,EACJ,OAAO,EAER,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EAEzB,gCAAgC,EACjC,MAAM,SAAS,CAAC;AAoCjB,OAAO,EAEL,qBAAqB,EACrB,gBAAgB,EAGhB,gBAAgB,EAChB,sBAAsB,EAGtB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAWxC,qBAAa,WAAY,SAAQ,QAAQ,CAAC,qBAAqB,CAAE,YAAW,YAAY;IACtF,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO,CAAC,QAAQ,CAAM;IAEtB,OAAO,CAAC,QAAQ,CAAM;IAEtB,OAAO,CAAC,aAAa,CAGnB;IAEF,OAAO,CAAC,YAAY,CAA4B;gBAKpC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe;IAqBvC,kBAAkB,CAC7B,IAAI,GAAE,MAAuB,EAC7B,KAAK,GAAE,MAAc,EACrB,IAAI,GAAE,IAAmB,EACzB,MAAM,GAAE,OAAyB,GAChC,OAAO,CAAC,kBAAkB,CAAC;IA6HjB,iBAAiB,CAC5B,iBAAiB,EAAE,gBAAgB,EAAE,GACpC,OAAO,CAAC,yBAAyB,CAAC;YAqEvB,iBAAiB;IAiDlB,wBAAwB,CACnC,gBAAgB,EAAE,gBAAgB,EAAE,GACnC,OAAO,CAAC,gCAAgC,CAAC;IA2F5C,mBAAmB,WAAkB,gBAAgB,mBAInD;IAEF,2BAA2B,WAAkB,sBAAsB,mBAOjE;IAEF,+BAA+B,WAAkB,uBAAuB,mBAOtE;IAKF,OAAO,CAAC,wBAAwB;CAkBjC;AAOD,eAAO,MAAM,uBAAuB,UAAW,QAAQ,UAAU,eAAe,KAAG,YACnD,CAAC"}
|
|
@@ -16,5 +16,6 @@ export declare class UcmBackendConnector implements IUcmBackendConnector {
|
|
|
16
16
|
setVoicemailSetting(): Promise<CallSettingResponse>;
|
|
17
17
|
private getMethodNotSupportedResponse;
|
|
18
18
|
getCallForwardAlwaysSetting(directoryNumber?: string): Promise<CallSettingResponse>;
|
|
19
|
+
private getAuthHeaders;
|
|
19
20
|
}
|
|
20
21
|
//# sourceMappingURL=UcmBackendConnector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UcmBackendConnector.d.ts","sourceRoot":"","sources":["../../../src/CallSettings/UcmBackendConnector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UcmBackendConnector.d.ts","sourceRoot":"","sources":["../../../src/CallSettings/UcmBackendConnector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAe9D,OAAO,EAGL,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EAChB,MAAM,SAAS,CAAC;AAMjB,qBAAa,mBAAoB,YAAW,oBAAoB;IAC9D,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,gBAAgB,CAAU;gBAKtB,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,UAAO;IAmBtE,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAcrD,sBAAsB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IActD,sBAAsB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IActD,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAcrD,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAcrD,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAcnD,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAc1D,OAAO,CAAC,6BAA6B;IAqBxB,2BAA2B,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAwFlF,cAAc;CAY7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WxCallBackendConnector.d.ts","sourceRoot":"","sources":["../../../src/CallSettings/WxCallBackendConnector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WxCallBackendConnector.d.ts","sourceRoot":"","sources":["../../../src/CallSettings/WxCallBackendConnector.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EACL,eAAe,EAEf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EAExB,MAAM,SAAS,CAAC;AAiCjB,qBAAa,sBAAuB,YAAW,uBAAuB;IACpE,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,WAAW,CAAU;IAE7B,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,SAAS,CAAe;gBAEpB,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe;IAsBvC,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAsErD,sBAAsB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA6CtD,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkDtE,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA0CrD,qBAAqB,CAChC,qBAAqB,EAAE,kBAAkB,GACxC,OAAO,CAAC,mBAAmB,CAAC;IA0ClB,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA0CnD,mBAAmB,CAC9B,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,mBAAmB,CAAC;IA4ClB,2BAA2B,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAuEzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallingClient.d.ts","sourceRoot":"","sources":["../../../src/CallingClient/CallingClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"CallingClient.d.ts","sourceRoot":"","sources":["../../../src/CallingClient/CallingClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AASpD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAmB,aAAa,EAAe,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACxC,OAAO,EACL,uBAAuB,EAKxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAQL,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAC,KAAK,EAAe,MAAM,iBAAiB,CAAC;AAiBpD,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAuBnC,qBAAa,aAAc,SAAQ,QAAQ,CAAC,uBAAuB,CAAE,YAAW,cAAc;IAC5F,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,aAAa,CAAiB;IAEtC,OAAO,CAAC,SAAS,CAAC,CAAsB;IAExC,OAAO,CAAC,iBAAiB,CAAW;IAEpC,OAAO,CAAC,gBAAgB,CAAW;IAEnC,OAAO,CAAC,cAAc,CAAgB;IAEtC,OAAO,CAAC,UAAU,CAAS;IAEpB,WAAW,EAAE,OAAO,KAAK,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAA6B;IAE7C,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,oBAAoB,CAAM;IAElC,OAAO,CAAC,kBAAkB,CAAM;IAEhC,OAAO,CAAC,oBAAoB,CAAM;IAElC,OAAO,CAAC,kBAAkB,CAAM;gBAKpB,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,mBAAmB;IA6D5C,IAAI;YAoCH,wBAAwB;YA2BxB,eAAe;IAwB7B,OAAO,CAAC,oBAAoB,CAY1B;IAGF,OAAO,CAAC,mBAAmB,CAMzB;IAEF,OAAO,CAAC,oBAAoB,CAa1B;IAEF,OAAO,CAAC,mBAAmB,CA6CzB;IAEF,OAAO,CAAC,0BAA0B;YAmBpB,mBAAmB;YAkFnB,gBAAgB;IAiK9B,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,mBAAmB,CAoBzB;IAMK,eAAe,IAAI,MAAM;IAQzB,eAAe,IAAI,aAAa;IAIvC,OAAO,CAAC,wBAAwB;YAgClB,UAAU;IAuBjB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAOjC,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IAiBzC,gBAAgB,IAAI,KAAK,GAAG,SAAS;IAuB/B,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAQvD;AAOD,eAAO,MAAM,YAAY,UAChB,QAAQ,WACN,mBAAmB,KAC3B,QAAQ,cAAc,CAKxB,CAAC"}
|
|
@@ -38,6 +38,7 @@ export declare class Call extends Eventing<CallEventTypes> implements ICall {
|
|
|
38
38
|
private receivedRoapOKSeq;
|
|
39
39
|
private localAudioStream?;
|
|
40
40
|
private rtcMetrics;
|
|
41
|
+
private callKeepaliveRetryCount;
|
|
41
42
|
isMuted(): boolean;
|
|
42
43
|
isConnected(): boolean;
|
|
43
44
|
isHeld(): boolean;
|
|
@@ -53,6 +54,9 @@ export declare class Call extends Eventing<CallEventTypes> implements ICall {
|
|
|
53
54
|
private handleOutgoingCallConnect;
|
|
54
55
|
private handleIncomingCallDisconnect;
|
|
55
56
|
private handleOutgoingCallDisconnect;
|
|
57
|
+
private callKeepaliveRetryCallback;
|
|
58
|
+
private handleCallKeepaliveError;
|
|
59
|
+
private scheduleCallKeepaliveInterval;
|
|
56
60
|
private handleCallEstablished;
|
|
57
61
|
private handleUnknownState;
|
|
58
62
|
private getEmitterCallback;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../../src/CallingClient/calling/call.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EAGtB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../../src/CallingClient/calling/call.ts"],"names":[],"mappings":"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"}
|