@webex/calling 3.12.0-next.28 → 3.12.0-next.29

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 (189) hide show
  1. package/dist/CallingClient/CallingClient.js +408 -194
  2. package/dist/CallingClient/CallingClient.js.map +1 -1
  3. package/dist/CallingClient/CallingClient.test.js +119 -25
  4. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  5. package/dist/CallingClient/calling/call.js +11 -8
  6. package/dist/CallingClient/calling/call.js.map +1 -1
  7. package/dist/CallingClient/calling/call.test.js +45 -4
  8. package/dist/CallingClient/calling/call.test.js.map +1 -1
  9. package/dist/CallingClient/calling/callManager.js +53 -30
  10. package/dist/CallingClient/calling/callManager.js.map +1 -1
  11. package/dist/CallingClient/calling/callManager.test.js +35 -0
  12. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  13. package/dist/CallingClient/calling/types.js +2 -0
  14. package/dist/CallingClient/calling/types.js.map +1 -1
  15. package/dist/CallingClient/constants.js +20 -2
  16. package/dist/CallingClient/constants.js.map +1 -1
  17. package/dist/CallingClient/line/line.test.js +16 -1
  18. package/dist/CallingClient/line/line.test.js.map +1 -1
  19. package/dist/CallingClient/registration/register.js +694 -406
  20. package/dist/CallingClient/registration/register.js.map +1 -1
  21. package/dist/CallingClient/registration/register.test.js +202 -21
  22. package/dist/CallingClient/registration/register.test.js.map +1 -1
  23. package/dist/CallingClient/registration/types.js.map +1 -1
  24. package/dist/CallingClient/registration/webWorker.js +41 -104
  25. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  26. package/dist/CallingClient/registration/webWorker.test.js +39 -153
  27. package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
  28. package/dist/CallingClient/registration/webWorkerStr.js +1 -1
  29. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
  30. package/dist/CallingClient/utils/constants.js +46 -0
  31. package/dist/CallingClient/utils/constants.js.map +1 -0
  32. package/dist/CallingClient/utils/index.js +63 -0
  33. package/dist/CallingClient/utils/index.js.map +1 -0
  34. package/dist/CallingClient/utils/mobiusSocketMapper.js +122 -0
  35. package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -0
  36. package/dist/CallingClient/utils/mobiusSocketMapper.test.js +211 -0
  37. package/dist/CallingClient/utils/mobiusSocketMapper.test.js.map +1 -0
  38. package/dist/CallingClient/utils/request.js +349 -0
  39. package/dist/CallingClient/utils/request.js.map +1 -0
  40. package/dist/CallingClient/utils/request.test.js +881 -0
  41. package/dist/CallingClient/utils/request.test.js.map +1 -0
  42. package/dist/CallingClient/utils/types.js +7 -0
  43. package/dist/CallingClient/utils/types.js.map +1 -0
  44. package/dist/CallingClient/utils/wsFeatureFlag.js +28 -0
  45. package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -0
  46. package/dist/CallingClient/utils/wsFeatureFlag.test.js +139 -0
  47. package/dist/CallingClient/utils/wsFeatureFlag.test.js.map +1 -0
  48. package/dist/Contacts/ContactsClient.test.js +3 -8
  49. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  50. package/dist/Metrics/index.js +60 -0
  51. package/dist/Metrics/index.js.map +1 -1
  52. package/dist/Metrics/index.test.js +356 -0
  53. package/dist/Metrics/index.test.js.map +1 -1
  54. package/dist/Metrics/types.js +11 -1
  55. package/dist/Metrics/types.js.map +1 -1
  56. package/dist/SDKConnector/types.js.map +1 -1
  57. package/dist/common/Utils.js +136 -40
  58. package/dist/common/Utils.js.map +1 -1
  59. package/dist/common/testUtil.js +8 -4
  60. package/dist/common/testUtil.js.map +1 -1
  61. package/dist/common/types.js +2 -0
  62. package/dist/common/types.js.map +1 -1
  63. package/dist/mobius-socket/config.js +24 -0
  64. package/dist/mobius-socket/config.js.map +1 -0
  65. package/dist/mobius-socket/errors.js +150 -0
  66. package/dist/mobius-socket/errors.js.map +1 -0
  67. package/dist/mobius-socket/index.js +57 -0
  68. package/dist/mobius-socket/index.js.map +1 -0
  69. package/dist/mobius-socket/mobius-socket-events.test.js +485 -0
  70. package/dist/mobius-socket/mobius-socket-events.test.js.map +1 -0
  71. package/dist/mobius-socket/mobius-socket.js +804 -0
  72. package/dist/mobius-socket/mobius-socket.js.map +1 -0
  73. package/dist/mobius-socket/mobius-socket.test.js +1833 -0
  74. package/dist/mobius-socket/mobius-socket.test.js.map +1 -0
  75. package/dist/mobius-socket/socket/constants.js +34 -0
  76. package/dist/mobius-socket/socket/constants.js.map +1 -0
  77. package/dist/mobius-socket/socket/index.js +15 -0
  78. package/dist/mobius-socket/socket/index.js.map +1 -0
  79. package/dist/mobius-socket/socket/socket-base.js +604 -0
  80. package/dist/mobius-socket/socket/socket-base.js.map +1 -0
  81. package/dist/mobius-socket/socket/socket.js +19 -0
  82. package/dist/mobius-socket/socket/socket.js.map +1 -0
  83. package/dist/mobius-socket/socket/socket.shim.js +26 -0
  84. package/dist/mobius-socket/socket/socket.shim.js.map +1 -0
  85. package/dist/mobius-socket/socket/types.js +7 -0
  86. package/dist/mobius-socket/socket/types.js.map +1 -0
  87. package/dist/mobius-socket/socket.test.js +727 -0
  88. package/dist/mobius-socket/socket.test.js.map +1 -0
  89. package/dist/mobius-socket/test/mocha-helpers.js +23 -0
  90. package/dist/mobius-socket/test/mocha-helpers.js.map +1 -0
  91. package/dist/mobius-socket/test/promise-tick.js +28 -0
  92. package/dist/mobius-socket/test/promise-tick.js.map +1 -0
  93. package/dist/mobius-socket/types.js +7 -0
  94. package/dist/mobius-socket/types.js.map +1 -0
  95. package/dist/module/CallingClient/CallingClient.js +102 -5
  96. package/dist/module/CallingClient/calling/call.js +9 -6
  97. package/dist/module/CallingClient/calling/callManager.js +27 -7
  98. package/dist/module/CallingClient/calling/types.js +2 -0
  99. package/dist/module/CallingClient/constants.js +18 -0
  100. package/dist/module/CallingClient/registration/register.js +226 -62
  101. package/dist/module/CallingClient/registration/webWorker.js +42 -61
  102. package/dist/module/CallingClient/registration/webWorkerStr.js +47 -82
  103. package/dist/module/CallingClient/utils/constants.js +30 -0
  104. package/dist/module/CallingClient/utils/index.js +5 -0
  105. package/dist/module/CallingClient/utils/mobiusSocketMapper.js +72 -0
  106. package/dist/module/CallingClient/utils/request.js +162 -0
  107. package/dist/module/CallingClient/utils/types.js +1 -0
  108. package/dist/module/CallingClient/utils/wsFeatureFlag.js +12 -0
  109. package/dist/module/Metrics/index.js +46 -0
  110. package/dist/module/Metrics/types.js +10 -0
  111. package/dist/module/common/Utils.js +51 -8
  112. package/dist/module/common/testUtil.js +5 -1
  113. package/dist/module/common/types.js +2 -0
  114. package/dist/module/mobius-socket/config.js +15 -0
  115. package/dist/module/mobius-socket/errors.js +64 -0
  116. package/dist/module/mobius-socket/index.js +24 -0
  117. package/dist/module/mobius-socket/mobius-socket.js +571 -0
  118. package/dist/module/mobius-socket/socket/constants.js +10 -0
  119. package/dist/module/mobius-socket/socket/index.js +4 -0
  120. package/dist/module/mobius-socket/socket/socket-base.js +368 -0
  121. package/dist/module/mobius-socket/socket/socket.js +9 -0
  122. package/dist/module/mobius-socket/socket/socket.shim.js +12 -0
  123. package/dist/module/mobius-socket/socket/types.js +1 -0
  124. package/dist/module/mobius-socket/types.js +1 -0
  125. package/dist/types/CallingClient/CallingClient.d.ts +5 -0
  126. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  127. package/dist/types/CallingClient/calling/call.d.ts +1 -0
  128. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  129. package/dist/types/CallingClient/calling/callManager.d.ts +3 -2
  130. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  131. package/dist/types/CallingClient/calling/types.d.ts +21 -9
  132. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  133. package/dist/types/CallingClient/constants.d.ts +18 -0
  134. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  135. package/dist/types/CallingClient/registration/register.d.ts +6 -0
  136. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  137. package/dist/types/CallingClient/registration/types.d.ts +3 -1
  138. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  139. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
  140. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  141. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  142. package/dist/types/CallingClient/utils/constants.d.ts +30 -0
  143. package/dist/types/CallingClient/utils/constants.d.ts.map +1 -0
  144. package/dist/types/CallingClient/utils/index.d.ts +6 -0
  145. package/dist/types/CallingClient/utils/index.d.ts.map +1 -0
  146. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts +5 -0
  147. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -0
  148. package/dist/types/CallingClient/utils/request.d.ts +23 -0
  149. package/dist/types/CallingClient/utils/request.d.ts.map +1 -0
  150. package/dist/types/CallingClient/utils/types.d.ts +29 -0
  151. package/dist/types/CallingClient/utils/types.d.ts.map +1 -0
  152. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts +4 -0
  153. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -0
  154. package/dist/types/Metrics/index.d.ts.map +1 -1
  155. package/dist/types/Metrics/types.d.ts +11 -1
  156. package/dist/types/Metrics/types.d.ts.map +1 -1
  157. package/dist/types/SDKConnector/types.d.ts +24 -0
  158. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  159. package/dist/types/common/Utils.d.ts +8 -2
  160. package/dist/types/common/Utils.d.ts.map +1 -1
  161. package/dist/types/common/testUtil.d.ts +4 -1
  162. package/dist/types/common/testUtil.d.ts.map +1 -1
  163. package/dist/types/common/types.d.ts +3 -0
  164. package/dist/types/common/types.d.ts.map +1 -1
  165. package/dist/types/mobius-socket/config.d.ts +17 -0
  166. package/dist/types/mobius-socket/config.d.ts.map +1 -0
  167. package/dist/types/mobius-socket/errors.d.ts +32 -0
  168. package/dist/types/mobius-socket/errors.d.ts.map +1 -0
  169. package/dist/types/mobius-socket/index.d.ts +14 -0
  170. package/dist/types/mobius-socket/index.d.ts.map +1 -0
  171. package/dist/types/mobius-socket/mobius-socket.d.ts +48 -0
  172. package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -0
  173. package/dist/types/mobius-socket/socket/constants.d.ts +11 -0
  174. package/dist/types/mobius-socket/socket/constants.d.ts.map +1 -0
  175. package/dist/types/mobius-socket/socket/index.d.ts +5 -0
  176. package/dist/types/mobius-socket/socket/index.d.ts.map +1 -0
  177. package/dist/types/mobius-socket/socket/socket-base.d.ts +43 -0
  178. package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -0
  179. package/dist/types/mobius-socket/socket/socket.d.ts +6 -0
  180. package/dist/types/mobius-socket/socket/socket.d.ts.map +1 -0
  181. package/dist/types/mobius-socket/socket/socket.shim.d.ts +6 -0
  182. package/dist/types/mobius-socket/socket/socket.shim.d.ts.map +1 -0
  183. package/dist/types/mobius-socket/socket/types.d.ts +61 -0
  184. package/dist/types/mobius-socket/socket/types.d.ts.map +1 -0
  185. package/dist/types/mobius-socket/types.d.ts +21 -0
  186. package/dist/types/mobius-socket/types.d.ts.map +1 -0
  187. package/package.json +16 -2
  188. package/src/mobius-socket/socket/socket.shim.ts +22 -0
  189. package/src/mobius-socket/socket/socket.ts +14 -0
