@webex/calling 3.8.0-next.31 → 3.8.0-next.33

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 (145) hide show
  1. package/dist/CallHistory/CallHistory.js +100 -63
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +115 -19
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/constants.js +9 -1
  6. package/dist/CallHistory/constants.js.map +1 -1
  7. package/dist/CallSettings/CallSettings.js +46 -13
  8. package/dist/CallSettings/CallSettings.js.map +1 -1
  9. package/dist/CallSettings/UcmBackendConnector.js +62 -18
  10. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  11. package/dist/CallSettings/UcmBackendConnector.test.js +70 -7
  12. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  13. package/dist/CallSettings/WxCallBackendConnector.js +153 -103
  14. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  15. package/dist/CallSettings/WxCallBackendConnector.test.js +52 -15
  16. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  17. package/dist/CallSettings/constants.js +15 -1
  18. package/dist/CallSettings/constants.js.map +1 -1
  19. package/dist/CallingClient/CallingClient.js +148 -107
  20. package/dist/CallingClient/CallingClient.js.map +1 -1
  21. package/dist/CallingClient/CallingClient.test.js +53 -24
  22. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  23. package/dist/CallingClient/calling/call.js +251 -189
  24. package/dist/CallingClient/calling/call.js.map +1 -1
  25. package/dist/CallingClient/calling/call.test.js +96 -41
  26. package/dist/CallingClient/calling/call.test.js.map +1 -1
  27. package/dist/CallingClient/calling/callManager.js +73 -48
  28. package/dist/CallingClient/calling/callManager.js.map +1 -1
  29. package/dist/CallingClient/calling/callManager.test.js +96 -37
  30. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  31. package/dist/CallingClient/constants.js +104 -3
  32. package/dist/CallingClient/constants.js.map +1 -1
  33. package/dist/CallingClient/line/index.js +47 -18
  34. package/dist/CallingClient/line/index.js.map +1 -1
  35. package/dist/CallingClient/line/line.test.js +2 -2
  36. package/dist/CallingClient/line/line.test.js.map +1 -1
  37. package/dist/CallingClient/registration/register.js +261 -219
  38. package/dist/CallingClient/registration/register.js.map +1 -1
  39. package/dist/CallingClient/registration/register.test.js +533 -155
  40. package/dist/CallingClient/registration/register.test.js.map +1 -1
  41. package/dist/CallingClient/registration/types.js.map +1 -1
  42. package/dist/Contacts/ContactsClient.js +156 -102
  43. package/dist/Contacts/ContactsClient.js.map +1 -1
  44. package/dist/Contacts/ContactsClient.test.js +197 -49
  45. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  46. package/dist/Contacts/constants.js +11 -1
  47. package/dist/Contacts/constants.js.map +1 -1
  48. package/dist/Events/impl/index.js +1 -1
  49. package/dist/Events/impl/index.js.map +1 -1
  50. package/dist/Metrics/index.js +93 -39
  51. package/dist/Metrics/index.js.map +1 -1
  52. package/dist/Metrics/types.js +4 -1
  53. package/dist/Metrics/types.js.map +1 -1
  54. package/dist/SDKConnector/types.js.map +1 -1
  55. package/dist/Voicemail/BroadworksBackendConnector.js +154 -91
  56. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  57. package/dist/Voicemail/BroadworksBackendConnector.test.js +99 -19
  58. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  59. package/dist/Voicemail/UcmBackendConnector.js +105 -54
  60. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  61. package/dist/Voicemail/UcmBackendConnector.test.js +127 -17
  62. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  63. package/dist/Voicemail/Voicemail.js +198 -79
  64. package/dist/Voicemail/Voicemail.js.map +1 -1
  65. package/dist/Voicemail/Voicemail.test.js +188 -23
  66. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  67. package/dist/Voicemail/WxCallBackendConnector.js +123 -76
  68. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  69. package/dist/Voicemail/WxCallBackendConnector.test.js +69 -6
  70. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  71. package/dist/Voicemail/constants.js +25 -1
  72. package/dist/Voicemail/constants.js.map +1 -1
  73. package/dist/common/Utils.js +167 -104
  74. package/dist/common/Utils.js.map +1 -1
  75. package/dist/common/Utils.test.js +199 -35
  76. package/dist/common/Utils.test.js.map +1 -1
  77. package/dist/common/constants.js +2 -1
  78. package/dist/common/constants.js.map +1 -1
  79. package/dist/common/types.js.map +1 -1
  80. package/dist/module/CallHistory/CallHistory.js +32 -13
  81. package/dist/module/CallHistory/constants.js +6 -0
  82. package/dist/module/CallSettings/CallSettings.js +36 -3
  83. package/dist/module/CallSettings/UcmBackendConnector.js +50 -5
  84. package/dist/module/CallSettings/WxCallBackendConnector.js +54 -18
  85. package/dist/module/CallSettings/constants.js +12 -0
  86. package/dist/module/CallingClient/CallingClient.js +52 -14
  87. package/dist/module/CallingClient/calling/call.js +172 -121
  88. package/dist/module/CallingClient/calling/callManager.js +51 -26
  89. package/dist/module/CallingClient/constants.js +101 -2
  90. package/dist/module/CallingClient/line/index.js +37 -8
  91. package/dist/module/CallingClient/registration/register.js +90 -54
  92. package/dist/module/Contacts/ContactsClient.js +65 -21
  93. package/dist/module/Contacts/constants.js +10 -0
  94. package/dist/module/Events/impl/index.js +1 -1
  95. package/dist/module/Metrics/index.js +49 -1
  96. package/dist/module/Metrics/types.js +3 -0
  97. package/dist/module/Voicemail/BroadworksBackendConnector.js +66 -17
  98. package/dist/module/Voicemail/UcmBackendConnector.js +51 -11
  99. package/dist/module/Voicemail/Voicemail.js +109 -9
  100. package/dist/module/Voicemail/WxCallBackendConnector.js +50 -17
  101. package/dist/module/Voicemail/constants.js +21 -0
  102. package/dist/module/common/Utils.js +50 -12
  103. package/dist/module/common/constants.js +1 -0
  104. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  105. package/dist/types/CallHistory/constants.d.ts +6 -0
  106. package/dist/types/CallHistory/constants.d.ts.map +1 -1
  107. package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
  108. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  109. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  110. package/dist/types/CallSettings/constants.d.ts +12 -0
  111. package/dist/types/CallSettings/constants.d.ts.map +1 -1
  112. package/dist/types/CallingClient/CallingClient.d.ts +2 -3
  113. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  114. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  115. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  116. package/dist/types/CallingClient/constants.d.ts +101 -2
  117. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  118. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  119. package/dist/types/CallingClient/registration/register.d.ts +3 -1
  120. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  121. package/dist/types/CallingClient/registration/types.d.ts +1 -0
  122. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  123. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  124. package/dist/types/Contacts/constants.d.ts +10 -0
  125. package/dist/types/Contacts/constants.d.ts.map +1 -1
  126. package/dist/types/Metrics/index.d.ts +1 -1
  127. package/dist/types/Metrics/index.d.ts.map +1 -1
  128. package/dist/types/Metrics/types.d.ts +5 -1
  129. package/dist/types/Metrics/types.d.ts.map +1 -1
  130. package/dist/types/SDKConnector/types.d.ts +8 -2
  131. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  132. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  133. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  134. package/dist/types/Voicemail/Voicemail.d.ts +1 -1
  135. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  136. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  137. package/dist/types/Voicemail/constants.d.ts +21 -0
  138. package/dist/types/Voicemail/constants.d.ts.map +1 -1
  139. package/dist/types/common/Utils.d.ts +4 -4
  140. package/dist/types/common/Utils.d.ts.map +1 -1
  141. package/dist/types/common/constants.d.ts +1 -0
  142. package/dist/types/common/constants.d.ts.map +1 -1
  143. package/dist/types/common/types.d.ts +12 -0
  144. package/dist/types/common/types.d.ts.map +1 -1
  145. package/package.json +1 -1
