@webex/calling 3.8.0-next.32 → 3.8.0-next.34
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/CallHistory/CallHistory.js +100 -63
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/CallHistory.test.js +115 -19
- package/dist/CallHistory/CallHistory.test.js.map +1 -1
- package/dist/CallHistory/constants.js +9 -1
- package/dist/CallHistory/constants.js.map +1 -1
- package/dist/CallSettings/CallSettings.js +46 -13
- package/dist/CallSettings/CallSettings.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.js +62 -18
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +70 -7
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.js +153 -103
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.test.js +52 -15
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/constants.js +15 -1
- package/dist/CallSettings/constants.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +148 -107
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +53 -24
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/calling/call.js +251 -189
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +96 -41
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.js +73 -48
- package/dist/CallingClient/calling/callManager.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +96 -37
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/constants.js +101 -1
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/index.js +47 -18
- package/dist/CallingClient/line/index.js.map +1 -1
- package/dist/CallingClient/registration/register.js +151 -115
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +43 -21
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +156 -102
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +197 -49
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Contacts/constants.js +11 -1
- package/dist/Contacts/constants.js.map +1 -1
- package/dist/Events/impl/index.js +1 -1
- package/dist/Events/impl/index.js.map +1 -1
- package/dist/Metrics/index.js +93 -39
- package/dist/Metrics/index.js.map +1 -1
- package/dist/Metrics/types.js +4 -1
- package/dist/Metrics/types.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.js +154 -91
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.test.js +99 -19
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.js +105 -54
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.test.js +127 -17
- package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/Voicemail.js +198 -79
- package/dist/Voicemail/Voicemail.js.map +1 -1
- package/dist/Voicemail/Voicemail.test.js +188 -23
- package/dist/Voicemail/Voicemail.test.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js +123 -76
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.test.js +69 -6
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/constants.js +25 -1
- package/dist/Voicemail/constants.js.map +1 -1
- package/dist/common/Utils.js +113 -64
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +154 -21
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/constants.js +2 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/types.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +32 -13
- package/dist/module/CallHistory/constants.js +6 -0
- package/dist/module/CallSettings/CallSettings.js +36 -3
- package/dist/module/CallSettings/UcmBackendConnector.js +50 -5
- package/dist/module/CallSettings/WxCallBackendConnector.js +54 -18
- package/dist/module/CallSettings/constants.js +12 -0
- package/dist/module/CallingClient/CallingClient.js +52 -14
- package/dist/module/CallingClient/calling/call.js +172 -121
- package/dist/module/CallingClient/calling/callManager.js +51 -26
- package/dist/module/CallingClient/constants.js +98 -0
- package/dist/module/CallingClient/line/index.js +37 -8
- package/dist/module/CallingClient/registration/register.js +37 -11
- package/dist/module/Contacts/ContactsClient.js +65 -21
- package/dist/module/Contacts/constants.js +10 -0
- package/dist/module/Events/impl/index.js +1 -1
- package/dist/module/Metrics/index.js +49 -1
- package/dist/module/Metrics/types.js +3 -0
- package/dist/module/Voicemail/BroadworksBackendConnector.js +66 -17
- package/dist/module/Voicemail/UcmBackendConnector.js +51 -11
- package/dist/module/Voicemail/Voicemail.js +109 -9
- package/dist/module/Voicemail/WxCallBackendConnector.js +50 -17
- package/dist/module/Voicemail/constants.js +21 -0
- package/dist/module/common/Utils.js +26 -4
- package/dist/module/common/constants.js +1 -0
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallHistory/constants.d.ts +6 -0
- package/dist/types/CallHistory/constants.d.ts.map +1 -1
- package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
- package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/constants.d.ts +12 -0
- package/dist/types/CallSettings/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts +2 -3
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- 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 +98 -0
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/line/index.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Contacts/constants.d.ts +10 -0
- package/dist/types/Contacts/constants.d.ts.map +1 -1
- package/dist/types/Metrics/index.d.ts +1 -1
- package/dist/types/Metrics/index.d.ts.map +1 -1
- package/dist/types/Metrics/types.d.ts +5 -1
- package/dist/types/Metrics/types.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +8 -2
- 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 +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/Voicemail/constants.d.ts +21 -0
- package/dist/types/Voicemail/constants.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts +2 -2
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/constants.d.ts +1 -0
- package/dist/types/common/constants.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +12 -0
- package/dist/types/common/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { METHOD_START_MESSAGE } from '../../common/constants';
|
|
2
|
+
import { CALL_MANAGER_FILE, METHODS } from '../constants';
|
|
2
3
|
import { CALLING_CLIENT_EVENT_KEYS, LINE_EVENT_KEYS } from '../../Events/types';
|
|
3
4
|
import { Eventing } from '../../Events/impl';
|
|
4
5
|
import SDKConnector from '../../SDKConnector';
|
|
@@ -28,6 +29,10 @@ export class CallManager extends Eventing {
|
|
|
28
29
|
this.listenForWsEvents();
|
|
29
30
|
}
|
|
30
31
|
createCall = (direction, deviceId, lineId, destination) => {
|
|
32
|
+
log.info(`${METHOD_START_MESSAGE} with ${direction}, ${deviceId} and ${lineId}`, {
|
|
33
|
+
file: CALL_MANAGER_FILE,
|
|
34
|
+
method: METHODS.CREATE_CALL,
|
|
35
|
+
});
|
|
31
36
|
log.log('Creating call object', {});
|
|
32
37
|
const newCall = createCall(this.activeMobiusUrl, this.webex, direction, deviceId, lineId, (correlationId) => {
|
|
33
38
|
delete this.callCollection[correlationId];
|
|
@@ -35,6 +40,10 @@ export class CallManager extends Eventing {
|
|
|
35
40
|
log.info(`DELETE:: Deleted corelationId: ${newCall.getCorrelationId()} from CallManager, Number of call records :- ${activeCalls}`, {});
|
|
36
41
|
if (activeCalls === 0) {
|
|
37
42
|
this.emit(CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED);
|
|
43
|
+
log.log('All calls have been cleared', {
|
|
44
|
+
file: CALL_MANAGER_FILE,
|
|
45
|
+
method: METHODS.CREATE_CALL,
|
|
46
|
+
});
|
|
38
47
|
}
|
|
39
48
|
}, this.serviceIndicator, destination);
|
|
40
49
|
this.callCollection[newCall.getCorrelationId()] = newCall;
|
|
@@ -44,20 +53,32 @@ export class CallManager extends Eventing {
|
|
|
44
53
|
};
|
|
45
54
|
updateActiveMobius(url) {
|
|
46
55
|
this.activeMobiusUrl = url;
|
|
56
|
+
log.log(`Successfully updated active Mobius URL to: ${url}`, {
|
|
57
|
+
file: CALL_MANAGER_FILE,
|
|
58
|
+
method: METHODS.UPDATE_ACTIVE_MOBIUS,
|
|
59
|
+
});
|
|
47
60
|
}
|
|
48
61
|
listenForWsEvents() {
|
|
49
62
|
this.sdkConnector.registerListener('event:mobius', async (event) => {
|
|
50
63
|
this.dequeueWsEvents(event);
|
|
51
64
|
});
|
|
65
|
+
log.info('Successfully registered listener for Mobius events', {
|
|
66
|
+
file: CALL_MANAGER_FILE,
|
|
67
|
+
method: METHODS.REGISTER_SESSIONS_LISTENER,
|
|
68
|
+
});
|
|
52
69
|
}
|
|
53
70
|
dequeueWsEvents(event) {
|
|
71
|
+
log.info(`${METHOD_START_MESSAGE} with event ${event}`, {
|
|
72
|
+
file: CALL_MANAGER_FILE,
|
|
73
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
74
|
+
});
|
|
54
75
|
const mobiusEvent = event;
|
|
55
76
|
const { callId, correlationId } = mobiusEvent.data;
|
|
56
77
|
switch (mobiusEvent.data.eventType) {
|
|
57
78
|
case MobiusEventType.CALL_SETUP: {
|
|
58
79
|
log.log(`Received call Setup message for call: ${callId}`, {
|
|
59
80
|
file: CALL_MANAGER_FILE,
|
|
60
|
-
method:
|
|
81
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
61
82
|
});
|
|
62
83
|
if (mobiusEvent.data.midCallService) {
|
|
63
84
|
mobiusEvent.data.midCallService.forEach((midCallEvent) => {
|
|
@@ -66,9 +87,9 @@ export class CallManager extends Eventing {
|
|
|
66
87
|
call.handleMidCallEvent(midCallEvent);
|
|
67
88
|
}
|
|
68
89
|
else {
|
|
69
|
-
log.
|
|
90
|
+
log.info(`Dropping midcall event of type: ${midCallEvent.eventType} as it doesn't match with any existing call`, {
|
|
70
91
|
file: CALL_MANAGER_FILE,
|
|
71
|
-
method:
|
|
92
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
72
93
|
});
|
|
73
94
|
}
|
|
74
95
|
});
|
|
@@ -81,13 +102,13 @@ export class CallManager extends Eventing {
|
|
|
81
102
|
newCall = this.createCall(CallDirection.INBOUND, mobiusEvent.data.deviceId, lineId, {});
|
|
82
103
|
log.log(`New incoming call created with correlationId from Call Setup message: ${newCall.getCorrelationId()}`, {
|
|
83
104
|
file: CALL_MANAGER_FILE,
|
|
84
|
-
method:
|
|
105
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
85
106
|
});
|
|
86
107
|
newCall.setCallId(callId);
|
|
87
108
|
if (mobiusEvent.data.broadworksCorrelationInfo) {
|
|
88
|
-
log.
|
|
109
|
+
log.info(`Found broadworksCorrelationInfo: ${mobiusEvent.data.broadworksCorrelationInfo}`, {
|
|
89
110
|
file: CALL_MANAGER_FILE,
|
|
90
|
-
method:
|
|
111
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
91
112
|
});
|
|
92
113
|
newCall.setBroadworksCorrelationInfo(mobiusEvent.data.broadworksCorrelationInfo);
|
|
93
114
|
}
|
|
@@ -95,14 +116,14 @@ export class CallManager extends Eventing {
|
|
|
95
116
|
else {
|
|
96
117
|
log.info(`Found the call Object with a matching callId: ${callId} from our records with correlationId: ${newId}`, {
|
|
97
118
|
file: CALL_MANAGER_FILE,
|
|
98
|
-
method:
|
|
119
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
99
120
|
});
|
|
100
121
|
newCall = this.getCall(newId);
|
|
101
122
|
}
|
|
102
123
|
if (mobiusEvent.data.callerId) {
|
|
103
124
|
log.info('Processing Caller-Id data', {
|
|
104
125
|
file: CALL_MANAGER_FILE,
|
|
105
|
-
method:
|
|
126
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
106
127
|
});
|
|
107
128
|
newCall.startCallerIdResolution(mobiusEvent.data.callerId);
|
|
108
129
|
}
|
|
@@ -113,7 +134,7 @@ export class CallManager extends Eventing {
|
|
|
113
134
|
case MobiusEventType.CALL_PROGRESS: {
|
|
114
135
|
log.log(`Received call progress mobiusEvent for call: ${correlationId}`, {
|
|
115
136
|
file: CALL_MANAGER_FILE,
|
|
116
|
-
method:
|
|
137
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
117
138
|
});
|
|
118
139
|
const call = this.getCall(correlationId);
|
|
119
140
|
call.sendCallStateMachineEvt({ type: 'E_RECV_CALL_PROGRESS', data: mobiusEvent.data });
|
|
@@ -122,7 +143,7 @@ export class CallManager extends Eventing {
|
|
|
122
143
|
case MobiusEventType.CALL_MEDIA: {
|
|
123
144
|
log.log(`Received call media mobiusEvent for call: ${correlationId}`, {
|
|
124
145
|
file: CALL_MANAGER_FILE,
|
|
125
|
-
method:
|
|
146
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
126
147
|
});
|
|
127
148
|
let activeCall;
|
|
128
149
|
if (correlationId) {
|
|
@@ -133,7 +154,7 @@ export class CallManager extends Eventing {
|
|
|
133
154
|
if (newId) {
|
|
134
155
|
log.info(`Found the call Object with a matching callId: ${callId} from our records with correlationId: ${newId}`, {
|
|
135
156
|
file: CALL_MANAGER_FILE,
|
|
136
|
-
method:
|
|
157
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
137
158
|
});
|
|
138
159
|
activeCall = this.getCall(newId);
|
|
139
160
|
}
|
|
@@ -142,7 +163,7 @@ export class CallManager extends Eventing {
|
|
|
142
163
|
activeCall = this.createCall(CallDirection.INBOUND, mobiusEvent.data.deviceId, lineId, {});
|
|
143
164
|
log.log(`New incoming call created with correlationId from ROAP Message: ${activeCall.getCorrelationId()}`, {
|
|
144
165
|
file: CALL_MANAGER_FILE,
|
|
145
|
-
method:
|
|
166
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
146
167
|
});
|
|
147
168
|
activeCall.setCallId(callId);
|
|
148
169
|
}
|
|
@@ -150,18 +171,18 @@ export class CallManager extends Eventing {
|
|
|
150
171
|
if (activeCall) {
|
|
151
172
|
log.info(`SDP from mobius ${mobiusEvent.data.message?.sdp}`, {
|
|
152
173
|
file: CALL_MANAGER_FILE,
|
|
153
|
-
method:
|
|
174
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
154
175
|
});
|
|
155
176
|
log.log(`ROAP message from mobius with type: ${mobiusEvent.data.message?.messageType}, seq: ${mobiusEvent.data.message?.seq} , version: ${mobiusEvent.data.message?.version}`, {
|
|
156
177
|
file: CALL_MANAGER_FILE,
|
|
157
|
-
method:
|
|
178
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
158
179
|
});
|
|
159
180
|
const mediaState = mobiusEvent.data.message?.messageType;
|
|
160
181
|
switch (mediaState) {
|
|
161
182
|
case MediaState.OFFER: {
|
|
162
183
|
log.log('Received OFFER', {
|
|
163
184
|
file: CALL_MANAGER_FILE,
|
|
164
|
-
method:
|
|
185
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
165
186
|
});
|
|
166
187
|
activeCall.sendMediaStateMachineEvt({
|
|
167
188
|
type: 'E_RECV_ROAP_OFFER',
|
|
@@ -172,7 +193,7 @@ export class CallManager extends Eventing {
|
|
|
172
193
|
case MediaState.ANSWER: {
|
|
173
194
|
log.log('Received ANSWER', {
|
|
174
195
|
file: CALL_MANAGER_FILE,
|
|
175
|
-
method:
|
|
196
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
176
197
|
});
|
|
177
198
|
activeCall.sendMediaStateMachineEvt({
|
|
178
199
|
type: 'E_RECV_ROAP_ANSWER',
|
|
@@ -183,7 +204,7 @@ export class CallManager extends Eventing {
|
|
|
183
204
|
case MediaState.OFFER_REQUEST: {
|
|
184
205
|
log.log('Received OFFER_REQUEST', {
|
|
185
206
|
file: CALL_MANAGER_FILE,
|
|
186
|
-
method:
|
|
207
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
187
208
|
});
|
|
188
209
|
activeCall.sendMediaStateMachineEvt({
|
|
189
210
|
type: 'E_RECV_ROAP_OFFER_REQUEST',
|
|
@@ -194,7 +215,7 @@ export class CallManager extends Eventing {
|
|
|
194
215
|
case MediaState.OK: {
|
|
195
216
|
log.log('Received OK', {
|
|
196
217
|
file: CALL_MANAGER_FILE,
|
|
197
|
-
method:
|
|
218
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
198
219
|
});
|
|
199
220
|
const mediaOk = {
|
|
200
221
|
received: true,
|
|
@@ -209,22 +230,22 @@ export class CallManager extends Eventing {
|
|
|
209
230
|
case MediaState.ERROR: {
|
|
210
231
|
log.log('Received Error...', {
|
|
211
232
|
file: CALL_MANAGER_FILE,
|
|
212
|
-
method:
|
|
233
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
213
234
|
});
|
|
214
235
|
break;
|
|
215
236
|
}
|
|
216
237
|
default: {
|
|
217
238
|
log.log(`Unknown Media mobiusEvent: ${mediaState} `, {
|
|
218
239
|
file: CALL_MANAGER_FILE,
|
|
219
|
-
method:
|
|
240
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
220
241
|
});
|
|
221
242
|
}
|
|
222
243
|
}
|
|
223
244
|
}
|
|
224
245
|
else {
|
|
225
|
-
log.
|
|
246
|
+
log.info(`CorrelationId: ${correlationId} doesn't exist , discarding..`, {
|
|
226
247
|
file: CALL_MANAGER_FILE,
|
|
227
|
-
method:
|
|
248
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
228
249
|
});
|
|
229
250
|
}
|
|
230
251
|
break;
|
|
@@ -232,7 +253,7 @@ export class CallManager extends Eventing {
|
|
|
232
253
|
case MobiusEventType.CALL_CONNECTED: {
|
|
233
254
|
log.log(`Received call connect for call: ${correlationId}`, {
|
|
234
255
|
file: CALL_MANAGER_FILE,
|
|
235
|
-
method:
|
|
256
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
236
257
|
});
|
|
237
258
|
const call = this.getCall(correlationId);
|
|
238
259
|
call.sendCallStateMachineEvt({ type: 'E_RECV_CALL_CONNECT', data: mobiusEvent.data });
|
|
@@ -241,7 +262,7 @@ export class CallManager extends Eventing {
|
|
|
241
262
|
case MobiusEventType.CALL_DISCONNECTED: {
|
|
242
263
|
log.log(`Received call disconnect for call: ${correlationId}`, {
|
|
243
264
|
file: CALL_MANAGER_FILE,
|
|
244
|
-
method:
|
|
265
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
245
266
|
});
|
|
246
267
|
const call = this.getCall(correlationId);
|
|
247
268
|
if (call) {
|
|
@@ -252,7 +273,7 @@ export class CallManager extends Eventing {
|
|
|
252
273
|
default: {
|
|
253
274
|
log.log(`Unknown Call Event mobiusEvent: ${mobiusEvent.data.eventType}`, {
|
|
254
275
|
file: CALL_MANAGER_FILE,
|
|
255
|
-
method:
|
|
276
|
+
method: METHODS.DEQUEUE_WS_EVENTS,
|
|
256
277
|
});
|
|
257
278
|
}
|
|
258
279
|
}
|
|
@@ -265,6 +286,10 @@ export class CallManager extends Eventing {
|
|
|
265
286
|
};
|
|
266
287
|
updateLine(deviceId, line) {
|
|
267
288
|
this.lineDict[deviceId] = line;
|
|
289
|
+
log.log(`Successfully updated line for deviceId: ${deviceId}`, {
|
|
290
|
+
file: CALL_MANAGER_FILE,
|
|
291
|
+
method: METHODS.UPDATE_LINE,
|
|
292
|
+
});
|
|
268
293
|
}
|
|
269
294
|
getLineId(deviceId) {
|
|
270
295
|
return this.lineDict[deviceId].lineId;
|
|
@@ -124,3 +124,101 @@ export const MOBIUS_EU_PROD = 'mobius-eu-central-1.prod.infra.webex.com';
|
|
|
124
124
|
export const MOBIUS_US_INT = 'mobius-us-east-1.int.infra.webex.com';
|
|
125
125
|
export const MOBIUS_EU_INT = 'mobius-eu-central-1.int.infra.webex.com';
|
|
126
126
|
export const ICE_CANDIDATES_TIMEOUT = 3000;
|
|
127
|
+
export const METHODS = {
|
|
128
|
+
CONSTRUCTOR: 'constructor',
|
|
129
|
+
CREATE_CALL: 'createCall',
|
|
130
|
+
HANDLE_INCOMING_CALL_SETUP: 'handleIncomingCallSetup',
|
|
131
|
+
HANDLE_OUTGOING_CALL_SETUP: 'handleOutgoingCallSetup',
|
|
132
|
+
HANDLE_CALL_HOLD: 'handleCallHold',
|
|
133
|
+
HANDLE_CALL_RESUME: 'handleCallResume',
|
|
134
|
+
HANDLE_INCOMING_CALL_PROGRESS: 'handleIncomingCallProgress',
|
|
135
|
+
HANDLE_INCOMING_ROAP_OFFER_REQUEST: 'handleIncomingRoapOfferRequest',
|
|
136
|
+
HANDLE_OUTGOING_CALL_ALERTING: 'handleOutgoingCallAlerting',
|
|
137
|
+
HANDLE_INCOMING_CALL_CONNECT: 'handleIncomingCallConnect',
|
|
138
|
+
HANDLE_OUTGOING_CALL_CONNECT: 'handleOutgoingCallConnect',
|
|
139
|
+
HANDLE_INCOMING_CALL_DISCONNECT: 'handleIncomingCallDisconnect',
|
|
140
|
+
HANDLE_OUTGOING_CALL_DISCONNECT: 'handleOutgoingCallDisconnect',
|
|
141
|
+
HANDLE_CALL_ESTABLISHED: 'handleCallEstablished',
|
|
142
|
+
HANDLE_UNKNOWN_STATE: 'handleUnknownState',
|
|
143
|
+
HANDLE_TIMEOUT: 'handleTimeout',
|
|
144
|
+
GET_EMITTER_CALLBACK: 'getEmitterCallback',
|
|
145
|
+
HANDLE_ROAP_ESTABLISHED: 'handleRoapEstablished',
|
|
146
|
+
HANDLE_ROAP_ERROR: 'handleRoapError',
|
|
147
|
+
HANDLE_OUTGOING_ROAP_OFFER: 'handleOutgoingRoapOffer',
|
|
148
|
+
HANDLE_OUTGOING_ROAP_ANSWER: 'handleOutgoingRoapAnswer',
|
|
149
|
+
HANDLE_INCOMING_ROAP_OFFER: 'handleIncomingRoapOffer',
|
|
150
|
+
HANDLE_INCOMING_ROAP_ANSWER: 'handleIncomingRoapAnswer',
|
|
151
|
+
FORCE_SEND_STATS_REPORT: 'forceSendStatsReport',
|
|
152
|
+
UPDATE_ACTIVE_MOBIUS: 'updateActiveMobius',
|
|
153
|
+
DEQUEUE_WS_EVENTS: 'dequeueWsEvents',
|
|
154
|
+
GET_CALL: 'getCall',
|
|
155
|
+
GET_ACTIVE_CALLS: 'getActiveCalls',
|
|
156
|
+
UPDATE_LINE: 'updateLine',
|
|
157
|
+
GET_LINE_ID: 'getLineId',
|
|
158
|
+
INIT_MEDIA_CONNECTION: 'initMediaConnection',
|
|
159
|
+
GET_DIRECTION: 'getDirection',
|
|
160
|
+
GET_CALL_ID: 'getCallId',
|
|
161
|
+
GET_CORRELATION_ID: 'getCorrelationId',
|
|
162
|
+
SEND_CALL_STATE_MACHINE_EVT: 'sendCallStateMachineEvt',
|
|
163
|
+
SEND_MEDIA_STATE_MACHINE_EVT: 'sendMediaStateMachineEvt',
|
|
164
|
+
SET_CALL_ID: 'setCallId',
|
|
165
|
+
SET_DISCONNECT_REASON: 'setDisconnectReason',
|
|
166
|
+
GET_DISCONNECT_REASON: 'getDisconnectReason',
|
|
167
|
+
ANSWER: 'answer',
|
|
168
|
+
DIAL: 'dial',
|
|
169
|
+
POST: 'post',
|
|
170
|
+
PATCH: 'patch',
|
|
171
|
+
POST_SS_REQUEST: 'postSSRequest',
|
|
172
|
+
POST_STATUS: 'postStatus',
|
|
173
|
+
COMPLETE_TRANSFER: 'completeTransfer',
|
|
174
|
+
GET_CALL_STATS: 'getCallStats',
|
|
175
|
+
POST_MEDIA: 'postMedia',
|
|
176
|
+
MEDIA_ROAP_EVENTS_LISTENER: 'mediaRoapEventsListener',
|
|
177
|
+
MEDIA_TRACK_LISTENER: 'mediaTrackListener',
|
|
178
|
+
ON_EFFECT_ENABLED: 'onEffectEnabled',
|
|
179
|
+
ON_EFFECT_DISABLED: 'onEffectDisabled',
|
|
180
|
+
UPDATE_TRACK: 'updateTrack',
|
|
181
|
+
REGISTER_EFFECT_LISTENER: 'registerEffectListener',
|
|
182
|
+
UNREGISTER_LISTENERS: 'unregisterListeners',
|
|
183
|
+
REGISTER_LISTENERS: 'registerListeners',
|
|
184
|
+
DELETE: 'delete',
|
|
185
|
+
SUBMIT_CALL_ERROR_METRIC: 'submitCallErrorMetric',
|
|
186
|
+
HANDLE_MID_CALL_EVENT: 'handleMidCallEvent',
|
|
187
|
+
GET_CALLER_INFO: 'getCallerInfo',
|
|
188
|
+
END: 'end',
|
|
189
|
+
DO_HOLD_RESUME: 'doHoldResume',
|
|
190
|
+
START_CALLER_ID_RESOLUTION: 'startCallerIdResolution',
|
|
191
|
+
SEND_DIGIT: 'sendDigit',
|
|
192
|
+
MUTE: 'mute',
|
|
193
|
+
IS_MUTED: 'isMuted',
|
|
194
|
+
IS_CONNECTED: 'isConnected',
|
|
195
|
+
IS_HELD: 'isHeld',
|
|
196
|
+
UPDATE_MEDIA: 'updateMedia',
|
|
197
|
+
SET_BROADWORKS_CORRELATION_INFO: 'setBroadworksCorrelationInfo',
|
|
198
|
+
GET_BROADWORKS_CORRELATION_INFO: 'getBroadworksCorrelationInfo',
|
|
199
|
+
GET_CALL_RTP_STATS: 'getCallRtpStats',
|
|
200
|
+
REGISTER: 'register',
|
|
201
|
+
DEREGISTER: 'deregister',
|
|
202
|
+
NORMALIZE_LINE: 'normalizeLine',
|
|
203
|
+
LINE_EMITTER: 'lineEmitter',
|
|
204
|
+
GET_LOGGING_LEVEL: 'getLoggingLevel',
|
|
205
|
+
GET_ACTIVE_MOBIUS_URL: 'getActiveMobiusUrl',
|
|
206
|
+
GET_STATUS: 'getStatus',
|
|
207
|
+
GET_DEVICE_ID: 'getDeviceId',
|
|
208
|
+
MAKE_CALL: 'makeCall',
|
|
209
|
+
INCOMING_CALL_LISTENER: 'incomingCallListener',
|
|
210
|
+
SET_MOBIUS_SERVERS: 'setMobiusServers',
|
|
211
|
+
HANDLE_CONNECTION_RESTORATION: 'handleConnectionRestoration',
|
|
212
|
+
RECONNECT_ON_FAILURE: 'reconnectOnFailure',
|
|
213
|
+
DETECT_NETWORK_CHANGE: 'detectNetworkChange',
|
|
214
|
+
GET_CLIENT_REGION_INFO: 'getClientRegionInfo',
|
|
215
|
+
GET_MOBIUS_SERVERS: 'getMobiusServers',
|
|
216
|
+
REGISTER_CALLS_CLEARED_LISTENER: 'registerCallsClearedListener',
|
|
217
|
+
CALLS_CLEARED_HANDLER: 'callsClearedHandler',
|
|
218
|
+
REGISTER_SESSIONS_LISTENER: 'registerSessionsListener',
|
|
219
|
+
CREATE_LINE: 'createLine',
|
|
220
|
+
GET_LINES: 'getLines',
|
|
221
|
+
UPLOAD_LOGS: 'uploadLogs',
|
|
222
|
+
GET_SDK_CONNECTOR: 'getSDKConnector',
|
|
223
|
+
GET_CONNECTED_CALL: 'getConnectedCall',
|
|
224
|
+
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { v4 as uuid } from 'uuid';
|
|
2
|
+
import { METHOD_START_MESSAGE } from '../../common/constants';
|
|
2
3
|
import { CallDirection, RegistrationStatus, ServiceIndicator, } from '../../common/types';
|
|
3
4
|
import { LINE_EVENTS } from './types';
|
|
4
|
-
import { LINE_FILE, VALID_PHONE_REGEX } from '../constants';
|
|
5
|
+
import { LINE_FILE, METHODS, VALID_PHONE_REGEX } from '../constants';
|
|
5
6
|
import log from '../../Logger';
|
|
6
7
|
import { createRegistration } from '../registration';
|
|
7
8
|
import { Eventing } from '../../Events/impl';
|
|
@@ -59,6 +60,10 @@ export default class Line extends Eventing {
|
|
|
59
60
|
this.incomingCallListener();
|
|
60
61
|
}
|
|
61
62
|
async register() {
|
|
63
|
+
log.info(METHOD_START_MESSAGE, {
|
|
64
|
+
file: LINE_FILE,
|
|
65
|
+
method: METHODS.REGISTER,
|
|
66
|
+
});
|
|
62
67
|
await this.#mutex.runExclusive(async () => {
|
|
63
68
|
this.emit(LINE_EVENTS.CONNECTING);
|
|
64
69
|
this.registration.setMobiusServers(this.#primaryMobiusUris, this.#backupMobiusUris);
|
|
@@ -69,6 +74,10 @@ export default class Line extends Eventing {
|
|
|
69
74
|
}
|
|
70
75
|
}
|
|
71
76
|
async deregister() {
|
|
77
|
+
log.info(METHOD_START_MESSAGE, {
|
|
78
|
+
file: LINE_FILE,
|
|
79
|
+
method: METHODS.DEREGISTER,
|
|
80
|
+
});
|
|
72
81
|
await this.registration.deregister();
|
|
73
82
|
this.registration.setStatus(RegistrationStatus.IDLE);
|
|
74
83
|
}
|
|
@@ -86,6 +95,10 @@ export default class Line extends Eventing {
|
|
|
86
95
|
this.voicePortalExtension = voicePortalExtension;
|
|
87
96
|
}
|
|
88
97
|
lineEmitter = (event, deviceInfo, lineError) => {
|
|
98
|
+
log.info(METHOD_START_MESSAGE, {
|
|
99
|
+
file: LINE_FILE,
|
|
100
|
+
method: METHODS.LINE_EMITTER,
|
|
101
|
+
});
|
|
89
102
|
switch (event) {
|
|
90
103
|
case LINE_EVENTS.REGISTERED:
|
|
91
104
|
if (deviceInfo) {
|
|
@@ -116,6 +129,10 @@ export default class Line extends Eventing {
|
|
|
116
129
|
getStatus = () => this.registration.getStatus();
|
|
117
130
|
getDeviceId = () => this.registration.getDeviceInfo().device?.deviceId;
|
|
118
131
|
makeCall = (dest) => {
|
|
132
|
+
log.info(METHOD_START_MESSAGE, {
|
|
133
|
+
file: LINE_FILE,
|
|
134
|
+
method: METHODS.MAKE_CALL,
|
|
135
|
+
});
|
|
119
136
|
let call;
|
|
120
137
|
if (dest) {
|
|
121
138
|
const match = dest.address.match(VALID_PHONE_REGEX);
|
|
@@ -129,10 +146,16 @@ export default class Line extends Eventing {
|
|
|
129
146
|
address: `tel:${sanitizedNumber}`,
|
|
130
147
|
};
|
|
131
148
|
call = this.callManager.createCall(CallDirection.OUTBOUND, this.registration.getDeviceInfo().device?.deviceId, this.lineId, formattedDest);
|
|
132
|
-
log.log(`New call created, callId: ${call
|
|
149
|
+
log.log(`New call created, callId: ${call?.getCallId()}`, {
|
|
150
|
+
file: LINE_FILE,
|
|
151
|
+
method: METHODS.MAKE_CALL,
|
|
152
|
+
});
|
|
133
153
|
}
|
|
134
154
|
else {
|
|
135
|
-
log.warn('Invalid phone number detected', {
|
|
155
|
+
log.warn('Invalid phone number detected', {
|
|
156
|
+
file: LINE_FILE,
|
|
157
|
+
method: METHODS.MAKE_CALL,
|
|
158
|
+
});
|
|
136
159
|
const err = new LineError('An invalid phone number was detected. Check the number and try again.', {}, ERROR_TYPE.CALL_ERROR, RegistrationStatus.ACTIVE);
|
|
137
160
|
this.emit(LINE_EVENTS.ERROR, err);
|
|
138
161
|
}
|
|
@@ -140,17 +163,23 @@ export default class Line extends Eventing {
|
|
|
140
163
|
}
|
|
141
164
|
if (this.serviceData.indicator === ServiceIndicator.GUEST_CALLING) {
|
|
142
165
|
call = this.callManager.createCall(CallDirection.OUTBOUND, this.registration.getDeviceInfo().device?.deviceId, this.lineId);
|
|
143
|
-
log.
|
|
166
|
+
log.info(`New guest call created, callId: ${call.getCallId()}`, {
|
|
167
|
+
file: LINE_FILE,
|
|
168
|
+
method: METHODS.MAKE_CALL,
|
|
169
|
+
});
|
|
144
170
|
return call;
|
|
145
171
|
}
|
|
146
172
|
return undefined;
|
|
147
173
|
};
|
|
148
174
|
incomingCallListener() {
|
|
149
|
-
|
|
175
|
+
log.info(METHOD_START_MESSAGE, {
|
|
150
176
|
file: LINE_FILE,
|
|
151
|
-
method:
|
|
152
|
-
};
|
|
153
|
-
log.
|
|
177
|
+
method: METHODS.INCOMING_CALL_LISTENER,
|
|
178
|
+
});
|
|
179
|
+
log.info('Listening for incoming calls... ', {
|
|
180
|
+
file: LINE_FILE,
|
|
181
|
+
method: METHODS.INCOMING_CALL_LISTENER,
|
|
182
|
+
});
|
|
154
183
|
this.callManager.on(LINE_EVENT_KEYS.INCOMING_CALL, (callObj) => {
|
|
155
184
|
this.emit(LINE_EVENTS.INCOMING_CALL, callObj);
|
|
156
185
|
});
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { v4 as uuid } from 'uuid';
|
|
2
|
-
import {
|
|
2
|
+
import { METHOD_START_MESSAGE } from '../../common/constants';
|
|
3
|
+
import { emitFinalFailure, handleRegistrationErrors, uploadLogs } from '../../common';
|
|
3
4
|
import { METRIC_EVENT, METRIC_TYPE, REG_ACTION } from '../../Metrics/types';
|
|
4
5
|
import { getMetricManager } from '../../Metrics';
|
|
5
6
|
import { getCallManager } from '../calling';
|
|
6
7
|
import log from '../../Logger';
|
|
7
8
|
import SDKConnector from '../../SDKConnector';
|
|
8
9
|
import { ALLOWED_SERVICES, HTTP_METHODS, RegistrationStatus, ServiceIndicator, } from '../../common/types';
|
|
9
|
-
import { CALLING_USER_AGENT, CISCO_DEVICE_URL, DEVICES_ENDPOINT_RESOURCE, SPARK_USER_AGENT, WEBEX_WEB_CLIENT, BASE_REG_RETRY_TIMER_VAL_IN_SEC, BASE_REG_TIMER_MFACTOR, SEC_TO_MSEC_MFACTOR, REG_RANDOM_T_FACTOR_UPPER_LIMIT, REG_TRY_BACKUP_TIMER_VAL_IN_SEC, MINUTES_TO_SEC_MFACTOR, REG_429_RETRY_UTIL, REG_FAILBACK_429_MAX_RETRIES, FAILBACK_UTIL, REGISTRATION_FILE, DEFAULT_REHOMING_INTERVAL_MIN, DEFAULT_REHOMING_INTERVAL_MAX, DEFAULT_KEEPALIVE_INTERVAL, REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC, FAILOVER_UTIL, REGISTER_UTIL, RETRY_TIMER_UPPER_LIMIT, } from '../constants';
|
|
10
|
+
import { CALLING_USER_AGENT, CISCO_DEVICE_URL, DEVICES_ENDPOINT_RESOURCE, SPARK_USER_AGENT, WEBEX_WEB_CLIENT, BASE_REG_RETRY_TIMER_VAL_IN_SEC, BASE_REG_TIMER_MFACTOR, SEC_TO_MSEC_MFACTOR, REG_RANDOM_T_FACTOR_UPPER_LIMIT, REG_TRY_BACKUP_TIMER_VAL_IN_SEC, MINUTES_TO_SEC_MFACTOR, REG_429_RETRY_UTIL, REG_FAILBACK_429_MAX_RETRIES, FAILBACK_UTIL, REGISTRATION_FILE, DEFAULT_REHOMING_INTERVAL_MIN, DEFAULT_REHOMING_INTERVAL_MAX, DEFAULT_KEEPALIVE_INTERVAL, REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC, FAILOVER_UTIL, REGISTER_UTIL, RETRY_TIMER_UPPER_LIMIT, METHODS, } from '../constants';
|
|
10
11
|
import { LINE_EVENTS } from '../line/types';
|
|
11
12
|
export class Registration {
|
|
12
13
|
sdkConnector;
|
|
@@ -60,11 +61,15 @@ export class Registration {
|
|
|
60
61
|
return this.activeMobiusUrl;
|
|
61
62
|
}
|
|
62
63
|
setActiveMobiusUrl(url) {
|
|
63
|
-
log.info(
|
|
64
|
+
log.info(`${METHOD_START_MESSAGE} with ${url}`, {
|
|
65
|
+
method: METHODS.UPDATE_ACTIVE_MOBIUS,
|
|
66
|
+
file: REGISTRATION_FILE,
|
|
67
|
+
});
|
|
64
68
|
this.activeMobiusUrl = url;
|
|
65
69
|
this.callManager.updateActiveMobius(url);
|
|
66
70
|
}
|
|
67
71
|
setMobiusServers(primaryMobiusUris, backupMobiusUris) {
|
|
72
|
+
log.log(METHOD_START_MESSAGE, { method: METHODS.SET_MOBIUS_SERVERS, file: REGISTRATION_FILE });
|
|
68
73
|
this.primaryMobiusUris = primaryMobiusUris;
|
|
69
74
|
this.backupMobiusUris = backupMobiusUris;
|
|
70
75
|
}
|
|
@@ -93,7 +98,10 @@ export class Registration {
|
|
|
93
98
|
});
|
|
94
99
|
}
|
|
95
100
|
catch (error) {
|
|
96
|
-
log.warn(`Delete failed with Mobius`, {
|
|
101
|
+
log.warn(`Delete failed with Mobius ${error}`, {
|
|
102
|
+
file: REGISTRATION_FILE,
|
|
103
|
+
method: METHODS.DEREGISTER,
|
|
104
|
+
});
|
|
97
105
|
}
|
|
98
106
|
this.setStatus(RegistrationStatus.INACTIVE);
|
|
99
107
|
this.lineEmitter(LINE_EVENTS.UNREGISTERED);
|
|
@@ -187,7 +195,7 @@ export class Registration {
|
|
|
187
195
|
log.log(`Scheduled retry with primary in ${interval} seconds, number of attempts : ${attempt}`, loggerContext);
|
|
188
196
|
}
|
|
189
197
|
else if (this.backupMobiusUris.length) {
|
|
190
|
-
log.
|
|
198
|
+
log.info('Failing over to backup servers.', loggerContext);
|
|
191
199
|
this.failoverImmediately = false;
|
|
192
200
|
abort = await this.attemptRegistrationWithServers(FAILOVER_UTIL, this.backupMobiusUris);
|
|
193
201
|
if (!abort && !this.isDeviceRegistered()) {
|
|
@@ -199,6 +207,7 @@ export class Registration {
|
|
|
199
207
|
await this.mutex.runExclusive(async () => {
|
|
200
208
|
abort = await this.attemptRegistrationWithServers(FAILOVER_UTIL, this.backupMobiusUris);
|
|
201
209
|
if (!abort && !this.isDeviceRegistered()) {
|
|
210
|
+
await uploadLogs();
|
|
202
211
|
emitFinalFailure((clientError) => {
|
|
203
212
|
this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);
|
|
204
213
|
}, loggerContext);
|
|
@@ -209,6 +218,7 @@ export class Registration {
|
|
|
209
218
|
}
|
|
210
219
|
}
|
|
211
220
|
else {
|
|
221
|
+
await uploadLogs();
|
|
212
222
|
emitFinalFailure((clientError) => {
|
|
213
223
|
this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);
|
|
214
224
|
}, loggerContext);
|
|
@@ -315,9 +325,13 @@ export class Registration {
|
|
|
315
325
|
}
|
|
316
326
|
}
|
|
317
327
|
async handleConnectionRestoration(retry) {
|
|
328
|
+
log.info(METHOD_START_MESSAGE, {
|
|
329
|
+
method: METHODS.HANDLE_CONNECTION_RESTORATION,
|
|
330
|
+
file: REGISTRATION_FILE,
|
|
331
|
+
});
|
|
318
332
|
await this.mutex.runExclusive(async () => {
|
|
319
333
|
if (retry) {
|
|
320
|
-
log.
|
|
334
|
+
log.log('Mercury connection is up again, re-registering with Webex Calling if needed', {
|
|
321
335
|
file: REGISTRATION_FILE,
|
|
322
336
|
method: this.handleConnectionRestoration.name,
|
|
323
337
|
});
|
|
@@ -375,7 +389,7 @@ export class Registration {
|
|
|
375
389
|
return abort;
|
|
376
390
|
}
|
|
377
391
|
if (this.isDeviceRegistered()) {
|
|
378
|
-
log.
|
|
392
|
+
log.info(`[${caller}] : Device already registered with : ${this.activeMobiusUrl}`, {
|
|
379
393
|
file: REGISTRATION_FILE,
|
|
380
394
|
method: REGISTER_UTIL,
|
|
381
395
|
});
|
|
@@ -386,7 +400,7 @@ export class Registration {
|
|
|
386
400
|
abort = false;
|
|
387
401
|
this.registrationStatus = RegistrationStatus.INACTIVE;
|
|
388
402
|
this.lineEmitter(LINE_EVENTS.CONNECTING);
|
|
389
|
-
log.
|
|
403
|
+
log.info(`[${caller}] : Mobius url to contact: ${url}`, {
|
|
390
404
|
file: REGISTRATION_FILE,
|
|
391
405
|
method: REGISTER_UTIL,
|
|
392
406
|
});
|
|
@@ -394,6 +408,10 @@ export class Registration {
|
|
|
394
408
|
this.deviceInfo = resp.body;
|
|
395
409
|
this.registrationStatus = RegistrationStatus.ACTIVE;
|
|
396
410
|
this.lineEmitter(LINE_EVENTS.REGISTERED, resp.body);
|
|
411
|
+
log.log(`Registration successful for deviceId: ${this.deviceInfo.device?.deviceId} userId: ${this.userId}`, {
|
|
412
|
+
file: REGISTRATION_FILE,
|
|
413
|
+
method: METHODS.REGISTER,
|
|
414
|
+
});
|
|
397
415
|
this.setActiveMobiusUrl(url);
|
|
398
416
|
this.setIntervalValues(this.deviceInfo);
|
|
399
417
|
this.metricManager.setDeviceInfo(this.deviceInfo);
|
|
@@ -441,7 +459,7 @@ export class Registration {
|
|
|
441
459
|
if (this.isDeviceRegistered() && keepAliveRetryCount < RETRY_COUNT_THRESHOLD) {
|
|
442
460
|
try {
|
|
443
461
|
const res = await this.postKeepAlive(url);
|
|
444
|
-
log.
|
|
462
|
+
log.log(`Sent Keepalive, status: ${res.statusCode}`, logContext);
|
|
445
463
|
if (keepAliveRetryCount > 0) {
|
|
446
464
|
this.lineEmitter(LINE_EVENTS.RECONNECTED);
|
|
447
465
|
}
|
|
@@ -487,9 +505,16 @@ export class Registration {
|
|
|
487
505
|
async deregister() {
|
|
488
506
|
try {
|
|
489
507
|
await this.deleteRegistration(this.activeMobiusUrl, this.deviceInfo.device?.deviceId, this.deviceInfo.device?.clientDeviceUri);
|
|
508
|
+
log.log('Registration successfully deregistered', {
|
|
509
|
+
file: REGISTRATION_FILE,
|
|
510
|
+
method: METHODS.DEREGISTER,
|
|
511
|
+
});
|
|
490
512
|
}
|
|
491
513
|
catch (err) {
|
|
492
|
-
log.warn(`Delete failed with Mobius`, {
|
|
514
|
+
log.warn(`Delete failed with Mobius: ${err}`, {
|
|
515
|
+
file: REGISTRATION_FILE,
|
|
516
|
+
method: METHODS.DEREGISTER,
|
|
517
|
+
});
|
|
493
518
|
}
|
|
494
519
|
this.clearKeepaliveTimer();
|
|
495
520
|
this.setStatus(RegistrationStatus.INACTIVE);
|
|
@@ -518,6 +543,7 @@ export class Registration {
|
|
|
518
543
|
return false;
|
|
519
544
|
}
|
|
520
545
|
async reconnectOnFailure(caller) {
|
|
546
|
+
log.info(METHOD_START_MESSAGE, { method: METHODS.RECONNECT_ON_FAILURE, file: REGISTRATION_FILE });
|
|
521
547
|
this.reconnectPending = false;
|
|
522
548
|
if (!this.isDeviceRegistered()) {
|
|
523
549
|
if (Object.keys(this.callManager.getActiveCalls()).length === 0) {
|
|
@@ -530,7 +556,7 @@ export class Registration {
|
|
|
530
556
|
this.reconnectPending = true;
|
|
531
557
|
log.info('Active call(s) present, deferred reconnect till call cleanup.', {
|
|
532
558
|
file: REGISTRATION_FILE,
|
|
533
|
-
method:
|
|
559
|
+
method: METHODS.RECONNECT_ON_FAILURE,
|
|
534
560
|
});
|
|
535
561
|
}
|
|
536
562
|
}
|