@webex/calling 3.8.0-web-workers-keepalive.2 → 3.8.1-next.1

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 (161) hide show
  1. package/dist/CallHistory/CallHistory.js +100 -63
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +115 -19
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/constants.js +9 -1
  6. package/dist/CallHistory/constants.js.map +1 -1
  7. package/dist/CallSettings/CallSettings.js +46 -13
  8. package/dist/CallSettings/CallSettings.js.map +1 -1
  9. package/dist/CallSettings/UcmBackendConnector.js +62 -18
  10. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  11. package/dist/CallSettings/UcmBackendConnector.test.js +70 -7
  12. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  13. package/dist/CallSettings/WxCallBackendConnector.js +153 -103
  14. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  15. package/dist/CallSettings/WxCallBackendConnector.test.js +52 -15
  16. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  17. package/dist/CallSettings/constants.js +15 -1
  18. package/dist/CallSettings/constants.js.map +1 -1
  19. package/dist/CallingClient/CallingClient.js +220 -159
  20. package/dist/CallingClient/CallingClient.js.map +1 -1
  21. package/dist/CallingClient/CallingClient.test.js +53 -24
  22. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  23. package/dist/CallingClient/calling/call.js +251 -189
  24. package/dist/CallingClient/calling/call.js.map +1 -1
  25. package/dist/CallingClient/calling/call.test.js +96 -41
  26. package/dist/CallingClient/calling/call.test.js.map +1 -1
  27. package/dist/CallingClient/calling/callManager.js +73 -48
  28. package/dist/CallingClient/calling/callManager.js.map +1 -1
  29. package/dist/CallingClient/calling/callManager.test.js +96 -37
  30. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  31. package/dist/CallingClient/constants.js +105 -3
  32. package/dist/CallingClient/constants.js.map +1 -1
  33. package/dist/CallingClient/line/index.js +47 -18
  34. package/dist/CallingClient/line/index.js.map +1 -1
  35. package/dist/CallingClient/line/line.test.js +12 -6
  36. package/dist/CallingClient/line/line.test.js.map +1 -1
  37. package/dist/CallingClient/registration/register.js +591 -529
  38. package/dist/CallingClient/registration/register.js.map +1 -1
  39. package/dist/CallingClient/registration/register.test.js +806 -457
  40. package/dist/CallingClient/registration/register.test.js.map +1 -1
  41. package/dist/CallingClient/registration/types.js.map +1 -1
  42. package/dist/Contacts/ContactsClient.js +156 -102
  43. package/dist/Contacts/ContactsClient.js.map +1 -1
  44. package/dist/Contacts/ContactsClient.test.js +197 -49
  45. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  46. package/dist/Contacts/constants.js +11 -1
  47. package/dist/Contacts/constants.js.map +1 -1
  48. package/dist/Errors/types.js +2 -0
  49. package/dist/Errors/types.js.map +1 -1
  50. package/dist/Events/impl/index.js +1 -1
  51. package/dist/Events/impl/index.js.map +1 -1
  52. package/dist/Metrics/index.js +102 -41
  53. package/dist/Metrics/index.js.map +1 -1
  54. package/dist/Metrics/index.test.js +10 -4
  55. package/dist/Metrics/index.test.js.map +1 -1
  56. package/dist/Metrics/types.js +4 -1
  57. package/dist/Metrics/types.js.map +1 -1
  58. package/dist/SDKConnector/types.js.map +1 -1
  59. package/dist/Voicemail/BroadworksBackendConnector.js +154 -91
  60. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  61. package/dist/Voicemail/BroadworksBackendConnector.test.js +99 -19
  62. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  63. package/dist/Voicemail/UcmBackendConnector.js +105 -54
  64. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  65. package/dist/Voicemail/UcmBackendConnector.test.js +127 -17
  66. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  67. package/dist/Voicemail/Voicemail.js +198 -79
  68. package/dist/Voicemail/Voicemail.js.map +1 -1
  69. package/dist/Voicemail/Voicemail.test.js +188 -23
  70. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  71. package/dist/Voicemail/WxCallBackendConnector.js +123 -76
  72. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  73. package/dist/Voicemail/WxCallBackendConnector.test.js +69 -6
  74. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  75. package/dist/Voicemail/constants.js +25 -1
  76. package/dist/Voicemail/constants.js.map +1 -1
  77. package/dist/common/Utils.js +168 -104
  78. package/dist/common/Utils.js.map +1 -1
  79. package/dist/common/Utils.test.js +199 -35
  80. package/dist/common/Utils.test.js.map +1 -1
  81. package/dist/common/constants.js +2 -1
  82. package/dist/common/constants.js.map +1 -1
  83. package/dist/common/types.js +1 -8
  84. package/dist/common/types.js.map +1 -1
  85. package/dist/module/CallHistory/CallHistory.js +32 -13
  86. package/dist/module/CallHistory/constants.js +6 -0
  87. package/dist/module/CallSettings/CallSettings.js +36 -3
  88. package/dist/module/CallSettings/UcmBackendConnector.js +50 -5
  89. package/dist/module/CallSettings/WxCallBackendConnector.js +54 -18
  90. package/dist/module/CallSettings/constants.js +12 -0
  91. package/dist/module/CallingClient/CallingClient.js +54 -16
  92. package/dist/module/CallingClient/calling/call.js +172 -121
  93. package/dist/module/CallingClient/calling/callManager.js +51 -26
  94. package/dist/module/CallingClient/constants.js +102 -2
  95. package/dist/module/CallingClient/line/index.js +37 -8
  96. package/dist/module/CallingClient/registration/register.js +151 -108
  97. package/dist/module/Contacts/ContactsClient.js +65 -21
  98. package/dist/module/Contacts/constants.js +10 -0
  99. package/dist/module/Errors/types.js +2 -0
  100. package/dist/module/Events/impl/index.js +1 -1
  101. package/dist/module/Metrics/index.js +57 -2
  102. package/dist/module/Metrics/types.js +3 -0
  103. package/dist/module/Voicemail/BroadworksBackendConnector.js +66 -17
  104. package/dist/module/Voicemail/UcmBackendConnector.js +51 -11
  105. package/dist/module/Voicemail/Voicemail.js +109 -9
  106. package/dist/module/Voicemail/WxCallBackendConnector.js +50 -17
  107. package/dist/module/Voicemail/constants.js +21 -0
  108. package/dist/module/common/Utils.js +51 -12
  109. package/dist/module/common/constants.js +1 -0
  110. package/dist/module/common/types.js +0 -7
  111. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  112. package/dist/types/CallHistory/constants.d.ts +6 -0
  113. package/dist/types/CallHistory/constants.d.ts.map +1 -1
  114. package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
  115. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  116. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  117. package/dist/types/CallSettings/constants.d.ts +12 -0
  118. package/dist/types/CallSettings/constants.d.ts.map +1 -1
  119. package/dist/types/CallingClient/CallingClient.d.ts +2 -3
  120. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  121. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  122. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  123. package/dist/types/CallingClient/constants.d.ts +102 -2
  124. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  125. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  126. package/dist/types/CallingClient/registration/register.d.ts +5 -2
  127. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  128. package/dist/types/CallingClient/registration/types.d.ts +1 -0
  129. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  130. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  131. package/dist/types/Contacts/constants.d.ts +10 -0
  132. package/dist/types/Contacts/constants.d.ts.map +1 -1
  133. package/dist/types/Errors/types.d.ts +2 -0
  134. package/dist/types/Errors/types.d.ts.map +1 -1
  135. package/dist/types/Metrics/index.d.ts +1 -1
  136. package/dist/types/Metrics/index.d.ts.map +1 -1
  137. package/dist/types/Metrics/types.d.ts +7 -2
  138. package/dist/types/Metrics/types.d.ts.map +1 -1
  139. package/dist/types/SDKConnector/types.d.ts +8 -2
  140. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  141. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  142. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  143. package/dist/types/Voicemail/Voicemail.d.ts +1 -1
  144. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  145. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  146. package/dist/types/Voicemail/constants.d.ts +21 -0
  147. package/dist/types/Voicemail/constants.d.ts.map +1 -1
  148. package/dist/types/common/Utils.d.ts +4 -4
  149. package/dist/types/common/Utils.d.ts.map +1 -1
  150. package/dist/types/common/constants.d.ts +1 -0
  151. package/dist/types/common/constants.d.ts.map +1 -1
  152. package/dist/types/common/types.d.ts +11 -11
  153. package/dist/types/common/types.d.ts.map +1 -1
  154. package/package.json +4 -5
  155. package/dist/CallingClient/registration/webWorker.js +0 -115
  156. package/dist/CallingClient/registration/webWorker.js.map +0 -1
  157. package/dist/CallingClient/registration/webWorker.test.js +0 -256
  158. package/dist/CallingClient/registration/webWorker.test.js.map +0 -1
  159. package/dist/module/CallingClient/registration/webWorker.js +0 -59
  160. package/dist/types/CallingClient/registration/webWorker.d.ts +0 -2
  161. package/dist/types/CallingClient/registration/webWorker.d.ts.map +0 -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; }
@@ -54,6 +54,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
54
54
  (0, _defineProperty2.default)(this, "registrationStatus", void 0);
55
55
  (0, _defineProperty2.default)(this, "failbackTimer", void 0);
56
56
  (0, _defineProperty2.default)(this, "activeMobiusUrl", void 0);
57
+ (0, _defineProperty2.default)(this, "keepaliveTimer", void 0);
57
58
  (0, _defineProperty2.default)(this, "rehomingIntervalMin", void 0);
58
59
  (0, _defineProperty2.default)(this, "rehomingIntervalMax", void 0);
59
60
  (0, _defineProperty2.default)(this, "mutex", void 0);
@@ -68,21 +69,22 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
68
69
  (0, _defineProperty2.default)(this, "jwe", void 0);
69
70
  (0, _defineProperty2.default)(this, "isCCFlow", false);
70
71
  (0, _defineProperty2.default)(this, "failoverImmediately", false);
