@webex/calling 3.0.0-next.2 → 3.0.0-next.4
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/CHANGELOG.md +1403 -0
- package/README.md +74 -74
- package/dist/module/CallHistory/CallHistory.js +81 -81
- package/dist/module/CallHistory/callHistoryFixtures.js +307 -307
- package/dist/module/CallHistory/constants.js +9 -9
- package/dist/module/CallHistory/types.js +1 -1
- package/dist/module/CallSettings/CallSettings.js +65 -65
- package/dist/module/CallSettings/UcmBackendConnector.js +100 -100
- package/dist/module/CallSettings/WxCallBackendConnector.js +287 -287
- package/dist/module/CallSettings/constants.js +11 -11
- package/dist/module/CallSettings/testFixtures.js +62 -62
- package/dist/module/CallSettings/types.js +1 -1
- package/dist/module/CallingClient/CallingClient.js +248 -248
- package/dist/module/CallingClient/callRecordFixtures.js +93 -93
- package/dist/module/CallingClient/calling/CallerId/index.js +169 -169
- package/dist/module/CallingClient/calling/CallerId/types.js +1 -1
- package/dist/module/CallingClient/calling/call.js +1658 -1658
- package/dist/module/CallingClient/calling/callManager.js +284 -284
- package/dist/module/CallingClient/calling/index.js +2 -2
- package/dist/module/CallingClient/calling/types.js +53 -53
- package/dist/module/CallingClient/callingClientFixtures.js +38 -38
- package/dist/module/CallingClient/constants.js +122 -122
- package/dist/module/CallingClient/line/index.js +158 -158
- package/dist/module/CallingClient/line/types.js +15 -15
- package/dist/module/CallingClient/registration/index.js +1 -1
- package/dist/module/CallingClient/registration/register.js +507 -507
- package/dist/module/CallingClient/registration/registerFixtures.js +28 -28
- package/dist/module/CallingClient/registration/types.js +1 -1
- package/dist/module/CallingClient/types.js +1 -1
- package/dist/module/Contacts/ContactsClient.js +484 -484
- package/dist/module/Contacts/constants.js +20 -20
- package/dist/module/Contacts/contactFixtures.js +284 -284
- package/dist/module/Contacts/types.js +10 -10
- package/dist/module/Errors/catalog/CallError.js +26 -26
- package/dist/module/Errors/catalog/CallingDeviceError.js +18 -18
- package/dist/module/Errors/catalog/ExtendedError.js +10 -10
- package/dist/module/Errors/catalog/LineError.js +24 -24
- package/dist/module/Errors/index.js +2 -2
- package/dist/module/Errors/types.js +48 -48
- package/dist/module/Events/impl/index.js +19 -19
- package/dist/module/Events/types.js +83 -83
- package/dist/module/Logger/index.js +114 -114
- package/dist/module/Logger/types.js +25 -25
- package/dist/module/Metrics/index.js +232 -232
- package/dist/module/Metrics/types.js +37 -37
- package/dist/module/SDKConnector/index.js +39 -39
- package/dist/module/SDKConnector/types.js +1 -1
- package/dist/module/SDKConnector/utils.js +12 -12
- package/dist/module/Voicemail/BroadworksBackendConnector.js +291 -291
- package/dist/module/Voicemail/UcmBackendConnector.js +279 -279
- package/dist/module/Voicemail/Voicemail.js +110 -110
- package/dist/module/Voicemail/WxCallBackendConnector.js +279 -279
- package/dist/module/Voicemail/constants.js +29 -29
- package/dist/module/Voicemail/types.js +1 -1
- package/dist/module/Voicemail/voicemailFixture.js +510 -510
- package/dist/module/api.js +6 -6
- package/dist/module/common/Utils.js +802 -802
- package/dist/module/common/constants.js +41 -41
- package/dist/module/common/index.js +1 -1
- package/dist/module/common/testUtil.js +938 -938
- package/dist/module/common/types.js +57 -57
- package/dist/module/index.js +8 -8
- package/dist/types/CallHistory/CallHistory.d.ts +17 -17
- package/dist/types/CallHistory/callHistoryFixtures.d.ts +94 -94
- package/dist/types/CallHistory/constants.d.ts +9 -9
- package/dist/types/CallHistory/types.d.ts +18 -18
- package/dist/types/CallSettings/CallSettings.d.ts +19 -19
- package/dist/types/CallSettings/UcmBackendConnector.d.ts +19 -19
- package/dist/types/CallSettings/WxCallBackendConnector.d.ts +21 -21
- package/dist/types/CallSettings/constants.d.ts +11 -11
- package/dist/types/CallSettings/testFixtures.d.ts +15 -15
- package/dist/types/CallSettings/types.d.ts +107 -107
- package/dist/types/CallingClient/CallingClient.d.ts +35 -35
- package/dist/types/CallingClient/callRecordFixtures.d.ts +3 -3
- package/dist/types/CallingClient/calling/CallerId/index.d.ts +17 -17
- package/dist/types/CallingClient/calling/CallerId/types.d.ts +41 -41
- package/dist/types/CallingClient/calling/call.d.ts +96 -96
- package/dist/types/CallingClient/calling/callManager.d.ts +25 -25
- package/dist/types/CallingClient/calling/index.d.ts +2 -2
- package/dist/types/CallingClient/calling/types.d.ts +206 -206
- package/dist/types/CallingClient/callingClientFixtures.d.ts +18 -18
- package/dist/types/CallingClient/constants.d.ts +122 -122
- package/dist/types/CallingClient/line/index.d.ts +43 -43
- package/dist/types/CallingClient/line/types.d.ts +55 -55
- package/dist/types/CallingClient/registration/index.d.ts +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +64 -64
- package/dist/types/CallingClient/registration/registerFixtures.d.ts +28 -28
- package/dist/types/CallingClient/registration/types.d.ts +20 -20
- package/dist/types/CallingClient/types.d.ts +29 -29
- package/dist/types/Contacts/ContactsClient.d.ts +26 -26
- package/dist/types/Contacts/constants.d.ts +19 -19
- package/dist/types/Contacts/contactFixtures.d.ts +280 -280
- package/dist/types/Contacts/types.d.ts +72 -72
- package/dist/types/Errors/catalog/CallError.d.ts +11 -11
- package/dist/types/Errors/catalog/CallingDeviceError.d.ts +10 -10
- package/dist/types/Errors/catalog/ExtendedError.d.ts +6 -6
- package/dist/types/Errors/catalog/LineError.d.ts +10 -10
- package/dist/types/Errors/index.d.ts +2 -2
- package/dist/types/Errors/types.d.ts +60 -60
- package/dist/types/Events/impl/index.d.ts +8 -8
- package/dist/types/Events/types.d.ts +288 -288
- package/dist/types/Logger/index.d.ts +12 -12
- package/dist/types/Logger/types.d.ts +25 -25
- package/dist/types/Metrics/index.d.ts +5 -5
- package/dist/types/Metrics/types.d.ts +42 -42
- package/dist/types/SDKConnector/index.d.ts +12 -12
- package/dist/types/SDKConnector/types.d.ts +128 -128
- package/dist/types/SDKConnector/utils.d.ts +5 -5
- package/dist/types/Voicemail/BroadworksBackendConnector.d.ts +27 -27
- package/dist/types/Voicemail/UcmBackendConnector.d.ts +34 -34
- package/dist/types/Voicemail/Voicemail.d.ts +27 -27
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts +23 -23
- package/dist/types/Voicemail/constants.d.ts +29 -29
- package/dist/types/Voicemail/types.d.ts +133 -133
- package/dist/types/Voicemail/voicemailFixture.d.ts +417 -417
- package/dist/types/api.d.ts +16 -16
- package/dist/types/common/Utils.d.ts +34 -34
- package/dist/types/common/constants.d.ts +41 -41
- package/dist/types/common/index.d.ts +1 -1
- package/dist/types/common/testUtil.d.ts +3611 -3611
- package/dist/types/common/types.d.ts +191 -191
- package/dist/types/index.d.ts +8 -8
- package/package.json +4 -4
- package/dist/CallHistory/CallHistory.js +0 -203
- package/dist/CallHistory/CallHistory.js.map +0 -1
- package/dist/CallHistory/CallHistory.test.js +0 -133
- package/dist/CallHistory/CallHistory.test.js.map +0 -1
- package/dist/CallHistory/callHistoryFixtures.js +0 -310
- package/dist/CallHistory/callHistoryFixtures.js.map +0 -1
- package/dist/CallHistory/constants.js +0 -26
- 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 -276
- 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 -217
- package/dist/CallSettings/UcmBackendConnector.js.map +0 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +0 -227
- package/dist/CallSettings/UcmBackendConnector.test.js.map +0 -1
- package/dist/CallSettings/WxCallBackendConnector.js +0 -541
- package/dist/CallSettings/WxCallBackendConnector.js.map +0 -1
- package/dist/CallSettings/WxCallBackendConnector.test.js +0 -802
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +0 -1
- package/dist/CallSettings/constants.js +0 -30
- package/dist/CallSettings/constants.js.map +0 -1
- package/dist/CallSettings/testFixtures.js +0 -72
- 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 -572
- package/dist/CallingClient/CallingClient.js.map +0 -1
- package/dist/CallingClient/CallingClient.test.js +0 -931
- package/dist/CallingClient/CallingClient.test.js.map +0 -1
- package/dist/CallingClient/callRecordFixtures.js +0 -103
- package/dist/CallingClient/callRecordFixtures.js.map +0 -1
- package/dist/CallingClient/calling/CallerId/index.js +0 -287
- package/dist/CallingClient/calling/CallerId/index.js.map +0 -1
- package/dist/CallingClient/calling/CallerId/index.test.js +0 -274
- 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 -2995
- package/dist/CallingClient/calling/call.js.map +0 -1
- package/dist/CallingClient/calling/call.test.js +0 -2614
- package/dist/CallingClient/calling/call.test.js.map +0 -1
- package/dist/CallingClient/calling/callManager.js +0 -443
- package/dist/CallingClient/calling/callManager.js.map +0 -1
- package/dist/CallingClient/calling/callManager.test.js +0 -683
- 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 -71
- package/dist/CallingClient/calling/types.js.map +0 -1
- package/dist/CallingClient/callingClientFixtures.js +0 -53
- package/dist/CallingClient/callingClientFixtures.js.map +0 -1
- package/dist/CallingClient/constants.js +0 -226
- package/dist/CallingClient/constants.js.map +0 -1
- package/dist/CallingClient/line/index.js +0 -312
- package/dist/CallingClient/line/index.js.map +0 -1
- package/dist/CallingClient/line/line.test.js +0 -270
- package/dist/CallingClient/line/line.test.js.map +0 -1
- package/dist/CallingClient/line/types.js +0 -25
- 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 -1295
- package/dist/CallingClient/registration/register.js.map +0 -1
- package/dist/CallingClient/registration/register.test.js +0 -838
- package/dist/CallingClient/registration/register.test.js.map +0 -1
- package/dist/CallingClient/registration/registerFixtures.js +0 -41
- 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/types.js +0 -7
- package/dist/CallingClient/types.js.map +0 -1
- package/dist/Contacts/ContactsClient.js +0 -1139
- package/dist/Contacts/ContactsClient.js.map +0 -1
- package/dist/Contacts/ContactsClient.test.js +0 -725
- package/dist/Contacts/ContactsClient.test.js.map +0 -1
- package/dist/Contacts/constants.js +0 -36
- package/dist/Contacts/constants.js.map +0 -1
- package/dist/Contacts/contactFixtures.js +0 -340
- package/dist/Contacts/contactFixtures.js.map +0 -1
- package/dist/Contacts/types.js +0 -20
- package/dist/Contacts/types.js.map +0 -1
- package/dist/Errors/catalog/CallError.js +0 -94
- package/dist/Errors/catalog/CallError.js.map +0 -1
- package/dist/Errors/catalog/CallingDeviceError.js +0 -88
- package/dist/Errors/catalog/CallingDeviceError.js.map +0 -1
- package/dist/Errors/catalog/ExtendedError.js +0 -45
- package/dist/Errors/catalog/ExtendedError.js.map +0 -1
- package/dist/Errors/catalog/LineError.js +0 -90
- package/dist/Errors/catalog/LineError.js.map +0 -1
- package/dist/Errors/index.js +0 -21
- package/dist/Errors/index.js.map +0 -1
- package/dist/Errors/types.js +0 -62
- package/dist/Errors/types.js.map +0 -1
- package/dist/Events/impl/index.js +0 -82
- package/dist/Events/impl/index.js.map +0 -1
- package/dist/Events/types.js +0 -111
- package/dist/Events/types.js.map +0 -1
- package/dist/Logger/index.js +0 -221
- package/dist/Logger/index.js.map +0 -1
- package/dist/Logger/index.test.js +0 -62
- package/dist/Logger/index.test.js.map +0 -1
- package/dist/Logger/types.js +0 -37
- package/dist/Logger/types.js.map +0 -1
- package/dist/Metrics/index.js +0 -329
- package/dist/Metrics/index.js.map +0 -1
- package/dist/Metrics/index.test.js +0 -291
- package/dist/Metrics/index.test.js.map +0 -1
- package/dist/Metrics/types.js +0 -50
- package/dist/Metrics/types.js.map +0 -1
- package/dist/SDKConnector/index.js +0 -105
- 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 -40
- 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 -632
- package/dist/Voicemail/BroadworksBackendConnector.js.map +0 -1
- package/dist/Voicemail/BroadworksBackendConnector.test.js +0 -733
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +0 -1
- package/dist/Voicemail/UcmBackendConnector.js +0 -566
- package/dist/Voicemail/UcmBackendConnector.js.map +0 -1
- package/dist/Voicemail/UcmBackendConnector.test.js +0 -628
- package/dist/Voicemail/UcmBackendConnector.test.js.map +0 -1
- package/dist/Voicemail/Voicemail.js +0 -378
- package/dist/Voicemail/Voicemail.js.map +0 -1
- package/dist/Voicemail/Voicemail.test.js +0 -226
- package/dist/Voicemail/Voicemail.test.js.map +0 -1
- package/dist/Voicemail/WxCallBackendConnector.js +0 -540
- package/dist/Voicemail/WxCallBackendConnector.js.map +0 -1
- package/dist/Voicemail/WxCallBackendConnector.test.js +0 -942
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +0 -1
- package/dist/Voicemail/constants.js +0 -66
- 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 -559
- package/dist/Voicemail/voicemailFixture.js.map +0 -1
- package/dist/api.js +0 -134
- package/dist/api.js.map +0 -1
- package/dist/common/Utils.js +0 -1264
- package/dist/common/Utils.js.map +0 -1
- package/dist/common/Utils.test.js +0 -1227
- package/dist/common/Utils.test.js.map +0 -1
- package/dist/common/constants.js +0 -90
- 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 -968
- 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 -63
- package/dist/index.js.map +0 -1
|
@@ -1,279 +1,279 @@
|
|
|
1
|
-
import SDKConnector from '../SDKConnector';
|
|
2
|
-
import { RAW_REQUEST, SUCCESS_MESSAGE, SUCCESS_STATUS_CODE, TRANSCRIPT, USER, XML_TYPE, BW_XSI_ENDPOINT_VERSION, WEBEX_CALLING_CONNECTOR_FILE, } from '../common/constants';
|
|
3
|
-
import { serviceErrorCodeHandler, getXsiActionEndpoint, getSortedVoicemailList, resolveContact, storeVoicemailList, fetchVoicemailList, } from '../common/Utils';
|
|
4
|
-
import { CALLING_BACKEND, HTTP_METHODS, SORT, } from '../common/types';
|
|
5
|
-
import log from '../Logger';
|
|
6
|
-
import { JSON_FORMAT, MARK_AS_READ, MARK_AS_UNREAD, MESSAGE_MEDIA_CONTENT, TRANSCRIPT_CONTENT, VOICE_MESSAGING_MESSAGES, NO_VOICEMAIL_MSG, NO_VOICEMAIL_STATUS_CODE, RADIX_RAND, PREFIX, TRANSCRIPT_STATUS, MESSAGE_SUMMARY, CALLS, SUMMARY, NEW_MESSAGES, NEW_URGENT_MESSAGES, OLD_URGENT_MESSAGES, OLD_MESSAGES, } from './constants';
|
|
7
|
-
export class WxCallBackendConnector {
|
|
8
|
-
xsiEndpoint;
|
|
9
|
-
userId;
|
|
10
|
-
context;
|
|
11
|
-
sdkConnector;
|
|
12
|
-
xsiVoiceMessageURI;
|
|
13
|
-
webex;
|
|
14
|
-
constructor(webex, logger) {
|
|
15
|
-
this.sdkConnector = SDKConnector;
|
|
16
|
-
if (!this.sdkConnector.getWebex()) {
|
|
17
|
-
SDKConnector.setWebex(webex);
|
|
18
|
-
}
|
|
19
|
-
this.context = Math.random().toString(RADIX_RAND).substring(PREFIX);
|
|
20
|
-
this.webex = this.sdkConnector.getWebex();
|
|
21
|
-
this.userId = this.webex.internal.device.userId;
|
|
22
|
-
log.setLogger(logger.level, WEBEX_CALLING_CONNECTOR_FILE);
|
|
23
|
-
}
|
|
24
|
-
init() {
|
|
25
|
-
const loggerContext = {
|
|
26
|
-
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
27
|
-
method: 'init',
|
|
28
|
-
};
|
|
29
|
-
log.info('Initializing Webex calling voicemail connector', loggerContext);
|
|
30
|
-
const response = this.setXsiVoiceMessageURI();
|
|
31
|
-
return response;
|
|
32
|
-
}
|
|
33
|
-
getSDKConnector() {
|
|
34
|
-
return this.sdkConnector;
|
|
35
|
-
}
|
|
36
|
-
async setXsiVoiceMessageURI() {
|
|
37
|
-
let responseDetails;
|
|
38
|
-
const loggerContext = {
|
|
39
|
-
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
40
|
-
method: 'setXsiVoiceMessageURI',
|
|
41
|
-
};
|
|
42
|
-
this.xsiEndpoint = await getXsiActionEndpoint(this.webex, loggerContext, CALLING_BACKEND.WXC);
|
|
43
|
-
log.info(`XsiEndpoint is ${this.xsiEndpoint}`, loggerContext);
|
|
44
|
-
if (this.userId) {
|
|
45
|
-
this.xsiVoiceMessageURI = `${this.xsiEndpoint}/${BW_XSI_ENDPOINT_VERSION}/${USER}/${this.userId}/${VOICE_MESSAGING_MESSAGES}`;
|
|
46
|
-
responseDetails = {
|
|
47
|
-
statusCode: SUCCESS_STATUS_CODE,
|
|
48
|
-
data: {},
|
|
49
|
-
message: SUCCESS_MESSAGE,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return responseDetails;
|
|
53
|
-
}
|
|
54
|
-
async getVoicemailList(offset, offsetLimit, sort, refresh) {
|
|
55
|
-
const loggerContext = {
|
|
56
|
-
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
57
|
-
method: 'getVoicemailList',
|
|
58
|
-
};
|
|
59
|
-
log.info(`Offset: ${offset} Offset limit: ${offsetLimit} Sort type:${sort}`, loggerContext);
|
|
60
|
-
let messageinfo;
|
|
61
|
-
if (refresh) {
|
|
62
|
-
const urlXsi = `${this.xsiVoiceMessageURI}${JSON_FORMAT}`;
|
|
63
|
-
const sortParam = Object.values(SORT).includes(sort) ? sort : SORT.DEFAULT;
|
|
64
|
-
try {
|
|
65
|
-
const response = await this.webex.request({
|
|
66
|
-
uri: `${urlXsi}`,
|
|
67
|
-
method: HTTP_METHODS.GET,
|
|
68
|
-
});
|
|
69
|
-
const voicemailListResponse = response.body;
|
|
70
|
-
if (Object.keys(voicemailListResponse?.VoiceMessagingMessages?.messageInfoList).length === 0) {
|
|
71
|
-
messageinfo = [];
|
|
72
|
-
}
|
|
73
|
-
else if (!Array.isArray(voicemailListResponse?.VoiceMessagingMessages?.messageInfoList?.messageInfo)) {
|
|
74
|
-
messageinfo = Array(voicemailListResponse?.VoiceMessagingMessages?.messageInfoList?.messageInfo);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
messageinfo = voicemailListResponse?.VoiceMessagingMessages?.messageInfoList
|
|
78
|
-
?.messageInfo;
|
|
79
|
-
messageinfo = getSortedVoicemailList(messageinfo, sortParam);
|
|
80
|
-
}
|
|
81
|
-
storeVoicemailList(this.context, messageinfo);
|
|
82
|
-
}
|
|
83
|
-
catch (err) {
|
|
84
|
-
const errorInfo = err;
|
|
85
|
-
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
86
|
-
return errorStatus;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
const { messages, moreVMAvailable } = fetchVoicemailList(this.context, offset, offsetLimit, loggerContext);
|
|
90
|
-
const responseDetails = {
|
|
91
|
-
statusCode: moreVMAvailable ? SUCCESS_STATUS_CODE : NO_VOICEMAIL_STATUS_CODE,
|
|
92
|
-
data: {
|
|
93
|
-
voicemailList: messages,
|
|
94
|
-
},
|
|
95
|
-
message: moreVMAvailable ? SUCCESS_MESSAGE : NO_VOICEMAIL_MSG,
|
|
96
|
-
};
|
|
97
|
-
return responseDetails;
|
|
98
|
-
}
|
|
99
|
-
async getVoicemailContent(messageId) {
|
|
100
|
-
const loggerContext = {
|
|
101
|
-
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
102
|
-
method: 'getVoicemailContent',
|
|
103
|
-
};
|
|
104
|
-
try {
|
|
105
|
-
const voicemailContentUrl = `${this.xsiEndpoint}${messageId}`;
|
|
106
|
-
const response = await this.webex.request({
|
|
107
|
-
uri: `${voicemailContentUrl}`,
|
|
108
|
-
method: HTTP_METHODS.GET,
|
|
109
|
-
});
|
|
110
|
-
const parser = new DOMParser();
|
|
111
|
-
const xmlDOM = parser.parseFromString(response[RAW_REQUEST].response, XML_TYPE);
|
|
112
|
-
const mediaDetails = xmlDOM.getElementsByTagName(MESSAGE_MEDIA_CONTENT)[0];
|
|
113
|
-
const mediaType = mediaDetails.childNodes[1]?.textContent;
|
|
114
|
-
const mediaContent = mediaDetails.childNodes[2]?.textContent;
|
|
115
|
-
log.info(`Media type is ${mediaType}`, loggerContext);
|
|
116
|
-
const responseDetails = {
|
|
117
|
-
statusCode: Number(response.statusCode),
|
|
118
|
-
data: {
|
|
119
|
-
voicemailContent: {
|
|
120
|
-
type: mediaType,
|
|
121
|
-
content: mediaContent,
|
|
122
|
-
},
|
|
123
|
-
},
|
|
124
|
-
message: SUCCESS_MESSAGE,
|
|
125
|
-
};
|
|
126
|
-
return responseDetails;
|
|
127
|
-
}
|
|
128
|
-
catch (err) {
|
|
129
|
-
const errorInfo = err;
|
|
130
|
-
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
131
|
-
log.info(`Voice mail content error is ${errorStatus}`, loggerContext);
|
|
132
|
-
return errorStatus;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
async getVoicemailSummary() {
|
|
136
|
-
const loggerContext = {
|
|
137
|
-
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
138
|
-
method: 'getVoicemailSummary',
|
|
139
|
-
};
|
|
140
|
-
try {
|
|
141
|
-
const voicemailSummaryUrl = `${this.xsiEndpoint}/${BW_XSI_ENDPOINT_VERSION}/${USER}/${this.userId}/${CALLS}/${MESSAGE_SUMMARY}`;
|
|
142
|
-
const response = await this.webex.request({
|
|
143
|
-
uri: `${voicemailSummaryUrl}`,
|
|
144
|
-
method: HTTP_METHODS.GET,
|
|
145
|
-
});
|
|
146
|
-
const parser = new DOMParser();
|
|
147
|
-
const xmlDOM = parser.parseFromString(response[RAW_REQUEST].response, XML_TYPE);
|
|
148
|
-
const voicemailSummary = xmlDOM.getElementsByTagName(SUMMARY)[0];
|
|
149
|
-
const newMessages = voicemailSummary.getElementsByTagName(NEW_MESSAGES)[0];
|
|
150
|
-
const newUrgentMessages = voicemailSummary.getElementsByTagName(NEW_URGENT_MESSAGES)[0];
|
|
151
|
-
const oldMessages = voicemailSummary.getElementsByTagName(OLD_MESSAGES)[0];
|
|
152
|
-
const oldUrgentMessages = voicemailSummary.getElementsByTagName(OLD_URGENT_MESSAGES)[0];
|
|
153
|
-
const responseDetails = {
|
|
154
|
-
statusCode: Number(response.statusCode),
|
|
155
|
-
data: {
|
|
156
|
-
voicemailSummary: {
|
|
157
|
-
newMessages: newMessages ? Number(newMessages.textContent) : 0,
|
|
158
|
-
newUrgentMessages: newUrgentMessages ? Number(newUrgentMessages.textContent) : 0,
|
|
159
|
-
oldMessages: oldMessages ? Number(oldMessages.textContent) : 0,
|
|
160
|
-
oldUrgentMessages: oldUrgentMessages ? Number(oldUrgentMessages.textContent) : 0,
|
|
161
|
-
},
|
|
162
|
-
},
|
|
163
|
-
message: SUCCESS_MESSAGE,
|
|
164
|
-
};
|
|
165
|
-
return responseDetails;
|
|
166
|
-
}
|
|
167
|
-
catch (err) {
|
|
168
|
-
const errorInfo = err;
|
|
169
|
-
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
170
|
-
log.error(new Error(`Voicemail summary error is ${errorStatus}`), loggerContext);
|
|
171
|
-
return errorStatus;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
async voicemailMarkAsRead(messageId) {
|
|
175
|
-
const loggerContext = {
|
|
176
|
-
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
177
|
-
method: 'voicemailMarkAsRead',
|
|
178
|
-
};
|
|
179
|
-
try {
|
|
180
|
-
const voicemailContentUrl = `${this.xsiEndpoint}${messageId}/${MARK_AS_READ}`;
|
|
181
|
-
const response = await this.webex.request({
|
|
182
|
-
uri: voicemailContentUrl,
|
|
183
|
-
method: HTTP_METHODS.PUT,
|
|
184
|
-
});
|
|
185
|
-
const responseDetails = {
|
|
186
|
-
statusCode: Number(response.statusCode),
|
|
187
|
-
data: {},
|
|
188
|
-
message: SUCCESS_MESSAGE,
|
|
189
|
-
};
|
|
190
|
-
return responseDetails;
|
|
191
|
-
}
|
|
192
|
-
catch (err) {
|
|
193
|
-
const errorInfo = err;
|
|
194
|
-
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
195
|
-
return errorStatus;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
async voicemailMarkAsUnread(messageId) {
|
|
199
|
-
const loggerContext = {
|
|
200
|
-
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
201
|
-
method: 'voicemailMarkAsUnread',
|
|
202
|
-
};
|
|
203
|
-
try {
|
|
204
|
-
const voicemailContentUrl = `${this.xsiEndpoint}${messageId}/${MARK_AS_UNREAD}`;
|
|
205
|
-
const response = await this.webex.request({
|
|
206
|
-
uri: voicemailContentUrl,
|
|
207
|
-
method: HTTP_METHODS.PUT,
|
|
208
|
-
});
|
|
209
|
-
const responseDetails = {
|
|
210
|
-
statusCode: Number(response.statusCode),
|
|
211
|
-
data: {},
|
|
212
|
-
message: SUCCESS_MESSAGE,
|
|
213
|
-
};
|
|
214
|
-
return responseDetails;
|
|
215
|
-
}
|
|
216
|
-
catch (err) {
|
|
217
|
-
const errorInfo = err;
|
|
218
|
-
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
219
|
-
return errorStatus;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
async deleteVoicemail(messageId) {
|
|
223
|
-
const loggerContext = {
|
|
224
|
-
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
225
|
-
method: 'deleteVoicemail',
|
|
226
|
-
};
|
|
227
|
-
try {
|
|
228
|
-
const voicemailContentUrl = `${this.xsiEndpoint}${messageId}`;
|
|
229
|
-
const response = await this.webex.request({
|
|
230
|
-
uri: voicemailContentUrl,
|
|
231
|
-
method: HTTP_METHODS.DELETE,
|
|
232
|
-
});
|
|
233
|
-
const responseDetails = {
|
|
234
|
-
statusCode: Number(response.statusCode),
|
|
235
|
-
data: {},
|
|
236
|
-
message: SUCCESS_MESSAGE,
|
|
237
|
-
};
|
|
238
|
-
return responseDetails;
|
|
239
|
-
}
|
|
240
|
-
catch (err) {
|
|
241
|
-
const errorInfo = err;
|
|
242
|
-
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
243
|
-
return errorStatus;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
async getVMTranscript(messageId) {
|
|
247
|
-
const loggerContext = {
|
|
248
|
-
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
249
|
-
method: 'getVMTranscript',
|
|
250
|
-
};
|
|
251
|
-
try {
|
|
252
|
-
const voicemailContentUrl = `${this.xsiEndpoint}${messageId}/${TRANSCRIPT}`;
|
|
253
|
-
const response = await this.webex.request({
|
|
254
|
-
uri: voicemailContentUrl,
|
|
255
|
-
method: HTTP_METHODS.GET,
|
|
256
|
-
});
|
|
257
|
-
const parser = new DOMParser();
|
|
258
|
-
const xmlDOM = parser.parseFromString(response[RAW_REQUEST].response, XML_TYPE);
|
|
259
|
-
const status = xmlDOM.getElementsByTagName(TRANSCRIPT_STATUS)[0];
|
|
260
|
-
const transcript = xmlDOM.getElementsByTagName(TRANSCRIPT_CONTENT)[0];
|
|
261
|
-
const responseDetails = {
|
|
262
|
-
statusCode: Number(response.statusCode),
|
|
263
|
-
data: {
|
|
264
|
-
voicemailTranscript: transcript?.textContent,
|
|
265
|
-
},
|
|
266
|
-
message: status.textContent,
|
|
267
|
-
};
|
|
268
|
-
return responseDetails;
|
|
269
|
-
}
|
|
270
|
-
catch (err) {
|
|
271
|
-
const errorInfo = err;
|
|
272
|
-
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
273
|
-
return errorStatus;
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
resolveContact(callingPartyInfo) {
|
|
277
|
-
return resolveContact(callingPartyInfo);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
1
|
+
import SDKConnector from '../SDKConnector';
|
|
2
|
+
import { RAW_REQUEST, SUCCESS_MESSAGE, SUCCESS_STATUS_CODE, TRANSCRIPT, USER, XML_TYPE, BW_XSI_ENDPOINT_VERSION, WEBEX_CALLING_CONNECTOR_FILE, } from '../common/constants';
|
|
3
|
+
import { serviceErrorCodeHandler, getXsiActionEndpoint, getSortedVoicemailList, resolveContact, storeVoicemailList, fetchVoicemailList, } from '../common/Utils';
|
|
4
|
+
import { CALLING_BACKEND, HTTP_METHODS, SORT, } from '../common/types';
|
|
5
|
+
import log from '../Logger';
|
|
6
|
+
import { JSON_FORMAT, MARK_AS_READ, MARK_AS_UNREAD, MESSAGE_MEDIA_CONTENT, TRANSCRIPT_CONTENT, VOICE_MESSAGING_MESSAGES, NO_VOICEMAIL_MSG, NO_VOICEMAIL_STATUS_CODE, RADIX_RAND, PREFIX, TRANSCRIPT_STATUS, MESSAGE_SUMMARY, CALLS, SUMMARY, NEW_MESSAGES, NEW_URGENT_MESSAGES, OLD_URGENT_MESSAGES, OLD_MESSAGES, } from './constants';
|
|
7
|
+
export class WxCallBackendConnector {
|
|
8
|
+
xsiEndpoint;
|
|
9
|
+
userId;
|
|
10
|
+
context;
|
|
11
|
+
sdkConnector;
|
|
12
|
+
xsiVoiceMessageURI;
|
|
13
|
+
webex;
|
|
14
|
+
constructor(webex, logger) {
|
|
15
|
+
this.sdkConnector = SDKConnector;
|
|
16
|
+
if (!this.sdkConnector.getWebex()) {
|
|
17
|
+
SDKConnector.setWebex(webex);
|
|
18
|
+
}
|
|
19
|
+
this.context = Math.random().toString(RADIX_RAND).substring(PREFIX);
|
|
20
|
+
this.webex = this.sdkConnector.getWebex();
|
|
21
|
+
this.userId = this.webex.internal.device.userId;
|
|
22
|
+
log.setLogger(logger.level, WEBEX_CALLING_CONNECTOR_FILE);
|
|
23
|
+
}
|
|
24
|
+
init() {
|
|
25
|
+
const loggerContext = {
|
|
26
|
+
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
27
|
+
method: 'init',
|
|
28
|
+
};
|
|
29
|
+
log.info('Initializing Webex calling voicemail connector', loggerContext);
|
|
30
|
+
const response = this.setXsiVoiceMessageURI();
|
|
31
|
+
return response;
|
|
32
|
+
}
|
|
33
|
+
getSDKConnector() {
|
|
34
|
+
return this.sdkConnector;
|
|
35
|
+
}
|
|
36
|
+
async setXsiVoiceMessageURI() {
|
|
37
|
+
let responseDetails;
|
|
38
|
+
const loggerContext = {
|
|
39
|
+
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
40
|
+
method: 'setXsiVoiceMessageURI',
|
|
41
|
+
};
|
|
42
|
+
this.xsiEndpoint = await getXsiActionEndpoint(this.webex, loggerContext, CALLING_BACKEND.WXC);
|
|
43
|
+
log.info(`XsiEndpoint is ${this.xsiEndpoint}`, loggerContext);
|
|
44
|
+
if (this.userId) {
|
|
45
|
+
this.xsiVoiceMessageURI = `${this.xsiEndpoint}/${BW_XSI_ENDPOINT_VERSION}/${USER}/${this.userId}/${VOICE_MESSAGING_MESSAGES}`;
|
|
46
|
+
responseDetails = {
|
|
47
|
+
statusCode: SUCCESS_STATUS_CODE,
|
|
48
|
+
data: {},
|
|
49
|
+
message: SUCCESS_MESSAGE,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return responseDetails;
|
|
53
|
+
}
|
|
54
|
+
async getVoicemailList(offset, offsetLimit, sort, refresh) {
|
|
55
|
+
const loggerContext = {
|
|
56
|
+
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
57
|
+
method: 'getVoicemailList',
|
|
58
|
+
};
|
|
59
|
+
log.info(`Offset: ${offset} Offset limit: ${offsetLimit} Sort type:${sort}`, loggerContext);
|
|
60
|
+
let messageinfo;
|
|
61
|
+
if (refresh) {
|
|
62
|
+
const urlXsi = `${this.xsiVoiceMessageURI}${JSON_FORMAT}`;
|
|
63
|
+
const sortParam = Object.values(SORT).includes(sort) ? sort : SORT.DEFAULT;
|
|
64
|
+
try {
|
|
65
|
+
const response = await this.webex.request({
|
|
66
|
+
uri: `${urlXsi}`,
|
|
67
|
+
method: HTTP_METHODS.GET,
|
|
68
|
+
});
|
|
69
|
+
const voicemailListResponse = response.body;
|
|
70
|
+
if (Object.keys(voicemailListResponse?.VoiceMessagingMessages?.messageInfoList).length === 0) {
|
|
71
|
+
messageinfo = [];
|
|
72
|
+
}
|
|
73
|
+
else if (!Array.isArray(voicemailListResponse?.VoiceMessagingMessages?.messageInfoList?.messageInfo)) {
|
|
74
|
+
messageinfo = Array(voicemailListResponse?.VoiceMessagingMessages?.messageInfoList?.messageInfo);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
messageinfo = voicemailListResponse?.VoiceMessagingMessages?.messageInfoList
|
|
78
|
+
?.messageInfo;
|
|
79
|
+
messageinfo = getSortedVoicemailList(messageinfo, sortParam);
|
|
80
|
+
}
|
|
81
|
+
storeVoicemailList(this.context, messageinfo);
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
const errorInfo = err;
|
|
85
|
+
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
86
|
+
return errorStatus;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const { messages, moreVMAvailable } = fetchVoicemailList(this.context, offset, offsetLimit, loggerContext);
|
|
90
|
+
const responseDetails = {
|
|
91
|
+
statusCode: moreVMAvailable ? SUCCESS_STATUS_CODE : NO_VOICEMAIL_STATUS_CODE,
|
|
92
|
+
data: {
|
|
93
|
+
voicemailList: messages,
|
|
94
|
+
},
|
|
95
|
+
message: moreVMAvailable ? SUCCESS_MESSAGE : NO_VOICEMAIL_MSG,
|
|
96
|
+
};
|
|
97
|
+
return responseDetails;
|
|
98
|
+
}
|
|
99
|
+
async getVoicemailContent(messageId) {
|
|
100
|
+
const loggerContext = {
|
|
101
|
+
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
102
|
+
method: 'getVoicemailContent',
|
|
103
|
+
};
|
|
104
|
+
try {
|
|
105
|
+
const voicemailContentUrl = `${this.xsiEndpoint}${messageId}`;
|
|
106
|
+
const response = await this.webex.request({
|
|
107
|
+
uri: `${voicemailContentUrl}`,
|
|
108
|
+
method: HTTP_METHODS.GET,
|
|
109
|
+
});
|
|
110
|
+
const parser = new DOMParser();
|
|
111
|
+
const xmlDOM = parser.parseFromString(response[RAW_REQUEST].response, XML_TYPE);
|
|
112
|
+
const mediaDetails = xmlDOM.getElementsByTagName(MESSAGE_MEDIA_CONTENT)[0];
|
|
113
|
+
const mediaType = mediaDetails.childNodes[1]?.textContent;
|
|
114
|
+
const mediaContent = mediaDetails.childNodes[2]?.textContent;
|
|
115
|
+
log.info(`Media type is ${mediaType}`, loggerContext);
|
|
116
|
+
const responseDetails = {
|
|
117
|
+
statusCode: Number(response.statusCode),
|
|
118
|
+
data: {
|
|
119
|
+
voicemailContent: {
|
|
120
|
+
type: mediaType,
|
|
121
|
+
content: mediaContent,
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
message: SUCCESS_MESSAGE,
|
|
125
|
+
};
|
|
126
|
+
return responseDetails;
|
|
127
|
+
}
|
|
128
|
+
catch (err) {
|
|
129
|
+
const errorInfo = err;
|
|
130
|
+
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
131
|
+
log.info(`Voice mail content error is ${errorStatus}`, loggerContext);
|
|
132
|
+
return errorStatus;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
async getVoicemailSummary() {
|
|
136
|
+
const loggerContext = {
|
|
137
|
+
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
138
|
+
method: 'getVoicemailSummary',
|
|
139
|
+
};
|
|
140
|
+
try {
|
|
141
|
+
const voicemailSummaryUrl = `${this.xsiEndpoint}/${BW_XSI_ENDPOINT_VERSION}/${USER}/${this.userId}/${CALLS}/${MESSAGE_SUMMARY}`;
|
|
142
|
+
const response = await this.webex.request({
|
|
143
|
+
uri: `${voicemailSummaryUrl}`,
|
|
144
|
+
method: HTTP_METHODS.GET,
|
|
145
|
+
});
|
|
146
|
+
const parser = new DOMParser();
|
|
147
|
+
const xmlDOM = parser.parseFromString(response[RAW_REQUEST].response, XML_TYPE);
|
|
148
|
+
const voicemailSummary = xmlDOM.getElementsByTagName(SUMMARY)[0];
|
|
149
|
+
const newMessages = voicemailSummary.getElementsByTagName(NEW_MESSAGES)[0];
|
|
150
|
+
const newUrgentMessages = voicemailSummary.getElementsByTagName(NEW_URGENT_MESSAGES)[0];
|
|
151
|
+
const oldMessages = voicemailSummary.getElementsByTagName(OLD_MESSAGES)[0];
|
|
152
|
+
const oldUrgentMessages = voicemailSummary.getElementsByTagName(OLD_URGENT_MESSAGES)[0];
|
|
153
|
+
const responseDetails = {
|
|
154
|
+
statusCode: Number(response.statusCode),
|
|
155
|
+
data: {
|
|
156
|
+
voicemailSummary: {
|
|
157
|
+
newMessages: newMessages ? Number(newMessages.textContent) : 0,
|
|
158
|
+
newUrgentMessages: newUrgentMessages ? Number(newUrgentMessages.textContent) : 0,
|
|
159
|
+
oldMessages: oldMessages ? Number(oldMessages.textContent) : 0,
|
|
160
|
+
oldUrgentMessages: oldUrgentMessages ? Number(oldUrgentMessages.textContent) : 0,
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
message: SUCCESS_MESSAGE,
|
|
164
|
+
};
|
|
165
|
+
return responseDetails;
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
const errorInfo = err;
|
|
169
|
+
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
170
|
+
log.error(new Error(`Voicemail summary error is ${errorStatus}`), loggerContext);
|
|
171
|
+
return errorStatus;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async voicemailMarkAsRead(messageId) {
|
|
175
|
+
const loggerContext = {
|
|
176
|
+
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
177
|
+
method: 'voicemailMarkAsRead',
|
|
178
|
+
};
|
|
179
|
+
try {
|
|
180
|
+
const voicemailContentUrl = `${this.xsiEndpoint}${messageId}/${MARK_AS_READ}`;
|
|
181
|
+
const response = await this.webex.request({
|
|
182
|
+
uri: voicemailContentUrl,
|
|
183
|
+
method: HTTP_METHODS.PUT,
|
|
184
|
+
});
|
|
185
|
+
const responseDetails = {
|
|
186
|
+
statusCode: Number(response.statusCode),
|
|
187
|
+
data: {},
|
|
188
|
+
message: SUCCESS_MESSAGE,
|
|
189
|
+
};
|
|
190
|
+
return responseDetails;
|
|
191
|
+
}
|
|
192
|
+
catch (err) {
|
|
193
|
+
const errorInfo = err;
|
|
194
|
+
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
195
|
+
return errorStatus;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
async voicemailMarkAsUnread(messageId) {
|
|
199
|
+
const loggerContext = {
|
|
200
|
+
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
201
|
+
method: 'voicemailMarkAsUnread',
|
|
202
|
+
};
|
|
203
|
+
try {
|
|
204
|
+
const voicemailContentUrl = `${this.xsiEndpoint}${messageId}/${MARK_AS_UNREAD}`;
|
|
205
|
+
const response = await this.webex.request({
|
|
206
|
+
uri: voicemailContentUrl,
|
|
207
|
+
method: HTTP_METHODS.PUT,
|
|
208
|
+
});
|
|
209
|
+
const responseDetails = {
|
|
210
|
+
statusCode: Number(response.statusCode),
|
|
211
|
+
data: {},
|
|
212
|
+
message: SUCCESS_MESSAGE,
|
|
213
|
+
};
|
|
214
|
+
return responseDetails;
|
|
215
|
+
}
|
|
216
|
+
catch (err) {
|
|
217
|
+
const errorInfo = err;
|
|
218
|
+
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
219
|
+
return errorStatus;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
async deleteVoicemail(messageId) {
|
|
223
|
+
const loggerContext = {
|
|
224
|
+
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
225
|
+
method: 'deleteVoicemail',
|
|
226
|
+
};
|
|
227
|
+
try {
|
|
228
|
+
const voicemailContentUrl = `${this.xsiEndpoint}${messageId}`;
|
|
229
|
+
const response = await this.webex.request({
|
|
230
|
+
uri: voicemailContentUrl,
|
|
231
|
+
method: HTTP_METHODS.DELETE,
|
|
232
|
+
});
|
|
233
|
+
const responseDetails = {
|
|
234
|
+
statusCode: Number(response.statusCode),
|
|
235
|
+
data: {},
|
|
236
|
+
message: SUCCESS_MESSAGE,
|
|
237
|
+
};
|
|
238
|
+
return responseDetails;
|
|
239
|
+
}
|
|
240
|
+
catch (err) {
|
|
241
|
+
const errorInfo = err;
|
|
242
|
+
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
243
|
+
return errorStatus;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
async getVMTranscript(messageId) {
|
|
247
|
+
const loggerContext = {
|
|
248
|
+
file: WEBEX_CALLING_CONNECTOR_FILE,
|
|
249
|
+
method: 'getVMTranscript',
|
|
250
|
+
};
|
|
251
|
+
try {
|
|
252
|
+
const voicemailContentUrl = `${this.xsiEndpoint}${messageId}/${TRANSCRIPT}`;
|
|
253
|
+
const response = await this.webex.request({
|
|
254
|
+
uri: voicemailContentUrl,
|
|
255
|
+
method: HTTP_METHODS.GET,
|
|
256
|
+
});
|
|
257
|
+
const parser = new DOMParser();
|
|
258
|
+
const xmlDOM = parser.parseFromString(response[RAW_REQUEST].response, XML_TYPE);
|
|
259
|
+
const status = xmlDOM.getElementsByTagName(TRANSCRIPT_STATUS)[0];
|
|
260
|
+
const transcript = xmlDOM.getElementsByTagName(TRANSCRIPT_CONTENT)[0];
|
|
261
|
+
const responseDetails = {
|
|
262
|
+
statusCode: Number(response.statusCode),
|
|
263
|
+
data: {
|
|
264
|
+
voicemailTranscript: transcript?.textContent,
|
|
265
|
+
},
|
|
266
|
+
message: status.textContent,
|
|
267
|
+
};
|
|
268
|
+
return responseDetails;
|
|
269
|
+
}
|
|
270
|
+
catch (err) {
|
|
271
|
+
const errorInfo = err;
|
|
272
|
+
const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
|
|
273
|
+
return errorStatus;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
resolveContact(callingPartyInfo) {
|
|
277
|
+
return resolveContact(callingPartyInfo);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
export const API_V1 = 'api/v1';
|
|
2
|
-
export const VOICEMAIL_FILE = 'VoicemailClient';
|
|
3
|
-
export const BROADWORKS_VOICEMAIL_FILE = 'BroadworksBackendConnector';
|
|
4
|
-
export const CALLS = 'calls';
|
|
5
|
-
export const BW_TOKEN_FETCH_ENDPOINT = '/idp/bwtoken/fetch';
|
|
6
|
-
export const JSON_FORMAT = '?format=json';
|
|
7
|
-
export const LIMIT = '&limit';
|
|
8
|
-
export const MARK_AS_READ = 'MarkAsRead';
|
|
9
|
-
export const MARK_AS_UNREAD = 'MarkAsUnread';
|
|
10
|
-
export const MESSAGE_MEDIA_CONTENT = 'messageMediaContent';
|
|
11
|
-
export const MESSAGE_SUMMARY = 'MessageSummary';
|
|
12
|
-
export const NO_VOICEMAIL_MSG = 'No additional voicemails';
|
|
13
|
-
export const NO_VOICEMAIL_STATUS_CODE = 204;
|
|
14
|
-
export const OFFSET = '?offset';
|
|
15
|
-
export const OFFSET_INDEX = 0;
|
|
16
|
-
export const OFFSET_LIMIT = 100;
|
|
17
|
-
export const PREFIX = 2;
|
|
18
|
-
export const RADIX_RAND = 36;
|
|
19
|
-
export const SORT_ORDER = '&sortOrder';
|
|
20
|
-
export const TRANSCRIPT_STATUS = 'status';
|
|
21
|
-
export const SUMMARY = 'summary';
|
|
22
|
-
export const TRANSCRIPT_CONTENT = 'content';
|
|
23
|
-
export const VMGATEWAY = 'vmgateway';
|
|
24
|
-
export const VOICEMAILS = 'voicemails';
|
|
25
|
-
export const VOICE_MESSAGING_MESSAGES = 'VoiceMessagingMessages';
|
|
26
|
-
export const NEW_MESSAGES = 'newMessages';
|
|
27
|
-
export const OLD_MESSAGES = 'oldMessages';
|
|
28
|
-
export const NEW_URGENT_MESSAGES = 'newUrgentMessages';
|
|
29
|
-
export const OLD_URGENT_MESSAGES = 'oldUrgentMessages';
|
|
1
|
+
export const API_V1 = 'api/v1';
|
|
2
|
+
export const VOICEMAIL_FILE = 'VoicemailClient';
|
|
3
|
+
export const BROADWORKS_VOICEMAIL_FILE = 'BroadworksBackendConnector';
|
|
4
|
+
export const CALLS = 'calls';
|
|
5
|
+
export const BW_TOKEN_FETCH_ENDPOINT = '/idp/bwtoken/fetch';
|
|
6
|
+
export const JSON_FORMAT = '?format=json';
|
|
7
|
+
export const LIMIT = '&limit';
|
|
8
|
+
export const MARK_AS_READ = 'MarkAsRead';
|
|
9
|
+
export const MARK_AS_UNREAD = 'MarkAsUnread';
|
|
10
|
+
export const MESSAGE_MEDIA_CONTENT = 'messageMediaContent';
|
|
11
|
+
export const MESSAGE_SUMMARY = 'MessageSummary';
|
|
12
|
+
export const NO_VOICEMAIL_MSG = 'No additional voicemails';
|
|
13
|
+
export const NO_VOICEMAIL_STATUS_CODE = 204;
|
|
14
|
+
export const OFFSET = '?offset';
|
|
15
|
+
export const OFFSET_INDEX = 0;
|
|
16
|
+
export const OFFSET_LIMIT = 100;
|
|
17
|
+
export const PREFIX = 2;
|
|
18
|
+
export const RADIX_RAND = 36;
|
|
19
|
+
export const SORT_ORDER = '&sortOrder';
|
|
20
|
+
export const TRANSCRIPT_STATUS = 'status';
|
|
21
|
+
export const SUMMARY = 'summary';
|
|
22
|
+
export const TRANSCRIPT_CONTENT = 'content';
|
|
23
|
+
export const VMGATEWAY = 'vmgateway';
|
|
24
|
+
export const VOICEMAILS = 'voicemails';
|
|
25
|
+
export const VOICE_MESSAGING_MESSAGES = 'VoiceMessagingMessages';
|
|
26
|
+
export const NEW_MESSAGES = 'newMessages';
|
|
27
|
+
export const OLD_MESSAGES = 'oldMessages';
|
|
28
|
+
export const NEW_URGENT_MESSAGES = 'newUrgentMessages';
|
|
29
|
+
export const OLD_URGENT_MESSAGES = 'oldUrgentMessages';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|