@@ -29,6 +29,7 @@ exports.handleRegistrationErrors = handleRegistrationErrors;
29
29
  exports.inferIdFromUuid = inferIdFromUuid;
30
30
  exports.isValidServiceDomain = isValidServiceDomain;
31
31
  exports.modifySdpForIPv4 = modifySdpForIPv4;
32
+ exports.normalizeMobiusUris = normalizeMobiusUris;
32
33
  exports.parseMediaQualityStatistics = parseMediaQualityStatistics;
33
34
  exports.resolveCallerIdByName = resolveCallerIdByName;
34
35
  exports.resolveCallerIdDisplay = resolveCallerIdDisplay;
@@ -67,13 +68,15 @@ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof _Symbo
67
68
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? _Array$from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
68
69
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } /* eslint-disable no-fallthrough */ /* eslint-disable no-underscore-dangle */ /* eslint-disable @typescript-eslint/no-shadow */
69
70
  function filterMobiusUris(mobiusServers, defaultMobiusUrl) {
70
- var _mobiusServers$primar, _mobiusServers$backup;
71
+ var _mobiusServers$primar, _mobiusServers$primar2, _mobiusServers$backup, _mobiusServers$backup2;
71
72
  var logContext = {
72
73
  file: _constants.UTILS_FILE,
73
74
  method: 'filterMobiusUris'
74
75
  };
75
76
  var urisArrayPrimary = [];
76
77
  var urisArrayBackup = [];
78
+ var wssArrayPrimary = [];
79
+ var wssArrayBackup = [];
77
80
  if (mobiusServers !== null && mobiusServers !== void 0 && (_mobiusServers$primar = mobiusServers.primary) !== null && _mobiusServers$primar !== void 0 && _mobiusServers$primar.uris) {
78
81
  _Logger.default.info('Adding Primary uris', logContext);
79
82
  var _iterator = _createForOfIteratorHelper(mobiusServers.primary.uris),
@@ -89,14 +92,14 @@ function filterMobiusUris(mobiusServers, defaultMobiusUrl) {
89
92
  _iterator.f();
90
93
  }
91
94
  }
92
- if (mobiusServers !== null && mobiusServers !== void 0 && (_mobiusServers$backup = mobiusServers.backup) !== null && _mobiusServers$backup !== void 0 && _mobiusServers$backup.uris) {
93
- _Logger.default.info('Adding Backup uris', logContext);
94
- var _iterator2 = _createForOfIteratorHelper(mobiusServers.backup.uris),
95
+ if (mobiusServers !== null && mobiusServers !== void 0 && (_mobiusServers$primar2 = mobiusServers.primary) !== null && _mobiusServers$primar2 !== void 0 && _mobiusServers$primar2.wss) {
96
+ _Logger.default.info('Adding Primary wss uris', logContext);
97
+ var _iterator2 = _createForOfIteratorHelper(mobiusServers.primary.wss),
95
98
  _step2;
96
99
  try {
97
100
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
98
- var _uri = _step2.value;
99
- urisArrayBackup.push("".concat(_uri).concat(_constants.URL_ENDPOINT));
101
+ var wssUri = _step2.value;
102
+ wssArrayPrimary.push(wssUri);
100
103
  }
101
104
  } catch (err) {
102
105
  _iterator2.e(err);
@@ -104,6 +107,36 @@ function filterMobiusUris(mobiusServers, defaultMobiusUrl) {
104
107
  _iterator2.f();
105
108
  }
106
109
  }
110
+ if (mobiusServers !== null && mobiusServers !== void 0 && (_mobiusServers$backup = mobiusServers.backup) !== null && _mobiusServers$backup !== void 0 && _mobiusServers$backup.uris) {
111
+ _Logger.default.info('Adding Backup uris', logContext);
112
+ var _iterator3 = _createForOfIteratorHelper(mobiusServers.backup.uris),
113
+ _step3;
114
+ try {
115
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
116
+ var _uri = _step3.value;
117
+ urisArrayBackup.push("".concat(_uri).concat(_constants.URL_ENDPOINT));
118
+ }
119
+ } catch (err) {
120
+ _iterator3.e(err);
121
+ } finally {
122
+ _iterator3.f();
123
+ }
124
+ }
125
+ if (mobiusServers !== null && mobiusServers !== void 0 && (_mobiusServers$backup2 = mobiusServers.backup) !== null && _mobiusServers$backup2 !== void 0 && _mobiusServers$backup2.wss) {
126
+ _Logger.default.info('Adding Backup wss uris', logContext);
127
+ var _iterator4 = _createForOfIteratorHelper(mobiusServers.backup.wss),
128
+ _step4;
129
+ try {
130
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
131
+ var _wssUri = _step4.value;
132
+ wssArrayBackup.push(_wssUri);
133
+ }
134
+ } catch (err) {
135
+ _iterator4.e(err);
136
+ } finally {
137
+ _iterator4.f();
138
+ }
139
+ }
107
140
 