71
- (0, _defineProperty2.default)(this, "webWorker", void 0);
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,66 +110,102 @@ 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
  }
114
120
 
121
+ /**
122
+ * Implementation of sending keepalive.
123
+ *
124
+ */
125
+ }, {
126
+ key: "postKeepAlive",
127
+ value: (function () {
128
+ var _postKeepAlive = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url) {
129
+ return _regenerator.default.wrap(function _callee$(_context) {
130
+ while (1) switch (_context.prev = _context.next) {
131
+ case 0:
132
+ return _context.abrupt("return", this.webex.request({
133
+ uri: "".concat(url, "/status"),
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
137
+ }));
138
+ case 1:
139
+ case "end":
140
+ return _context.stop();
141
+ }
142
+ }, _callee, this);
143
+ }));
144
+ function postKeepAlive(_x) {
145
+ return _postKeepAlive.apply(this, arguments);
146
+ }
147
+ return postKeepAlive;
148
+ }()
115
149
  /**
116
150
  * Implementation of delete device.
117
151
  *
118
152
  */
153
+ )
119
154
  }, {
120
155
  key: "deleteRegistration",
121
156
  value: (function () {
122
- var _deleteRegistration = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url, deviceId, deviceUrl) {
157
+ var _deleteRegistration = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(url, deviceId, deviceUrl) {
123
158
  var _response;
124
159
  var response;
125
- return _regenerator.default.wrap(function _callee$(_context) {
126
- while (1) switch (_context.prev = _context.next) {
160
+ return _regenerator.default.wrap(function _callee2$(_context2) {
161
+ while (1) switch (_context2.prev = _context2.next) {
127
162
  case 0:
128
- _context.prev = 0;
129
- _context.t0 = fetch;
130
- _context.t1 = "".concat(url).concat(_constants.DEVICES_ENDPOINT_RESOURCE, "/").concat(deviceId);
131
- _context.t2 = _types3.HTTP_METHODS.DELETE;
132
- _context.t3 = _defineProperty2.default;
133
- _context.t4 = _defineProperty2.default;
134
- _context.t5 = _defineProperty2.default;
135
- _context.t6 = (0, _defineProperty2.default)({}, _constants.CISCO_DEVICE_URL, deviceUrl);
136
- _context.next = 10;
163
+ _context2.prev = 0;
164
+ _context2.t0 = fetch;
165
+ _context2.t1 = "".concat(url).concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "/").concat(deviceId);
166
+ _context2.t2 = _types2.HTTP_METHODS.DELETE;
167
+ _context2.t3 = _defineProperty2.default;
168
+ _context2.t4 = _defineProperty2.default;
169
+ _context2.t5 = _defineProperty2.default;
170
+ _context2.t6 = (0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, deviceUrl);
171
+ _context2.next = 10;
137
172
  return this.webex.credentials.getUserToken();
138
173
  case 10:
139
- _context.t7 = _context.sent;
140
- _context.t8 = (0, _context.t5)(_context.t6, "Authorization", _context.t7);
141
- _context.t9 = "".concat(_constants.WEBEX_WEB_CLIENT, "_").concat((0, _uuid.v4)());
142
- _context.t10 = (0, _context.t4)(_context.t8, "trackingId", _context.t9);
143
- _context.t11 = _constants.SPARK_USER_AGENT;
144
- _context.t12 = _constants.CALLING_USER_AGENT;
145
- _context.t13 = (0, _context.t3)(_context.t10, _context.t11, _context.t12);
146
- _context.t14 = {
147
- method: _context.t2,
148
- headers: _context.t13
174
+ _context2.t7 = _context2.sent;
175
+ _context2.t8 = (0, _context2.t5)(_context2.t6, "Authorization", _context2.t7);
176
+ _context2.t9 = "".concat(_constants2.WEBEX_WEB_CLIENT, "_").concat((0, _uuid.v4)());
177
+ _context2.t10 = (0, _context2.t4)(_context2.t8, "trackingId", _context2.t9);
178
+ _context2.t11 = _constants2.SPARK_USER_AGENT;
179
+ _context2.t12 = _constants2.CALLING_USER_AGENT;
180
+ _context2.t13 = (0, _context2.t3)(_context2.t10, _context2.t11, _context2.t12);
181
+ _context2.t14 = {
182
+ method: _context2.t2,
183
+ headers: _context2.t13
149
184
  };
150
- _context.next = 20;
151
- return (0, _context.t0)(_context.t1, _context.t14);
185
+ _context2.next = 20;
186
+ return (0, _context2.t0)(_context2.t1, _context2.t14);
152
187
  case 20:
153
- response = _context.sent;
154
- _context.next = 26;
188
+ response = _context2.sent;
189
+ _context2.next = 26;
155
190
  break;
156
191
  case 23:
157
- _context.prev = 23;
158
- _context.t15 = _context["catch"](0);
159
- _Logger.default.warn("Delete failed with Mobius", {});
192
+ _context2.prev = 23;
193
+ _context2.t15 = _context2["catch"](0);
194
+ _Logger.default.warn("Delete failed with Mobius ".concat(_context2.t15), {
195
+ file: _constants2.REGISTRATION_FILE,
196
+ method: _constants2.METHODS.DEREGISTER
197
+ });
160
198
  case 26:
161
- this.setStatus(_types3.RegistrationStatus.INACTIVE);
162
- this.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
163
- return _context.abrupt("return", (_response = response) === null || _response === void 0 ? void 0 : _response.json());
199
+ this.setStatus(_types2.RegistrationStatus.INACTIVE);
200
+ this.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
201
+ return _context2.abrupt("return", (_response = response) === null || _response === void 0 ? void 0 : _response.json());
164
202
  case 29:
165
203
  case "end":
166
- return _context.stop();
204
+ return _context2.stop();
167
205
  }
168
- }, _callee, this, [[0, 23]]);
206
+ }, _callee2, this, [[0, 23]]);
169
207
  }));
170
- function deleteRegistration(_x, _x2, _x3) {
208
+ function deleteRegistration(_x2, _x3, _x4) {
171
209
  return _deleteRegistration.apply(this, arguments);
172
210
  }
173
211
  return deleteRegistration;
@@ -180,10 +218,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
180
218
  }, {
181
219
  key: "postRegistration",
182
220
  value: (function () {
183
- var _postRegistration = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(url) {
221
+ var _postRegistration = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(url) {
184
222
  var deviceInfo;
185
- return _regenerator.default.wrap(function _callee2$(_context2) {
186
- while (1) switch (_context2.prev = _context2.next) {
223
+ return _regenerator.default.wrap(function _callee3$(_context3) {
224
+ while (1) switch (_context3.prev = _context3.next) {
187
225
  case 0:
188
226
  deviceInfo = {
189
227
  userId: this.userId,
@@ -192,20 +230,20 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
192
230
  jwe: this.jwe
193
231
  }) : this.serviceData
194
232
  };
195
- return _context2.abrupt("return", this.webex.request({
233
+ return _context3.abrupt("return", this.webex.request({
196
234
  uri: "".concat(url, "device"),
197
- method: _types3.HTTP_METHODS.POST,
198
- 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),
199
237
  body: deviceInfo,
200
- service: _types3.ALLOWED_SERVICES.MOBIUS
238
+ service: _types2.ALLOWED_SERVICES.MOBIUS
201
239
  }));
202
240
  case 2:
203
241
  case "end":
204
- return _context2.stop();
242
+ return _context3.stop();
205
243
  }
206
- }, _callee2, this);
244
+ }, _callee3, this);
207
245
  }));
208
- function postRegistration(_x4) {
246
+ function postRegistration(_x5) {
209
247
  return _postRegistration.apply(this, arguments);
210
248
  }
211
249
  return postRegistration;
@@ -218,82 +256,89 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
218
256
  }, {
219
257
  key: "restorePreviousRegistration",
220
258
  value: (function () {
221
- var _restorePreviousRegistration = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(caller) {
259
+ var _restorePreviousRegistration = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(caller) {
222
260
  var abort;
223
- return _regenerator.default.wrap(function _callee3$(_context3) {
224
- while (1) switch (_context3.prev = _context3.next) {
261
+ return _regenerator.default.wrap(function _callee4$(_context4) {
262
+ while (1) switch (_context4.prev = _context4.next) {
225
263
  case 0:
226
264
  abort = false;
227
265
  if (!this.activeMobiusUrl) {
228
- _context3.next = 5;
266
+ _context4.next = 5;
229
267
  break;
230
268
  }
231
- _context3.next = 4;
269
+ _context4.next = 4;
232
270
  return this.attemptRegistrationWithServers(caller, [this.activeMobiusUrl]);
233
271
  case 4:
234
- abort = _context3.sent;
272
+ abort = _context4.sent;
235
273
  case 5:
236
- return _context3.abrupt("return", abort);
274
+ return _context4.abrupt("return", abort);
237
275
  case 6:
238
276
  case "end":
239
- return _context3.stop();
277
+ return _context4.stop();
240
278
  }
241
- }, _callee3, this);
279
+ }, _callee4, this);
242
280
  }));
243
- function restorePreviousRegistration(_x5) {
281
+ function restorePreviousRegistration(_x6) {
244
282
  return _restorePreviousRegistration.apply(this, arguments);
245
283
  }
246
284
  return restorePreviousRegistration;
247
285
  }()
248
286
  /**
249
- * When a failback request is rejected with 429, it means the
250
- * request did not even land on primary mobius to know if it
251
- * can handle this device registration now, in such cases this
252
- * method is called to retry sooner than the rehoming timer value.
287
+ *
253
288
  */
254
289
  )
255
290
  }, {
256
- key: "scheduleFailback429Retry",
291
+ key: "handle429Retry",
257
292
  value: (function () {
258
- var _scheduleFailback429Retry = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
293
+ var _handle429Retry = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(retryAfter, caller) {
259
294
  var interval, abort;
260
- return _regenerator.default.wrap(function _callee4$(_context4) {
261
- while (1) switch (_context4.prev = _context4.next) {
295
+ return _regenerator.default.wrap(function _callee5$(_context5) {
296
+ while (1) switch (_context5.prev = _context5.next) {
262
297
  case 0:
263
- if (!(this.failback429RetryAttempts >= _constants.REG_FAILBACK_429_MAX_RETRIES)) {
264
- _context4.next = 2;
298
+ if (!(caller === _constants2.FAILBACK_UTIL)) {
299
+ _context5.next = 17;
265
300
  break;
266
301
  }
267
- return _context4.abrupt("return");
268
- case 2:
302
+ if (!(this.failback429RetryAttempts >= _constants2.REG_FAILBACK_429_MAX_RETRIES)) {
303
+ _context5.next = 3;
304
+ break;
305
+ }
306
+ return _context5.abrupt("return");
307
+ case 3:
269
308
  this.clearFailbackTimer();
270
309
  this.failback429RetryAttempts += 1;
271
310
  _Logger.default.log("Received 429 while rehoming, 429 retry count : ".concat(this.failback429RetryAttempts), {
272
- file: _constants.REGISTRATION_FILE,
273
- method: _constants.FAILBACK_429_RETRY_UTIL
311
+ file: _constants2.REGISTRATION_FILE,
312
+ method: _constants2.REG_429_RETRY_UTIL
274
313
  });
275
314
  interval = this.getRegRetryInterval(this.failback429RetryAttempts);
276
315
  this.startFailbackTimer(interval);
277
- _context4.next = 9;
278
- return this.restorePreviousRegistration(_constants.FAILBACK_429_RETRY_UTIL);
279
- case 9:
280
- abort = _context4.sent;
316
+ this.scheduled429Retry = true;
317
+ _context5.next = 11;
318
+ return this.restorePreviousRegistration(_constants2.REG_429_RETRY_UTIL);
319
+ case 11:
320
+ abort = _context5.sent;
281
321
  if (!(!abort && !this.isDeviceRegistered())) {
282
- _context4.next = 13;
322
+ _context5.next = 15;
283
323
  break;
284
324
  }
285
- _context4.next = 13;
286
- return this.restartRegistration(_constants.FAILBACK_429_RETRY_UTIL);
287
- 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:
288
333
  case "end":
289
- return _context4.stop();
334
+ return _context5.stop();
290
335
  }
291
- }, _callee4, this);
336
+ }, _callee5, this);
292
337
  }));
293
- function scheduleFailback429Retry() {
294
- return _scheduleFailback429Retry.apply(this, arguments);
338
+ function handle429Retry(_x7, _x8) {
339
+ return _handle429Retry.apply(this, arguments);
295
340
  }
296
- return scheduleFailback429Retry;
341
+ return handle429Retry;
297
342
  }()
298
343
  /**
299
344
  * Calculates and returns a random interval value using input argument
@@ -306,7 +351,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
306
351
  key: "getRegRetryInterval",
307
352
  value: function getRegRetryInterval() {
308
353
  var attempt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
309
- 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);
310
355
  }
311
356
 
312
357
  /**
@@ -319,7 +364,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
319
364
  }, {
320
365
  key: "startFailoverTimer",
321
366
  value: (function () {
322
- var _startFailoverTimer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
367
+ var _startFailoverTimer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {
323
368
  var _this = this;
324
369
  var attempt,
325
370
  timeElapsed,
@@ -329,119 +374,136 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
329
374
  excessVal,
330
375
  abort,
331
376
  scheduledTime,
332
- _args9 = arguments;
333
- return _regenerator.default.wrap(function _callee9$(_context9) {
334
- while (1) switch (_context9.prev = _context9.next) {
377
+ _args10 = arguments;
378
+ return _regenerator.default.wrap(function _callee10$(_context10) {
379
+ while (1) switch (_context10.prev = _context10.next) {
335
380
  case 0:
336
- attempt = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : 1;
337
- timeElapsed = _args9.length > 1 && _args9[1] !== undefined ? _args9[1] : 0;
381
+ attempt = _args10.length > 0 && _args10[0] !== undefined ? _args10[0] : 1;
382
+ timeElapsed = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : 0;
338
383
  loggerContext = {
339
- file: _constants.REGISTRATION_FILE,
340
- method: this.startFailoverTimer.name
384
+ file: _constants2.REGISTRATION_FILE,
385
+ method: _constants2.FAILOVER_UTIL
341
386
  };
342
387
  interval = this.getRegRetryInterval(attempt);
343
- 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;
344
389
  if (timeElapsed + interval > TIMER_THRESHOLD) {
345
390
  excessVal = timeElapsed + interval - TIMER_THRESHOLD;
346
391
  interval -= excessVal;
347
392
  }
348
- if (!(interval > _constants.BASE_REG_RETRY_TIMER_VAL_IN_SEC && !this.failoverImmediately)) {
349
- _context9.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;
350
398
  break;
351
399
  }
352
400
  scheduledTime = Math.floor((0, _now.default)() / 1000);
353
- setTimeout( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
354
- return _regenerator.default.wrap(function _callee6$(_context6) {
355
- while (1) switch (_context6.prev = _context6.next) {
401
+ if (this.retryAfter != null) {
402
+ interval = Math.max(interval, this.retryAfter);
403
+ }
404
+ setTimeout( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
405
+ return _regenerator.default.wrap(function _callee7$(_context7) {
406
+ while (1) switch (_context7.prev = _context7.next) {
356
407
  case 0:
357
- _context6.next = 2;
358
- return _this.mutex.runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
408
+ _context7.next = 2;
409
+ return _this.mutex.runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
359
410
  var currentTime;
360
- return _regenerator.default.wrap(function _callee5$(_context5) {
361
- while (1) switch (_context5.prev = _context5.next) {
411
+ return _regenerator.default.wrap(function _callee6$(_context6) {
412
+ while (1) switch (_context6.prev = _context6.next) {
362
413
  case 0:
363
- _context5.next = 2;
364
- return _this.attemptRegistrationWithServers(_this.startFailoverTimer.name);
414
+ _context6.next = 2;
415
+ return _this.attemptRegistrationWithServers(_constants2.FAILOVER_UTIL);
365
416
  case 2:
366
- abort = _context5.sent;
417
+ abort = _context6.sent;
367
418
  currentTime = Math.floor((0, _now.default)() / 1000);
368
419
  if (!(!abort && !_this.isDeviceRegistered())) {
369
- _context5.next = 7;
420
+ _context6.next = 7;
370
421
  break;
371
422
  }
372
- _context5.next = 7;
423
+ _context6.next = 7;
373
424
  return _this.startFailoverTimer(attempt + 1, timeElapsed + (currentTime - scheduledTime));
374
425
  case 7:
375
426
  case "end":
376
- return _context5.stop();
427
+ return _context6.stop();
377
428
  }
378
- }, _callee5);
429
+ }, _callee6);
379
430
  })));
380
431
  case 2:
381
432
  case "end":
382
- return _context6.stop();
433
+ return _context7.stop();
383
434
  }
384
- }, _callee6);
385
- })), interval * _constants.SEC_TO_MSEC_MFACTOR);
435
+ }, _callee7);
436
+ })), interval * _constants2.SEC_TO_MSEC_MFACTOR);
386
437
  _Logger.default.log("Scheduled retry with primary in ".concat(interval, " seconds, number of attempts : ").concat(attempt), loggerContext);
387
- _context9.next = 22;
438
+ _context10.next = 26;
388
439
  break;
389
- case 12:
440
+ case 14:
390
441
  if (!this.backupMobiusUris.length) {
391
- _context9.next = 21;
442
+ _context10.next = 23;
392
443
  break;
393
444
  }
394
- _Logger.default.log('Failing over to backup servers.', loggerContext);
445
+ _Logger.default.info('Failing over to backup servers.', loggerContext);
395
446
  this.failoverImmediately = false;
396
- _context9.next = 17;
397
- return this.attemptRegistrationWithServers(this.startFailoverTimer.name, this.backupMobiusUris);
398
- case 17:
399
- abort = _context9.sent;
447
+ _context10.next = 19;
448
+ return this.attemptRegistrationWithServers(_constants2.FAILOVER_UTIL, this.backupMobiusUris);
449
+ case 19:
450
+ abort = _context10.sent;
400
451
  if (!abort && !this.isDeviceRegistered()) {
401
452
  interval = this.getRegRetryInterval();
402
- setTimeout( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
403
- return _regenerator.default.wrap(function _callee8$(_context8) {
404
- while (1) switch (_context8.prev = _context8.next) {
453
+ if (this.retryAfter != null && this.retryAfter < _constants2.RETRY_TIMER_UPPER_LIMIT) {
454
+ interval = interval < this.retryAfter ? this.retryAfter : interval;
455
+ }
456
+ setTimeout( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
457
+ return _regenerator.default.wrap(function _callee9$(_context9) {
458
+ while (1) switch (_context9.prev = _context9.next) {
405
459
  case 0:
406
- _context8.next = 2;
407
- return _this.mutex.runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
408
- return _regenerator.default.wrap(function _callee7$(_context7) {
409
- while (1) switch (_context7.prev = _context7.next) {
460
+ _context9.next = 2;
461
+ return _this.mutex.runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
462
+ return _regenerator.default.wrap(function _callee8$(_context8) {
463
+ while (1) switch (_context8.prev = _context8.next) {
410
464
  case 0:
411
- _context7.next = 2;
412
- return _this.attemptRegistrationWithServers(_this.startFailoverTimer.name, _this.backupMobiusUris);
465
+ _context8.next = 2;
466
+ return _this.attemptRegistrationWithServers(_constants2.FAILOVER_UTIL, _this.backupMobiusUris);
413
467
  case 2:
414
- abort = _context7.sent;
415
- if (!abort && !_this.isDeviceRegistered()) {
416
- (0, _common.emitFinalFailure)(function (clientError) {
417
- _this.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
418
- }, loggerContext);
468
+ abort = _context8.sent;
469
+ if (!(!abort && !_this.isDeviceRegistered())) {
470
+ _context8.next = 7;
471
+ break;
419
472
  }
420
- 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:
421
480
  case "end":
422
- return _context7.stop();
481
+ return _context8.stop();
423
482
  }
424
- }, _callee7);
483
+ }, _callee8);
425
484
  })));
426
485
  case 2:
427
486
  case "end":
428
- return _context8.stop();
487
+ return _context9.stop();
429
488
  }
430
- }, _callee8);
431
- })), interval * _constants.SEC_TO_MSEC_MFACTOR);
489
+ }, _callee9);
490
+ })), interval * _constants2.SEC_TO_MSEC_MFACTOR);
432
491
  _Logger.default.log("Scheduled retry with backup servers in ".concat(interval, " seconds."), loggerContext);
433
492
  }
434
- _context9.next = 22;
493
+ _context10.next = 26;
435
494
  break;
436
- case 21:
495
+ case 23:
496
+ _context10.next = 25;
497
+ return (0, _common.uploadLogs)();
498
+ case 25:
437
499
  (0, _common.emitFinalFailure)(function (clientError) {
438
- _this.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
500
+ _this.lineEmitter(_types3.LINE_EVENTS.ERROR, undefined, clientError);
439
501
  }, loggerContext);
440
- case 22:
502
+ case 26:
441
503
  case "end":
442
- return _context9.stop();
504
+ return _context10.stop();
443
505
  }
444
- }, _callee9, this);
506
+ }, _callee10, this);
445
507
  }));
446
508
  function startFailoverTimer() {
447
509
  return _startFailoverTimer.apply(this, arguments);
@@ -491,7 +553,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
491
553
  if (!this.failbackTimer) {
492
554
  this.failback429RetryAttempts = 0;
493
555
  var intervalInMinutes = this.getFailbackInterval();
494
- this.startFailbackTimer(intervalInMinutes * _constants.MINUTES_TO_SEC_MFACTOR);
556
+ this.startFailbackTimer(intervalInMinutes * _constants2.MINUTES_TO_SEC_MFACTOR);
495
557
  }
496
558
  } else {
497
559
  this.failback429RetryAttempts = 0;
@@ -507,19 +569,19 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
507
569
  key: "startFailbackTimer",
508
570
  value: function startFailbackTimer(intervalInSeconds) {
509
571
  var _this2 = this;
510
- this.failbackTimer = setTimeout( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {
511
- return _regenerator.default.wrap(function _callee10$(_context10) {
512
- while (1) switch (_context10.prev = _context10.next) {
572
+ this.failbackTimer = setTimeout( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {
573
+ return _regenerator.default.wrap(function _callee11$(_context11) {
574
+ while (1) switch (_context11.prev = _context11.next) {
513
575
  case 0:
514
- return _context10.abrupt("return", _this2.executeFailback());
576
+ return _context11.abrupt("return", _this2.executeFailback());
515
577
  case 1:
516
578
  case "end":
517
- return _context10.stop();
579
+ return _context11.stop();
518
580
  }
519
- }, _callee10);
520
- })), intervalInSeconds * _constants.SEC_TO_MSEC_MFACTOR);
581
+ }, _callee11);
582
+ })), intervalInSeconds * _constants2.SEC_TO_MSEC_MFACTOR);
521
583
  _Logger.default.log("Failback scheduled after ".concat(intervalInSeconds, " seconds."), {
522
- file: _constants.REGISTRATION_FILE,
584
+ file: _constants2.REGISTRATION_FILE,
523
585
  method: this.startFailbackTimer.name
524
586
  });
525
587
  }
@@ -531,84 +593,86 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
531
593
  }, {
532
594
  key: "executeFailback",
533
595
  value: (function () {
534
- var _executeFailback = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {
596
+ var _executeFailback = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() {
535
597
  var _this3 = this;
536
- return _regenerator.default.wrap(function _callee12$(_context12) {
537
- while (1) switch (_context12.prev = _context12.next) {
598
+ return _regenerator.default.wrap(function _callee13$(_context13) {
599
+ while (1) switch (_context13.prev = _context13.next) {
538
600
  case 0:
539
- _context12.next = 2;
540
- return this.mutex.runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {
601
+ _context13.next = 2;
602
+ return this.mutex.runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {
541
603
  var abort, abortNew;
542
- return _regenerator.default.wrap(function _callee11$(_context11) {
543
- while (1) switch (_context11.prev = _context11.next) {
604
+ return _regenerator.default.wrap(function _callee12$(_context12) {
605
+ while (1) switch (_context12.prev = _context12.next) {
544
606
  case 0:
545
607
  if (!_this3.isFailbackRequired()) {
546
- _context11.next = 27;
608
+ _context12.next = 28;
547
609
  break;
548
610
  }
549
611
  if (!((0, _keys.default)(_this3.callManager.getActiveCalls()).length === 0)) {
550
- _context11.next = 24;
612
+ _context12.next = 25;
551
613
  break;
552
614
  }
553
615
  _Logger.default.info("Attempting failback to primary.", {
554
- file: _constants.REGISTRATION_FILE,
616
+ file: _constants2.REGISTRATION_FILE,
555
617
  method: _this3.executeFailback.name
556
618
  });
557
- _context11.next = 5;
619
+ _context12.next = 5;
558
620
  return _this3.deregister();
559
621
  case 5:
560
- _context11.next = 7;
561
- return _this3.attemptRegistrationWithServers(_constants.FAILBACK_UTIL);
622
+ _context12.next = 7;
623
+ return _this3.attemptRegistrationWithServers(_constants2.FAILBACK_UTIL);
562
624
  case 7:
563
- abort = _context11.sent;
564
- if (!(!abort && !_this3.isDeviceRegistered())) {
565
- _context11.next = 22;
625
+ abort = _context12.sent;
626
+ if (!(_this3.scheduled429Retry || abort || _this3.isDeviceRegistered())) {
627
+ _context12.next = 10;
566
628
  break;
567
629
  }
568
- _context11.next = 11;
569
- return _this3.restorePreviousRegistration(_constants.FAILBACK_UTIL);
570
- case 11:
571
- abortNew = _context11.sent;
630
+ return _context12.abrupt("return");
631
+ case 10:
632
+ _context12.next = 12;
633
+ return _this3.restorePreviousRegistration(_constants2.FAILBACK_UTIL);
634
+ case 12:
635
+ abortNew = _context12.sent;
572
636
  if (!abortNew) {
573
- _context11.next = 15;
637
+ _context12.next = 16;
574
638
  break;
575
639
  }
576
640
  _this3.clearFailbackTimer();
577
- return _context11.abrupt("return");
578
- case 15:
641
+ return _context12.abrupt("return");
642
+ case 16:
579
643
  if (_this3.isDeviceRegistered()) {
580
- _context11.next = 20;
644
+ _context12.next = 21;
581
645
  break;
582
646
  }
583
- _context11.next = 18;
647
+ _context12.next = 19;
584
648
  return _this3.restartRegistration(_this3.executeFailback.name);
585
- case 18:
586
- _context11.next = 22;
649
+ case 19:
650
+ _context12.next = 23;
587
651
  break;
588
- case 20:
652
+ case 21:
589
653
  _this3.failbackTimer = undefined;
590
654
  _this3.initiateFailback();
591
- case 22:
592
- _context11.next = 27;
655
+ case 23:
656
+ _context12.next = 28;
593
657
  break;
594
- case 24:
658
+ case 25:
595
659
  _Logger.default.info('Active calls present, deferring failback to next cycle.', {
596
- file: _constants.REGISTRATION_FILE,
660
+ file: _constants2.REGISTRATION_FILE,
597
661
  method: _this3.executeFailback.name
598
662
  });
599
663
  _this3.failbackTimer = undefined;
600
664
  _this3.initiateFailback();
601
- case 27:
665
+ case 28:
602
666
  case "end":
603
- return _context11.stop();
667
+ return _context12.stop();
604
668
  }
605
- }, _callee11);
669
+ }, _callee12);
606
670
  })));
607
671
  case 2:
608
672
  case "end":
609
- return _context12.stop();
673
+ return _context13.stop();
610
674
  }
611
- }, _callee12, this);
675
+ }, _callee13, this);
612
676
  }));
613
677
  function executeFailback() {
614
678
  return _executeFailback.apply(this, arguments);
@@ -626,8 +690,8 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
626
690
  key: "setIntervalValues",
627
691
  value: function setIntervalValues(deviceInfo) {
628
692
  if (this.primaryMobiusUris.indexOf(this.activeMobiusUrl) !== -1) {
629
- this.rehomingIntervalMin = deviceInfo !== null && deviceInfo !== void 0 && deviceInfo.rehomingIntervalMin ? deviceInfo.rehomingIntervalMin : _constants.DEFAULT_REHOMING_INTERVAL_MIN;
630
- 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;
631
695
  }
632
696
  }
633
697
 
@@ -650,7 +714,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
650
714
  }, {
651
715
  key: "isDeviceRegistered",
652
716
  value: function isDeviceRegistered() {
653
- return this.registrationStatus === _types3.RegistrationStatus.ACTIVE;
717
+ return this.registrationStatus === _types2.RegistrationStatus.ACTIVE;
654
718
  }
655
719
  }, {
656
720
  key: "getStatus",
@@ -671,10 +735,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
671
735
  }, {
672
736
  key: "restartRegistration",
673
737
  value: (function () {
674
- var _restartRegistration = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(caller) {
738
+ var _restartRegistration = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(caller) {
675
739
  var abort;
676
- return _regenerator.default.wrap(function _callee13$(_context13) {
677
- while (1) switch (_context13.prev = _context13.next) {
740
+ return _regenerator.default.wrap(function _callee14$(_context14) {
741
+ while (1) switch (_context14.prev = _context14.next) {
678
742
  case 0:
679
743
  /*
680
744
  * Cancel any failback timer running
@@ -682,23 +746,23 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
682
746
  */
683
747
  this.clearFailbackTimer();
684
748
  this.failback429RetryAttempts = 0;
685
- _context13.next = 4;
749
+ _context14.next = 4;
686
750
  return this.attemptRegistrationWithServers(caller, this.primaryMobiusUris);
687
751
  case 4:
688
- abort = _context13.sent;
752
+ abort = _context14.sent;
689
753
  if (!(!abort && !this.isDeviceRegistered())) {
690
- _context13.next = 8;
754
+ _context14.next = 8;
691
755
  break;
692
756
  }
693
- _context13.next = 8;
757
+ _context14.next = 8;
694
758
  return this.startFailoverTimer();
695
759
  case 8:
696
760
  case "end":
697
- return _context13.stop();
761
+ return _context14.stop();
698
762
  }
699
- }, _callee13, this);
763
+ }, _callee14, this);
700
764
  }));
701
- function restartRegistration(_x6) {
765
+ function restartRegistration(_x9) {
702
766
  return _restartRegistration.apply(this, arguments);
703
767
  }
704
768
  return restartRegistration;
@@ -712,64 +776,68 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
712
776
  }, {
713
777
  key: "handleConnectionRestoration",
714
778
  value: (function () {
715
- var _handleConnectionRestoration = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(retry) {
779
+ var _handleConnectionRestoration = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(retry) {
716
780
  var _this4 = this;
717
- return _regenerator.default.wrap(function _callee15$(_context15) {
718
- while (1) switch (_context15.prev = _context15.next) {
781
+ return _regenerator.default.wrap(function _callee16$(_context16) {
782
+ while (1) switch (_context16.prev = _context16.next) {
719
783
  case 0:
720
- _context15.next = 2;
721
- return this.mutex.runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14() {
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;
789
+ return this.mutex.runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
722
790
  var abort;
723
- return _regenerator.default.wrap(function _callee14$(_context14) {
724
- while (1) switch (_context14.prev = _context14.next) {
791
+ return _regenerator.default.wrap(function _callee15$(_context15) {
792
+ while (1) switch (_context15.prev = _context15.next) {
725
793
  case 0:
726
794
  if (!retry) {
727
- _context14.next = 14;
795
+ _context15.next = 14;
728
796
  break;
729
797
  }
730
- _Logger.default.info('Mercury connection is up again, re-registering with Webex Calling if needed', {
731
- 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,
732
800
  method: _this4.handleConnectionRestoration.name
733
801
  });
734
802
  _this4.clearKeepaliveTimer();
735
803
  if (!_this4.isDeviceRegistered()) {
736
- _context14.next = 6;
804
+ _context15.next = 6;
737
805
  break;
738
806
  }
739
- _context14.next = 6;
807
+ _context15.next = 6;
740
808
  return _this4.deregister();
741
809
  case 6:
742
810
  if (!_this4.activeMobiusUrl) {
743
- _context14.next = 13;
811
+ _context15.next = 13;
744
812
  break;
745
813
  }
746
- _context14.next = 9;
814
+ _context15.next = 9;
747
815
  return _this4.restorePreviousRegistration(_this4.handleConnectionRestoration.name);
748
816
  case 9:
749
- abort = _context14.sent;
817
+ abort = _context15.sent;
750
818
  if (!(!abort && !_this4.isDeviceRegistered())) {
751
- _context14.next = 13;
819
+ _context15.next = 13;
752
820
  break;
753
821
  }
754
- _context14.next = 13;
822
+ _context15.next = 13;
755
823
  return _this4.restartRegistration(_this4.handleConnectionRestoration.name);
756
824
  case 13:
757
825
  retry = false;
758
826
  case 14:
759
827
  case "end":
760
- return _context14.stop();
828
+ return _context15.stop();
761
829
  }
762
- }, _callee14);
830
+ }, _callee15);
763
831
  })));
764
- case 2:
765
- return _context15.abrupt("return", retry);
766
832
  case 3:
833
+ return _context16.abrupt("return", retry);
834
+ case 4:
767
835
  case "end":
768
- return _context15.stop();
836
+ return _context16.stop();
769
837
  }
770
- }, _callee15, this);
838
+ }, _callee16, this);
771
839
  }));
772
- function handleConnectionRestoration(_x7) {
840
+ function handleConnectionRestoration(_x10) {
773
841
  return _handleConnectionRestoration.apply(this, arguments);
774
842
  }
775
843
  return handleConnectionRestoration;
@@ -785,53 +853,53 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
785
853
  value: function restoreRegistrationCallBack() {
786
854
  var _this5 = this;
787
855
  return /*#__PURE__*/function () {
788
- var _ref8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(restoreData, caller) {
856
+ var _ref8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(restoreData, caller) {
789
857
  var logContext, restore, finalError;
790
- return _regenerator.default.wrap(function _callee16$(_context16) {
791
- while (1) switch (_context16.prev = _context16.next) {
858
+ return _regenerator.default.wrap(function _callee17$(_context17) {
859
+ while (1) switch (_context17.prev = _context17.next) {
792
860
  case 0:
793
861
  logContext = {
794
- file: _constants.REGISTRATION_FILE,
862
+ file: _constants2.REGISTRATION_FILE,
795
863
  method: caller
796
864
  };
797
865
  if (_this5.isRegRetry()) {
798
- _context16.next = 17;
866
+ _context17.next = 17;
799
867
  break;
800
868
  }
801
869
  _Logger.default.info('Registration restoration in progress.', logContext);
802
870
  restore = _this5.getExistingDevice(restoreData);
803
871
  if (!restore) {
804
- _context16.next = 14;
872
+ _context17.next = 14;
805
873
  break;
806
874
  }
807
875
  _this5.setRegRetry(true);
808
- _context16.next = 8;
876
+ _context17.next = 8;
809
877
  return _this5.deregister();
810
878
  case 8:
811
- _context16.next = 10;
879
+ _context17.next = 10;
812
880
  return _this5.restorePreviousRegistration(caller);
813
881
  case 10:
814
- finalError = _context16.sent;
882
+ finalError = _context17.sent;
815
883
  _this5.setRegRetry(false);
816
884
  if (_this5.isDeviceRegistered()) {
817
885
  _Logger.default.info('Registration restored successfully.', logContext);
818
886
  }
819
- return _context16.abrupt("return", finalError);
887
+ return _context17.abrupt("return", finalError);
820
888
  case 14:
821
- _this5.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
822
- _context16.next = 18;
889
+ _this5.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
890
+ _context17.next = 18;
823
891
  break;
824
892
  case 17:
825
- _this5.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
893
+ _this5.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
826
894
  case 18:
827
- return _context16.abrupt("return", false);
895
+ return _context17.abrupt("return", false);
828
896
  case 19:
829
897
  case "end":
830
- return _context16.stop();
898
+ return _context17.stop();
831
899
  }
832
- }, _callee16);
900
+ }, _callee17);
833
901
  }));
834
- return function (_x8, _x9) {
902
+ return function (_x11, _x12) {
835
903
  return _ref8.apply(this, arguments);
836
904
  };
837
905
  }();
@@ -844,30 +912,30 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
844
912
  }, {
845
913
  key: "triggerRegistration",
846
914
  value: (function () {
847
- var _triggerRegistration = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() {
915
+ var _triggerRegistration = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
848
916
  var abort;
849
- return _regenerator.default.wrap(function _callee17$(_context17) {
850
- while (1) switch (_context17.prev = _context17.next) {
917
+ return _regenerator.default.wrap(function _callee18$(_context18) {
918
+ while (1) switch (_context18.prev = _context18.next) {
851
919
  case 0:
852
920
  if (!(this.primaryMobiusUris.length > 0)) {
853
- _context17.next = 7;
921
+ _context18.next = 7;
854
922
  break;
855
923
  }
856
- _context17.next = 3;
857
- return this.attemptRegistrationWithServers(this.triggerRegistration.name, this.primaryMobiusUris);
924
+ _context18.next = 3;
925
+ return this.attemptRegistrationWithServers(_constants2.REGISTRATION_UTIL, this.primaryMobiusUris);
858
926
  case 3:
859
- abort = _context17.sent;
927
+ abort = _context18.sent;
860
928
  if (!(!this.isDeviceRegistered() && !abort)) {
861
- _context17.next = 7;
929
+ _context18.next = 7;
862
930
  break;
863
931
  }
864
- _context17.next = 7;
932
+ _context18.next = 7;
865
933
  return this.startFailoverTimer();
866
934
  case 7:
867
935
  case "end":
868
- return _context17.stop();
936
+ return _context18.stop();
869
937
  }
870
- }, _callee17, this);
938
+ }, _callee18, this);
871
939
  }));
872
940
  function triggerRegistration() {
873
941
  return _triggerRegistration.apply(this, arguments);
@@ -886,143 +954,154 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
886
954
  }, {
887
955
  key: "attemptRegistrationWithServers",
888
956
  value: (function () {
889
- var _attemptRegistrationWithServers = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(caller) {
957
+ var _attemptRegistrationWithServers = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(caller) {
890
958
  var _this6 = this;
891
959
  var servers,
892
960
  abort,
893
961
  _iterator,
894
962
  _step,
895
- url,
896
- _this$deviceInfo$devi,
897
- resp,
898
- body,
899
- error,
900
- _args18 = arguments;
901
- return _regenerator.default.wrap(function _callee18$(_context18) {
902
- while (1) switch (_context18.prev = _context18.next) {
963
+ _loop,
964
+ _ret,
965
+ _args20 = arguments;
966
+ return _regenerator.default.wrap(function _callee19$(_context20) {
967
+ while (1) switch (_context20.prev = _context20.next) {
903
968
  case 0:
904
- servers = _args18.length > 1 && _args18[1] !== undefined ? _args18[1] : this.primaryMobiusUris;
969
+ servers = _args20.length > 1 && _args20[1] !== undefined ? _args20[1] : this.primaryMobiusUris;
905
970
  abort = false;
971
+ this.retryAfter = undefined;
906
972
  if (!this.failoverImmediately) {
907
- _context18.next = 4;
973
+ _context20.next = 5;
908
974
  break;
909
975
  }
910
- return _context18.abrupt("return", abort);
911
- case 4:
976
+ return _context20.abrupt("return", abort);
977
+ case 5:
912
978
  if (!this.isDeviceRegistered()) {
913
- _context18.next = 7;
979
+ _context20.next = 8;
914
980
  break;
915
981
  }
916
- _Logger.default.log("[".concat(caller, "] : Device already registered with : ").concat(this.activeMobiusUrl), {
917
- file: _constants.REGISTRATION_FILE,
918
- method: this.attemptRegistrationWithServers.name
982
+ _Logger.default.info("[".concat(caller, "] : Device already registered with : ").concat(this.activeMobiusUrl), {
983
+ file: _constants2.REGISTRATION_FILE,
984
+ method: _constants2.REGISTER_UTIL
919
985
  });
920
- return _context18.abrupt("return", abort);
921
- case 7:
986
+ return _context20.abrupt("return", abort);
987
+ case 8:
922
988
  _iterator = _createForOfIteratorHelper(servers);
923
- _context18.prev = 8;
989
+ _context20.prev = 9;
990
+ _loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
991
+ var _this6$backupMobiusUr;
992
+ var url, serverType, _this6$deviceInfo$dev, _resp$headers$trackin, _resp$headers, _this6$deviceInfo$dev2, resp, body;
993
+ return _regenerator.default.wrap(function _loop$(_context19) {
994
+ while (1) switch (_context19.prev = _context19.next) {
995
+ case 0:
996
+ url = _step.value;
997
+ serverType = _this6.primaryMobiusUris.includes(url) && 'PRIMARY' || ((_this6$backupMobiusUr = _this6.backupMobiusUris) === null || _this6$backupMobiusUr === void 0 ? void 0 : _this6$backupMobiusUr.includes(url)) && 'BACKUP' || 'UNKNOWN';
998
+ _context19.prev = 2;
999
+ abort = false;
1000
+ _this6.registrationStatus = _types2.RegistrationStatus.INACTIVE;
1001
+ _this6.lineEmitter(_types3.LINE_EVENTS.CONNECTING);
1002
+ _Logger.default.info("[".concat(caller, "] : Mobius url to contact: ").concat(url), {
1003
+ file: _constants2.REGISTRATION_FILE,
1004
+ method: _constants2.REGISTER_UTIL
1005
+ });
1006
+ // eslint-disable-next-line no-await-in-loop
1007
+ _context19.next = 9;
1008
+ return _this6.postRegistration(url);
1009
+ case 9:
1010
+ resp = _context19.sent;
1011
+ _this6.deviceInfo = resp.body;
1012
+ _this6.registrationStatus = _types2.RegistrationStatus.ACTIVE;
1013
+ _this6.lineEmitter(_types3.LINE_EVENTS.REGISTERED, resp.body);
1014
+ _Logger.default.log("Registration successful for deviceId: ".concat((_this6$deviceInfo$dev = _this6.deviceInfo.device) === null || _this6$deviceInfo$dev === void 0 ? void 0 : _this6$deviceInfo$dev.deviceId, " userId: ").concat(_this6.userId), {
1015
+ file: _constants2.REGISTRATION_FILE,
1016
+ method: _constants2.METHODS.REGISTER
1017
+ });
1018
+ _this6.setActiveMobiusUrl(url);
1019
+ _this6.setIntervalValues(_this6.deviceInfo);
1020
+ _this6.metricManager.setDeviceInfo(_this6.deviceInfo);
1021
+ _this6.metricManager.submitRegistrationMetric(_types.METRIC_EVENT.REGISTRATION, _types.REG_ACTION.REGISTER, _types.METRIC_TYPE.BEHAVIORAL, caller, serverType, (_resp$headers$trackin = (_resp$headers = resp.headers) === null || _resp$headers === void 0 ? void 0 : _resp$headers.trackingid) !== null && _resp$headers$trackin !== void 0 ? _resp$headers$trackin : '', undefined, undefined);
1022
+ _this6.startKeepaliveTimer((_this6$deviceInfo$dev2 = _this6.deviceInfo.device) === null || _this6$deviceInfo$dev2 === void 0 ? void 0 : _this6$deviceInfo$dev2.uri, _this6.deviceInfo.keepaliveInterval, serverType);
1023
+ _this6.initiateFailback();
1024
+ return _context19.abrupt("return", 0);
1025
+ case 23:
1026
+ _context19.prev = 23;
1027
+ _context19.t0 = _context19["catch"](2);
1028
+ body = _context19.t0; // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-unused-vars
1029
+ _context19.next = 28;
1030
+ return (0, _common.handleRegistrationErrors)(body, function (clientError, finalError) {
1031
+ var _body$headers$trackin, _body$headers;
1032
+ if (finalError) {
1033
+ _this6.lineEmitter(_types3.LINE_EVENTS.ERROR, undefined, clientError);
1034
+ } else {
1035
+ _this6.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
1036
+ }
1037
+ _this6.metricManager.submitRegistrationMetric(_types.METRIC_EVENT.REGISTRATION_ERROR, _types.REG_ACTION.REGISTER, _types.METRIC_TYPE.BEHAVIORAL, caller, serverType, (_body$headers$trackin = (_body$headers = body.headers) === null || _body$headers === void 0 ? void 0 : _body$headers.trackingid) !== null && _body$headers$trackin !== void 0 ? _body$headers$trackin : '', undefined, clientError);
1038
+ }, {
1039
+ method: caller,
1040
+ file: _constants2.REGISTRATION_FILE
1041
+ }, function (retryAfter, retryCaller) {
1042
+ return _this6.handle429Retry(retryAfter, retryCaller);
1043
+ }, _this6.restoreRegistrationCallBack());
1044
+ case 28:
1045
+ abort = _context19.sent;
1046
+ if (!(_this6.registrationStatus === _types2.RegistrationStatus.ACTIVE)) {
1047
+ _context19.next = 32;
1048
+ break;
1049
+ }
1050
+ _Logger.default.info("[".concat(caller, "] : Device is already restored, active mobius url: ").concat(_this6.activeMobiusUrl), {
1051
+ file: _constants2.REGISTRATION_FILE,
1052
+ method: _this6.attemptRegistrationWithServers.name
1053
+ });
1054
+ return _context19.abrupt("return", 0);
1055
+ case 32:
1056
+ if (!abort) {
1057
+ _context19.next = 35;
1058
+ break;
1059
+ }
1060
+ _this6.setStatus(_types2.RegistrationStatus.INACTIVE);
1061
+ return _context19.abrupt("return", 0);
1062
+ case 35:
1063
+ case "end":
1064
+ return _context19.stop();
1065
+ }
1066
+ }, _loop, null, [[2, 23]]);
1067
+ });
924
1068
  _iterator.s();
925
- case 10:
1069
+ case 12:
926
1070
  if ((_step = _iterator.n()).done) {
927
- _context18.next = 55;
1071
+ _context20.next = 19;
928
1072
  break;
929
1073
  }
930
- url = _step.value;
931
- _context18.prev = 12;
932
- abort = false;
933
- this.registrationStatus = _types3.RegistrationStatus.INACTIVE;
934
- this.lineEmitter(_types4.LINE_EVENTS.CONNECTING);
935
- _Logger.default.log("[".concat(caller, "] : Mobius url to contact: ").concat(url), {
936
- file: _constants.REGISTRATION_FILE,
937
- method: this.attemptRegistrationWithServers.name
938
- });
939
- // eslint-disable-next-line no-await-in-loop
940
- _context18.next = 19;
941
- return this.postRegistration(url);
942
- case 19:
943
- resp = _context18.sent;
944
- this.deviceInfo = resp.body;
945
- this.registrationStatus = _types3.RegistrationStatus.ACTIVE;
946
- this.lineEmitter(_types4.LINE_EVENTS.REGISTERED, resp.body);
947
- this.setActiveMobiusUrl(url);
948
- this.setIntervalValues(this.deviceInfo);
949
- this.metricManager.setDeviceInfo(this.deviceInfo);
950
- this.metricManager.submitRegistrationMetric(_types2.METRIC_EVENT.REGISTRATION, _types2.REG_ACTION.REGISTER, _types2.METRIC_TYPE.BEHAVIORAL, undefined);
951
- this.startKeepaliveTimer((_this$deviceInfo$devi = this.deviceInfo.device) === null || _this$deviceInfo$devi === void 0 ? void 0 : _this$deviceInfo$devi.uri, this.deviceInfo.keepaliveInterval);
952
- this.initiateFailback();
953
- return _context18.abrupt("break", 55);
954
- case 32:
955
- _context18.prev = 32;
956
- _context18.t0 = _context18["catch"](12);
957
- body = _context18.t0; // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-unused-vars
958
- _context18.next = 37;
959
- return (0, _common.handleRegistrationErrors)(body, function (clientError, finalError) {
960
- if (finalError) {
961
- _this6.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
962
- } else {
963
- _this6.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
964
- }
965
- _this6.metricManager.submitRegistrationMetric(_types2.METRIC_EVENT.REGISTRATION_ERROR, _types2.REG_ACTION.REGISTER, _types2.METRIC_TYPE.BEHAVIORAL, clientError);
966
- }, {
967
- method: this.attemptRegistrationWithServers.name,
968
- file: _constants.REGISTRATION_FILE
969
- }, this.restoreRegistrationCallBack());
970
- case 37:
971
- abort = _context18.sent;
972
- if (!(this.registrationStatus === _types3.RegistrationStatus.ACTIVE)) {
973
- _context18.next = 41;
974
- break;
975
- }
976
- _Logger.default.info("[".concat(caller, "] : Device is already restored, active mobius url: ").concat(this.activeMobiusUrl), {
977
- file: _constants.REGISTRATION_FILE,
978
- method: this.attemptRegistrationWithServers.name
979
- });
980
- return _context18.abrupt("break", 55);
981
- case 41:
982
- if (!abort) {
983
- _context18.next = 46;
984
- break;
985
- }
986
- this.setStatus(_types3.RegistrationStatus.INACTIVE);
987
- return _context18.abrupt("break", 55);
988
- case 46:
989
- if (!(caller === this.executeFailback.name)) {
990
- _context18.next = 53;
991
- break;
992
- }
993
- error = body.statusCode;
994
- if (!(error === _types.ERROR_CODE.TOO_MANY_REQUESTS)) {
995
- _context18.next = 53;
1074
+ return _context20.delegateYield(_loop(), "t0", 14);
1075
+ case 14:
1076
+ _ret = _context20.t0;
1077
+ if (!(_ret === 0)) {
1078
+ _context20.next = 17;
996
1079
  break;
997
1080
  }
998
- _context18.next = 51;
999
- return this.scheduleFailback429Retry();
1000
- case 51:
1001
- abort = true;
1002
- return _context18.abrupt("break", 55);
1003
- case 53:
1004
- _context18.next = 10;
1081
+ return _context20.abrupt("break", 19);
1082
+ case 17:
1083
+ _context20.next = 12;
1005
1084
  break;
1006
- case 55:
1007
- _context18.next = 60;
1085
+ case 19:
1086
+ _context20.next = 24;
1008
1087
  break;
1009
- case 57:
1010
- _context18.prev = 57;
1011
- _context18.t1 = _context18["catch"](8);
1012
- _iterator.e(_context18.t1);
1013
- case 60:
1014
- _context18.prev = 60;
1088
+ case 21:
1089
+ _context20.prev = 21;
1090
+ _context20.t1 = _context20["catch"](9);
1091
+ _iterator.e(_context20.t1);
1092
+ case 24:
1093
+ _context20.prev = 24;
1015
1094
  _iterator.f();
1016
- return _context18.finish(60);
1017
- case 63:
1018
- return _context18.abrupt("return", abort);
1019
- case 64:
1095
+ return _context20.finish(24);
1096
+ case 27:
1097
+ return _context20.abrupt("return", abort);
1098
+ case 28:
1020
1099
  case "end":
1021
- return _context18.stop();
1100
+ return _context20.stop();
1022
1101
  }
1023
- }, _callee18, this, [[8, 57, 60, 63], [12, 32]]);
1102
+ }, _callee19, this, [[9, 21, 24, 27]]);
1024
1103
  }));
1025
- function attemptRegistrationWithServers(_x10) {
1104
+ function attemptRegistrationWithServers(_x13) {
1026
1105
  return _attemptRegistrationWithServers.apply(this, arguments);
1027
1106
  }
1028
1107
  return attemptRegistrationWithServers;
@@ -1034,132 +1113,104 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1034
1113
  )
1035
1114
  }, {
1036
1115
  key: "startKeepaliveTimer",
1037
- value: (function () {
1038
- var _startKeepaliveTimer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21(url, interval) {
1039
- var _this7 = this;
1040
- var RETRY_COUNT_THRESHOLD;
1041
- return _regenerator.default.wrap(function _callee21$(_context21) {
1042
- while (1) switch (_context21.prev = _context21.next) {
1116
+ value: function startKeepaliveTimer(url, interval, serverType) {
1117
+ var _this7 = this;
1118
+ var keepAliveRetryCount = 0;
1119
+ this.clearKeepaliveTimer();
1120
+ var RETRY_COUNT_THRESHOLD = this.isCCFlow ? 4 : 5;
1121
+ this.keepaliveTimer = setInterval( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21() {
1122
+ var logContext;
1123
+ return _regenerator.default.wrap(function _callee21$(_context22) {
1124
+ while (1) switch (_context22.prev = _context22.next) {
1043
1125
  case 0:
1044
- this.clearKeepaliveTimer();
1045
- RETRY_COUNT_THRESHOLD = this.isCCFlow ? 4 : 5;
1046
- _context21.next = 4;
1047
- return this.mutex.runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
1048
- var accessToken;
1049
- return _regenerator.default.wrap(function _callee20$(_context20) {
1050
- while (1) switch (_context20.prev = _context20.next) {
1126
+ logContext = {
1127
+ file: _constants2.REGISTRATION_FILE,
1128
+ method: _constants2.KEEPALIVE_UTIL
1129
+ };
1130
+ _context22.next = 3;
1131
+ return _this7.mutex.runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
1132
+ var res, error, abort;
1133
+ return _regenerator.default.wrap(function _callee20$(_context21) {
1134
+ while (1) switch (_context21.prev = _context21.next) {
1051
1135
  case 0:
1052
- if (!_this7.isDeviceRegistered()) {
1053
- _context20.next = 5;
1136
+ if (!(_this7.isDeviceRegistered() && keepAliveRetryCount < RETRY_COUNT_THRESHOLD)) {
1137
+ _context21.next = 30;
1054
1138
  break;
1055
1139
  }
1056
- _context20.next = 3;
1057
- return _this7.webex.credentials.getUserToken();
1058
- case 3:
1059
- accessToken = _context20.sent;
1060
- if (!_this7.webWorker) {
1061
- _this7.webWorker = new Worker(new URL('./webWorker.js', import.meta.url));
1062
- _this7.webWorker.postMessage({
1063
- type: _types3.WorkerMessageType.START_KEEPALIVE,
1064
- accessToken: String(accessToken),
1065
- deviceUrl: String(_this7.webex.internal.device.url),
1066
- interval: interval,
1067
- retryCountThreshold: RETRY_COUNT_THRESHOLD,
1068
- url: url
1069
- });
1070
- _this7.webWorker.onmessage = /*#__PURE__*/function () {
1071
- var _ref10 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(event) {
1072
- var logContext, error, abort;
1073
- return _regenerator.default.wrap(function _callee19$(_context19) {
1074
- while (1) switch (_context19.prev = _context19.next) {
1075
- case 0:
1076
- logContext = {
1077
- file: _constants.REGISTRATION_FILE,
1078
- method: _this7.startKeepaliveTimer.name
1079
- };
1080
- if (event.data.type === _types3.WorkerMessageType.KEEPALIVE_SUCCESS) {
1081
- _Logger.default.info("Sent Keepalive, status: ".concat(event.data.statusCode), logContext);
1082
- _this7.lineEmitter(_types4.LINE_EVENTS.RECONNECTED);
1083
- }
1084
- if (!(event.data.type === _types3.WorkerMessageType.KEEPALIVE_FAILURE)) {
1085
- _context19.next = 20;
1086
- break;
1087
- }
1088
- error = event.data.err;
1089
- _Logger.default.warn("Keep-alive missed ".concat(event.data.keepAliveRetryCount, " times. Status -> ").concat(error.statusCode, " "), logContext);
1090
- _context19.next = 7;
1091
- return (0, _common.handleRegistrationErrors)(error, function (clientError, finalError) {
1092
- if (finalError) {
1093
- _this7.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
1094
- }
1095
- _this7.metricManager.submitRegistrationMetric(_types2.METRIC_EVENT.REGISTRATION, _types2.REG_ACTION.KEEPALIVE_FAILURE, _types2.METRIC_TYPE.BEHAVIORAL, clientError);
1096
- }, {
1097
- method: _this7.startKeepaliveTimer.name,
1098
- file: _constants.REGISTRATION_FILE
1099
- });
1100
- case 7:
1101
- abort = _context19.sent;
1102
- if (!(abort || event.data.keepAliveRetryCount >= RETRY_COUNT_THRESHOLD)) {
1103
- _context19.next = 19;
1104
- break;
1105
- }
1106
- _this7.failoverImmediately = _this7.isCCFlow;
1107
- _this7.setStatus(_types3.RegistrationStatus.INACTIVE);
1108
- _this7.clearKeepaliveTimer();
1109
- _this7.clearFailbackTimer();
1110
- _this7.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
1111
- if (abort) {
1112
- _context19.next = 17;
1113
- break;
1114
- }
1115
- _context19.next = 17;
1116
- return _this7.reconnectOnFailure(_this7.startKeepaliveTimer.name);
1117
- case 17:
1118
- _context19.next = 20;
1119
- break;
1120
- case 19:
1121
- _this7.lineEmitter(_types4.LINE_EVENTS.RECONNECTING);
1122
- case 20:
1123
- case "end":
1124
- return _context19.stop();
1125
- }
1126
- }, _callee19);
1127
- }));
1128
- return function (_x13) {
1129
- return _ref10.apply(this, arguments);
1130
- };
1131
- }();
1140
+ _context21.prev = 1;
1141
+ _context21.next = 4;
1142
+ return _this7.postKeepAlive(url);
1143
+ case 4:
1144
+ res = _context21.sent;
1145
+ _Logger.default.log("Sent Keepalive, status: ".concat(res.statusCode), logContext);
1146
+ if (keepAliveRetryCount > 0) {
1147
+ _this7.lineEmitter(_types3.LINE_EVENTS.RECONNECTED);
1132
1148
  }
1133
- case 5:
1149
+ keepAliveRetryCount = 0;
1150
+ _context21.next = 30;
1151
+ break;
1152
+ case 10:
1153
+ _context21.prev = 10;
1154
+ _context21.t0 = _context21["catch"](1);
1155
+ keepAliveRetryCount += 1;
1156
+ error = _context21.t0;
1157
+ _Logger.default.warn("Keep-alive missed ".concat(keepAliveRetryCount, " times. Status -> ").concat(error.statusCode, " "), logContext);
1158
+ _context21.next = 17;
1159
+ return (0, _common.handleRegistrationErrors)(error, function (clientError, finalError) {
1160
+ var _error$headers$tracki, _error$headers;
1161
+ if (finalError) {
1162
+ _this7.lineEmitter(_types3.LINE_EVENTS.ERROR, undefined, clientError);
1163
+ }
1164
+ _this7.metricManager.submitRegistrationMetric(_types.METRIC_EVENT.REGISTRATION, _types.REG_ACTION.KEEPALIVE_FAILURE, _types.METRIC_TYPE.BEHAVIORAL, _constants2.KEEPALIVE_UTIL, serverType, (_error$headers$tracki = (_error$headers = error.headers) === null || _error$headers === void 0 ? void 0 : _error$headers.trackingid) !== null && _error$headers$tracki !== void 0 ? _error$headers$tracki : '', keepAliveRetryCount, clientError);
1165
+ }, {
1166
+ method: _constants2.KEEPALIVE_UTIL,
1167
+ file: _constants2.REGISTRATION_FILE
1168
+ });
1169
+ case 17:
1170
+ abort = _context21.sent;
1171
+ if (!(abort || keepAliveRetryCount >= RETRY_COUNT_THRESHOLD)) {
1172
+ _context21.next = 29;
1173
+ break;
1174
+ }
1175
+ _this7.failoverImmediately = _this7.isCCFlow;
1176
+ _this7.setStatus(_types2.RegistrationStatus.INACTIVE);
1177
+ _this7.clearKeepaliveTimer();
1178
+ _this7.clearFailbackTimer();
1179
+ _this7.lineEmitter(_types3.LINE_EVENTS.UNREGISTERED);
1180
+ if (abort) {
1181
+ _context21.next = 27;
1182
+ break;
1183
+ }
1184
+ _context21.next = 27;
1185
+ return _this7.reconnectOnFailure(_constants2.KEEPALIVE_UTIL);
1186
+ case 27:
1187
+ _context21.next = 30;
1188
+ break;
1189
+ case 29:
1190
+ _this7.lineEmitter(_types3.LINE_EVENTS.RECONNECTING);
1191
+ case 30:
1134
1192
  case "end":
1135
- return _context20.stop();
1193
+ return _context21.stop();
1136
1194
  }
1137
- }, _callee20);
1195
+ }, _callee20, null, [[1, 10]]);
1138
1196
  })));
1139
- case 4:
1197
+ case 3:
1140
1198
  case "end":
1141
- return _context21.stop();
1199
+ return _context22.stop();
1142
1200
  }
1143
- }, _callee21, this);
1144
- }));
1145
- function startKeepaliveTimer(_x11, _x12) {
1146
- return _startKeepaliveTimer.apply(this, arguments);
1147
- }
1148
- return startKeepaliveTimer;
1149
- }()
1201
+ }, _callee21);
1202
+ })), interval * 1000);
1203
+ }
1204
+
1150
1205
  /**
1151
1206
  * Clears the keepalive timer if running.
1152
1207
  */
1153
- )
1154
1208
  }, {
1155
1209
  key: "clearKeepaliveTimer",
1156
1210
  value: function clearKeepaliveTimer() {
1157
- if (this.webWorker) {
1158
- this.webWorker.postMessage({
1159
- type: _types3.WorkerMessageType.CLEAR_KEEPALIVE
1160
- });
1161
- this.webWorker.terminate();
1162
- this.webWorker = undefined;
1211
+ if (this.keepaliveTimer) {
1212
+ clearInterval(this.keepaliveTimer);
1213
+ this.keepaliveTimer = undefined;
1163
1214
  }
1164
1215
  }
1165
1216
  }, {
@@ -1171,28 +1222,35 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1171
1222
  key: "deregister",
1172
1223
  value: function () {
1173
1224
  var _deregister = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22() {
1174
- var _this$deviceInfo$devi2, _this$deviceInfo$devi3;
1175
- return _regenerator.default.wrap(function _callee22$(_context22) {
1176
- while (1) switch (_context22.prev = _context22.next) {
1225
+ var _this$deviceInfo$devi, _this$deviceInfo$devi2;
1226
+ return _regenerator.default.wrap(function _callee22$(_context23) {
1227
+ while (1) switch (_context23.prev = _context23.next) {
1177
1228
  case 0:
1178
- _context22.prev = 0;
1179
- _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);
1229
+ _context23.prev = 0;
1230
+ _context23.next = 3;
1231
+ 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);
1181
1232
  case 3:
1182
- _context22.next = 8;
1233
+ _Logger.default.log('Registration successfully deregistered', {
1234
+ file: _constants2.REGISTRATION_FILE,
1235
+ method: _constants2.METHODS.DEREGISTER
1236
+ });
1237
+ _context23.next = 9;
1183
1238
  break;
1184
- case 5:
1185
- _context22.prev = 5;
1186
- _context22.t0 = _context22["catch"](0);
1187
- _Logger.default.warn("Delete failed with Mobius", {});
1188
- case 8:
1239
+ case 6:
1240
+ _context23.prev = 6;
1241
+ _context23.t0 = _context23["catch"](0);
1242
+ _Logger.default.warn("Delete failed with Mobius: ".concat(_context23.t0), {
1243
+ file: _constants2.REGISTRATION_FILE,
1244
+ method: _constants2.METHODS.DEREGISTER
1245
+ });
1246
+ case 9:
1189
1247
  this.clearKeepaliveTimer();
1190
- this.setStatus(_types3.RegistrationStatus.INACTIVE);
1191
- case 10:
1248
+ this.setStatus(_types2.RegistrationStatus.INACTIVE);
1249
+ case 11:
1192
1250
  case "end":
1193
- return _context22.stop();
1251
+ return _context23.stop();
1194
1252
  }
1195
- }, _callee22, this, [[0, 5]]);
1253
+ }, _callee22, this, [[0, 6]]);
1196
1254
  }));
1197
1255
  function deregister() {
1198
1256
  return _deregister.apply(this, arguments);
@@ -1200,8 +1258,8 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1200
1258
  return deregister;
1201
1259
  }()
1202
1260
  /**
1203
- * Indicates whether the calling client is in a mode
1204
- * to retry registration.
1261
+ * Indicates whether the calling client is in a mode
1262
+ * to retry registration.
1205
1263
  */
1206
1264
  }, {
1207
1265
  key: "isRegRetry",
@@ -1231,14 +1289,14 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1231
1289
  this.deviceInfo = {
1232
1290
  userId: restoreData.userId,
1233
1291
  device: restoreData.devices[0],
1234
- keepaliveInterval: _constants.DEFAULT_KEEPALIVE_INTERVAL,
1235
- rehomingIntervalMax: _constants.DEFAULT_REHOMING_INTERVAL_MAX,
1236
- rehomingIntervalMin: _constants.DEFAULT_REHOMING_INTERVAL_MIN
1292
+ keepaliveInterval: _constants2.DEFAULT_KEEPALIVE_INTERVAL,
1293
+ rehomingIntervalMax: _constants2.DEFAULT_REHOMING_INTERVAL_MAX,
1294
+ rehomingIntervalMin: _constants2.DEFAULT_REHOMING_INTERVAL_MIN
1237
1295
  };
1238
- var stringToReplace = "".concat(_constants.DEVICES_ENDPOINT_RESOURCE, "/").concat(restoreData.devices[0].deviceId);
1296
+ var stringToReplace = "".concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "/").concat(restoreData.devices[0].deviceId);
1239
1297
  var uri = restoreData.devices[0].uri.replace(stringToReplace, '');
1240
1298
  this.setActiveMobiusUrl(uri);
1241
- this.registrationStatus = _types3.RegistrationStatus.ACTIVE;
1299
+ this.registrationStatus = _types2.RegistrationStatus.ACTIVE;
1242
1300
  return true;
1243
1301
  }
1244
1302
  return false;
@@ -1258,40 +1316,44 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
1258
1316
  value: (function () {
1259
1317
  var _reconnectOnFailure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23(caller) {
1260
1318
  var abort;
1261
- return _regenerator.default.wrap(function _callee23$(_context23) {
1262
- while (1) switch (_context23.prev = _context23.next) {
1319
+ return _regenerator.default.wrap(function _callee23$(_context24) {
1320
+ while (1) switch (_context24.prev = _context24.next) {
1263
1321
  case 0:
1322
+ _Logger.default.info(_constants.METHOD_START_MESSAGE, {
1323
+ method: _constants2.METHODS.RECONNECT_ON_FAILURE,
1324
+ file: _constants2.REGISTRATION_FILE
1325
+ });
1264
1326
  this.reconnectPending = false;
1265
1327
  if (this.isDeviceRegistered()) {
1266
- _context23.next = 13;
1328
+ _context24.next = 14;
1267
1329
  break;
1268
1330
  }
1269
1331
  if (!((0, _keys.default)(this.callManager.getActiveCalls()).length === 0)) {
1270
- _context23.next = 11;
1332
+ _context24.next = 12;
1271
1333
  break;
1272
1334
  }
1273
- _context23.next = 5;
1335
+ _context24.next = 6;
1274
1336
  return this.restorePreviousRegistration(caller);
1275
- case 5:
1276
- abort = _context23.sent;
1337
+ case 6:
1338
+ abort = _context24.sent;
1277
1339
  if (!(!abort && !this.isDeviceRegistered())) {
1278
- _context23.next = 9;
1340
+ _context24.next = 10;
1279
1341
  break;
1280
1342
  }
1281
- _context23.next = 9;
1343
+ _context24.next = 10;
1282
1344
  return this.restartRegistration(caller);
1283
- case 9:
1284
- _context23.next = 13;
1345
+ case 10:
1346
+ _context24.next = 14;
1285
1347
  break;
1286
- case 11:
1348
+ case 12:
1287
1349
  this.reconnectPending = true;
1288
1350
  _Logger.default.info('Active call(s) present, deferred reconnect till call cleanup.', {
1289
- file: _constants.REGISTRATION_FILE,
1290
- method: this.reconnectOnFailure.name
1351
+ file: _constants2.REGISTRATION_FILE,
1352
+ method: _constants2.METHODS.RECONNECT_ON_FAILURE
1291
1353
  });
1292
- case 13:
1354
+ case 14:
1293
1355
  case "end":
1294
- return _context23.stop();
1356
+ return _context24.stop();
1295
1357
  }
1296
1358
  }, _callee23, this);
1297
1359
  }));