@webex/calling 3.10.0-next.15 → 3.10.0-next.17

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.
@@ -95,6 +95,80 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
95
95
  this.backupMobiusUris = [];
96
96
  }
97
97
  return (0, _createClass2.default)(Registration, [{
98
+ key: "getFailoverCacheKey",
99
+ value: function getFailoverCacheKey() {
100
+ return "".concat(_constants2.FAILOVER_CACHE_PREFIX, ".").concat(this.userId || 'unknown');
101
+ }
102
+ }, {
103
+ key: "saveFailoverState",
104
+ value: function saveFailoverState(failoverState) {
105
+ try {
106
+ localStorage.setItem(this.getFailoverCacheKey(), (0, _stringify.default)(failoverState));
107
+ } catch (error) {
108
+ _Logger.default.warn("Storing failover state in cache failed with error: ".concat(String(error)), {
109
+ file: _constants2.REGISTRATION_FILE,
110
+ method: 'saveFailoverState'
111
+ });
112
+ }
113
+ }
114
+ }, {
115
+ key: "clearFailoverState",
116
+ value: function clearFailoverState() {
117
+ try {
118
+ localStorage.removeItem(this.getFailoverCacheKey());
119
+ } catch (_unused) {
120
+ _Logger.default.warn('Clearing failover state from localStorage failed', {
121
+ file: _constants2.REGISTRATION_FILE,
122
+ method: 'clearFailoverState'
123
+ });
124
+ }
125
+ }
126
+ }, {
127
+ key: "resumeFailover",
128
+ value: function () {
129
+ var _resumeFailover = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
130
+ var cachedState, failoverState, currentTime, newElapsed, _t;
131
+ return _regenerator.default.wrap(function (_context) {
132
+ while (1) switch (_context.prev = _context.next) {
133
+ case 0:
134
+ _context.prev = 0;
135
+ cachedState = localStorage.getItem(this.getFailoverCacheKey());
136
+ failoverState = cachedState ? JSON.parse(cachedState) : undefined;
137
+ if (!(failoverState && !this.isDeviceRegistered())) {
138
+ _context.next = 2;
139
+ break;
140
+ }
141
+ currentTime = Math.floor((0, _now.default)() / 1000);
142
+ newElapsed = failoverState.timeElapsed + (currentTime - failoverState.retryScheduledTime);
143
+ this.clearFailoverState();
144
+ _context.next = 1;
145
+ return this.startFailoverTimer(failoverState.attempt, newElapsed);
146
+ case 1:
147
+ return _context.abrupt("return", true);
148
+ case 2:
149
+ _context.next = 4;
150
+ break;
151
+ case 3:
152
+ _context.prev = 3;
153
+ _t = _context["catch"](0);
154
+ _Logger.default.warn("No failover state found in cache", {
155
+ file: _constants2.REGISTRATION_FILE,
156
+ method: 'triggerRegistration'
157
+ });
158
+ case 4:
159
+ return _context.abrupt("return", false);
160
+ case 5:
161
+ case "end":
162
+ return _context.stop();
163
+ }
164
+ }, _callee, this, [[0, 3]]);
165
+ }));
166
+ function resumeFailover() {
167
+ return _resumeFailover.apply(this, arguments);
168
+ }
169
+ return resumeFailover;
170
+ }()
171
+ }, {
98
172
  key: "getActiveMobiusUrl",
99
173
  value: function getActiveMobiusUrl() {
100
174
  return this.activeMobiusUrl;
@@ -127,51 +201,51 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
127
201
  }, {
128
202
  key: "deleteRegistration",
129
203
  value: (function () {
130
- var _deleteRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(url, deviceId, deviceUrl) {
204
+ var _deleteRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(url, deviceId, deviceUrl) {
131
205
  var _response;
132
- var response, _t, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
133
- return _regenerator.default.wrap(function (_context) {
134
- while (1) switch (_context.prev = _context.next) {
206
+ var response, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0;
207
+ return _regenerator.default.wrap(function (_context2) {
208
+ while (1) switch (_context2.prev = _context2.next) {
135
209
  case 0:
136
- _context.prev = 0;
137
- _t = fetch;
138
- _t2 = "".concat(url).concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "/").concat(deviceId);
139
- _t3 = _types2.HTTP_METHODS.DELETE;
140
- _t4 = _defineProperty2.default;
210
+ _context2.prev = 0;
211
+ _t2 = fetch;
212
+ _t3 = "".concat(url).concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "/").concat(deviceId);
213
+ _t4 = _types2.HTTP_METHODS.DELETE;
141
214
  _t5 = _defineProperty2.default;
142
215
  _t6 = _defineProperty2.default;
143
- _t7 = (0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, deviceUrl);
144
- _context.next = 1;
216
+ _t7 = _defineProperty2.default;
217
+ _t8 = (0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, deviceUrl);
218
+ _context2.next = 1;
145
219
  return this.webex.credentials.getUserToken();
146
220
  case 1:
147
- _t8 = _t4(_t5(_t6(_t7, "Authorization", _context.sent), "trackingId", "".concat(_constants2.WEBEX_WEB_CLIENT, "_").concat((0, _uuid.v4)())), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT);
148
- _context.next = 2;
149
- return _t(_t2, {
150
- method: _t3,
151
- headers: _t8
221
+ _t9 = _t5(_t6(_t7(_t8, "Authorization", _context2.sent), "trackingId", "".concat(_constants2.WEBEX_WEB_CLIENT, "_").concat((0, _uuid.v4)())), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT);
222
+ _context2.next = 2;
223
+ return _t2(_t3, {
224
+ method: _t4,
225
+ headers: _t9
152
226
  });
153
227
  case 2:
154
- response = _context.sent;
155
- _context.next = 4;
228
+ response = _context2.sent;
229
+ _context2.next = 4;
156
230
  break;
157
231
  case 3:
158
- _context.prev = 3;
159
- _t9 = _context["catch"](0);
160
- _Logger.default.warn("Delete failed with Mobius: ".concat((0, _stringify.default)(_t9)), {
232
+ _context2.prev = 3;
233
+ _t0 = _context2["catch"](0);
234
+ _Logger.default.warn("Delete failed with Mobius: ".concat((0, _stringify.default)(_t0)), {
161
235
  file: _constants2.REGISTRATION_FILE,
162
236
  method: _constants2.METHODS.DELETE_REGISTRATION
163
237
  });
164
- _context.next = 4;
238
+ _context2.next = 4;
165
239
  return (0, _common.uploadLogs)();
166
240
  case 4:
167
241
  this.setStatus(_types2.RegistrationStatus.INACTIVE);
168
242
  this.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
169
- return _context.abrupt("return", (_response = response) === null || _response === void 0 ? void 0 : _response.json());
243
+ return _context2.abrupt("return", (_response = response) === null || _response === void 0 ? void 0 : _response.json());
170
244
  case 5:
171
245
  case "end":
172
- return _context.stop();
246
+ return _context2.stop();
173
247
  }
174
- }, _callee, this, [[0, 3]]);
248
+ }, _callee2, this, [[0, 3]]);
175
249
  }));
176
250
  function deleteRegistration(_x, _x2, _x3) {
177
251
  return _deleteRegistration.apply(this, arguments);
@@ -186,10 +260,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
186
260
  }, {
187
261
  key: "postRegistration",
188
262
  value: (function () {
189
- var _postRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(url) {
263
+ var _postRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(url) {
190
264
  var deviceInfo;
191
- return _regenerator.default.wrap(function (_context2) {
192
- while (1) switch (_context2.prev = _context2.next) {
265
+ return _regenerator.default.wrap(function (_context3) {
266
+ while (1) switch (_context3.prev = _context3.next) {
193
267
  case 0:
194
268
  deviceInfo = {
195
269
  userId: this.userId,
@@ -198,7 +272,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
198
272
  jwe: this.jwe
199
273
  }) : this.serviceData
200
274
  };
201
- return _context2.abrupt("return", this.webex.request({
275
+ return _context3.abrupt("return", this.webex.request({
202
276
  uri: "".concat(url, "device"),
203
277
  method: _types2.HTTP_METHODS.POST,
204
278
  headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, deviceInfo.clientDeviceUri), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
@@ -207,9 +281,9 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
207
281
  }));
208
282
  case 1:
209
283
  case "end":
210
- return _context2.stop();
284
+ return _context3.stop();
211
285
  }
212
- }, _callee2, this);
286
+ }, _callee3, this);
213
287
  }));
214
288
  function postRegistration(_x4) {
215
289
  return _postRegistration.apply(this, arguments);
@@ -224,68 +298,68 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
224
298
  }, {
225
299
  key: "restorePreviousRegistration",
226
300
  value: (function () {
227
- var _restorePreviousRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(caller) {
301
+ var _restorePreviousRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5(caller) {
228
302
  var _this = this;
229
303
  var abort;
230
- return _regenerator.default.wrap(function (_context4) {
231
- while (1) switch (_context4.prev = _context4.next) {
304
+ return _regenerator.default.wrap(function (_context5) {
305
+ while (1) switch (_context5.prev = _context5.next) {
232
306
  case 0:
233
307
  abort = false;
234
308
  if (!this.activeMobiusUrl) {
235
- _context4.next = 6;
309
+ _context5.next = 6;
236
310
  break;
237
311
  }
238
- _context4.next = 1;
312
+ _context5.next = 1;
239
313
  return this.attemptRegistrationWithServers(caller, [this.activeMobiusUrl]);
240
314
  case 1:
241
- abort = _context4.sent;
315
+ abort = _context5.sent;
242
316
  if (!this.retryAfter) {
243
- _context4.next = 6;
317
+ _context5.next = 6;
244
318
  break;
245
319
  }
246
320
  if (!(this.retryAfter < _constants2.RETRY_TIMER_UPPER_LIMIT)) {
247
- _context4.next = 2;
321
+ _context5.next = 2;
248
322
  break;
249
323
  }
250
324
  // If retry-after is less than threshold, honor it and schedule retry
251
- setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
252
- return _regenerator.default.wrap(function (_context3) {
253
- while (1) switch (_context3.prev = _context3.next) {
325
+ setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
326
+ return _regenerator.default.wrap(function (_context4) {
327
+ while (1) switch (_context4.prev = _context4.next) {
254
328
  case 0:
255
- _context3.next = 1;
329
+ _context4.next = 1;
256
330
  return _this.restartRegistration(caller);
257
331
  case 1:
258
332
  case "end":
259
- return _context3.stop();
333
+ return _context4.stop();
260
334
  }
261
- }, _callee3);
335
+ }, _callee4);
262
336
  })), this.retryAfter * 1000);
263
- _context4.next = 5;
337
+ _context5.next = 5;
264
338
  break;
265
339
  case 2:
266
340
  if (!(this.primaryMobiusUris.includes(this.activeMobiusUrl) && this.backupMobiusUris.length > 0)) {
267
- _context4.next = 4;
341
+ _context5.next = 4;
268
342
  break;
269
343
  }
270
- _context4.next = 3;
344
+ _context5.next = 3;
271
345
  return this.attemptRegistrationWithServers(caller, this.backupMobiusUris);
272
346
  case 3:
273
- abort = _context4.sent;
274
- _context4.next = 5;
347
+ abort = _context5.sent;
348
+ _context5.next = 5;
275
349
  break;
276
350
  case 4:
277
351
  // If we are using backup and got 429, restart registration
278
352
  this.restartRegistration(caller);
279
353
  case 5:
280
354
  this.retryAfter = undefined;
281
- return _context4.abrupt("return", true);
355
+ return _context5.abrupt("return", true);
282
356
  case 6:
283
- return _context4.abrupt("return", abort);
357
+ return _context5.abrupt("return", abort);
284
358
  case 7:
285
359
  case "end":
286
- return _context4.stop();
360
+ return _context5.stop();
287
361
  }
288
- }, _callee4, this);
362
+ }, _callee5, this);
289
363
  }));
290
364
  function restorePreviousRegistration(_x5) {
291
365
  return _restorePreviousRegistration.apply(this, arguments);
@@ -299,30 +373,30 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
299
373
  }, {
300
374
  key: "handle404KeepaliveFailure",
301
375
  value: (function () {
302
- var _handle404KeepaliveFailure = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5(caller) {
376
+ var _handle404KeepaliveFailure = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6(caller) {
303
377
  var abort;
304
- return _regenerator.default.wrap(function (_context5) {
305
- while (1) switch (_context5.prev = _context5.next) {
378
+ return _regenerator.default.wrap(function (_context6) {
379
+ while (1) switch (_context6.prev = _context6.next) {
306
380
  case 0:
307
381
  if (!(caller === _constants2.KEEPALIVE_UTIL)) {
308
- _context5.next = 2;
382
+ _context6.next = 2;
309
383
  break;
310
384
  }
311
- _context5.next = 1;
385
+ _context6.next = 1;
312
386
  return this.attemptRegistrationWithServers(caller);
313
387
  case 1:
314
- abort = _context5.sent;
388
+ abort = _context6.sent;
315
389
  if (!(!abort && !this.isDeviceRegistered())) {
316
- _context5.next = 2;
390
+ _context6.next = 2;
317
391
  break;
318
392
  }
319
- _context5.next = 2;
393
+ _context6.next = 2;
320
394
  return this.startFailoverTimer();
321
395
  case 2:
322
396
  case "end":
323
- return _context5.stop();
397
+ return _context6.stop();
324
398
  }
325
- }, _callee5, this);
399
+ }, _callee6, this);
326
400
  }));
327
401
  function handle404KeepaliveFailure(_x6) {
328
402
  return _handle404KeepaliveFailure.apply(this, arguments);
@@ -336,21 +410,21 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
336
410
  }, {
337
411
  key: "handle429Retry",
338
412
  value: (function () {
339
- var _handle429Retry = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7(retryAfter, caller) {
413
+ var _handle429Retry = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8(retryAfter, caller) {
340
414
  var _this2 = this;
341
415
  var interval, abort;
342
- return _regenerator.default.wrap(function (_context7) {
343
- while (1) switch (_context7.prev = _context7.next) {
416
+ return _regenerator.default.wrap(function (_context8) {
417
+ while (1) switch (_context8.prev = _context8.next) {
344
418
  case 0:
345
419
  if (!(caller === _constants2.FAILBACK_UTIL)) {
346
- _context7.next = 4;
420
+ _context8.next = 4;
347
421
  break;
348
422
  }
349
423
  if (!(this.failback429RetryAttempts >= _constants2.REG_FAILBACK_429_MAX_RETRIES)) {
350
- _context7.next = 1;
424
+ _context8.next = 1;
351
425
  break;
352
426
  }
353
- return _context7.abrupt("return");
427
+ return _context8.abrupt("return");
354
428
  case 1:
355
429
  this.clearFailbackTimer();
356
430
  this.failback429RetryAttempts += 1;
@@ -361,26 +435,26 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
361
435
  interval = this.getRegRetryInterval(this.failback429RetryAttempts);
362
436
  this.startFailbackTimer(interval);
363
437
  this.scheduled429Retry = true;
364
- _context7.next = 2;
438
+ _context8.next = 2;
365
439
  return this.restorePreviousRegistration(_constants2.REG_429_RETRY_UTIL);
366
440
  case 2:
367
- abort = _context7.sent;
441
+ abort = _context8.sent;
368
442
  if (!(!abort && !this.isDeviceRegistered())) {
369
- _context7.next = 3;
443
+ _context8.next = 3;
370
444
  break;
371
445
  }
372
- _context7.next = 3;
446
+ _context8.next = 3;
373
447
  return this.restartRegistration(_constants2.REG_429_RETRY_UTIL);
374
448
  case 3:
375
- _context7.next = 5;
449
+ _context8.next = 5;
376
450
  break;
377
451
  case 4:
378
452
  if (caller === _constants2.KEEPALIVE_UTIL) {
379
453
  this.clearKeepaliveTimer();
380
- setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
454
+ setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
381
455
  var _this2$deviceInfo$dev;
382
- return _regenerator.default.wrap(function (_context6) {
383
- while (1) switch (_context6.prev = _context6.next) {
456
+ return _regenerator.default.wrap(function (_context7) {
457
+ while (1) switch (_context7.prev = _context7.next) {
384
458
  case 0:
385
459
  _Logger.default.log("Resuming keepalive after ".concat(retryAfter, " seconds"), {
386
460
  file: _constants2.REGISTRATION_FILE,
@@ -388,22 +462,22 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
388
462
  });
389
463
 
390
464
  // Resume the keepalive after waiting for the retry after period
391
- _context6.next = 1;
465
+ _context7.next = 1;
392
466
  return _this2.startKeepaliveTimer((_this2$deviceInfo$dev = _this2.deviceInfo.device) === null || _this2$deviceInfo$dev === void 0 ? void 0 : _this2$deviceInfo$dev.uri, _this2.deviceInfo.keepaliveInterval, 'UNKNOWN');
393
467
  case 1:
394
468
  case "end":
395
- return _context6.stop();
469
+ return _context7.stop();
396
470
  }
397
- }, _callee6);
471
+ }, _callee7);
398
472
  })), retryAfter * 1000);
399
473
  } else {
400
474
  this.retryAfter = retryAfter;
401
475
  }
402
476
  case 5:
403
477
  case "end":
404
- return _context7.stop();
478
+ return _context8.stop();
405
479
  }
406
- }, _callee7, this);
480
+ }, _callee8, this);
407
481
  }));
408
482
  function handle429Retry(_x7, _x8) {
409
483
  return _handle429Retry.apply(this, arguments);
@@ -434,7 +508,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
434
508
  }, {
435
509
  key: "startFailoverTimer",
436
510
  value: (function () {
437
- var _startFailoverTimer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
511
+ var _startFailoverTimer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11() {
438
512
  var _this3 = this;
439
513
  var attempt,
440
514
  timeElapsed,
@@ -444,12 +518,12 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
444
518
  excessVal,
445
519
  abort,
446
520
  scheduledTime,
447
- _args10 = arguments;
448
- return _regenerator.default.wrap(function (_context10) {
449
- while (1) switch (_context10.prev = _context10.next) {
521
+ _args11 = arguments;
522
+ return _regenerator.default.wrap(function (_context11) {
523
+ while (1) switch (_context11.prev = _context11.next) {
450
524
  case 0:
451
- attempt = _args10.length > 0 && _args10[0] !== undefined ? _args10[0] : 1;
452
- timeElapsed = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : 0;
525
+ attempt = _args11.length > 0 && _args11[0] !== undefined ? _args11[0] : 1;
526
+ timeElapsed = _args11.length > 1 && _args11[1] !== undefined ? _args11[1] : 0;
453
527
  loggerContext = {
454
528
  file: _constants2.REGISTRATION_FILE,
455
529
  method: _constants2.FAILOVER_UTIL
@@ -464,83 +538,95 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
464
538
  this.failoverImmediately = this.retryAfter + timeElapsed > TIMER_THRESHOLD;
465
539
  }
466
540
  if (!(interval > _constants2.BASE_REG_RETRY_TIMER_VAL_IN_SEC && !this.failoverImmediately)) {
467
- _context10.next = 1;
541
+ _context11.next = 1;
468
542
  break;
469
543
  }
470
544
  scheduledTime = Math.floor((0, _now.default)() / 1000);
471
545
  if (this.retryAfter != null) {
472
546
  interval = Math.max(interval, this.retryAfter);
473
547
  }
474
- setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
475
- return _regenerator.default.wrap(function (_context9) {
476
- while (1) switch (_context9.prev = _context9.next) {
548
+ this.saveFailoverState({
549
+ attempt: attempt,
550
+ timeElapsed: timeElapsed,
551
+ retryScheduledTime: scheduledTime,
552
+ serverType: 'primary'
553
+ });
554
+ setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
555
+ return _regenerator.default.wrap(function (_context0) {
556
+ while (1) switch (_context0.prev = _context0.next) {
477
557
  case 0:
478
- _context9.next = 1;
479
- return _this3.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
558
+ _context0.next = 1;
559
+ return _this3.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
480
560
  var currentTime;
481
- return _regenerator.default.wrap(function (_context8) {
482
- while (1) switch (_context8.prev = _context8.next) {
561
+ return _regenerator.default.wrap(function (_context9) {
562
+ while (1) switch (_context9.prev = _context9.next) {
483
563
  case 0:
484
- _context8.next = 1;
564
+ _context9.next = 1;
485
565
  return _this3.attemptRegistrationWithServers(_constants2.FAILOVER_UTIL);
486
566
  case 1:
487
- abort = _context8.sent;
567
+ abort = _context9.sent;
488
568
  currentTime = Math.floor((0, _now.default)() / 1000);
489
569
  if (!(!abort && !_this3.isDeviceRegistered())) {
490
- _context8.next = 2;
570
+ _context9.next = 2;
491
571
  break;
492
572
  }
493
- _context8.next = 2;
573
+ _context9.next = 2;
494
574
  return _this3.startFailoverTimer(attempt + 1, timeElapsed + (currentTime - scheduledTime));
495
575
  case 2:
496
576
  case "end":
497
- return _context8.stop();
577
+ return _context9.stop();
498
578
  }
499
- }, _callee8);
579
+ }, _callee9);
500
580
  })));
501
581
  case 1:
502
582
  case "end":
503
- return _context9.stop();
583
+ return _context0.stop();
504
584
  }
505
- }, _callee9);
585
+ }, _callee0);
506
586
  })), interval * _constants2.SEC_TO_MSEC_MFACTOR);
507
587
  _Logger.default.log("Scheduled retry with primary in ".concat(interval, " seconds, number of attempts : ").concat(attempt), loggerContext);
508
- _context10.next = 5;
588
+ _context11.next = 5;
509
589
  break;
510
590
  case 1:
511
591
  if (!this.backupMobiusUris.length) {
512
- _context10.next = 3;
592
+ _context11.next = 3;
513
593
  break;
514
594
  }
595
+ this.saveFailoverState({
596
+ attempt: attempt,
597
+ timeElapsed: timeElapsed,
598
+ retryScheduledTime: Math.floor((0, _now.default)() / 1000),
599
+ serverType: 'backup'
600
+ });
515
601
  _Logger.default.info('Failing over to backup servers.', loggerContext);
516
602
  this.failoverImmediately = false;
517
- _context10.next = 2;
603
+ _context11.next = 2;
518
604
  return this.attemptRegistrationWithServers(_constants2.FAILOVER_UTIL, this.backupMobiusUris);
519
605
  case 2:
520
- abort = _context10.sent;
606
+ abort = _context11.sent;
521
607
  if (!abort && !this.isDeviceRegistered()) {
522
608
  interval = this.getRegRetryInterval();
523
609
  if (this.retryAfter != null && this.retryAfter < _constants2.RETRY_TIMER_UPPER_LIMIT) {
524
610
  interval = interval < this.retryAfter ? this.retryAfter : interval;
525
611
  }
526
- setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
527
- return _regenerator.default.wrap(function (_context1) {
528
- while (1) switch (_context1.prev = _context1.next) {
612
+ setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
613
+ return _regenerator.default.wrap(function (_context10) {
614
+ while (1) switch (_context10.prev = _context10.next) {
529
615
  case 0:
530
- _context1.next = 1;
531
- return _this3.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
532
- return _regenerator.default.wrap(function (_context0) {
533
- while (1) switch (_context0.prev = _context0.next) {
616
+ _context10.next = 1;
617
+ return _this3.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
618
+ return _regenerator.default.wrap(function (_context1) {
619
+ while (1) switch (_context1.prev = _context1.next) {
534
620
  case 0:
535
- _context0.next = 1;
621
+ _context1.next = 1;
536
622
  return _this3.attemptRegistrationWithServers(_constants2.FAILOVER_UTIL, _this3.backupMobiusUris);
537
623
  case 1:
538
- abort = _context0.sent;
624
+ abort = _context1.sent;
539
625
  if (!(!abort && !_this3.isDeviceRegistered())) {
540
- _context0.next = 3;
626
+ _context1.next = 3;
541
627
  break;
542
628
  }
543
- _context0.next = 2;
629
+ _context1.next = 2;
544
630
  return (0, _common.uploadLogs)();
545
631
  case 2:
546
632
  (0, _common.emitFinalFailure)(function (clientError) {
@@ -548,22 +634,22 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
548
634
  }, loggerContext);
549
635
  case 3:
550
636
  case "end":
551
- return _context0.stop();
637
+ return _context1.stop();
552
638
  }
553
- }, _callee0);
639
+ }, _callee1);
554
640
  })));
555
641
  case 1:
556
642
  case "end":
557
- return _context1.stop();
643
+ return _context10.stop();
558
644
  }
559
- }, _callee1);
645
+ }, _callee10);
560
646
  })), interval * _constants2.SEC_TO_MSEC_MFACTOR);
561
647
  _Logger.default.log("Scheduled retry with backup servers in ".concat(interval, " seconds."), loggerContext);
562
648
  }
563
- _context10.next = 5;
649
+ _context11.next = 5;
564
650
  break;
565
651
  case 3:
566
- _context10.next = 4;
652
+ _context11.next = 4;
567
653
  return (0, _common.uploadLogs)();
568
654
  case 4:
569
655
  (0, _common.emitFinalFailure)(function (clientError) {
@@ -571,9 +657,9 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
571
657
  }, loggerContext);
572
658
  case 5:
573
659
  case "end":
574
- return _context10.stop();
660
+ return _context11.stop();
575
661
  }
576
- }, _callee10, this);
662
+ }, _callee11, this);
577
663
  }));
578
664
  function startFailoverTimer() {
579
665
  return _startFailoverTimer.apply(this, arguments);
@@ -595,23 +681,23 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
595
681
  }, {
596
682
  key: "isPrimaryActive",
597
683
  value: function () {
598
- var _isPrimaryActive = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11() {
599
- var status, _iterator, _step, mobiusUrl, baseUri, response, _ref7, statusCode, _t0, _t1;
600
- return _regenerator.default.wrap(function (_context11) {
601
- while (1) switch (_context11.prev = _context11.next) {
684
+ var _isPrimaryActive = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12() {
685
+ var status, _iterator, _step, mobiusUrl, baseUri, response, _ref7, statusCode, _t1, _t10;
686
+ return _regenerator.default.wrap(function (_context12) {
687
+ while (1) switch (_context12.prev = _context12.next) {
602
688
  case 0:
603
689
  _iterator = _createForOfIteratorHelper(this.primaryMobiusUris);
604
- _context11.prev = 1;
690
+ _context12.prev = 1;
605
691
  _iterator.s();
606
692
  case 2:
607
693
  if ((_step = _iterator.n()).done) {
608
- _context11.next = 8;
694
+ _context12.next = 8;
609
695
  break;
610
696
  }
611
697
  mobiusUrl = _step.value;
612
- _context11.prev = 3;
698
+ _context12.prev = 3;
613
699
  baseUri = mobiusUrl.replace(_constants2.URL_ENDPOINT, '/'); // eslint-disable-next-line no-await-in-loop
614
- _context11.next = 4;
700
+ _context12.next = 4;
615
701
  return this.webex.request({
616
702
  uri: "".concat(baseUri, "ping"),
617
703
  method: _types2.HTTP_METHODS.GET,
@@ -619,10 +705,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
619
705
  service: _types2.ALLOWED_SERVICES.MOBIUS
620
706
  });
621
707
  case 4:
622
- response = _context11.sent;
708
+ response = _context12.sent;
623
709
  _ref7 = response, statusCode = _ref7.statusCode;
624
710
  if (!(statusCode === 200)) {
625
- _context11.next = 5;
711
+ _context12.next = 5;
626
712
  break;
627
713
  }
628
714
  _Logger.default.info("Ping successful for primary Mobius: ".concat(mobiusUrl), {
@@ -630,39 +716,39 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
630
716
  method: _constants2.FAILBACK_UTIL
631
717
  });
632
718
  status = 'up';
633
- return _context11.abrupt("continue", 8);
719
+ return _context12.abrupt("continue", 8);
634
720
  case 5:
635
- _context11.next = 7;
721
+ _context12.next = 7;
636
722
  break;
637
723
  case 6:
638
- _context11.prev = 6;
639
- _t0 = _context11["catch"](3);
640
- _Logger.default.warn("Ping failed for primary Mobius: ".concat(mobiusUrl, " with error: ").concat((0, _stringify.default)(_t0)), {
724
+ _context12.prev = 6;
725
+ _t1 = _context12["catch"](3);
726
+ _Logger.default.warn("Ping failed for primary Mobius: ".concat(mobiusUrl, " with error: ").concat((0, _stringify.default)(_t1)), {
641
727
  file: _constants2.REGISTRATION_FILE,
642
728
  method: _constants2.FAILBACK_UTIL
643
729
  });
644
730
  status = 'down';
645
731
  case 7:
646
- _context11.next = 2;
732
+ _context12.next = 2;
647
733
  break;
648
734
  case 8:
649
- _context11.next = 10;
735
+ _context12.next = 10;
650
736
  break;
651
737
  case 9:
652
- _context11.prev = 9;
653
- _t1 = _context11["catch"](1);
654
- _iterator.e(_t1);
738
+ _context12.prev = 9;
739
+ _t10 = _context12["catch"](1);
740
+ _iterator.e(_t10);
655
741
  case 10:
656
- _context11.prev = 10;
742
+ _context12.prev = 10;
657
743
  _iterator.f();
658
- return _context11.finish(10);
744
+ return _context12.finish(10);
659
745
  case 11:
660
- return _context11.abrupt("return", status === 'up');
746
+ return _context12.abrupt("return", status === 'up');
661
747
  case 12:
662
748
  case "end":
663
- return _context11.stop();
749
+ return _context12.stop();
664
750
  }
665
- }, _callee11, this, [[1, 9, 10, 11], [3, 6]]);
751
+ }, _callee12, this, [[1, 9, 10, 11], [3, 6]]);
666
752
  }));
667
753
  function isPrimaryActive() {
668
754
  return _isPrimaryActive.apply(this, arguments);
@@ -715,16 +801,16 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
715
801
  key: "startFailbackTimer",
716
802
  value: function startFailbackTimer(intervalInSeconds) {
717
803
  var _this4 = this;
718
- this.failbackTimer = setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12() {
719
- return _regenerator.default.wrap(function (_context12) {
720
- while (1) switch (_context12.prev = _context12.next) {
804
+ this.failbackTimer = setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13() {
805
+ return _regenerator.default.wrap(function (_context13) {
806
+ while (1) switch (_context13.prev = _context13.next) {
721
807
  case 0:
722
- return _context12.abrupt("return", _this4.executeFailback());
808
+ return _context13.abrupt("return", _this4.executeFailback());
723
809
  case 1:
724
810
  case "end":
725
- return _context12.stop();
811
+ return _context13.stop();
726
812
  }
727
- }, _callee12);
813
+ }, _callee13);
728
814
  })), intervalInSeconds * _constants2.SEC_TO_MSEC_MFACTOR);
729
815
  _Logger.default.log("Failback scheduled after ".concat(intervalInSeconds, " seconds."), {
730
816
  file: _constants2.REGISTRATION_FILE,
@@ -739,71 +825,71 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
739
825
  }, {
740
826
  key: "executeFailback",
741
827
  value: (function () {
742
- var _executeFailback = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee14() {
828
+ var _executeFailback = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee15() {
743
829
  var _this5 = this;
744
- return _regenerator.default.wrap(function (_context14) {
745
- while (1) switch (_context14.prev = _context14.next) {
830
+ return _regenerator.default.wrap(function (_context15) {
831
+ while (1) switch (_context15.prev = _context15.next) {
746
832
  case 0:
747
- _context14.next = 1;
748
- return this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13() {
833
+ _context15.next = 1;
834
+ return this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee14() {
749
835
  var primaryServerStatus, abort, abortNew;
750
- return _regenerator.default.wrap(function (_context13) {
751
- while (1) switch (_context13.prev = _context13.next) {
836
+ return _regenerator.default.wrap(function (_context14) {
837
+ while (1) switch (_context14.prev = _context14.next) {
752
838
  case 0:
753
839
  if (!_this5.isFailbackRequired()) {
754
- _context13.next = 11;
840
+ _context14.next = 11;
755
841
  break;
756
842
  }
757
- _context13.next = 1;
843
+ _context14.next = 1;
758
844
  return _this5.isPrimaryActive();
759
845
  case 1:
760
- primaryServerStatus = _context13.sent;
846
+ primaryServerStatus = _context14.sent;
761
847
  if (!((0, _keys.default)(_this5.callManager.getActiveCalls()).length === 0 && primaryServerStatus)) {
762
- _context13.next = 10;
848
+ _context14.next = 10;
763
849
  break;
764
850
  }
765
851
  _Logger.default.info("Attempting failback to primary.", {
766
852
  file: _constants2.REGISTRATION_FILE,
767
853
  method: _this5.executeFailback.name
768
854
  });
769
- _context13.next = 2;
855
+ _context14.next = 2;
770
856
  return _this5.deregister();
771
857
  case 2:
772
- _context13.next = 3;
858
+ _context14.next = 3;
773
859
  return _this5.attemptRegistrationWithServers(_constants2.FAILBACK_UTIL);
774
860
  case 3:
775
- abort = _context13.sent;
861
+ abort = _context14.sent;
776
862
  if (!(_this5.scheduled429Retry || abort || _this5.isDeviceRegistered())) {
777
- _context13.next = 4;
863
+ _context14.next = 4;
778
864
  break;
779
865
  }
780
- return _context13.abrupt("return");
866
+ return _context14.abrupt("return");
781
867
  case 4:
782
- _context13.next = 5;
868
+ _context14.next = 5;
783
869
  return _this5.restorePreviousRegistration(_constants2.FAILBACK_UTIL);
784
870
  case 5:
785
- abortNew = _context13.sent;
871
+ abortNew = _context14.sent;
786
872
  if (!abortNew) {
787
- _context13.next = 6;
873
+ _context14.next = 6;
788
874
  break;
789
875
  }
790
876
  _this5.clearFailbackTimer();
791
- return _context13.abrupt("return");
877
+ return _context14.abrupt("return");
792
878
  case 6:
793
879
  if (_this5.isDeviceRegistered()) {
794
- _context13.next = 8;
880
+ _context14.next = 8;
795
881
  break;
796
882
  }
797
- _context13.next = 7;
883
+ _context14.next = 7;
798
884
  return _this5.restartRegistration(_this5.executeFailback.name);
799
885
  case 7:
800
- _context13.next = 9;
886
+ _context14.next = 9;
801
887
  break;
802
888
  case 8:
803
889
  _this5.failbackTimer = undefined;
804
890
  _this5.initiateFailback();
805
891
  case 9:
806
- _context13.next = 11;
892
+ _context14.next = 11;
807
893
  break;
808
894
  case 10:
809
895
  _Logger.default.info('Active calls present or primary Mobius is down, deferring failback to next cycle.', {
@@ -814,15 +900,15 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
814
900
  _this5.initiateFailback();
815
901
  case 11:
816
902
  case "end":
817
- return _context13.stop();
903
+ return _context14.stop();
818
904
  }
819
- }, _callee13);
905
+ }, _callee14);
820
906
  })));
821
907
  case 1:
822
908
  case "end":
823
- return _context14.stop();
909
+ return _context15.stop();
824
910
  }
825
- }, _callee14, this);
911
+ }, _callee15, this);
826
912
  }));
827
913
  function executeFailback() {
828
914
  return _executeFailback.apply(this, arguments);
@@ -885,10 +971,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
885
971
  }, {
886
972
  key: "restartRegistration",
887
973
  value: (function () {
888
- var _restartRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee15(caller) {
974
+ var _restartRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee16(caller) {
889
975
  var abort;
890
- return _regenerator.default.wrap(function (_context15) {
891
- while (1) switch (_context15.prev = _context15.next) {
976
+ return _regenerator.default.wrap(function (_context16) {
977
+ while (1) switch (_context16.prev = _context16.next) {
892
978
  case 0:
893
979
  /*
894
980
  * Cancel any failback timer running
@@ -896,21 +982,21 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
896
982
  */
897
983
  this.clearFailbackTimer();
898
984
  this.failback429RetryAttempts = 0;
899
- _context15.next = 1;
985
+ _context16.next = 1;
900
986
  return this.attemptRegistrationWithServers(caller, this.primaryMobiusUris);
901
987
  case 1:
902
- abort = _context15.sent;
988
+ abort = _context16.sent;
903
989
  if (!(!abort && !this.isDeviceRegistered())) {
904
- _context15.next = 2;
990
+ _context16.next = 2;
905
991
  break;
906
992
  }
907
- _context15.next = 2;
993
+ _context16.next = 2;
908
994
  return this.startFailoverTimer();
909
995
  case 2:
910
996
  case "end":
911
- return _context15.stop();
997
+ return _context16.stop();
912
998
  }
913
- }, _callee15, this);
999
+ }, _callee16, this);
914
1000
  }));
915
1001
  function restartRegistration(_x9) {
916
1002
  return _restartRegistration.apply(this, arguments);
@@ -926,23 +1012,23 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
926
1012
  }, {
927
1013
  key: "handleConnectionRestoration",
928
1014
  value: (function () {
929
- var _handleConnectionRestoration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee17(retry) {
1015
+ var _handleConnectionRestoration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee18(retry) {
930
1016
  var _this6 = this;
931
- return _regenerator.default.wrap(function (_context17) {
932
- while (1) switch (_context17.prev = _context17.next) {
1017
+ return _regenerator.default.wrap(function (_context18) {
1018
+ while (1) switch (_context18.prev = _context18.next) {
933
1019
  case 0:
934
1020
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
935
1021
  method: _constants2.METHODS.HANDLE_CONNECTION_RESTORATION,
936
1022
  file: _constants2.REGISTRATION_FILE
937
1023
  });
938
- _context17.next = 1;
939
- return this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee16() {
1024
+ _context18.next = 1;
1025
+ return this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee17() {
940
1026
  var abort;
941
- return _regenerator.default.wrap(function (_context16) {
942
- while (1) switch (_context16.prev = _context16.next) {
1027
+ return _regenerator.default.wrap(function (_context17) {
1028
+ while (1) switch (_context17.prev = _context17.next) {
943
1029
  case 0:
944
1030
  if (!retry) {
945
- _context16.next = 4;
1031
+ _context17.next = 4;
946
1032
  break;
947
1033
  }
948
1034
  _Logger.default.log('Network is up again, re-registering with Webex Calling if needed', {
@@ -951,41 +1037,41 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
951
1037
  });
952
1038
  _this6.clearKeepaliveTimer();
953
1039
  if (!_this6.isDeviceRegistered()) {
954
- _context16.next = 1;
1040
+ _context17.next = 1;
955
1041
  break;
956
1042
  }
957
- _context16.next = 1;
1043
+ _context17.next = 1;
958
1044
  return _this6.deregister();
959
1045
  case 1:
960
1046
  if (!_this6.activeMobiusUrl) {
961
- _context16.next = 3;
1047
+ _context17.next = 3;
962
1048
  break;
963
1049
  }
964
- _context16.next = 2;
1050
+ _context17.next = 2;
965
1051
  return _this6.restorePreviousRegistration(_constants2.METHODS.HANDLE_CONNECTION_RESTORATION);
966
1052
  case 2:
967
- abort = _context16.sent;
1053
+ abort = _context17.sent;
968
1054
  if (!(!abort && !_this6.isDeviceRegistered())) {
969
- _context16.next = 3;
1055
+ _context17.next = 3;
970
1056
  break;
971
1057
  }
972
- _context16.next = 3;
1058
+ _context17.next = 3;
973
1059
  return _this6.restartRegistration(_constants2.METHODS.HANDLE_CONNECTION_RESTORATION);
974
1060
  case 3:
975
1061
  retry = false;
976
1062
  case 4:
977
1063
  case "end":
978
- return _context16.stop();
1064
+ return _context17.stop();
979
1065
  }
980
- }, _callee16);
1066
+ }, _callee17);
981
1067
  })));
982
1068
  case 1:
983
- return _context17.abrupt("return", retry);
1069
+ return _context18.abrupt("return", retry);
984
1070
  case 2:
985
1071
  case "end":
986
- return _context17.stop();
1072
+ return _context18.stop();
987
1073
  }
988
- }, _callee17, this);
1074
+ }, _callee18, this);
989
1075
  }));
990
1076
  function handleConnectionRestoration(_x0) {
991
1077
  return _handleConnectionRestoration.apply(this, arguments);
@@ -1003,51 +1089,51 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1003
1089
  value: function restoreRegistrationCallBack() {
1004
1090
  var _this7 = this;
1005
1091
  return /*#__PURE__*/function () {
1006
- var _ref1 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee18(restoreData, caller) {
1092
+ var _ref1 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee19(restoreData, caller) {
1007
1093
  var logContext, restore, finalError;
1008
- return _regenerator.default.wrap(function (_context18) {
1009
- while (1) switch (_context18.prev = _context18.next) {
1094
+ return _regenerator.default.wrap(function (_context19) {
1095
+ while (1) switch (_context19.prev = _context19.next) {
1010
1096
  case 0:
1011
1097
  logContext = {
1012
1098
  file: _constants2.REGISTRATION_FILE,
1013
1099
  method: caller
1014
1100
  };
1015
1101
  if (_this7.isRegRetry()) {
1016
- _context18.next = 4;
1102
+ _context19.next = 4;
1017
1103
  break;
1018
1104
  }
1019
1105
  _Logger.default.info('Registration restoration in progress.', logContext);
1020
1106
  restore = _this7.getExistingDevice(restoreData);
1021
1107
  if (!restore) {
1022
- _context18.next = 3;
1108
+ _context19.next = 3;
1023
1109
  break;
1024
1110
  }
1025
1111
  _this7.setRegRetry(true);
1026
- _context18.next = 1;
1112
+ _context19.next = 1;
1027
1113
  return _this7.deregister();
1028
1114
  case 1:
1029
- _context18.next = 2;
1115
+ _context19.next = 2;
1030
1116
  return _this7.restorePreviousRegistration(caller);
1031
1117
  case 2:
1032
- finalError = _context18.sent;
1118
+ finalError = _context19.sent;
1033
1119
  _this7.setRegRetry(false);
1034
1120
  if (_this7.isDeviceRegistered()) {
1035
1121
  _Logger.default.info('Registration restored successfully.', logContext);
1036
1122
  }
1037
- return _context18.abrupt("return", finalError);
1123
+ return _context19.abrupt("return", finalError);
1038
1124
  case 3:
1039
1125
  _this7.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
1040
- _context18.next = 5;
1126
+ _context19.next = 5;
1041
1127
  break;
1042
1128
  case 4:
1043
1129
  _this7.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
1044
1130
  case 5:
1045
- return _context18.abrupt("return", false);
1131
+ return _context19.abrupt("return", false);
1046
1132
  case 6:
1047
1133
  case "end":
1048
- return _context18.stop();
1134
+ return _context19.stop();
1049
1135
  }
1050
- }, _callee18);
1136
+ }, _callee19);
1051
1137
  }));
1052
1138
  return function (_x1, _x10) {
1053
1139
  return _ref1.apply(this, arguments);
@@ -1062,30 +1148,39 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1062
1148
  }, {
1063
1149
  key: "triggerRegistration",
1064
1150
  value: (function () {
1065
- var _triggerRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee19() {
1151
+ var _triggerRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee20() {
1066
1152
  var abort;
1067
- return _regenerator.default.wrap(function (_context19) {
1068
- while (1) switch (_context19.prev = _context19.next) {
1153
+ return _regenerator.default.wrap(function (_context20) {
1154
+ while (1) switch (_context20.prev = _context20.next) {
1069
1155
  case 0:
1156
+ _context20.next = 1;
1157
+ return this.resumeFailover();
1158
+ case 1:
1159
+ if (!_context20.sent) {
1160
+ _context20.next = 2;
1161
+ break;
1162
+ }
1163
+ return _context20.abrupt("return");
1164
+ case 2:
1070
1165
  if (!(this.primaryMobiusUris.length > 0)) {
1071
- _context19.next = 2;
1166
+ _context20.next = 4;
1072
1167
  break;
1073
1168
  }
1074
- _context19.next = 1;
1169
+ _context20.next = 3;
1075
1170
  return this.attemptRegistrationWithServers(_constants2.REGISTRATION_UTIL, this.primaryMobiusUris);
1076
- case 1:
1077
- abort = _context19.sent;
1171
+ case 3:
1172
+ abort = _context20.sent;
1078
1173
  if (!(!this.isDeviceRegistered() && !abort)) {
1079
- _context19.next = 2;
1174
+ _context20.next = 4;
1080
1175
  break;
1081
1176
  }
1082
- _context19.next = 2;
1177
+ _context20.next = 4;
1083
1178
  return this.startFailoverTimer();
1084
- case 2:
1179
+ case 4:
1085
1180
  case "end":
1086
- return _context19.stop();
1181
+ return _context20.stop();
1087
1182
  }
1088
- }, _callee19, this);
1183
+ }, _callee20, this);
1089
1184
  }));
1090
1185
  function triggerRegistration() {
1091
1186
  return _triggerRegistration.apply(this, arguments);
@@ -1104,7 +1199,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1104
1199
  }, {
1105
1200
  key: "attemptRegistrationWithServers",
1106
1201
  value: (function () {
1107
- var _attemptRegistrationWithServers = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee20(caller) {
1202
+ var _attemptRegistrationWithServers = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee21(caller) {
1108
1203
  var _this8 = this;
1109
1204
  var servers,
1110
1205
  abort,
@@ -1112,41 +1207,41 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1112
1207
  _step2,
1113
1208
  _loop,
1114
1209
  _ret,
1115
- _args21 = arguments,
1116
- _t11;
1117
- return _regenerator.default.wrap(function (_context21) {
1118
- while (1) switch (_context21.prev = _context21.next) {
1210
+ _args22 = arguments,
1211
+ _t12;
1212
+ return _regenerator.default.wrap(function (_context22) {
1213
+ while (1) switch (_context22.prev = _context22.next) {
1119
1214
  case 0:
1120
- servers = _args21.length > 1 && _args21[1] !== undefined ? _args21[1] : this.primaryMobiusUris;
1215
+ servers = _args22.length > 1 && _args22[1] !== undefined ? _args22[1] : this.primaryMobiusUris;
1121
1216
  abort = false;
1122
1217
  this.retryAfter = undefined;
1123
1218
  if (!this.failoverImmediately) {
1124
- _context21.next = 1;
1219
+ _context22.next = 1;
1125
1220
  break;
1126
1221
  }
1127
- return _context21.abrupt("return", abort);
1222
+ return _context22.abrupt("return", abort);
1128
1223
  case 1:
1129
1224
  if (!this.isDeviceRegistered()) {
1130
- _context21.next = 2;
1225
+ _context22.next = 2;
1131
1226
  break;
1132
1227
  }
1133
1228
  _Logger.default.info("[".concat(caller, "] : Device already registered with : ").concat(this.activeMobiusUrl), {
1134
1229
  file: _constants2.REGISTRATION_FILE,
1135
1230
  method: _constants2.REGISTER_UTIL
1136
1231
  });
1137
- return _context21.abrupt("return", abort);
1232
+ return _context22.abrupt("return", abort);
1138
1233
  case 2:
1139
1234
  _iterator2 = _createForOfIteratorHelper(servers);
1140
- _context21.prev = 3;
1235
+ _context22.prev = 3;
1141
1236
  _loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
1142
1237
  var _this8$backupMobiusUr;
1143
- var url, serverType, _this8$deviceInfo$dev, _resp$headers, _resp$headers$trackin, _resp$headers2, _this8$deviceInfo$dev2, resp, body, _t10;
1144
- return _regenerator.default.wrap(function (_context20) {
1145
- while (1) switch (_context20.prev = _context20.next) {
1238
+ var url, serverType, _this8$deviceInfo$dev, _resp$headers, _resp$headers$trackin, _resp$headers2, _this8$deviceInfo$dev2, resp, body, _t11;
1239
+ return _regenerator.default.wrap(function (_context21) {
1240
+ while (1) switch (_context21.prev = _context21.next) {
1146
1241
  case 0:
1147
1242
  url = _step2.value;
1148
1243
  serverType = _this8.primaryMobiusUris.includes(url) && 'PRIMARY' || ((_this8$backupMobiusUr = _this8.backupMobiusUris) === null || _this8$backupMobiusUr === void 0 ? void 0 : _this8$backupMobiusUr.includes(url)) && 'BACKUP' || 'UNKNOWN';
1149
- _context20.prev = 1;
1244
+ _context21.prev = 1;
1150
1245
  abort = false;
1151
1246
  _this8.registrationStatus = _types2.RegistrationStatus.INACTIVE;
1152
1247
  _this8.lineEmitter(_types3.LINE_EVENTS.CONNECTING);
@@ -1155,10 +1250,11 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1155
1250
  method: _constants2.REGISTER_UTIL
1156
1251
  });
1157
1252
  // eslint-disable-next-line no-await-in-loop
1158
- _context20.next = 2;
1253
+ _context21.next = 2;
1159
1254
  return _this8.postRegistration(url);
1160
1255
  case 2:
1161
- resp = _context20.sent;
1256
+ resp = _context21.sent;
1257
+ _this8.clearFailoverState();
1162
1258
  _this8.deviceInfo = resp.body;
1163
1259
  _this8.registrationStatus = _types2.RegistrationStatus.ACTIVE;
1164
1260
  _this8.setActiveMobiusUrl(url);
@@ -1172,12 +1268,12 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1172
1268
  _this8.metricManager.submitRegistrationMetric(_types.METRIC_EVENT.REGISTRATION, _types.REG_ACTION.REGISTER, _types.METRIC_TYPE.BEHAVIORAL, caller, serverType, (_resp$headers$trackin = (_resp$headers2 = resp.headers) === null || _resp$headers2 === void 0 ? void 0 : _resp$headers2.trackingid) !== null && _resp$headers$trackin !== void 0 ? _resp$headers$trackin : '', undefined, undefined);
1173
1269
  _this8.startKeepaliveTimer((_this8$deviceInfo$dev2 = _this8.deviceInfo.device) === null || _this8$deviceInfo$dev2 === void 0 ? void 0 : _this8$deviceInfo$dev2.uri, _this8.deviceInfo.keepaliveInterval, serverType);
1174
1270
  _this8.initiateFailback();
1175
- return _context20.abrupt("return", 0);
1271
+ return _context21.abrupt("return", 0);
1176
1272
  case 3:
1177
- _context20.prev = 3;
1178
- _t10 = _context20["catch"](1);
1179
- body = _t10; // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-unused-vars
1180
- _context20.next = 4;
1273
+ _context21.prev = 3;
1274
+ _t11 = _context21["catch"](1);
1275
+ body = _t11; // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-unused-vars
1276
+ _context21.next = 4;
1181
1277
  return (0, _common.handleRegistrationErrors)(body, function (clientError, finalError) {
1182
1278
  var _body$headers$trackin, _body$headers;
1183
1279
  if (finalError) {
@@ -1193,68 +1289,68 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1193
1289
  return _this8.handle429Retry(retryAfter, retryCaller);
1194
1290
  }, _this8.restoreRegistrationCallBack());
1195
1291
  case 4:
1196
- abort = _context20.sent;
1292
+ abort = _context21.sent;
1197
1293
  if (!(_this8.registrationStatus === _types2.RegistrationStatus.ACTIVE)) {
1198
- _context20.next = 5;
1294
+ _context21.next = 5;
1199
1295
  break;
1200
1296
  }
1201
1297
  _Logger.default.info("[".concat(caller, "] : Device is already restored, active mobius url: ").concat(_this8.activeMobiusUrl), {
1202
1298
  file: _constants2.REGISTRATION_FILE,
1203
1299
  method: _this8.attemptRegistrationWithServers.name
1204
1300
  });
1205
- return _context20.abrupt("return", 0);
1301
+ return _context21.abrupt("return", 0);
1206
1302
  case 5:
1207
1303
  if (!abort) {
1208
- _context20.next = 7;
1304
+ _context21.next = 7;
1209
1305
  break;
1210
1306
  }
1211
1307
  _this8.setStatus(_types2.RegistrationStatus.INACTIVE);
1212
1308
  // eslint-disable-next-line no-await-in-loop
1213
- _context20.next = 6;
1309
+ _context21.next = 6;
1214
1310
  return (0, _common.uploadLogs)();
1215
1311
  case 6:
1216
- return _context20.abrupt("return", 0);
1312
+ return _context21.abrupt("return", 0);
1217
1313
  case 7:
1218
1314
  case "end":
1219
- return _context20.stop();
1315
+ return _context21.stop();
1220
1316
  }
1221
1317
  }, _loop, null, [[1, 3]]);
1222
1318
  });
1223
1319
  _iterator2.s();
1224
1320
  case 4:
1225
1321
  if ((_step2 = _iterator2.n()).done) {
1226
- _context21.next = 7;
1322
+ _context22.next = 7;
1227
1323
  break;
1228
1324
  }
1229
- return _context21.delegateYield(_loop(), "t0", 5);
1325
+ return _context22.delegateYield(_loop(), "t0", 5);
1230
1326
  case 5:
1231
- _ret = _context21.t0;
1327
+ _ret = _context22.t0;
1232
1328
  if (!(_ret === 0)) {
1233
- _context21.next = 6;
1329
+ _context22.next = 6;
1234
1330
  break;
1235
1331
  }
1236
- return _context21.abrupt("continue", 7);
1332
+ return _context22.abrupt("continue", 7);
1237
1333
  case 6:
1238
- _context21.next = 4;
1334
+ _context22.next = 4;
1239
1335
  break;
1240
1336
  case 7:
1241
- _context21.next = 9;
1337
+ _context22.next = 9;
1242
1338
  break;
1243
1339
  case 8:
1244
- _context21.prev = 8;
1245
- _t11 = _context21["catch"](3);
1246
- _iterator2.e(_t11);
1340
+ _context22.prev = 8;
1341
+ _t12 = _context22["catch"](3);
1342
+ _iterator2.e(_t12);
1247
1343
  case 9:
1248
- _context21.prev = 9;
1344
+ _context22.prev = 9;
1249
1345
  _iterator2.f();
1250
- return _context21.finish(9);
1346
+ return _context22.finish(9);
1251
1347
  case 10:
1252
- return _context21.abrupt("return", abort);
1348
+ return _context22.abrupt("return", abort);
1253
1349
  case 11:
1254
1350
  case "end":
1255
- return _context21.stop();
1351
+ return _context22.stop();
1256
1352
  }
1257
- }, _callee20, this, [[3, 8, 9, 10]]);
1353
+ }, _callee21, this, [[3, 8, 9, 10]]);
1258
1354
  }));
1259
1355
  function attemptRegistrationWithServers(_x11) {
1260
1356
  return _attemptRegistrationWithServers.apply(this, arguments);
@@ -1269,28 +1365,28 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1269
1365
  }, {
1270
1366
  key: "startKeepaliveTimer",
1271
1367
  value: (function () {
1272
- var _startKeepaliveTimer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee23(url, interval, serverType) {
1368
+ var _startKeepaliveTimer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee24(url, interval, serverType) {
1273
1369
  var _this9 = this;
1274
1370
  var RETRY_COUNT_THRESHOLD;
1275
- return _regenerator.default.wrap(function (_context24) {
1276
- while (1) switch (_context24.prev = _context24.next) {
1371
+ return _regenerator.default.wrap(function (_context25) {
1372
+ while (1) switch (_context25.prev = _context25.next) {
1277
1373
  case 0:
1278
1374
  this.clearKeepaliveTimer();
1279
1375
  RETRY_COUNT_THRESHOLD = this.isCCFlow ? 4 : 5;
1280
- _context24.next = 1;
1281
- return this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee22() {
1376
+ _context25.next = 1;
1377
+ return this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee23() {
1282
1378
  var accessToken, blob, blobUrl;
1283
- return _regenerator.default.wrap(function (_context23) {
1284
- while (1) switch (_context23.prev = _context23.next) {
1379
+ return _regenerator.default.wrap(function (_context24) {
1380
+ while (1) switch (_context24.prev = _context24.next) {
1285
1381
  case 0:
1286
1382
  if (!_this9.isDeviceRegistered()) {
1287
- _context23.next = 2;
1383
+ _context24.next = 2;
1288
1384
  break;
1289
1385
  }
1290
- _context23.next = 1;
1386
+ _context24.next = 1;
1291
1387
  return _this9.webex.credentials.getUserToken();
1292
1388
  case 1:
1293
- accessToken = _context23.sent;
1389
+ accessToken = _context24.sent;
1294
1390
  if (!_this9.webWorker) {
1295
1391
  blob = new Blob([_webWorkerStr.default], {
1296
1392
  type: 'application/javascript'
@@ -1307,10 +1403,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1307
1403
  url: url
1308
1404
  });
1309
1405
  _this9.webWorker.onmessage = /*#__PURE__*/function () {
1310
- var _ref11 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee21(event) {
1406
+ var _ref11 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee22(event) {
1311
1407
  var logContext, error, abort;
1312
- return _regenerator.default.wrap(function (_context22) {
1313
- while (1) switch (_context22.prev = _context22.next) {
1408
+ return _regenerator.default.wrap(function (_context23) {
1409
+ while (1) switch (_context23.prev = _context23.next) {
1314
1410
  case 0:
1315
1411
  logContext = {
1316
1412
  file: _constants2.REGISTRATION_FILE,
@@ -1321,12 +1417,12 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1321
1417
  _this9.lineEmitter(_types3.LINE_EVENTS.RECONNECTED);
1322
1418
  }
1323
1419
  if (!(event.data.type === _types2.WorkerMessageType.KEEPALIVE_FAILURE)) {
1324
- _context22.next = 7;
1420
+ _context23.next = 7;
1325
1421
  break;
1326
1422
  }
1327
1423
  error = event.data.err;
1328
1424
  _Logger.default.warn("Keep-alive missed ".concat(event.data.keepAliveRetryCount, " times. Status -> ").concat(error.statusCode, " "), logContext);
1329
- _context22.next = 1;
1425
+ _context23.next = 1;
1330
1426
  return (0, _common.handleRegistrationErrors)(error, function (clientError, finalError) {
1331
1427
  var _error$headers$tracki, _error$headers;
1332
1428
  if (finalError) {
@@ -1340,9 +1436,9 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1340
1436
  return _this9.handle429Retry(retryAfter, retryCaller);
1341
1437
  });
1342
1438
  case 1:
1343
- abort = _context22.sent;
1439
+ abort = _context23.sent;
1344
1440
  if (!(abort || event.data.keepAliveRetryCount >= RETRY_COUNT_THRESHOLD)) {
1345
- _context22.next = 6;
1441
+ _context23.next = 6;
1346
1442
  break;
1347
1443
  }
1348
1444
  _this9.failoverImmediately = _this9.isCCFlow;
@@ -1350,32 +1446,32 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1350
1446
  _this9.clearKeepaliveTimer();
1351
1447
  _this9.clearFailbackTimer();
1352
1448
  _this9.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
1353
- _context22.next = 2;
1449
+ _context23.next = 2;
1354
1450
  return (0, _common.uploadLogs)();
1355
1451
  case 2:
1356
1452
  if (abort) {
1357
- _context22.next = 4;
1453
+ _context23.next = 4;
1358
1454
  break;
1359
1455
  }
1360
- _context22.next = 3;
1456
+ _context23.next = 3;
1361
1457
  return _this9.reconnectOnFailure(_constants2.RECONNECT_ON_FAILURE_UTIL);
1362
1458
  case 3:
1363
- _context22.next = 5;
1459
+ _context23.next = 5;
1364
1460
  break;
1365
1461
  case 4:
1366
1462
  if (error.statusCode === 404) {
1367
1463
  _this9.handle404KeepaliveFailure(_constants2.KEEPALIVE_UTIL);
1368
1464
  }
1369
1465
  case 5:
1370
- _context22.next = 7;
1466
+ _context23.next = 7;
1371
1467
  break;
1372
1468
  case 6:
1373
1469
  _this9.lineEmitter(_types3.LINE_EVENTS.RECONNECTING);
1374
1470
  case 7:
1375
1471
  case "end":
1376
- return _context22.stop();
1472
+ return _context23.stop();
1377
1473
  }
1378
- }, _callee21);
1474
+ }, _callee22);
1379
1475
  }));
1380
1476
  return function (_x15) {
1381
1477
  return _ref11.apply(this, arguments);
@@ -1384,15 +1480,15 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1384
1480
  }
1385
1481
  case 2:
1386
1482
  case "end":
1387
- return _context23.stop();
1483
+ return _context24.stop();
1388
1484
  }
1389
- }, _callee22);
1485
+ }, _callee23);
1390
1486
  })));
1391
1487
  case 1:
1392
1488
  case "end":
1393
- return _context24.stop();
1489
+ return _context25.stop();
1394
1490
  }
1395
- }, _callee23, this);
1491
+ }, _callee24, this);
1396
1492
  }));
1397
1493
  function startKeepaliveTimer(_x12, _x13, _x14) {
1398
1494
  return _startKeepaliveTimer.apply(this, arguments);
@@ -1422,36 +1518,37 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1422
1518
  }, {
1423
1519
  key: "deregister",
1424
1520
  value: function () {
1425
- var _deregister = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee24() {
1426
- var _this$deviceInfo$devi, _this$deviceInfo$devi2, _t12;
1427
- return _regenerator.default.wrap(function (_context25) {
1428
- while (1) switch (_context25.prev = _context25.next) {
1521
+ var _deregister = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee25() {
1522
+ var _this$deviceInfo$devi, _this$deviceInfo$devi2, _t13;
1523
+ return _regenerator.default.wrap(function (_context26) {
1524
+ while (1) switch (_context26.prev = _context26.next) {
1429
1525
  case 0:
1430
- _context25.prev = 0;
1431
- _context25.next = 1;
1526
+ _context26.prev = 0;
1527
+ _context26.next = 1;
1432
1528
  return this.deleteRegistration(this.activeMobiusUrl, (_this$deviceInfo$devi = this.deviceInfo.device) === null || _this$deviceInfo$devi === void 0 ? void 0 : _this$deviceInfo$devi.deviceId, (_this$deviceInfo$devi2 = this.deviceInfo.device) === null || _this$deviceInfo$devi2 === void 0 ? void 0 : _this$deviceInfo$devi2.clientDeviceUri);
1433
1529
  case 1:
1434
1530
  _Logger.default.log('Registration successfully deregistered', {
1435
1531
  file: _constants2.REGISTRATION_FILE,
1436
1532
  method: _constants2.METHODS.DEREGISTER
1437
1533
  });
1438
- _context25.next = 3;
1534
+ _context26.next = 3;
1439
1535
  break;
1440
1536
  case 2:
1441
- _context25.prev = 2;
1442
- _t12 = _context25["catch"](0);
1443
- _Logger.default.warn("Delete failed with Mobius: ".concat((0, _stringify.default)(_t12)), {
1537
+ _context26.prev = 2;
1538
+ _t13 = _context26["catch"](0);
1539
+ _Logger.default.warn("Delete failed with Mobius: ".concat((0, _stringify.default)(_t13)), {
1444
1540
  file: _constants2.REGISTRATION_FILE,
1445
1541
  method: _constants2.METHODS.DEREGISTER
1446
1542
  });
1447
1543
  case 3:
1448
1544
  this.clearKeepaliveTimer();
1449
1545
  this.setStatus(_types2.RegistrationStatus.INACTIVE);
1546
+ this.clearFailoverState();
1450
1547
  case 4:
1451
1548
  case "end":
1452
- return _context25.stop();
1549
+ return _context26.stop();
1453
1550
  }
1454
- }, _callee24, this, [[0, 2]]);
1551
+ }, _callee25, this, [[0, 2]]);
1455
1552
  }));
1456
1553
  function deregister() {
1457
1554
  return _deregister.apply(this, arguments);
@@ -1515,10 +1612,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1515
1612
  }, {
1516
1613
  key: "reconnectOnFailure",
1517
1614
  value: (function () {
1518
- var _reconnectOnFailure = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee25(caller) {
1615
+ var _reconnectOnFailure = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee26(caller) {
1519
1616
  var abort;
1520
- return _regenerator.default.wrap(function (_context26) {
1521
- while (1) switch (_context26.prev = _context26.next) {
1617
+ return _regenerator.default.wrap(function (_context27) {
1618
+ while (1) switch (_context27.prev = _context27.next) {
1522
1619
  case 0:
1523
1620
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
1524
1621
  method: _constants2.METHODS.RECONNECT_ON_FAILURE,
@@ -1526,25 +1623,25 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1526
1623
  });
1527
1624
  this.reconnectPending = false;
1528
1625
  if (this.isDeviceRegistered()) {
1529
- _context26.next = 4;
1626
+ _context27.next = 4;
1530
1627
  break;
1531
1628
  }
1532
1629
  if (!((0, _keys.default)(this.callManager.getActiveCalls()).length === 0)) {
1533
- _context26.next = 3;
1630
+ _context27.next = 3;
1534
1631
  break;
1535
1632
  }
1536
- _context26.next = 1;
1633
+ _context27.next = 1;
1537
1634
  return this.restorePreviousRegistration(caller);
1538
1635
  case 1:
1539
- abort = _context26.sent;
1636
+ abort = _context27.sent;
1540
1637
  if (!(!abort && !this.isDeviceRegistered())) {
1541
- _context26.next = 2;
1638
+ _context27.next = 2;
1542
1639
  break;
1543
1640
  }
1544
- _context26.next = 2;
1641
+ _context27.next = 2;
1545
1642
  return this.restartRegistration(caller);
1546
1643
  case 2:
1547
- _context26.next = 4;
1644
+ _context27.next = 4;
1548
1645
  break;
1549
1646
  case 3:
1550
1647
  this.reconnectPending = true;
@@ -1554,9 +1651,9 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1554
1651
  });
1555
1652
  case 4:
1556
1653
  case "end":
1557
- return _context26.stop();
1654
+ return _context27.stop();
1558
1655
  }
1559
- }, _callee25, this);
1656
+ }, _callee26, this);
1560
1657
  }));
1561
1658
  function reconnectOnFailure(_x16) {
1562
1659
  return _reconnectOnFailure.apply(this, arguments);