@webex/calling 3.8.0 → 3.8.1-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/CallHistory/CallHistory.js +100 -63
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +115 -19
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/constants.js +9 -1
  6. package/dist/CallHistory/constants.js.map +1 -1
  7. package/dist/CallSettings/CallSettings.js +46 -13
  8. package/dist/CallSettings/CallSettings.js.map +1 -1
  9. package/dist/CallSettings/UcmBackendConnector.js +62 -18
  10. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  11. package/dist/CallSettings/UcmBackendConnector.test.js +70 -7
  12. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  13. package/dist/CallSettings/WxCallBackendConnector.js +153 -103
  14. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  15. package/dist/CallSettings/WxCallBackendConnector.test.js +52 -15
  16. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  17. package/dist/CallSettings/constants.js +15 -1
  18. package/dist/CallSettings/constants.js.map +1 -1
  19. package/dist/CallingClient/CallingClient.js +220 -159
  20. package/dist/CallingClient/CallingClient.js.map +1 -1
  21. package/dist/CallingClient/CallingClient.test.js +53 -24
  22. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  23. package/dist/CallingClient/calling/call.js +251 -189
  24. package/dist/CallingClient/calling/call.js.map +1 -1
  25. package/dist/CallingClient/calling/call.test.js +96 -41
  26. package/dist/CallingClient/calling/call.test.js.map +1 -1
  27. package/dist/CallingClient/calling/callManager.js +73 -48
  28. package/dist/CallingClient/calling/callManager.js.map +1 -1
  29. package/dist/CallingClient/calling/callManager.test.js +96 -37
  30. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  31. package/dist/CallingClient/constants.js +105 -3
  32. package/dist/CallingClient/constants.js.map +1 -1
  33. package/dist/CallingClient/line/index.js +47 -18
  34. package/dist/CallingClient/line/index.js.map +1 -1
  35. package/dist/CallingClient/line/line.test.js +2 -2
  36. package/dist/CallingClient/line/line.test.js.map +1 -1
  37. package/dist/CallingClient/registration/register.js +359 -297
  38. package/dist/CallingClient/registration/register.js.map +1 -1
  39. package/dist/CallingClient/registration/register.test.js +561 -163
  40. package/dist/CallingClient/registration/register.test.js.map +1 -1
  41. package/dist/CallingClient/registration/types.js.map +1 -1
  42. package/dist/Contacts/ContactsClient.js +156 -102
  43. package/dist/Contacts/ContactsClient.js.map +1 -1
  44. package/dist/Contacts/ContactsClient.test.js +197 -49
  45. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  46. package/dist/Contacts/constants.js +11 -1
  47. package/dist/Contacts/constants.js.map +1 -1
  48. package/dist/Errors/types.js +2 -0
  49. package/dist/Errors/types.js.map +1 -1
  50. package/dist/Events/impl/index.js +1 -1
  51. package/dist/Events/impl/index.js.map +1 -1
  52. package/dist/Metrics/index.js +102 -41
  53. package/dist/Metrics/index.js.map +1 -1
  54. package/dist/Metrics/index.test.js +10 -4
  55. package/dist/Metrics/index.test.js.map +1 -1
  56. package/dist/Metrics/types.js +4 -1
  57. package/dist/Metrics/types.js.map +1 -1
  58. package/dist/SDKConnector/types.js.map +1 -1
  59. package/dist/Voicemail/BroadworksBackendConnector.js +154 -91
  60. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  61. package/dist/Voicemail/BroadworksBackendConnector.test.js +99 -19
  62. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  63. package/dist/Voicemail/UcmBackendConnector.js +105 -54
  64. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  65. package/dist/Voicemail/UcmBackendConnector.test.js +127 -17
  66. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  67. package/dist/Voicemail/Voicemail.js +198 -79
  68. package/dist/Voicemail/Voicemail.js.map +1 -1
  69. package/dist/Voicemail/Voicemail.test.js +188 -23
  70. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  71. package/dist/Voicemail/WxCallBackendConnector.js +277 -161
  72. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  73. package/dist/Voicemail/WxCallBackendConnector.test.js +268 -10
  74. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  75. package/dist/Voicemail/constants.js +25 -1
  76. package/dist/Voicemail/constants.js.map +1 -1
  77. package/dist/Voicemail/types.js.map +1 -1
  78. package/dist/common/Utils.js +168 -104
  79. package/dist/common/Utils.js.map +1 -1
  80. package/dist/common/Utils.test.js +199 -35
  81. package/dist/common/Utils.test.js.map +1 -1
  82. package/dist/common/constants.js +2 -1
  83. package/dist/common/constants.js.map +1 -1
  84. package/dist/common/testUtil.js +3 -0
  85. package/dist/common/testUtil.js.map +1 -1
  86. package/dist/common/types.js.map +1 -1
  87. package/dist/index.js +12 -0
  88. package/dist/index.js.map +1 -1
  89. package/dist/module/CallHistory/CallHistory.js +32 -13
  90. package/dist/module/CallHistory/constants.js +6 -0
  91. package/dist/module/CallSettings/CallSettings.js +36 -3
  92. package/dist/module/CallSettings/UcmBackendConnector.js +50 -5
  93. package/dist/module/CallSettings/WxCallBackendConnector.js +54 -18
  94. package/dist/module/CallSettings/constants.js +12 -0
  95. package/dist/module/CallingClient/CallingClient.js +54 -16
  96. package/dist/module/CallingClient/calling/call.js +172 -121
  97. package/dist/module/CallingClient/calling/callManager.js +51 -26
  98. package/dist/module/CallingClient/constants.js +102 -2
  99. package/dist/module/CallingClient/line/index.js +37 -8
  100. package/dist/module/CallingClient/registration/register.js +103 -64
  101. package/dist/module/Contacts/ContactsClient.js +65 -21
  102. package/dist/module/Contacts/constants.js +10 -0
  103. package/dist/module/Errors/types.js +2 -0
  104. package/dist/module/Events/impl/index.js +1 -1
  105. package/dist/module/Metrics/index.js +57 -2
  106. package/dist/module/Metrics/types.js +3 -0
  107. package/dist/module/Voicemail/BroadworksBackendConnector.js +66 -17
  108. package/dist/module/Voicemail/UcmBackendConnector.js +51 -11
  109. package/dist/module/Voicemail/Voicemail.js +109 -9
  110. package/dist/module/Voicemail/WxCallBackendConnector.js +67 -18
  111. package/dist/module/Voicemail/constants.js +21 -0
  112. package/dist/module/common/Utils.js +51 -12
  113. package/dist/module/common/constants.js +1 -0
  114. package/dist/module/common/testUtil.js +3 -0
  115. package/dist/module/index.js +1 -0
  116. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  117. package/dist/types/CallHistory/constants.d.ts +6 -0
  118. package/dist/types/CallHistory/constants.d.ts.map +1 -1
  119. package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
  120. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  121. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  122. package/dist/types/CallSettings/constants.d.ts +12 -0
  123. package/dist/types/CallSettings/constants.d.ts.map +1 -1
  124. package/dist/types/CallingClient/CallingClient.d.ts +2 -3
  125. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  126. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  127. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  128. package/dist/types/CallingClient/constants.d.ts +102 -2
  129. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  130. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  131. package/dist/types/CallingClient/registration/register.d.ts +3 -1
  132. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  133. package/dist/types/CallingClient/registration/types.d.ts +1 -0
  134. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  135. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  136. package/dist/types/Contacts/constants.d.ts +10 -0
  137. package/dist/types/Contacts/constants.d.ts.map +1 -1
  138. package/dist/types/Errors/types.d.ts +2 -0
  139. package/dist/types/Errors/types.d.ts.map +1 -1
  140. package/dist/types/Metrics/index.d.ts +1 -1
  141. package/dist/types/Metrics/index.d.ts.map +1 -1
  142. package/dist/types/Metrics/types.d.ts +7 -2
  143. package/dist/types/Metrics/types.d.ts.map +1 -1
  144. package/dist/types/SDKConnector/types.d.ts +11 -2
  145. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  146. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  147. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  148. package/dist/types/Voicemail/Voicemail.d.ts +1 -1
  149. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  150. package/dist/types/Voicemail/WxCallBackendConnector.d.ts +3 -1
  151. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  152. package/dist/types/Voicemail/constants.d.ts +21 -0
  153. package/dist/types/Voicemail/constants.d.ts.map +1 -1
  154. package/dist/types/Voicemail/types.d.ts +1 -1
  155. package/dist/types/Voicemail/types.d.ts.map +1 -1
  156. package/dist/types/common/Utils.d.ts +4 -4
  157. package/dist/types/common/Utils.d.ts.map +1 -1
  158. package/dist/types/common/constants.d.ts +1 -0
  159. package/dist/types/common/constants.d.ts.map +1 -1
  160. package/dist/types/common/testUtil.d.ts +3 -0
  161. package/dist/types/common/testUtil.d.ts.map +1 -1
  162. package/dist/types/common/types.d.ts +12 -0
  163. package/dist/types/common/types.d.ts.map +1 -1
  164. package/dist/types/index.d.ts +2 -0
  165. package/dist/types/index.d.ts.map +1 -1
  166. package/package.json +4 -3