@@ -23,16 +23,16 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
23
23
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
24
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
25
25
  var _uuid = require("uuid");
26
- var _types = require("../../Errors/types");
26
+ var _constants = require("../../common/constants");
27
27
  var _common = require("../../common");
28
- var _types2 = require("../../Metrics/types");
28
+ var _types = require("../../Metrics/types");
29
29
  var _Metrics = require("../../Metrics");
30
30
  var _calling = require("../calling");
31
31
  var _Logger = _interopRequireDefault(require("../../Logger"));
32
32
  var _SDKConnector = _interopRequireDefault(require("../../SDKConnector"));
33
- var _types3 = require("../../common/types");
34
- var _constants = require("../constants");
35
- var _types4 = require("../line/types");
33
+ var _types2 = require("../../common/types");
34
+ var _constants2 = require("../constants");
35
+ var _types3 = require("../line/types");
36
36
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
37
37
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
38
38
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
@@ -69,20 +69,22 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
69
69
  (0, _defineProperty2.default)(this, "jwe", void 0);
70
70
  (0, _defineProperty2.default)(this, "isCCFlow", false);
71
71
  (0, _defineProperty2.default)(this, "failoverImmediately", false);
72
+ (0, _defineProperty2.default)(this, "retryAfter", void 0);
73
+ (0, _defineProperty2.default)(this, "scheduled429Retry", false);
72
74
  this.jwe = jwe;
73
75
  this.sdkConnector = _SDKConnector.default;
74
76
  this.serviceData = serviceData;
75
- this.isCCFlow = serviceData.indicator === _types3.ServiceIndicator.CONTACT_CENTER;
77
+ this.isCCFlow = serviceData.indicator === _types2.ServiceIndicator.CONTACT_CENTER;
76
78
  if (!this.sdkConnector.getWebex()) {
77
79
  _SDKConnector.default.setWebex(webex);
78
80
  }
79
81
  this.webex = this.sdkConnector.getWebex();
80
82
  this.userId = this.webex.internal.device.userId;
81
- this.registrationStatus = _types3.RegistrationStatus.IDLE;
83
+ this.registrationStatus = _types2.RegistrationStatus.IDLE;
82
84
  this.failback429RetryAttempts = 0;
83
- _Logger.default.setLogger(logLevel, _constants.REGISTRATION_FILE);
84
- this.rehomingIntervalMin = _constants.DEFAULT_REHOMING_INTERVAL_MIN;
85
- this.rehomingIntervalMax = _constants.DEFAULT_REHOMING_INTERVAL_MAX;
85
+ _Logger.default.setLogger(logLevel, _constants2.REGISTRATION_FILE);
86
+ this.rehomingIntervalMin = _constants2.DEFAULT_REHOMING_INTERVAL_MIN;
87
+ this.rehomingIntervalMax = _constants2.DEFAULT_REHOMING_INTERVAL_MAX;
86
88
  this.mutex = mutex;
87
89
  this.callManager = (0, _calling.getCallManager)(this.webex, serviceData.indicator);
88
90
  this.metricManager = (0, _Metrics.getMetricManager)(this.webex, serviceData.indicator);
@@ -98,9 +100,9 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
98
100
  }, {
99
101
  key: "setActiveMobiusUrl",
100
102
  value: function setActiveMobiusUrl(url) {
101
- _Logger.default.info("ActiveMobiusUrl: ".concat(url), {
102
- method: 'setActiveMobiusUrl',
103
- file: _constants.REGISTRATION_FILE
103
+ _Logger.default.info("".concat(_constants.METHOD_START_MESSAGE, " with ").concat(url), {
104
+ method: _constants2.METHODS.UPDATE_ACTIVE_MOBIUS,
105
+ file: _constants2.REGISTRATION_FILE
104
106
  });
105
107
  this.activeMobiusUrl = url;
106
108
  this.callManager.updateActiveMobius(url);
@@ -108,6 +110,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
108
110
  }, {
109
111
  key: "setMobiusServers",
110
112
  value: function setMobiusServers(primaryMobiusUris, backupMobiusUris) {
113
+ _Logger.default.log(_constants.METHOD_START_MESSAGE, {
114
+ method: _constants2.METHODS.SET_MOBIUS_SERVERS,
115
+ file: _constants2.REGISTRATION_FILE
116
+ });
111
117
  this.primaryMobiusUris = primaryMobiusUris;
112
118
  this.backupMobiusUris = backupMobiusUris;
113
119
  }
@@ -125,9 +131,9 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
125
131
  case 0:
126
132
  return _context.abrupt("return", this.webex.request({
127
133
  uri: "".concat(url, "/status"),
128
- method: _types3.HTTP_METHODS.POST,
129
- headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.CISCO_DEVICE_URL, this.webex.internal.device.url), _constants.SPARK_USER_AGENT, _constants.CALLING_USER_AGENT),
130
- service: _types3.ALLOWED_SERVICES.MOBIUS
134
+ method: _types2.HTTP_METHODS.POST,
135
+ headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, this.webex.internal.device.url), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
136
+ service: _types2.ALLOWED_SERVICES.MOBIUS
131
137
  }));
132
138
  case 1:
133
139
  case "end":
@@ -156,21 +162,21 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
156
162
  case 0:
157
163
  _context2.prev = 0;
158
164
  _context2.t0 = fetch;
159
- _context2.t1 = "".concat(url).concat(_constants.DEVICES_ENDPOINT_RESOURCE, "/").concat(deviceId);
160
- _context2.t2 = _types3.HTTP_METHODS.DELETE;
165
+ _context2.t1 = "".concat(url).concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "/").concat(deviceId);
166
+ _context2.t2 = _types2.HTTP_METHODS.DELETE;
161
167
  _context2.t3 = _defineProperty2.default;
162
168
  _context2.t4 = _defineProperty2.default;
163
169
  _context2.t5 = _defineProperty2.default;
164
- _context2.t6 = (0, _defineProperty2.default)({}, _constants.CISCO_DEVICE_URL, deviceUrl);
170
+ _context2.t6 = (0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, deviceUrl);
165
171
  _context2.next = 10;
166
172
  return this.webex.credentials.getUserToken();
167
173
  case 10:
168
174
  _context2.t7 = _context2.sent;
169
175
  _context2.t8 = (0, _context2.t5)(_context2.t6, "Authorization", _context2.t7);
170
- _context2.t9 = "".concat(_constants.WEBEX_WEB_CLIENT, "_").concat((0, _uuid.v4)());
176
+ _context2.t9 = "".concat(_constants2.WEBEX_WEB_CLIENT, "_").concat((0, _uuid.v4)());
171
177
  _context2.t10 = (0, _context2.t4)(_context2.t8, "trackingId", _context2.t9);