108
141
  /*
109
142
  * If there are no entries in both primary and backup arrays then add the default
@@ -117,6 +150,8 @@ function filterMobiusUris(mobiusServers, defaultMobiusUrl) {
117
150
  }
118
151
  var primaryUris = [];
119
152
  var backupUris = [];
153
+ var primaryWss = [];
154
+ var backupWss = [];
120
155
 
121
156
  /* Remove duplicates from primary by keeping the order intact */
122
157
  for (var i = 0; i < urisArrayPrimary.length; i += 1) {
@@ -131,9 +166,25 @@ function filterMobiusUris(mobiusServers, defaultMobiusUrl) {
131
166
  backupUris.push(urisArrayBackup[_i]);
132
167
  }
133
168
  }
169
+
170
+ /* Remove duplicates from primary wss by keeping the order intact */
171
+ for (var _i2 = 0; _i2 < wssArrayPrimary.length; _i2 += 1) {
172
+ if (primaryWss.indexOf(wssArrayPrimary[_i2]) === -1) {
173
+ primaryWss.push(wssArrayPrimary[_i2]);
174
+ }
175
+ }
176
+
177
+ /* Remove duplicates from backup wss by keeping the order intact */
178
+ for (var _i3 = 0; _i3 < wssArrayBackup.length; _i3 += 1) {
179
+ if (backupWss.indexOf(wssArrayBackup[_i3]) === -1) {
180
+ backupWss.push(wssArrayBackup[_i3]);
181
+ }
182
+ }
134
183
  return {
135
184
  primary: primaryUris,
136
- backup: backupUris
185
+ backup: backupUris,
186
+ primaryWss: primaryWss,
187
+ backupWss: backupWss
137
188
  };