@@ -1,4 +1,5 @@
1
- import { CALL_MANAGER_FILE } from '../constants';
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: 'dequeueWsEvents',
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.log(`Dropping midcall event of type: ${midCallEvent.eventType} as it doesn't match with any existing call`, {
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
105
+ method: METHODS.DEQUEUE_WS_EVENTS,
85
106
  });
86
107
  newCall.setCallId(callId);
87
108
  if (mobiusEvent.data.broadworksCorrelationInfo) {
88
- log.log(`Found broadworksCorrelationInfo: ${mobiusEvent.data.broadworksCorrelationInfo}`, {
109
+ log.info(`Found broadworksCorrelationInfo: ${mobiusEvent.data.broadworksCorrelationInfo}`, {
89
110
  file: CALL_MANAGER_FILE,
90
- method: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
240
+ method: METHODS.DEQUEUE_WS_EVENTS,
220
241
  });
221
242
  }
222
243
  }
223
244
  }
224
245
  else {
225
- log.log(`CorrelationId: ${correlationId} doesn't exist , discarding..`, {
246
+ log.info(`CorrelationId: ${correlationId} doesn't exist , discarding..`, {
226
247
  file: CALL_MANAGER_FILE,
227
- method: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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: 'dequeueWsEvents',
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;
@@ -108,11 +108,13 @@ export const REG_RANDOM_T_FACTOR_UPPER_LIMIT = 10000;
108
108
  export const REG_TRY_BACKUP_TIMER_VAL_IN_SEC = 1200;
109
109
  export const REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC = 114;
110
110
  export const REG_FAILBACK_429_MAX_RETRIES = 5;
111
- export const REGISTER_UTIL = 'registerDevice';
111
+ export const RETRY_TIMER_UPPER_LIMIT = 60;
112
+ export const REGISTRATION_UTIL = 'triggerRegistration';
113
+ export const REGISTER_UTIL = 'attemptRegistrationWithServers';
112
114
  export const GET_MOBIUS_SERVERS_UTIL = 'getMobiusServers';
113
115
  export const KEEPALIVE_UTIL = 'startKeepaliveTimer';
114
116
  export const FAILBACK_UTIL = 'executeFailback';
115
- export const FAILBACK_429_RETRY_UTIL = 'scheduleFailback429Retry';
117
+ export const REG_429_RETRY_UTIL = 'handle429Retry';
116
118
  export const FAILOVER_UTIL = 'startFailoverTimer';
117
119
  export const NETWORK_CHANGE_DETECTION_UTIL = 'detectNetworkChange';
118
120
  export const CALLS_CLEARED_HANDLER_UTIL = 'callsClearedHandler';
@@ -123,3 +125,101 @@ export const MOBIUS_EU_PROD = 'mobius-eu-central-1.prod.infra.webex.com';
123
125
  export const MOBIUS_US_INT = 'mobius-us-east-1.int.infra.webex.com';
124
126
  export const MOBIUS_EU_INT = 'mobius-eu-central-1.int.infra.webex.com';
125
127
  export const ICE_CANDIDATES_TIMEOUT = 3000;
128
+ export const METHODS = {
129
+ CONSTRUCTOR: 'constructor',
130
+ CREATE_CALL: 'createCall',
131
+ HANDLE_INCOMING_CALL_SETUP: 'handleIncomingCallSetup',
132
+ HANDLE_OUTGOING_CALL_SETUP: 'handleOutgoingCallSetup',
133
+ HANDLE_CALL_HOLD: 'handleCallHold',
134
+ HANDLE_CALL_RESUME: 'handleCallResume',
135
+ HANDLE_INCOMING_CALL_PROGRESS: 'handleIncomingCallProgress',
136
+ HANDLE_INCOMING_ROAP_OFFER_REQUEST: 'handleIncomingRoapOfferRequest',
137
+ HANDLE_OUTGOING_CALL_ALERTING: 'handleOutgoingCallAlerting',
138
+ HANDLE_INCOMING_CALL_CONNECT: 'handleIncomingCallConnect',
139
+ HANDLE_OUTGOING_CALL_CONNECT: 'handleOutgoingCallConnect',
140
+ HANDLE_INCOMING_CALL_DISCONNECT: 'handleIncomingCallDisconnect',
141
+ HANDLE_OUTGOING_CALL_DISCONNECT: 'handleOutgoingCallDisconnect',
142
+ HANDLE_CALL_ESTABLISHED: 'handleCallEstablished',
143
+ HANDLE_UNKNOWN_STATE: 'handleUnknownState',
144
+ HANDLE_TIMEOUT: 'handleTimeout',
145
+ GET_EMITTER_CALLBACK: 'getEmitterCallback',
146
+ HANDLE_ROAP_ESTABLISHED: 'handleRoapEstablished',
147
+ HANDLE_ROAP_ERROR: 'handleRoapError',
148
+ HANDLE_OUTGOING_ROAP_OFFER: 'handleOutgoingRoapOffer',
149
+ HANDLE_OUTGOING_ROAP_ANSWER: 'handleOutgoingRoapAnswer',
150
+ HANDLE_INCOMING_ROAP_OFFER: 'handleIncomingRoapOffer',
151
+ HANDLE_INCOMING_ROAP_ANSWER: 'handleIncomingRoapAnswer',
152
+ FORCE_SEND_STATS_REPORT: 'forceSendStatsReport',
153
+ UPDATE_ACTIVE_MOBIUS: 'updateActiveMobius',
154
+ DEQUEUE_WS_EVENTS: 'dequeueWsEvents',
155
+ GET_CALL: 'getCall',
156
+ GET_ACTIVE_CALLS: 'getActiveCalls',
157
+ UPDATE_LINE: 'updateLine',
158
+ GET_LINE_ID: 'getLineId',
159
+ INIT_MEDIA_CONNECTION: 'initMediaConnection',
160
+ GET_DIRECTION: 'getDirection',
161
+ GET_CALL_ID: 'getCallId',
162
+ GET_CORRELATION_ID: 'getCorrelationId',
163
+ SEND_CALL_STATE_MACHINE_EVT: 'sendCallStateMachineEvt',
164
+ SEND_MEDIA_STATE_MACHINE_EVT: 'sendMediaStateMachineEvt',
165
+ SET_CALL_ID: 'setCallId',
166
+ SET_DISCONNECT_REASON: 'setDisconnectReason',
167
+ GET_DISCONNECT_REASON: 'getDisconnectReason',
168
+ ANSWER: 'answer',
169
+ DIAL: 'dial',
170
+ POST: 'post',
171
+ PATCH: 'patch',
172
+ POST_SS_REQUEST: 'postSSRequest',
173
+ POST_STATUS: 'postStatus',
174
+ COMPLETE_TRANSFER: 'completeTransfer',
175
+ GET_CALL_STATS: 'getCallStats',
176
+ POST_MEDIA: 'postMedia',
177
+ MEDIA_ROAP_EVENTS_LISTENER: 'mediaRoapEventsListener',
178
+ MEDIA_TRACK_LISTENER: 'mediaTrackListener',
179
+ ON_EFFECT_ENABLED: 'onEffectEnabled',
180
+ ON_EFFECT_DISABLED: 'onEffectDisabled',
181
+ UPDATE_TRACK: 'updateTrack',
182
+ REGISTER_EFFECT_LISTENER: 'registerEffectListener',
183
+ UNREGISTER_LISTENERS: 'unregisterListeners',
184
+ REGISTER_LISTENERS: 'registerListeners',
185
+ DELETE: 'delete',
186
+ SUBMIT_CALL_ERROR_METRIC: 'submitCallErrorMetric',
187
+ HANDLE_MID_CALL_EVENT: 'handleMidCallEvent',
188
+ GET_CALLER_INFO: 'getCallerInfo',
189
+ END: 'end',
190
+ DO_HOLD_RESUME: 'doHoldResume',
191
+ START_CALLER_ID_RESOLUTION: 'startCallerIdResolution',
192
+ SEND_DIGIT: 'sendDigit',
193
+ MUTE: 'mute',
194
+ IS_MUTED: 'isMuted',
195
+ IS_CONNECTED: 'isConnected',
196
+ IS_HELD: 'isHeld',
197
+ UPDATE_MEDIA: 'updateMedia',
198
+ SET_BROADWORKS_CORRELATION_INFO: 'setBroadworksCorrelationInfo',
199
+ GET_BROADWORKS_CORRELATION_INFO: 'getBroadworksCorrelationInfo',
200
+ GET_CALL_RTP_STATS: 'getCallRtpStats',
201
+ REGISTER: 'register',
202
+ DEREGISTER: 'deregister',
203
+ NORMALIZE_LINE: 'normalizeLine',
204
+ LINE_EMITTER: 'lineEmitter',
205
+ GET_LOGGING_LEVEL: 'getLoggingLevel',
206
+ GET_ACTIVE_MOBIUS_URL: 'getActiveMobiusUrl',
207
+ GET_STATUS: 'getStatus',
208
+ GET_DEVICE_ID: 'getDeviceId',
209
+ MAKE_CALL: 'makeCall',
210
+ INCOMING_CALL_LISTENER: 'incomingCallListener',
211
+ SET_MOBIUS_SERVERS: 'setMobiusServers',
212
+ HANDLE_CONNECTION_RESTORATION: 'handleConnectionRestoration',
213
+ RECONNECT_ON_FAILURE: 'reconnectOnFailure',
214
+ DETECT_NETWORK_CHANGE: 'detectNetworkChange',
215
+ GET_CLIENT_REGION_INFO: 'getClientRegionInfo',
216
+ GET_MOBIUS_SERVERS: 'getMobiusServers',
217
+ REGISTER_CALLS_CLEARED_LISTENER: 'registerCallsClearedListener',
218
+ CALLS_CLEARED_HANDLER: 'callsClearedHandler',
219
+ REGISTER_SESSIONS_LISTENER: 'registerSessionsListener',
220
+ CREATE_LINE: 'createLine',
221
+ GET_LINES: 'getLines',
222
+ UPLOAD_LOGS: 'uploadLogs',
223
+ GET_SDK_CONNECTOR: 'getSDKConnector',
224
+ GET_CONNECTED_CALL: 'getConnectedCall',
225
+ };
@@ -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.getCallId()}`, {});
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.log(`New guest call created, callId: ${call.getCallId()}`, {});
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
- const logContext = {
175
+ log.info(METHOD_START_MESSAGE, {
150
176
  file: LINE_FILE,
151
- method: this.incomingCallListener.name,
152
- };
153
- log.log('Listening for incoming calls... ', logContext);
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
  });