172
- _context2.t11 = _constants.SPARK_USER_AGENT;
173
- _context2.t12 = _constants.CALLING_USER_AGENT;
178
+ _context2.t11 = _constants2.SPARK_USER_AGENT;
179
+ _context2.t12 = _constants2.CALLING_USER_AGENT;
174
180
  _context2.t13 = (0, _context2.t3)(_context2.t10, _context2.t11, _context2.t12);
175
181
  _context2.t14 = {
176
182
  method: _context2.t2,
@@ -185,10 +191,13 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
185
191
  case 23:
186
192
  _context2.prev = 23;
187
193
  _context2.t15 = _context2["catch"](0);
188
- _Logger.default.warn("Delete failed with Mobius", {});
194
+ _Logger.default.warn("Delete failed with Mobius ".concat(_context2.t15), {
195
+ file: _constants2.REGISTRATION_FILE,
196
+ method: _constants2.METHODS.DEREGISTER
197
+ });
189
198
  case 26:
190
- this.setStatus(_types3.RegistrationStatus.INACTIVE);
191
- this.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
199
+ this.setStatus(_types2.RegistrationStatus.INACTIVE);
200
+ this.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
192
201
  return _context2.abrupt("return", (_response = response) === null || _response === void 0 ? void 0 : _response.json());
193
202
  case 29:
194
203
  case "end":
@@ -223,10 +232,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
223
232
  };
224
233
  return _context3.abrupt("return", this.webex.request({
225
234
  uri: "".concat(url, "device"),
226
- method: _types3.HTTP_METHODS.POST,
227
- headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.CISCO_DEVICE_URL, deviceInfo.clientDeviceUri), _constants.SPARK_USER_AGENT, _constants.CALLING_USER_AGENT),
235
+ method: _types2.HTTP_METHODS.POST,
236
+ headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, deviceInfo.clientDeviceUri), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
228
237
  body: deviceInfo,
229
- service: _types3.ALLOWED_SERVICES.MOBIUS
238
+ service: _types2.ALLOWED_SERVICES.MOBIUS
230
239
  }));
231
240
  case 2:
232
241
  case "end":
@@ -275,54 +284,61 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
275
284
  return restorePreviousRegistration;
276
285
  }()
277
286
  /**
278
- * When a failback request is rejected with 429, it means the
279
- * request did not even land on primary mobius to know if it
280
- * can handle this device registration now, in such cases this
281
- * method is called to retry sooner than the rehoming timer value.
287
+ *
282
288
  */
283
289
  )