138
189
  }
139
190
 
@@ -197,9 +248,9 @@ function updateErrorContext(errContext, type, message, clientError) {
197
248
  * @param caller - Method which called this handler.
198
249
  * @param file - File name from where error got reported.
199
250
  */
200
- function emitFinalFailure(emitterCb, loggerContext) {
201
- var clientError = (0, _LineError.createLineError)('', {}, _types2.ERROR_TYPE.DEFAULT, _types3.RegistrationStatus.INACTIVE);
202
- updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.SERVICE_UNAVAILABLE, 'An unknown error occurred. Wait a moment and try again. Please contact the administrator if the problem persists.', _types3.RegistrationStatus.INACTIVE, clientError);
251
+ function emitFinalFailure(emitterCb, loggerContext, message) {
252
+ var clientError = (0, _LineError.createLineError)(message || '', {}, _types2.ERROR_TYPE.DEFAULT, _types3.RegistrationStatus.INACTIVE);
253
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.SERVICE_UNAVAILABLE, message || 'An unknown error occurred. Wait a moment and try again. Please contact the administrator if the problem persists.', _types3.RegistrationStatus.INACTIVE, clientError);
203
254
  emitterCb(clientError);
204
255
  }
205
256
 
@@ -231,111 +282,151 @@ function handleRegistrationErrors(_x, _x2, _x3, _x4, _x5) {
231
282
  */
232
283
  function _handleRegistrationErrors() {
233
284
  _handleRegistrationErrors = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(err, emitterCb, loggerContext, retry429Cb, restoreRegCb) {
234
- var lineError, errorCode, finalError, caller, retryAfter, errorBody, code, errorMessage, _caller, _errorMessage, _errorMessage2, _errorMessage3, _t, _t2;
285
+ var serverCount,
286
+ shouldDisconnect,
287
+ lineError,
288
+ errorCode,
289
+ finalError,
290
+ caller,
291
+ retryAfter,
292
+ errorBody,
293
+ code,
294
+ errorMessage,
295
+ _caller,
296
+ _errorMessage,
297
+ _errorMessage2,
298
+ _errorMessage3,
299
+ _args = arguments,
300
+ _t,
301
+ _t2;
235
302
  return _regenerator.default.wrap(function (_context) {
236
303
  while (1) switch (_context.prev = _context.next) {
237
304
  case 0:
305
+ serverCount = _args.length > 5 && _args[5] !== undefined ? _args[5] : 1;
306
+ shouldDisconnect = false;
238
307
  lineError = (0, _LineError.createLineError)('', {}, _types2.ERROR_TYPE.DEFAULT, _types3.RegistrationStatus.INACTIVE);
239
308
  errorCode = Number(err.statusCode);
240
309
  finalError = false;
241
310
  _Logger.default.warn("Status code: -> ".concat(errorCode), loggerContext);
242
311
  _t = errorCode;
243
- _context.next = _t === _types2.ERROR_CODE.BAD_REQUEST ? 1 : _t === _types2.ERROR_CODE.UNAUTHORIZED ? 2 : _t === _types2.ERROR_CODE.DEVICE_NOT_FOUND ? 3 : _t === _types2.ERROR_CODE.TOO_MANY_REQUESTS ? 4 : _t === _types2.ERROR_CODE.INTERNAL_SERVER_ERROR ? 5 : _t === _types2.ERROR_CODE.SERVICE_UNAVAILABLE ? 6 : _t === _types2.ERROR_CODE.FORBIDDEN ? 7 : 15;
312
+ _context.next = _t === _types2.ERROR_CODE.BAD_REQUEST ? 1 : _t === _types2.ERROR_CODE.UNAUTHORIZED ? 2 : _t === _types2.ERROR_CODE.DEVICE_NOT_FOUND ? 3 : _t === _types2.ERROR_CODE.TOO_MANY_REQUESTS ? 4 : _t === _types2.ERROR_CODE.INTERNAL_SERVER_ERROR ? 6 : _t === _types2.ERROR_CODE.SERVICE_UNAVAILABLE ? 7 : _t === _types2.ERROR_CODE.FORBIDDEN ? 8 : 16;
244
313
  break;
245
314
  case 1:
246
315
  finalError = true;
247
316
  _Logger.default.warn("400 Bad Request", loggerContext);
248
317
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.BAD_REQUEST, 'Invalid input. Please verify the required parameters, sign out and then sign back in with the valid data', _types3.RegistrationStatus.INACTIVE, lineError);
249
318
  emitterCb(lineError, finalError);
250
- return _context.abrupt("continue", 16);
319
+ shouldDisconnect = serverCount > 1;
320
+ return _context.abrupt("continue", 17);
251
321
  case 2:
252
322
  // Return it to the Caller
253
323
  finalError = true;
254
324
  _Logger.default.warn("401 Unauthorized", loggerContext);
255
325
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.TOKEN_ERROR, 'User is unauthorized due to an expired token. Sign out, then sign back in.', _types3.RegistrationStatus.INACTIVE, lineError);
256
326
  emitterCb(lineError, finalError);
257
- return _context.abrupt("continue", 16);
327
+ shouldDisconnect = serverCount > 1;
328
+ return _context.abrupt("continue", 17);
258
329
  case 3:
259
330
  finalError = true;
260
331
  _Logger.default.warn("404 Device Not Found", loggerContext);
261
332
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.NOT_FOUND, 'Webex Calling is unable to find your device. Sign out, then sign back in', _types3.RegistrationStatus.INACTIVE, lineError);
262
333
  emitterCb(lineError, finalError);
263
- return _context.abrupt("continue", 16);
334
+ shouldDisconnect = serverCount > 1;
335
+ return _context.abrupt("continue", 17);
264
336
  case 4:
265
337
  _Logger.default.warn("429 Too Many Requests", loggerContext);
266
338
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.TOO_MANY_REQUESTS, 'Server is handling too many request at the time. Wait a moment and try again', _types3.RegistrationStatus.INACTIVE, lineError);
267
339
  caller = loggerContext.method || 'handleErrors';
268
- if (retry429Cb && err.headers) {
269
- retryAfter = Number(err.headers['retry-after']);
270
- retry429Cb(retryAfter, caller);
340
+ if (!(retry429Cb && err.headers)) {
341
+ _context.next = 5;
342
+ break;
271
343
  }
272
- return _context.abrupt("continue", 16);
344
+ retryAfter = Number(err.headers['retry-after']);
345
+ _context.next = 5;
346
+ return retry429Cb(retryAfter, caller);
273
347
  case 5:
348
+ shouldDisconnect = false;
349
+ return _context.abrupt("continue", 17);
350
+ case 6:
274
351
  _Logger.default.warn("500 Internal Server Error", loggerContext);
275
352
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.SERVER_ERROR, 'An unknown error occurred while placing the request. Wait a moment and try again.', _types3.RegistrationStatus.INACTIVE, lineError);
276
353
  emitterCb(lineError, finalError);
277
- return _context.abrupt("continue", 16);
278
- case 6:
354
+ shouldDisconnect = serverCount > 1;
355
+ return _context.abrupt("continue", 17);
356
+ case 7:
279
357
  _Logger.default.warn("503 Service Unavailable", loggerContext);
280
358
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.SERVICE_UNAVAILABLE, 'An error occurred on the server while processing the request. Wait a moment and try again.', _types3.RegistrationStatus.INACTIVE, lineError);
281
359
  emitterCb(lineError, finalError);
282
- return _context.abrupt("continue", 16);
283
- case 7:
360
+ shouldDisconnect = serverCount > 1;
361
+ return _context.abrupt("continue", 17);
362
+ case 8:
284
363
  _Logger.default.warn("403 Forbidden", loggerContext);
285
364
  errorBody = err.body;
286
365
  if (errorBody) {
287
- _context.next = 8;
366
+ _context.next = 9;
288
367
  break;
289
368
  }
290
369
  _Logger.default.warn('Error response has no body, throwing default error', loggerContext);
291
370
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, 'An unauthorized action has been received. This action has been blocked. Please contact the administrator if this persists.', _types3.RegistrationStatus.INACTIVE, lineError);
292
371
  emitterCb(lineError, finalError);
