@webex/calling 3.12.0-next.4 → 3.12.0-next.41

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