@webex/calling 3.8.0 → 3.8.1-next.10

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