293
- return _context.abrupt("return", finalError);
294
- case 8:
372
+ shouldDisconnect = serverCount > 1;
373
+ return _context.abrupt("return", {
374
+ finalError: finalError,
375
+ shouldDisconnect: shouldDisconnect
376
+ });
377
+ case 9:
295
378
  code = Number(errorBody.errorCode);
296
379
  _Logger.default.warn("Error code found : ".concat(code), loggerContext);
297
380
  _t2 = code;
298
- _context.next = _t2 === _types2.DEVICE_ERROR_CODE.DEVICE_LIMIT_EXCEEDED ? 9 : _t2 === _types2.DEVICE_ERROR_CODE.DEVICE_CREATION_DISABLED ? 11 : _t2 === _types2.DEVICE_ERROR_CODE.DEVICE_CREATION_FAILED ? 12 : 13;
381
+ _context.next = _t2 === _types2.DEVICE_ERROR_CODE.DEVICE_LIMIT_EXCEEDED ? 10 : _t2 === _types2.DEVICE_ERROR_CODE.DEVICE_CREATION_DISABLED ? 12 : _t2 === _types2.DEVICE_ERROR_CODE.DEVICE_CREATION_FAILED ? 13 : 14;
299
382
  break;
300
- case 9:
383
+ case 10:
301
384
  errorMessage = 'User device limit exceeded';