284
290
  }, {
285
- key: "scheduleFailback429Retry",
291
+ key: "handle429Retry",
286
292
  value: (function () {
287
- var _scheduleFailback429Retry = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
293
+ var _handle429Retry = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(retryAfter, caller) {
288
294
  var interval, abort;
289
295
  return _regenerator.default.wrap(function _callee5$(_context5) {
290
296
  while (1) switch (_context5.prev = _context5.next) {
291
297
  case 0:
292
- if (!(this.failback429RetryAttempts >= _constants.REG_FAILBACK_429_MAX_RETRIES)) {
293
- _context5.next = 2;
298
+ if (!(caller === _constants2.FAILBACK_UTIL)) {
299
+ _context5.next = 17;
300
+ break;
301
+ }
302
+ if (!(this.failback429RetryAttempts >= _constants2.REG_FAILBACK_429_MAX_RETRIES)) {
303
+ _context5.next = 3;
294
304
  break;
295
305
  }
296
306
  return _context5.abrupt("return");
297
- case 2:
307
+ case 3:
298
308
  this.clearFailbackTimer();
299
309
  this.failback429RetryAttempts += 1;
300
310
  _Logger.default.log("Received 429 while rehoming, 429 retry count : ".concat(this.failback429RetryAttempts), {
301
- file: _constants.REGISTRATION_FILE,
302
- method: _constants.FAILBACK_429_RETRY_UTIL
311
+ file: _constants2.REGISTRATION_FILE,
312
+ method: _constants2.REG_429_RETRY_UTIL
303
313
  });
304
314
  interval = this.getRegRetryInterval(this.failback429RetryAttempts);
305
315
  this.startFailbackTimer(interval);
306
- _context5.next = 9;
307
- return this.restorePreviousRegistration(_constants.FAILBACK_429_RETRY_UTIL);
308
- case 9:
316
+ this.scheduled429Retry = true;
317
+ _context5.next = 11;
318
+ return this.restorePreviousRegistration(_constants2.REG_429_RETRY_UTIL);
319
+ case 11:
309
320
  abort = _context5.sent;
310
321
  if (!(!abort && !this.isDeviceRegistered())) {
311
- _context5.next = 13;
322
+ _context5.next = 15;
312
323
  break;
313
324
  }
314
- _context5.next = 13;
315
- return this.restartRegistration(_constants.FAILBACK_429_RETRY_UTIL);
316
- case 13:
325
+ _context5.next = 15;
326
+ return this.restartRegistration(_constants2.REG_429_RETRY_UTIL);
327
+ case 15:
328
+ _context5.next = 18;
329
+ break;
330
+ case 17:
331
+ this.retryAfter = retryAfter;
332
+ case 18:
317
333
  case "end":
318
334
  return _context5.stop();
319
335
  }
320
336
  }, _callee5, this);
321
337
  }));
322
- function scheduleFailback429Retry() {
323
- return _scheduleFailback429Retry.apply(this, arguments);
338
+ function handle429Retry(_x7, _x8) {
339
+ return _handle429Retry.apply(this, arguments);
324
340
  }
325
- return scheduleFailback429Retry;
341
+ return handle429Retry;
326
342
  }()
327
343
  /**
328
344
  * Calculates and returns a random interval value using input argument
@@ -335,7 +351,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
335
351
  key: "getRegRetryInterval",
336
352
  value: function getRegRetryInterval() {
337
353
  var attempt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
338
- return _constants.BASE_REG_RETRY_TIMER_VAL_IN_SEC + Math.pow(_constants.BASE_REG_TIMER_MFACTOR, attempt) + Math.floor((Math.random() * (_constants.REG_RANDOM_T_FACTOR_UPPER_LIMIT - _constants.SEC_TO_MSEC_MFACTOR + 1) + _constants.SEC_TO_MSEC_MFACTOR) / _constants.SEC_TO_MSEC_MFACTOR);
354
+ return _constants2.BASE_REG_RETRY_TIMER_VAL_IN_SEC + Math.pow(_constants2.BASE_REG_TIMER_MFACTOR, attempt) + Math.floor((Math.random() * (_constants2.REG_RANDOM_T_FACTOR_UPPER_LIMIT - _constants2.SEC_TO_MSEC_MFACTOR + 1) + _constants2.SEC_TO_MSEC_MFACTOR) / _constants2.SEC_TO_MSEC_MFACTOR);
339
355
  }
340
356
 
341
357
  /**
@@ -365,20 +381,26 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
365
381
  attempt = _args10.length > 0 && _args10[0] !== undefined ? _args10[0] : 1;
366
382
  timeElapsed = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : 0;
367
383
  loggerContext = {
368
- file: _constants.REGISTRATION_FILE,
369
- method: this.startFailoverTimer.name
384
+ file: _constants2.REGISTRATION_FILE,
385
+ method: _constants2.FAILOVER_UTIL
370
386
  };
371
387
  interval = this.getRegRetryInterval(attempt);
372
- TIMER_THRESHOLD = this.isCCFlow ? _constants.REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC : _constants.REG_TRY_BACKUP_TIMER_VAL_IN_SEC;
388
+ TIMER_THRESHOLD = this.isCCFlow ? _constants2.REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC : _constants2.REG_TRY_BACKUP_TIMER_VAL_IN_SEC;
373
389
  if (timeElapsed + interval > TIMER_THRESHOLD) {
374
390
  excessVal = timeElapsed + interval - TIMER_THRESHOLD;
375
391
  interval -= excessVal;
376
392
  }
377
- if (!(interval > _constants.BASE_REG_RETRY_TIMER_VAL_IN_SEC && !this.failoverImmediately)) {
378
- _context10.next = 12;
393
+ if (this.retryAfter != null && interval < this.retryAfter) {
394
+ this.failoverImmediately = this.retryAfter + timeElapsed > TIMER_THRESHOLD;
395
+ }
396
+ if (!(interval > _constants2.BASE_REG_RETRY_TIMER_VAL_IN_SEC && !this.failoverImmediately)) {
397
+ _context10.next = 14;
379
398
  break;
380
399
  }
381
400
  scheduledTime = Math.floor((0, _now.default)() / 1000);
401
+ if (this.retryAfter != null) {
402
+ interval = Math.max(interval, this.retryAfter);
403
+ }
382
404
  setTimeout( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
383
405
  return _regenerator.default.wrap(function _callee7$(_context7) {
384
406
  while (1) switch (_context7.prev = _context7.next) {
@@ -390,7 +412,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
390
412
  while (1) switch (_context6.prev = _context6.next) {
391
413
  case 0:
392
414
  _context6.next = 2;
393
- return _this.attemptRegistrationWithServers(_this.startFailoverTimer.name);
415
+ return _this.attemptRegistrationWithServers(_constants2.FAILOVER_UTIL);
394
416
  case 2:
395
417
  abort = _context6.sent;
396
418
  currentTime = Math.floor((0, _now.default)() / 1000);
@@ -411,23 +433,26 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
411
433
  return _context7.stop();
412
434
  }
413
435
  }, _callee7);
414
- })), interval * _constants.SEC_TO_MSEC_MFACTOR);
436
+ })), interval * _constants2.SEC_TO_MSEC_MFACTOR);
415
437
  _Logger.default.log("Scheduled retry with primary in ".concat(interval, " seconds, number of attempts : ").concat(attempt), loggerContext);
416
- _context10.next = 22;
438
+ _context10.next = 26;
417
439
  break;
418
- case 12:
440
+ case 14:
419
441
  if (!this.backupMobiusUris.length) {
420
- _context10.next = 21;
442
+ _context10.next = 23;
421
443
  break;
422
444
  }
423
- _Logger.default.log('Failing over to backup servers.', loggerContext);
445
+ _Logger.default.info('Failing over to backup servers.', loggerContext);
424
446
  this.failoverImmediately = false;
425
- _context10.next = 17;
426
- return this.attemptRegistrationWithServers(this.startFailoverTimer.name, this.backupMobiusUris);
427
- case 17:
447
+ _context10.next = 19;
448
+ return this.attemptRegistrationWithServers(_constants2.FAILOVER_UTIL, this.backupMobiusUris);
449
+ case 19:
428
450
  abort = _context10.sent;
429
451
  if (!abort && !this.isDeviceRegistered()) {
430
452
  interval = this.getRegRetryInterval();
453
+ if (this.retryAfter != null && this.retryAfter < _constants2.RETRY_TIMER_UPPER_LIMIT) {
454
+ interval = interval < this.retryAfter ? this.retryAfter : interval;
455
+ }
431
456
  setTimeout( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
432
457
  return _regenerator.default.wrap(function _callee9$(_context9) {
433
458
  while (1) switch (_context9.prev = _context9.next) {
@@ -438,15 +463,20 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
438
463
  while (1) switch (_context8.prev = _context8.next) {
439
464
  case 0:
440
465
  _context8.next = 2;
441
- return _this.attemptRegistrationWithServers(_this.startFailoverTimer.name, _this.backupMobiusUris);
466
+ return _this.attemptRegistrationWithServers(_constants2.FAILOVER_UTIL, _this.backupMobiusUris);
442
467
  case 2:
443
468
  abort = _context8.sent;
444
- if (!abort && !_this.isDeviceRegistered()) {
445
- (0, _common.emitFinalFailure)(function (clientError) {
446
- _this.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
447
- }, loggerContext);
469
+ if (!(!abort && !_this.isDeviceRegistered())) {
470
+ _context8.next = 7;
471
+ break;
448
472
  }
449
- case 4:
473
+ _context8.next = 6;
474
+ return (0, _common.uploadLogs)();
475
+ case 6:
476
+ (0, _common.emitFinalFailure)(function (clientError) {
477
+ _this.lineEmitter(_types3.LINE_EVENTS.ERROR, undefined, clientError);
478
+ }, loggerContext);
479
+ case 7:
450
480
  case "end":
451
481
  return _context8.stop();
452
482
  }
@@ -457,16 +487,19 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
457
487
  return _context9.stop();
458
488
  }
459
489
  }, _callee9);
460
- })), interval * _constants.SEC_TO_MSEC_MFACTOR);
490
+ })), interval * _constants2.SEC_TO_MSEC_MFACTOR);
461
491
  _Logger.default.log("Scheduled retry with backup servers in ".concat(interval, " seconds."), loggerContext);
462
492
  }
463
- _context10.next = 22;
493
+ _context10.next = 26;
464
494
  break;
465
- case 21:
495
+ case 23:
496
+ _context10.next = 25;
497
+ return (0, _common.uploadLogs)();
498
+ case 25:
466
499
  (0, _common.emitFinalFailure)(function (clientError) {
467
- _this.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
500
+ _this.lineEmitter(_types3.LINE_EVENTS.ERROR, undefined, clientError);
468
501
  }, loggerContext);
469
- case 22:
502
+ case 26:
470
503
  case "end":
471
504
  return _context10.stop();
472
505
  }
@@ -520,7 +553,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
520
553
  if (!this.failbackTimer) {
521
554
  this.failback429RetryAttempts = 0;
522
555
  var intervalInMinutes = this.getFailbackInterval();
523
- this.startFailbackTimer(intervalInMinutes * _constants.MINUTES_TO_SEC_MFACTOR);
556
+ this.startFailbackTimer(intervalInMinutes * _constants2.MINUTES_TO_SEC_MFACTOR);
524
557
  }
525
558
  } else {
526
559
  this.failback429RetryAttempts = 0;
@@ -546,9 +579,9 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
546
579
  return _context11.stop();
547
580
  }
548
581
  }, _callee11);
549
- })), intervalInSeconds * _constants.SEC_TO_MSEC_MFACTOR);
582
+ })), intervalInSeconds * _constants2.SEC_TO_MSEC_MFACTOR);
550
583
  _Logger.default.log("Failback scheduled after ".concat(intervalInSeconds, " seconds."), {
551
- file: _constants.REGISTRATION_FILE,
584
+ file: _constants2.REGISTRATION_FILE,
552
585
  method: this.startFailbackTimer.name
553
586
  });
554
587
  }
@@ -572,62 +605,64 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
572
605
  while (1) switch (_context12.prev = _context12.next) {
573
606
  case 0:
574
607
  if (!_this3.isFailbackRequired()) {
575
- _context12.next = 27;
608
+ _context12.next = 28;
576
609
  break;
577
610
  }
578
611
  if (!((0, _keys.default)(_this3.callManager.getActiveCalls()).length === 0)) {
579
- _context12.next = 24;
612
+ _context12.next = 25;
580
613
  break;
581
614
  }
582
615
  _Logger.default.info("Attempting failback to primary.", {
583
- file: _constants.REGISTRATION_FILE,
616
+ file: _constants2.REGISTRATION_FILE,
584
617
  method: _this3.executeFailback.name
585
618
  });
586
619
  _context12.next = 5;
587
620
  return _this3.deregister();
588
621
  case 5:
589
622
  _context12.next = 7;
590
- return _this3.attemptRegistrationWithServers(_constants.FAILBACK_UTIL);
623
+ return _this3.attemptRegistrationWithServers(_constants2.FAILBACK_UTIL);
591
624
  case 7:
592
625
  abort = _context12.sent;
593
- if (!(!abort && !_this3.isDeviceRegistered())) {
594
- _context12.next = 22;
626
+ if (!(_this3.scheduled429Retry || abort || _this3.isDeviceRegistered())) {
627
+ _context12.next = 10;
595
628
  break;
596
629
  }
597
- _context12.next = 11;
598
- return _this3.restorePreviousRegistration(_constants.FAILBACK_UTIL);
599
- case 11:
630
+ return _context12.abrupt("return");
631
+ case 10:
632
+ _context12.next = 12;
633
+ return _this3.restorePreviousRegistration(_constants2.FAILBACK_UTIL);
634
+ case 12:
600
635
  abortNew = _context12.sent;
601
636
  if (!abortNew) {
602
- _context12.next = 15;
637
+ _context12.next = 16;
603
638
  break;
604
639
  }
605
640
  _this3.clearFailbackTimer();
606
641
  return _context12.abrupt("return");
607
- case 15:
642
+ case 16:
608
643
  if (_this3.isDeviceRegistered()) {
609
- _context12.next = 20;
644
+ _context12.next = 21;
610
645
  break;
611
646
  }
612
- _context12.next = 18;
647
+ _context12.next = 19;
613
648
  return _this3.restartRegistration(_this3.executeFailback.name);
614
- case 18:
615
- _context12.next = 22;
649
+ case 19:
650
+ _context12.next = 23;
616
651
  break;
617
- case 20:
652
+ case 21:
618
653
  _this3.failbackTimer = undefined;
619
654
  _this3.initiateFailback();
620
- case 22:
621
- _context12.next = 27;
655
+ case 23:
656
+ _context12.next = 28;
622
657
  break;
623
- case 24:
658
+ case 25:
624
659
  _Logger.default.info('Active calls present, deferring failback to next cycle.', {
625
- file: _constants.REGISTRATION_FILE,
660
+ file: _constants2.REGISTRATION_FILE,
626
661
  method: _this3.executeFailback.name
627
662
  });
628
663
  _this3.failbackTimer = undefined;
629
664
  _this3.initiateFailback();
630
- case 27:
665
+ case 28:
631
666
  case "end":
632
667
  return _context12.stop();
633
668
  }
@@ -655,8 +690,8 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
655
690
  key: "setIntervalValues",
656
691
  value: function setIntervalValues(deviceInfo) {
657
692
  if (this.primaryMobiusUris.indexOf(this.activeMobiusUrl) !== -1) {
658
- this.rehomingIntervalMin = deviceInfo !== null && deviceInfo !== void 0 && deviceInfo.rehomingIntervalMin ? deviceInfo.rehomingIntervalMin : _constants.DEFAULT_REHOMING_INTERVAL_MIN;
659
- this.rehomingIntervalMax = deviceInfo !== null && deviceInfo !== void 0 && deviceInfo.rehomingIntervalMax ? deviceInfo.rehomingIntervalMax : _constants.DEFAULT_REHOMING_INTERVAL_MAX;
693
+ this.rehomingIntervalMin = deviceInfo !== null && deviceInfo !== void 0 && deviceInfo.rehomingIntervalMin ? deviceInfo.rehomingIntervalMin : _constants2.DEFAULT_REHOMING_INTERVAL_MIN;
694
+ this.rehomingIntervalMax = deviceInfo !== null && deviceInfo !== void 0 && deviceInfo.rehomingIntervalMax ? deviceInfo.rehomingIntervalMax : _constants2.DEFAULT_REHOMING_INTERVAL_MAX;
660
695
  }
661
696
  }
662
697
 
@@ -679,7 +714,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
679
714
  }, {
680
715
  key: "isDeviceRegistered",
681
716
  value: function isDeviceRegistered() {
682
- return this.registrationStatus === _types3.RegistrationStatus.ACTIVE;
717
+ return this.registrationStatus === _types2.RegistrationStatus.ACTIVE;
683
718
  }
684
719
  }, {
685
720
  key: "getStatus",
@@ -727,7 +762,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
727
762
  }
728
763
  }, _callee14, this);
729
764
  }));
730
- function restartRegistration(_x7) {
765
+ function restartRegistration(_x9) {
731
766
  return _restartRegistration.apply(this, arguments);
732
767
  }
733
768
  return restartRegistration;
@@ -746,7 +781,11 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
746
781
  return _regenerator.default.wrap(function _callee16$(_context16) {
747
782
  while (1) switch (_context16.prev = _context16.next) {
748
783
  case 0:
749
- _context16.next = 2;
784
+ _Logger.default.info(_constants.METHOD_START_MESSAGE, {
785
+ method: _constants2.METHODS.HANDLE_CONNECTION_RESTORATION,
786
+ file: _constants2.REGISTRATION_FILE
787
+ });
788
+ _context16.next = 3;
750
789
  return this.mutex.runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
751
790
  var abort;
752
791
  return _regenerator.default.wrap(function _callee15$(_context15) {
@@ -756,8 +795,8 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
756
795
  _context15.next = 14;
757
796
  break;
758
797
  }
759
- _Logger.default.info('Mercury connection is up again, re-registering with Webex Calling if needed', {
760
- file: _constants.REGISTRATION_FILE,
798
+ _Logger.default.log('Mercury connection is up again, re-registering with Webex Calling if needed', {
799
+ file: _constants2.REGISTRATION_FILE,
761
800
  method: _this4.handleConnectionRestoration.name
762
801
  });
763
802
  _this4.clearKeepaliveTimer();
@@ -790,15 +829,15 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
790
829
  }
791
830
  }, _callee15);
792
831
  })));
793
- case 2:
794
- return _context16.abrupt("return", retry);
795
832
  case 3:
833
+ return _context16.abrupt("return", retry);
834
+ case 4:
796
835
  case "end":
797
836
  return _context16.stop();
798
837
  }
799
838
  }, _callee16, this);
800
839
  }));
801
- function handleConnectionRestoration(_x8) {
840
+ function handleConnectionRestoration(_x10) {
802
841
  return _handleConnectionRestoration.apply(this, arguments);
803
842
  }
804
843
  return handleConnectionRestoration;
@@ -820,7 +859,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
820
859
  while (1) switch (_context17.prev = _context17.next) {
821
860
  case 0:
822
861
  logContext = {
823
- file: _constants.REGISTRATION_FILE,
862
+ file: _constants2.REGISTRATION_FILE,
824
863
  method: caller
825
864
  };
826
865
  if (_this5.isRegRetry()) {
@@ -847,11 +886,11 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
847
886
  }
848
887
  return _context17.abrupt("return", finalError);
849
888
  case 14:
850
- _this5.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
889
+ _this5.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
851
890
  _context17.next = 18;
852
891
  break;
853
892
  case 17:
854
- _this5.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
893
+ _this5.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
855
894
  case 18:
856
895
  return _context17.abrupt("return", false);
857
896
  case 19:
@@ -860,7 +899,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
860
899
  }
861
900
  }, _callee17);
862
901
  }));
863
- return function (_x9, _x10) {
902
+ return function (_x11, _x12) {
864
903
  return _ref8.apply(this, arguments);
865
904
  };
866
905
  }();
@@ -923,135 +962,127 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
923
962
  _step,
924
963
  url,
925
964
  _this$deviceInfo$devi,
965
+ _this$deviceInfo$devi2,
926
966
  resp,
927
967
  body,
928
- error,
929
968
  _args19 = arguments;
930
969
  return _regenerator.default.wrap(function _callee19$(_context19) {
931
970
  while (1) switch (_context19.prev = _context19.next) {
932
971
  case 0:
933
972
  servers = _args19.length > 1 && _args19[1] !== undefined ? _args19[1] : this.primaryMobiusUris;
934
973
  abort = false;
974
+ this.retryAfter = undefined;
935
975
  if (!this.failoverImmediately) {
936
- _context19.next = 4;
976
+ _context19.next = 5;
937
977
  break;
938
978
  }
939
979
  return _context19.abrupt("return", abort);
940
- case 4:
980
+ case 5:
941
981
  if (!this.isDeviceRegistered()) {
942
- _context19.next = 7;
982
+ _context19.next = 8;
943
983
  break;
944
984
  }
945
- _Logger.default.log("[".concat(caller, "] : Device already registered with : ").concat(this.activeMobiusUrl), {
946
- file: _constants.REGISTRATION_FILE,
947
- method: this.attemptRegistrationWithServers.name
985
+ _Logger.default.info("[".concat(caller, "] : Device already registered with : ").concat(this.activeMobiusUrl), {
986
+ file: _constants2.REGISTRATION_FILE,
987
+ method: _constants2.REGISTER_UTIL
948
988
  });
949
989
  return _context19.abrupt("return", abort);
950
- case 7:
990
+ case 8:
951
991
  _iterator = _createForOfIteratorHelper(servers);
952
- _context19.prev = 8;
992
+ _context19.prev = 9;
953
993
  _iterator.s();
954
- case 10:
994
+ case 11:
955
995
  if ((_step = _iterator.n()).done) {
956
- _context19.next = 55;
996
+ _context19.next = 48;
957
997
  break;
958
998
  }
959
999
  url = _step.value;
960
- _context19.prev = 12;
1000
+ _context19.prev = 13;
961
1001
  abort = false;
962
- this.registrationStatus = _types3.RegistrationStatus.INACTIVE;
963
- this.lineEmitter(_types4.LINE_EVENTS.CONNECTING);
964
- _Logger.default.log("[".concat(caller, "] : Mobius url to contact: ").concat(url), {
965
- file: _constants.REGISTRATION_FILE,
966
- method: this.attemptRegistrationWithServers.name
1002
+ this.registrationStatus = _types2.RegistrationStatus.INACTIVE;
1003
+ this.lineEmitter(_types3.LINE_EVENTS.CONNECTING);
1004
+ _Logger.default.info("[".concat(caller, "] : Mobius url to contact: ").concat(url), {
1005
+ file: _constants2.REGISTRATION_FILE,
1006
+ method: _constants2.REGISTER_UTIL
967
1007
  });
968
1008
  // eslint-disable-next-line no-await-in-loop
969
- _context19.next = 19;
1009
+ _context19.next = 20;
970
1010
  return this.postRegistration(url);
971
- case 19:
1011
+ case 20:
972
1012
  resp = _context19.sent;
973
1013
  this.deviceInfo = resp.body;
974
- this.registrationStatus = _types3.RegistrationStatus.ACTIVE;
975
- this.lineEmitter(_types4.LINE_EVENTS.REGISTERED, resp.body);
1014
+ this.registrationStatus = _types2.RegistrationStatus.ACTIVE;
1015
+ this.lineEmitter(_types3.LINE_EVENTS.REGISTERED, resp.body);
1016
+ _Logger.default.log("Registration successful for deviceId: ".concat((_this$deviceInfo$devi = this.deviceInfo.device) === null || _this$deviceInfo$devi === void 0 ? void 0 : _this$deviceInfo$devi.deviceId, " userId: ").concat(this.userId), {
1017
+ file: _constants2.REGISTRATION_FILE,
1018
+ method: _constants2.METHODS.REGISTER
1019
+ });
976
1020
  this.setActiveMobiusUrl(url);
977
1021
  this.setIntervalValues(this.deviceInfo);
978
1022
  this.metricManager.setDeviceInfo(this.deviceInfo);
979
- this.metricManager.submitRegistrationMetric(_types2.METRIC_EVENT.REGISTRATION, _types2.REG_ACTION.REGISTER, _types2.METRIC_TYPE.BEHAVIORAL, undefined);
980
- this.startKeepaliveTimer((_this$deviceInfo$devi = this.deviceInfo.device) === null || _this$deviceInfo$devi === void 0 ? void 0 : _this$deviceInfo$devi.uri, this.deviceInfo.keepaliveInterval);
1023
+ this.metricManager.submitRegistrationMetric(_types.METRIC_EVENT.REGISTRATION, _types.REG_ACTION.REGISTER, _types.METRIC_TYPE.BEHAVIORAL, undefined);
1024
+ this.startKeepaliveTimer((_this$deviceInfo$devi2 = this.deviceInfo.device) === null || _this$deviceInfo$devi2 === void 0 ? void 0 : _this$deviceInfo$devi2.uri, this.deviceInfo.keepaliveInterval);
981
1025
  this.initiateFailback();
982
- return _context19.abrupt("break", 55);
983
- case 32:
984
- _context19.prev = 32;
985
- _context19.t0 = _context19["catch"](12);
1026
+ return _context19.abrupt("break", 48);
1027
+ case 34:
1028
+ _context19.prev = 34;
1029
+ _context19.t0 = _context19["catch"](13);
986
1030
  body = _context19.t0; // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-unused-vars
987
- _context19.next = 37;
1031
+ _context19.next = 39;
988
1032
  return (0, _common.handleRegistrationErrors)(body, function (clientError, finalError) {
989
1033
  if (finalError) {
990
- _this6.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
1034
+ _this6.lineEmitter(_types3.LINE_EVENTS.ERROR, undefined, clientError);
991
1035
  } else {
992
- _this6.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
1036
+ _this6.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
993
1037
  }
994
- _this6.metricManager.submitRegistrationMetric(_types2.METRIC_EVENT.REGISTRATION_ERROR, _types2.REG_ACTION.REGISTER, _types2.METRIC_TYPE.BEHAVIORAL, clientError);
1038
+ _this6.metricManager.submitRegistrationMetric(_types.METRIC_EVENT.REGISTRATION_ERROR, _types.REG_ACTION.REGISTER, _types.METRIC_TYPE.BEHAVIORAL, clientError);
995
1039
  }, {
996
- method: this.attemptRegistrationWithServers.name,
997
- file: _constants.REGISTRATION_FILE
1040
+ method: caller,
1041
+ file: _constants2.REGISTRATION_FILE
1042
+ }, function (retryAfter, retryCaller) {
1043
+ return _this6.handle429Retry(retryAfter, retryCaller);
998
1044
  }, this.restoreRegistrationCallBack());
999
- case 37:
1045
+ case 39:
1000
1046
  abort = _context19.sent;
1001
- if (!(this.registrationStatus === _types3.RegistrationStatus.ACTIVE)) {
1002
- _context19.next = 41;
1047
+ if (!(this.registrationStatus === _types2.RegistrationStatus.ACTIVE)) {
1048
+ _context19.next = 43;
1003
1049
  break;
1004
1050
  }
1005
1051
  _Logger.default.info("[".concat(caller, "] : Device is already restored, active mobius url: ").concat(this.activeMobiusUrl), {
1006
- file: _constants.REGISTRATION_FILE,
1052
+ file: _constants2.REGISTRATION_FILE,
1007
1053
  method: this.attemptRegistrationWithServers.name
1008
1054
  });
1009
- return _context19.abrupt("break", 55);
1010
- case 41:
1055
+ return _context19.abrupt("break", 48);
1056
+ case 43:
1011
1057
  if (!abort) {
1012
1058
  _context19.next = 46;
1013
1059
  break;
1014
1060
  }
1015
- this.setStatus(_types3.RegistrationStatus.INACTIVE);
1016
- return _context19.abrupt("break", 55);
1061
+ this.setStatus(_types2.RegistrationStatus.INACTIVE);
1062
+ return _context19.abrupt("break", 48);
1017
1063
  case 46:
1018
- if (!(caller === this.executeFailback.name)) {
1019
- _context19.next = 53;
1020
- break;
1021
- }
1022
- error = body.statusCode;
1023
- if (!(error === _types.ERROR_CODE.TOO_MANY_REQUESTS)) {
1024
- _context19.next = 53;
1025
- break;
1026
- }
1027
- _context19.next = 51;
1028
- return this.scheduleFailback429Retry();
1029
- case 51:
1030
- abort = true;
1031
- return _context19.abrupt("break", 55);
1032
- case 53:
1033
- _context19.next = 10;
1064
+ _context19.next = 11;
1034
1065
  break;
1035
- case 55:
1036
- _context19.next = 60;
1066
+ case 48:
1067
+ _context19.next = 53;
1037
1068
  break;
1038
- case 57:
1039
- _context19.prev = 57;
1040
- _context19.t1 = _context19["catch"](8);
1069
+ case 50:
1070
+ _context19.prev = 50;
1071
+ _context19.t1 = _context19["catch"](9);
1041
1072
  _iterator.e(_context19.t1);
1042
- case 60:
1043
- _context19.prev = 60;
1073
+ case 53:
1074
+ _context19.prev = 53;
1044
1075
  _iterator.f();
1045
- return _context19.finish(60);
1046
- case 63:
1076
+ return _context19.finish(53);
1077
+ case 56:
1047
1078
  return _context19.abrupt("return", abort);
1048
- case 64:
1079
+ case 57:
1049
1080
  case "end":
1050
1081
  return _context19.stop();
1051
1082
  }
1052
- }, _callee19, this, [[8, 57, 60, 63], [12, 32]]);
1083
+ }, _callee19, this, [[9, 50, 53, 56], [13, 34]]);
1053
1084
  }));
1054
- function attemptRegistrationWithServers(_x11) {
1085
+ function attemptRegistrationWithServers(_x13) {
1055
1086
  return _attemptRegistrationWithServers.apply(this, arguments);
1056
1087
  }
1057
1088
  return attemptRegistrationWithServers;
@@ -1074,7 +1105,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1074
1105
  while (1) switch (_context21.prev = _context21.next) {
1075
1106
  case 0:
1076
1107
  logContext = {
1077
- file: _constants.REGISTRATION_FILE,
1108
+ file: _constants2.REGISTRATION_FILE,
1078
1109
  method: _this7.startKeepaliveTimer.name
1079
1110
  };
1080
1111
  _context21.next = 3;
@@ -1092,9 +1123,9 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1092
1123
  return _this7.postKeepAlive(url);
1093
1124
  case 4:
1094
1125
  res = _context20.sent;
1095
- _Logger.default.info("Sent Keepalive, status: ".concat(res.statusCode), logContext);
1126
+ _Logger.default.log("Sent Keepalive, status: ".concat(res.statusCode), logContext);
1096
1127
  if (keepAliveRetryCount > 0) {
1097
- _this7.lineEmitter(_types4.LINE_EVENTS.RECONNECTED);
1128
+ _this7.lineEmitter(_types3.LINE_EVENTS.RECONNECTED);
1098
1129
  }
1099
1130
  keepAliveRetryCount = 0;
1100
1131
  _context20.next = 30;
@@ -1108,12 +1139,12 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1108
1139
  _context20.next = 17;
1109
1140
  return (0, _common.handleRegistrationErrors)(error, function (clientError, finalError) {
1110
1141
  if (finalError) {
1111
- _this7.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
1142
+ _this7.lineEmitter(_types3.LINE_EVENTS.ERROR, undefined, clientError);
1112
1143
  }
1113
- _this7.metricManager.submitRegistrationMetric(_types2.METRIC_EVENT.REGISTRATION, _types2.REG_ACTION.KEEPALIVE_FAILURE, _types2.METRIC_TYPE.BEHAVIORAL, clientError);
1144
+ _this7.metricManager.submitRegistrationMetric(_types.METRIC_EVENT.REGISTRATION, _types.REG_ACTION.KEEPALIVE_FAILURE, _types.METRIC_TYPE.BEHAVIORAL, clientError);
1114
1145
  }, {
1115
1146
  method: _this7.startKeepaliveTimer.name,
1116
- file: _constants.REGISTRATION_FILE
1147
+ file: _constants2.REGISTRATION_FILE
1117
1148
  });
1118
1149
  case 17:
1119
1150
  abort = _context20.sent;
@@ -1122,10 +1153,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1122
1153
  break;
1123
1154
  }
1124
1155
  _this7.failoverImmediately = _this7.isCCFlow;
1125
- _this7.setStatus(_types3.RegistrationStatus.INACTIVE);
1156
+ _this7.setStatus(_types2.RegistrationStatus.INACTIVE);
1126
1157
  _this7.clearKeepaliveTimer();
1127
1158
  _this7.clearFailbackTimer();
1128
- _this7.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
1159
+ _this7.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
1129
1160
  if (abort) {
1130
1161
  _context20.next = 27;
1131
1162
  break;
@@ -1136,7 +1167,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1136
1167
  _context20.next = 30;
1137
1168
  break;
1138
1169
  case 29:
1139
- _this7.lineEmitter(_types4.LINE_EVENTS.RECONNECTING);
1170
+ _this7.lineEmitter(_types3.LINE_EVENTS.RECONNECTING);
1140
1171
  case 30:
1141
1172
  case "end":
1142
1173
  return _context20.stop();
@@ -1171,28 +1202,35 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1171
1202
  key: "deregister",
1172
1203
  value: function () {
1173
1204
  var _deregister = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22() {
1174
- var _this$deviceInfo$devi2, _this$deviceInfo$devi3;
1205
+ var _this$deviceInfo$devi3, _this$deviceInfo$devi4;
1175
1206
  return _regenerator.default.wrap(function _callee22$(_context22) {
1176
1207
  while (1) switch (_context22.prev = _context22.next) {
1177
1208
  case 0:
1178
1209
  _context22.prev = 0;
1179
1210
  _context22.next = 3;
1180
- return this.deleteRegistration(this.activeMobiusUrl, (_this$deviceInfo$devi2 = this.deviceInfo.device) === null || _this$deviceInfo$devi2 === void 0 ? void 0 : _this$deviceInfo$devi2.deviceId, (_this$deviceInfo$devi3 = this.deviceInfo.device) === null || _this$deviceInfo$devi3 === void 0 ? void 0 : _this$deviceInfo$devi3.clientDeviceUri);
1211
+ return this.deleteRegistration(this.activeMobiusUrl, (_this$deviceInfo$devi3 = this.deviceInfo.device) === null || _this$deviceInfo$devi3 === void 0 ? void 0 : _this$deviceInfo$devi3.deviceId, (_this$deviceInfo$devi4 = this.deviceInfo.device) === null || _this$deviceInfo$devi4 === void 0 ? void 0 : _this$deviceInfo$devi4.clientDeviceUri);
1181
1212
  case 3:
1182
- _context22.next = 8;
1213
+ _Logger.default.log('Registration successfully deregistered', {
1214
+ file: _constants2.REGISTRATION_FILE,
1215
+ method: _constants2.METHODS.DEREGISTER
1216
+ });
1217
+ _context22.next = 9;
1183
1218
  break;
1184
- case 5:
1185
- _context22.prev = 5;
1219
+ case 6:
1220
+ _context22.prev = 6;
1186
1221
  _context22.t0 = _context22["catch"](0);
1187
- _Logger.default.warn("Delete failed with Mobius", {});
1188
- case 8:
1222
+ _Logger.default.warn("Delete failed with Mobius: ".concat(_context22.t0), {
1223
+ file: _constants2.REGISTRATION_FILE,
1224
+ method: _constants2.METHODS.DEREGISTER
1225
+ });
1226
+ case 9:
1189
1227
  this.clearKeepaliveTimer();
1190
- this.setStatus(_types3.RegistrationStatus.INACTIVE);
1191
- case 10:
1228
+ this.setStatus(_types2.RegistrationStatus.INACTIVE);
1229
+ case 11:
1192
1230
  case "end":
1193
1231
  return _context22.stop();
1194
1232
  }
1195
- }, _callee22, this, [[0, 5]]);
1233
+ }, _callee22, this, [[0, 6]]);
1196
1234
  }));
1197
1235
  function deregister() {
1198
1236
  return _deregister.apply(this, arguments);
@@ -1231,14 +1269,14 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1231
1269
  this.deviceInfo = {
1232
1270
  userId: restoreData.userId,
1233
1271
  device: restoreData.devices[0],
1234
- keepaliveInterval: _constants.DEFAULT_KEEPALIVE_INTERVAL,
1235
- rehomingIntervalMax: _constants.DEFAULT_REHOMING_INTERVAL_MAX,
1236
- rehomingIntervalMin: _constants.DEFAULT_REHOMING_INTERVAL_MIN
1272
+ keepaliveInterval: _constants2.DEFAULT_KEEPALIVE_INTERVAL,
1273
+ rehomingIntervalMax: _constants2.DEFAULT_REHOMING_INTERVAL_MAX,
1274
+ rehomingIntervalMin: _constants2.DEFAULT_REHOMING_INTERVAL_MIN
1237
1275
  };
1238
- var stringToReplace = "".concat(_constants.DEVICES_ENDPOINT_RESOURCE, "/").concat(restoreData.devices[0].deviceId);
1276
+ var stringToReplace = "".concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "/").concat(restoreData.devices[0].deviceId);
1239
1277
  var uri = restoreData.devices[0].uri.replace(stringToReplace, '');
1240
1278
  this.setActiveMobiusUrl(uri);
1241
- this.registrationStatus = _types3.RegistrationStatus.ACTIVE;
1279
+ this.registrationStatus = _types2.RegistrationStatus.ACTIVE;
1242
1280
  return true;
1243
1281
  }
1244
1282
  return false;
@@ -1261,41 +1299,45 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1261
1299
  return _regenerator.default.wrap(function _callee23$(_context23) {
1262
1300
  while (1) switch (_context23.prev = _context23.next) {
1263
1301
  case 0:
1302
+ _Logger.default.info(_constants.METHOD_START_MESSAGE, {
1303
+ method: _constants2.METHODS.RECONNECT_ON_FAILURE,
1304
+ file: _constants2.REGISTRATION_FILE
1305
+ });
1264
1306
  this.reconnectPending = false;
1265
1307
  if (this.isDeviceRegistered()) {
1266
- _context23.next = 13;
1308
+ _context23.next = 14;
1267
1309
  break;
1268
1310
  }
1269
1311
  if (!((0, _keys.default)(this.callManager.getActiveCalls()).length === 0)) {
1270
- _context23.next = 11;
1312
+ _context23.next = 12;
1271
1313
  break;
1272
1314
  }
1273
- _context23.next = 5;
1315
+ _context23.next = 6;
1274
1316
  return this.restorePreviousRegistration(caller);
1275
- case 5:
1317
+ case 6:
1276
1318
  abort = _context23.sent;
1277
1319
  if (!(!abort && !this.isDeviceRegistered())) {
1278
- _context23.next = 9;
1320
+ _context23.next = 10;
1279
1321
  break;
1280
1322
  }
1281
- _context23.next = 9;
1323
+ _context23.next = 10;
1282
1324
  return this.restartRegistration(caller);
1283
- case 9:
1284
- _context23.next = 13;
1325
+ case 10:
1326
+ _context23.next = 14;
1285
1327
  break;
1286
- case 11:
1328
+ case 12:
1287
1329
  this.reconnectPending = true;
1288
1330
  _Logger.default.info('Active call(s) present, deferred reconnect till call cleanup.', {
1289
- file: _constants.REGISTRATION_FILE,
1290
- method: this.reconnectOnFailure.name
1331
+ file: _constants2.REGISTRATION_FILE,
1332
+ method: _constants2.METHODS.RECONNECT_ON_FAILURE
1291
1333
  });
1292
- case 13:
1334
+ case 14:
1293
1335
  case "end":
1294
1336
  return _context23.stop();
1295
1337
  }
1296
1338
  }, _callee23, this);
1297
1339
  }));
1298
- function reconnectOnFailure(_x12) {
1340
+ function reconnectOnFailure(_x14) {
1299
1341
  return _reconnectOnFailure.apply(this, arguments);
1300
1342
  }
1301
1343
  return reconnectOnFailure;