302
385
  _Logger.default.warn(errorMessage, loggerContext);
303
386
  if (!restoreRegCb) {
304
- _context.next = 10;
387
+ _context.next = 11;
305
388
  break;
306
389
  }
307
390
  _caller = loggerContext.method || 'handleErrors';
308
- _context.next = 10;
391
+ _context.next = 11;
309
392
  return restoreRegCb(errorBody, _caller);
310
- case 10:
311
- return _context.abrupt("continue", 14);
312
393
  case 11:
394
+ shouldDisconnect = false;
395
+ return _context.abrupt("continue", 15);
396
+ case 12:
313
397
  _errorMessage = 'User is not configured for WebRTC calling. Please contact the administrator to resolve this issue.';
314
398
  finalError = true;
315
399
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage, _types3.RegistrationStatus.INACTIVE, lineError);
316
400
  _Logger.default.warn(_errorMessage, loggerContext);
317
401
  emitterCb(lineError, true);
318
- return _context.abrupt("continue", 14);
319
- case 12:
402
+ shouldDisconnect = true;
403
+ return _context.abrupt("continue", 15);
404
+ case 13:
320
405
  _errorMessage2 = 'An unknown error occurred while provisioning the device. Wait a moment and try again.';
321
406
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage2, _types3.RegistrationStatus.INACTIVE, lineError);
322
407
  _Logger.default.warn(_errorMessage2, loggerContext);
323
408
  emitterCb(lineError, finalError);
324
- return _context.abrupt("continue", 14);
325
- case 13:
409
+ shouldDisconnect = serverCount > 1;
410
+ return _context.abrupt("continue", 15);
411
+ case 14:
326
412
  _errorMessage3 = 'An unknown error occurred. Wait a moment and try again. Please contact the administrator if the problem persists.';
327
413
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage3, _types3.RegistrationStatus.INACTIVE, lineError);
328
414
  _Logger.default.warn(_errorMessage3, loggerContext);
329
415
  emitterCb(lineError, finalError);
330
- case 14:
331
- return _context.abrupt("continue", 16);
416
+ shouldDisconnect = serverCount > 1;
332
417
  case 15:
418
+ return _context.abrupt("continue", 17);
419
+ case 16:
333
420
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.DEFAULT, 'Unknown error', _types3.RegistrationStatus.INACTIVE, lineError);
334
421
  _Logger.default.warn("Unknown Error", loggerContext);
335
422
  emitterCb(lineError, finalError);
336
- case 16:
337
- return _context.abrupt("return", finalError);
423
+ shouldDisconnect = serverCount > 1;
338
424
  case 17:
425
+ return _context.abrupt("return", {
426
+ finalError: finalError,
427
+ shouldDisconnect: shouldDisconnect
428
+ });
429
+ case 18:
339
430
  case "end":
340
431
  return _context.stop();
341
432
  }
@@ -1478,4 +1569,9 @@ function _uploadLogs() {
1478
1569
  }));
1479
1570
  return _uploadLogs.apply(this, arguments);
1480
1571
  }
1572
+ function normalizeMobiusUris(urls) {
1573
+ return urls.map(function (url) {
1574
+ return !url.endsWith('/') ? "".concat(url, "/") : url;
1575
+ });
1576
+ }
1481
1577
  //# sourceMappingURL=Utils.js.map