@webex/calling 3.12.0-next.9 → 3.12.0-next.91
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.
- package/dist/CallRecording/CallRecording.js +160 -0
- package/dist/CallRecording/CallRecording.js.map +1 -0
- package/dist/CallRecording/CallRecording.test.js +257 -0
- package/dist/CallRecording/CallRecording.test.js.map +1 -0
- package/dist/CallRecording/WxcCallRecordingConnector.js +577 -0
- package/dist/CallRecording/WxcCallRecordingConnector.js.map +1 -0
- package/dist/CallRecording/WxcCallRecordingConnector.test.js +652 -0
- package/dist/CallRecording/WxcCallRecordingConnector.test.js.map +1 -0
- package/dist/CallRecording/callRecordingFixtures.js +235 -0
- package/dist/CallRecording/callRecordingFixtures.js.map +1 -0
- package/dist/CallRecording/constants.js +50 -0
- package/dist/CallRecording/constants.js.map +1 -0
- package/dist/CallRecording/types.js +137 -0
- package/dist/CallRecording/types.js.map +1 -0
- package/dist/CallRecording/utils.js +42 -0
- package/dist/CallRecording/utils.js.map +1 -0
- package/dist/CallRecording/utils.test.js +97 -0
- package/dist/CallRecording/utils.test.js.map +1 -0
- package/dist/CallingClient/CallingClient.js +456 -226
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +513 -154
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/calling/call.js +634 -454
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +809 -451
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.js +106 -35
- package/dist/CallingClient/calling/callManager.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +140 -0
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/calling/types.js +5 -0
- package/dist/CallingClient/calling/types.js.map +1 -1
- package/dist/CallingClient/constants.js +32 -3
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/index.js +8 -1
- package/dist/CallingClient/line/index.js.map +1 -1
- package/dist/CallingClient/line/line.test.js +62 -10
- package/dist/CallingClient/line/line.test.js.map +1 -1
- package/dist/CallingClient/registration/register.js +890 -497
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +649 -58
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/CallingClient/registration/types.js +26 -0
- package/dist/CallingClient/registration/types.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.js +41 -104
- package/dist/CallingClient/registration/webWorker.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.test.js +39 -153
- package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
- package/dist/CallingClient/types.js +7 -0
- package/dist/CallingClient/types.js.map +1 -1
- package/dist/CallingClient/utils/constants.js +58 -0
- package/dist/CallingClient/utils/constants.js.map +1 -0
- package/dist/CallingClient/utils/index.js +63 -0
- package/dist/CallingClient/utils/index.js.map +1 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.js +122 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.test.js +221 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.test.js.map +1 -0
- package/dist/CallingClient/utils/request.js +435 -0
- package/dist/CallingClient/utils/request.js.map +1 -0
- package/dist/CallingClient/utils/request.test.js +999 -0
- package/dist/CallingClient/utils/request.test.js.map +1 -0
- package/dist/CallingClient/utils/types.js +7 -0
- package/dist/CallingClient/utils/types.js.map +1 -0
- package/dist/CallingClient/utils/wsFeatureFlag.js +70 -0
- package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -0
- package/dist/CallingClient/utils/wsFeatureFlag.test.js +139 -0
- package/dist/CallingClient/utils/wsFeatureFlag.test.js.map +1 -0
- package/dist/Contacts/ContactsClient.js +13 -11
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +3 -8
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Errors/types.js +2 -0
- package/dist/Errors/types.js.map +1 -1
- package/dist/Events/types.js +38 -1
- package/dist/Events/types.js.map +1 -1
- package/dist/Metrics/index.js +63 -2
- package/dist/Metrics/index.js.map +1 -1
- package/dist/Metrics/index.test.js +357 -1
- package/dist/Metrics/index.test.js.map +1 -1
- package/dist/Metrics/types.js +19 -1
- package/dist/Metrics/types.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/api.js +56 -0
- package/dist/api.js.map +1 -1
- package/dist/common/Utils.js +212 -71
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +417 -181
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/testUtil.js +10 -5
- package/dist/common/testUtil.js.map +1 -1
- package/dist/common/types.js +3 -0
- package/dist/common/types.js.map +1 -1
- package/dist/index.js +171 -40
- package/dist/index.js.map +1 -1
- package/dist/mobius-socket/config.js +24 -0
- package/dist/mobius-socket/config.js.map +1 -0
- package/dist/mobius-socket/errors.js +143 -0
- package/dist/mobius-socket/errors.js.map +1 -0
- package/dist/mobius-socket/errors.test.js +20 -0
- package/dist/mobius-socket/errors.test.js.map +1 -0
- package/dist/mobius-socket/index.js +57 -0
- package/dist/mobius-socket/index.js.map +1 -0
- package/dist/mobius-socket/mobius-socket-events.test.js +492 -0
- package/dist/mobius-socket/mobius-socket-events.test.js.map +1 -0
- package/dist/mobius-socket/mobius-socket.js +849 -0
- package/dist/mobius-socket/mobius-socket.js.map +1 -0
- package/dist/mobius-socket/mobius-socket.test.js +1898 -0
- package/dist/mobius-socket/mobius-socket.test.js.map +1 -0
- package/dist/mobius-socket/socket/constants.js +55 -0
- package/dist/mobius-socket/socket/constants.js.map +1 -0
- package/dist/mobius-socket/socket/index.js +15 -0
- package/dist/mobius-socket/socket/index.js.map +1 -0
- package/dist/mobius-socket/socket/socket-base.js +604 -0
- package/dist/mobius-socket/socket/socket-base.js.map +1 -0
- package/dist/mobius-socket/socket/socket.js +19 -0
- package/dist/mobius-socket/socket/socket.js.map +1 -0
- package/dist/mobius-socket/socket/socket.shim.js +26 -0
- package/dist/mobius-socket/socket/socket.shim.js.map +1 -0
- package/dist/mobius-socket/socket/types.js +7 -0
- package/dist/mobius-socket/socket/types.js.map +1 -0
- package/dist/mobius-socket/socket.test.js +727 -0
- package/dist/mobius-socket/socket.test.js.map +1 -0
- package/dist/mobius-socket/test/mocha-helpers.js +23 -0
- package/dist/mobius-socket/test/mocha-helpers.js.map +1 -0
- package/dist/mobius-socket/test/promise-tick.js +28 -0
- package/dist/mobius-socket/test/promise-tick.js.map +1 -0
- package/dist/mobius-socket/types.js +7 -0
- package/dist/mobius-socket/types.js.map +1 -0
- package/dist/module/CallRecording/CallRecording.js +56 -0
- package/dist/module/CallRecording/WxcCallRecordingConnector.js +257 -0
- package/dist/module/CallRecording/callRecordingFixtures.js +201 -0
- package/dist/module/CallRecording/constants.js +28 -0
- package/dist/module/CallRecording/types.js +19 -0
- package/dist/module/CallRecording/utils.js +14 -0
- package/dist/module/CallingClient/CallingClient.js +126 -10
- package/dist/module/CallingClient/calling/call.js +198 -66
- package/dist/module/CallingClient/calling/callManager.js +51 -11
- package/dist/module/CallingClient/calling/types.js +2 -0
- package/dist/module/CallingClient/constants.js +27 -0
- package/dist/module/CallingClient/line/index.js +4 -2
- package/dist/module/CallingClient/registration/register.js +266 -64
- package/dist/module/CallingClient/registration/types.js +5 -1
- package/dist/module/CallingClient/registration/webWorker.js +42 -61
- package/dist/module/CallingClient/registration/webWorkerStr.js +47 -82
- package/dist/module/CallingClient/utils/constants.js +36 -0
- package/dist/module/CallingClient/utils/index.js +5 -0
- package/dist/module/CallingClient/utils/mobiusSocketMapper.js +72 -0
- package/dist/module/CallingClient/utils/request.js +211 -0
- package/dist/module/CallingClient/utils/types.js +1 -0
- package/dist/module/CallingClient/utils/wsFeatureFlag.js +41 -0
- package/dist/module/Contacts/ContactsClient.js +1 -1
- package/dist/module/Errors/types.js +2 -0
- package/dist/module/Events/types.js +23 -0
- package/dist/module/Metrics/index.js +48 -1
- package/dist/module/Metrics/types.js +18 -0
- package/dist/module/api.js +3 -2
- package/dist/module/common/Utils.js +85 -22
- package/dist/module/common/testUtil.js +6 -1
- package/dist/module/common/types.js +3 -0
- package/dist/module/index.js +7 -3
- package/dist/module/mobius-socket/config.js +15 -0
- package/dist/module/mobius-socket/errors.js +58 -0
- package/dist/module/mobius-socket/index.js +24 -0
- package/dist/module/mobius-socket/mobius-socket.js +593 -0
- package/dist/module/mobius-socket/socket/constants.js +26 -0
- package/dist/module/mobius-socket/socket/index.js +4 -0
- package/dist/module/mobius-socket/socket/socket-base.js +368 -0
- package/dist/module/mobius-socket/socket/socket.js +9 -0
- package/dist/module/mobius-socket/socket/socket.shim.js +12 -0
- package/dist/module/mobius-socket/socket/types.js +1 -0
- package/dist/module/mobius-socket/types.js +1 -0
- package/dist/types/CallRecording/CallRecording.d.ts +18 -0
- package/dist/types/CallRecording/CallRecording.d.ts.map +1 -0
- package/dist/types/CallRecording/WxcCallRecordingConnector.d.ts +23 -0
- package/dist/types/CallRecording/WxcCallRecordingConnector.d.ts.map +1 -0
- package/dist/types/CallRecording/callRecordingFixtures.d.ts +61 -0
- package/dist/types/CallRecording/callRecordingFixtures.d.ts.map +1 -0
- package/dist/types/CallRecording/constants.d.ts +29 -0
- package/dist/types/CallRecording/constants.d.ts.map +1 -0
- package/dist/types/CallRecording/types.d.ts +176 -0
- package/dist/types/CallRecording/types.d.ts.map +1 -0
- package/dist/types/CallRecording/utils.d.ts +3 -0
- package/dist/types/CallRecording/utils.d.ts.map +1 -0
- package/dist/types/CallingClient/CallingClient.d.ts +8 -0
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts +17 -3
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/callManager.d.ts +8 -4
- package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/types.d.ts +38 -9
- package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +27 -0
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/line/index.d.ts +1 -1
- package/dist/types/CallingClient/line/index.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +8 -1
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/types.d.ts +27 -2
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
- package/dist/types/CallingClient/types.d.ts +4 -2
- package/dist/types/CallingClient/types.d.ts.map +1 -1
- package/dist/types/CallingClient/utils/constants.d.ts +35 -0
- package/dist/types/CallingClient/utils/constants.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/index.d.ts +6 -0
- package/dist/types/CallingClient/utils/index.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts +5 -0
- package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/request.d.ts +28 -0
- package/dist/types/CallingClient/utils/request.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/types.d.ts +34 -0
- package/dist/types/CallingClient/utils/types.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts +4 -0
- package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -0
- package/dist/types/Errors/types.d.ts +2 -0
- package/dist/types/Errors/types.d.ts.map +1 -1
- package/dist/types/Events/types.d.ts +80 -6
- package/dist/types/Events/types.d.ts.map +1 -1
- package/dist/types/Metrics/index.d.ts.map +1 -1
- package/dist/types/Metrics/types.d.ts +19 -2
- package/dist/types/Metrics/types.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +39 -12
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/api.d.ts +6 -4
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts +9 -4
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +5 -1
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +5 -1
- package/dist/types/common/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +9 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/mobius-socket/config.d.ts +17 -0
- package/dist/types/mobius-socket/config.d.ts.map +1 -0
- package/dist/types/mobius-socket/errors.d.ts +32 -0
- package/dist/types/mobius-socket/errors.d.ts.map +1 -0
- package/dist/types/mobius-socket/index.d.ts +14 -0
- package/dist/types/mobius-socket/index.d.ts.map +1 -0
- package/dist/types/mobius-socket/mobius-socket.d.ts +48 -0
- package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/constants.d.ts +27 -0
- package/dist/types/mobius-socket/socket/constants.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/index.d.ts +5 -0
- package/dist/types/mobius-socket/socket/index.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/socket-base.d.ts +43 -0
- package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/socket.d.ts +6 -0
- package/dist/types/mobius-socket/socket/socket.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/socket.shim.d.ts +6 -0
- package/dist/types/mobius-socket/socket/socket.shim.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/types.d.ts +61 -0
- package/dist/types/mobius-socket/socket/types.d.ts.map +1 -0
- package/dist/types/mobius-socket/types.d.ts +21 -0
- package/dist/types/mobius-socket/types.d.ts.map +1 -0
- package/package.json +21 -5
- package/src/mobius-socket/socket/socket.shim.ts +22 -0
- package/src/mobius-socket/socket/socket.ts +14 -0
|
@@ -19,12 +19,12 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regene
|
|
|
19
19
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
20
20
|
var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
|
|
21
21
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
22
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
|
22
23
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
23
24
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
24
25
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
25
26
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
26
27
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
27
|
-
var _uuid = require("uuid");
|
|
28
28
|
var _constants = require("../../common/constants");
|
|
29
29
|
var _common = require("../../common");
|
|
30
30
|
var _webWorkerStr = _interopRequireDefault(require("./webWorkerStr"));
|
|
@@ -32,10 +32,12 @@ var _types = require("../../Metrics/types");
|
|
|
32
32
|
var _Metrics = require("../../Metrics");
|
|
33
33
|
var _calling = require("../calling");
|
|
34
34
|
var _Logger = _interopRequireDefault(require("../../Logger"));
|
|
35
|
+
var _types2 = require("./types");
|
|
35
36
|
var _SDKConnector = _interopRequireDefault(require("../../SDKConnector"));
|
|
36
|
-
var
|
|
37
|
+
var _types3 = require("../../common/types");
|
|
37
38
|
var _constants2 = require("../constants");
|
|
38
|
-
var
|
|
39
|
+
var _types4 = require("../line/types");
|
|
40
|
+
var _request = require("../utils/request");
|
|
39
41
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof _Symbol && r[_Symbol$iterator] || r["@@iterator"]; if (!t) { if (_Array$isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, 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 o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
40
42
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? _Array$from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
41
43
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
@@ -74,16 +76,17 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
74
76
|
(0, _defineProperty2.default)(this, "retryAfter", void 0);
|
|
75
77
|
(0, _defineProperty2.default)(this, "scheduled429Retry", false);
|
|
76
78
|
(0, _defineProperty2.default)(this, "webWorker", void 0);
|
|
79
|
+
(0, _defineProperty2.default)(this, "apiRequest", void 0);
|
|
77
80
|
this.jwe = jwe;
|
|
78
81
|
this.sdkConnector = _SDKConnector.default;
|
|
79
82
|
this.serviceData = serviceData;
|
|
80
|
-
this.isCCFlow = serviceData.indicator ===
|
|
83
|
+
this.isCCFlow = serviceData.indicator === _types3.ServiceIndicator.CONTACT_CENTER;
|
|
81
84
|
if (!this.sdkConnector.getWebex()) {
|
|
82
85
|
_SDKConnector.default.setWebex(webex);
|
|
83
86
|
}
|
|
84
87
|
this.webex = this.sdkConnector.getWebex();
|
|
85
88
|
this.userId = this.webex.internal.device.userId;
|
|
86
|
-
this.registrationStatus =
|
|
89
|
+
this.registrationStatus = _types3.RegistrationStatus.IDLE;
|
|
87
90
|
this.failback429RetryAttempts = 0;
|
|
88
91
|
_Logger.default.setLogger(logLevel, _constants2.REGISTRATION_FILE);
|
|
89
92
|
this.rehomingIntervalMin = _constants2.DEFAULT_REHOMING_INTERVAL_MIN;
|
|
@@ -94,8 +97,17 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
94
97
|
this.lineEmitter = lineEmitter;
|
|
95
98
|
this.primaryMobiusUris = [];
|
|
96
99
|
this.backupMobiusUris = [];
|
|
100
|
+
this.apiRequest = _request.APIRequest.getInstance({
|
|
101
|
+
webex: this.webex
|
|
102
|
+
});
|
|
97
103
|
}
|
|
98
104
|
return (0, _createClass2.default)(Registration, [{
|
|
105
|
+
key: "getServerType",
|
|
106
|
+
value: function getServerType(url) {
|
|
107
|
+
var _this$backupMobiusUri;
|
|
108
|
+
return this.primaryMobiusUris.includes(url) && 'PRIMARY' || ((_this$backupMobiusUri = this.backupMobiusUris) === null || _this$backupMobiusUri === void 0 ? void 0 : _this$backupMobiusUri.includes(url)) && 'BACKUP' || 'UNKNOWN';
|
|
109
|
+
}
|
|
110
|
+
}, {
|
|
99
111
|
key: "getFailoverCacheKey",
|
|
100
112
|
value: function getFailoverCacheKey() {
|
|
101
113
|
return "".concat(_constants2.FAILOVER_CACHE_PREFIX, ".").concat(this.userId || 'unknown');
|
|
@@ -218,50 +230,47 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
218
230
|
key: "deleteRegistration",
|
|
219
231
|
value: (function () {
|
|
220
232
|
var _deleteRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(url, deviceId, deviceUrl) {
|
|
221
|
-
var
|
|
222
|
-
var response, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0;
|
|
233
|
+
var response, requestObj, _t2;
|
|
223
234
|
return _regenerator.default.wrap(function (_context2) {
|
|
224
235
|
while (1) switch (_context2.prev = _context2.next) {
|
|
225
236
|
case 0:
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
237
|
+
requestObj = {
|
|
238
|
+
uri: "".concat(url).concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "/").concat(deviceId),
|
|
239
|
+
method: _types3.HTTP_METHODS.DELETE,
|
|
240
|
+
headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, deviceUrl), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
|
|
241
|
+
service: _types3.ALLOWED_SERVICES.MOBIUS
|
|
242
|
+
};
|
|
243
|
+
if (this.apiRequest.isSocketEnabled()) {
|
|
244
|
+
// @ts-ignore - body is added for mobius wss support, it is not used for mobius http
|
|
245
|
+
requestObj.body = {
|
|
246
|
+
deviceId: deviceId
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
_context2.prev = 1;
|
|
238
250
|
_context2.next = 2;
|
|
239
|
-
return
|
|
240
|
-
method: _t4,
|
|
241
|
-
headers: _t9
|
|
242
|
-
});
|
|
251
|
+
return this.apiRequest.makeRequest(requestObj);
|
|
243
252
|
case 2:
|
|
244
253
|
response = _context2.sent;
|
|
245
254
|
_context2.next = 4;
|
|
246
255
|
break;
|
|
247
256
|
case 3:
|
|
248
257
|
_context2.prev = 3;
|
|
249
|
-
|
|
250
|
-
_Logger.default.warn("Delete failed with Mobius: ".concat((0, _stringify.default)(
|
|
258
|
+
_t2 = _context2["catch"](1);
|
|
259
|
+
_Logger.default.warn("Delete failed with Mobius: ".concat((0, _stringify.default)(_t2)), {
|
|
251
260
|
file: _constants2.REGISTRATION_FILE,
|
|
252
261
|
method: _constants2.METHODS.DELETE_REGISTRATION
|
|
253
262
|
});
|
|
254
263
|
_context2.next = 4;
|
|
255
264
|
return (0, _common.uploadLogs)();
|
|
256
265
|
case 4:
|
|
257
|
-
this.setStatus(
|
|
258
|
-
this.lineEmitter(
|
|
259
|
-
return _context2.abrupt("return",
|
|
266
|
+
this.setStatus(_types3.RegistrationStatus.INACTIVE);
|
|
267
|
+
this.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
|
|
268
|
+
return _context2.abrupt("return", response);
|
|
260
269
|
case 5:
|
|
261
270
|
case "end":
|
|
262
271
|
return _context2.stop();
|
|
263
272
|
}
|
|
264
|
-
}, _callee2, this, [[
|
|
273
|
+
}, _callee2, this, [[1, 3]]);
|
|
265
274
|
}));
|
|
266
275
|
function deleteRegistration(_x, _x2, _x3) {
|
|
267
276
|
return _deleteRegistration.apply(this, arguments);
|
|
@@ -288,12 +297,12 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
288
297
|
jwe: this.jwe
|
|
289
298
|
}) : this.serviceData
|
|
290
299
|
};
|
|
291
|
-
return _context3.abrupt("return", this.
|
|
300
|
+
return _context3.abrupt("return", this.apiRequest.makeRequest({
|
|
292
301
|
uri: "".concat(url, "device"),
|
|
293
|
-
method:
|
|
302
|
+
method: _types3.HTTP_METHODS.POST,
|
|
294
303
|
headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, deviceInfo.clientDeviceUri), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
|
|
295
304
|
body: deviceInfo,
|
|
296
|
-
service:
|
|
305
|
+
service: _types3.ALLOWED_SERVICES.MOBIUS
|
|
297
306
|
}));
|
|
298
307
|
case 1:
|
|
299
308
|
case "end":
|
|
@@ -316,25 +325,44 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
316
325
|
value: (function () {
|
|
317
326
|
var _restorePreviousRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5(caller) {
|
|
318
327
|
var _this = this;
|
|
319
|
-
var abort;
|
|
328
|
+
var loggerContext, abort;
|
|
320
329
|
return _regenerator.default.wrap(function (_context5) {
|
|
321
330
|
while (1) switch (_context5.prev = _context5.next) {
|
|
322
331
|
case 0:
|
|
332
|
+
loggerContext = {
|
|
333
|
+
file: _constants2.REGISTRATION_FILE,
|
|
334
|
+
method: _constants2.METHODS.RESTORE_PREVIOUS_REGISTRATION
|
|
335
|
+
};
|
|
336
|
+
_Logger.default.info("".concat(_constants.METHOD_START_MESSAGE, " - caller: ").concat(caller, ", activeMobiusUrl: ").concat(this.activeMobiusUrl), loggerContext);
|
|
323
337
|
abort = false;
|
|
324
|
-
if (!this.activeMobiusUrl) {
|
|
325
|
-
_context5.next =
|
|
338
|
+
if (!(this.apiRequest.isSocketEnabled() && "".concat(this.apiRequest.getConnectedWebSocketUrl(), "/") !== this.activeMobiusUrl)) {
|
|
339
|
+
_context5.next = 1;
|
|
326
340
|
break;
|
|
327
341
|
}
|
|
342
|
+
_Logger.default.info("Disconnecting from Mobius socket to restore previous registration.", {
|
|
343
|
+
file: _constants2.REGISTRATION_FILE,
|
|
344
|
+
method: 'restorePreviousRegistration'
|
|
345
|
+
});
|
|
328
346
|
_context5.next = 1;
|
|
329
|
-
return this.
|
|
347
|
+
return this.apiRequest.disconnectFromMobiusSocket({
|
|
348
|
+
code: 3050,
|
|
349
|
+
reason: 'done (permanent)'
|
|
350
|
+
});
|
|
330
351
|
case 1:
|
|
352
|
+
if (!this.activeMobiusUrl) {
|
|
353
|
+
_context5.next = 7;
|
|
354
|
+
break;
|
|
355
|
+
}
|
|
356
|
+
_context5.next = 2;
|
|
357
|
+
return this.attemptRegistrationWithServers(caller, [this.activeMobiusUrl]);
|
|
358
|
+
case 2:
|
|
331
359
|
abort = _context5.sent;
|
|
332
360
|
if (!this.retryAfter) {
|
|
333
|
-
_context5.next =
|
|
361
|
+
_context5.next = 7;
|
|
334
362
|
break;
|
|
335
363
|
}
|
|
336
364
|
if (!(this.retryAfter < _constants2.RETRY_TIMER_UPPER_LIMIT)) {
|
|
337
|
-
_context5.next =
|
|
365
|
+
_context5.next = 3;
|
|
338
366
|
break;
|
|
339
367
|
}
|
|
340
368
|
// If retry-after is less than threshold, honor it and schedule retry
|
|
@@ -350,28 +378,30 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
350
378
|
}
|
|
351
379
|
}, _callee4);
|
|
352
380
|
})), this.retryAfter * 1000);
|
|
353
|
-
_context5.next =
|
|
381
|
+
_context5.next = 6;
|
|
354
382
|
break;
|
|
355
|
-
case
|
|
383
|
+
case 3:
|
|
356
384
|
if (!(this.primaryMobiusUris.includes(this.activeMobiusUrl) && this.backupMobiusUris.length > 0)) {
|
|
357
|
-
_context5.next =
|
|
385
|
+
_context5.next = 5;
|
|
358
386
|
break;
|
|
359
387
|
}
|
|
360
|
-
_context5.next =
|
|
388
|
+
_context5.next = 4;
|
|
361
389
|
return this.attemptRegistrationWithServers(caller, this.backupMobiusUris);
|
|
362
|
-
case
|
|
390
|
+
case 4:
|
|
363
391
|
abort = _context5.sent;
|
|
364
|
-
_context5.next =
|
|
392
|
+
_context5.next = 6;
|
|
365
393
|
break;
|
|
366
|
-
case 4:
|
|
367
|
-
// If we are using backup and got 429, restart registration
|
|
368
|
-
this.restartRegistration(caller);
|
|
369
394
|
case 5:
|
|
395
|
+
_context5.next = 6;
|
|
396
|
+
return this.restartRegistration(caller);
|
|
397
|
+
case 6:
|
|
370
398
|
this.retryAfter = undefined;
|
|
399
|
+
_Logger.default.log("restorePreviousRegistration completed via 429 retry-after path - caller: ".concat(caller), loggerContext);
|
|
371
400
|
return _context5.abrupt("return", true);
|
|
372
|
-
case 6:
|
|
373
|
-
return _context5.abrupt("return", abort);
|
|
374
401
|
case 7:
|
|
402
|
+
_Logger.default.log("restorePreviousRegistration completed - caller: ".concat(caller, ", deviceRegistered: ").concat(this.isDeviceRegistered(), ", abort: ").concat(abort), loggerContext);
|
|
403
|
+
return _context5.abrupt("return", abort);
|
|
404
|
+
case 8:
|
|
375
405
|
case "end":
|
|
376
406
|
return _context5.stop();
|
|
377
407
|
}
|
|
@@ -390,12 +420,17 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
390
420
|
key: "handle404KeepaliveFailure",
|
|
391
421
|
value: (function () {
|
|
392
422
|
var _handle404KeepaliveFailure = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6(caller) {
|
|
393
|
-
var abort;
|
|
423
|
+
var loggerContext, abort;
|
|
394
424
|
return _regenerator.default.wrap(function (_context6) {
|
|
395
425
|
while (1) switch (_context6.prev = _context6.next) {
|
|
396
426
|
case 0:
|
|
427
|
+
loggerContext = {
|
|
428
|
+
file: _constants2.REGISTRATION_FILE,
|
|
429
|
+
method: _constants2.METHODS.HANDLE_404_KEEPALIVE_FAILURE
|
|
430
|
+
};
|
|
431
|
+
_Logger.default.info("".concat(_constants.METHOD_START_MESSAGE, " - caller: ").concat(caller), loggerContext);
|
|
397
432
|
if (!(caller === _constants2.KEEPALIVE_UTIL)) {
|
|
398
|
-
_context6.next =
|
|
433
|
+
_context6.next = 4;
|
|
399
434
|
break;
|
|
400
435
|
}
|
|
401
436
|
_context6.next = 1;
|
|
@@ -403,12 +438,18 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
403
438
|
case 1:
|
|
404
439
|
abort = _context6.sent;
|
|
405
440
|
if (!(!abort && !this.isDeviceRegistered())) {
|
|
406
|
-
_context6.next =
|
|
441
|
+
_context6.next = 3;
|
|
407
442
|
break;
|
|
408
443
|
}
|
|
444
|
+
_Logger.default.warn('Keepalive 404 recovery: re-registration did not complete, starting failover timer', loggerContext);
|
|
409
445
|
_context6.next = 2;
|
|
410
446
|
return this.startFailoverTimer();
|
|
411
447
|
case 2:
|
|
448
|
+
_context6.next = 4;
|
|
449
|
+
break;
|
|
450
|
+
case 3:
|
|
451
|
+
_Logger.default.log("Keepalive 404 recovery handled - deviceRegistered: ".concat(this.isDeviceRegistered(), ", abort: ").concat(abort), loggerContext);
|
|
452
|
+
case 4:
|
|
412
453
|
case "end":
|
|
413
454
|
return _context6.stop();
|
|
414
455
|
}
|
|
@@ -419,6 +460,60 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
419
460
|
}
|
|
420
461
|
return handle404KeepaliveFailure;
|
|
421
462
|
}()
|
|
463
|
+
/**
|
|
464
|
+
* Hard stops a calling session that Mobius reported as superseded, in response to a
|
|
465
|
+
* `409 Conflict` on a keepalive (device_status) message.
|
|
466
|
+
*
|
|
467
|
+
* Mobius returns 409 when this deviceId is gone but the same user still has an active
|
|
468
|
+
* registration elsewhere (typically calling opened in another browser tab, which
|
|
469
|
+
* superseded this device). Re-registering here would unregister the other device and
|
|
470
|
+
* restart the registration ping-pong between the two, so no registration is attempted:
|
|
471
|
+
* the keepalive worker is terminated, the Mobius WebSocket is closed and the consumer
|
|
472
|
+
* receives `LINE_EVENTS.UNREGISTERED` carrying `lineError` as the reason.
|
|
473
|
+
*
|
|
474
|
+
* @param lineError - Superseded-session error built by `handleRegistrationErrors`.
|
|
475
|
+
* @param error - The keepalive failure payload forwarded by the keepalive worker.
|
|
476
|
+
* @param serverType - Mobius server type the keepalive was sent to, for metrics.
|
|
477
|
+
* @param keepaliveRetryCount - Consecutive keepalive failures reported by the worker.
|
|
478
|
+
*/
|
|
479
|
+
)
|
|
480
|
+
}, {
|
|
481
|
+
key: "handle409KeepaliveFailure",
|
|
482
|
+
value: (function () {
|
|
483
|
+
var _handle409KeepaliveFailure = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7(lineError, error, serverType, keepaliveRetryCount) {
|
|
484
|
+
var _error$headers$tracki, _error$headers;
|
|
485
|
+
var loggerContext;
|
|
486
|
+
return _regenerator.default.wrap(function (_context7) {
|
|
487
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
488
|
+
case 0:
|
|
489
|
+
loggerContext = {
|
|
490
|
+
file: _constants2.REGISTRATION_FILE,
|
|
491
|
+
method: _constants2.METHODS.HANDLE_409_KEEPALIVE_FAILURE
|
|
492
|
+
};
|
|
493
|
+
_Logger.default.warn("Stopping keepalive without re-registration, session superseded by another device for this user - keepaliveRetryCount: ".concat(keepaliveRetryCount), loggerContext);
|
|
494
|
+
|
|
495
|
+
/* Stop the keepalive worker up front so no further keepalive is sent while cleanup waits on the mutex. */
|
|
496
|
+
this.clearKeepaliveTimer();
|
|
497
|
+
this.metricManager.submitRegistrationMetric(_types.METRIC_EVENT.KEEPALIVE_ERROR, _types.REG_ACTION.KEEPALIVE_FAILURE, _types.METRIC_TYPE.BEHAVIORAL, _constants2.METHODS.HANDLE_409_KEEPALIVE_FAILURE, 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, lineError);
|
|
498
|
+
_context7.next = 1;
|
|
499
|
+
return this.registrationCleanup(_constants2.METHODS.HANDLE_409_KEEPALIVE_FAILURE, {
|
|
500
|
+
reason: _types2.HARD_STOP_REASON.SESSION_SUPERSEDED,
|
|
501
|
+
error: lineError
|
|
502
|
+
});
|
|
503
|
+
case 1:
|
|
504
|
+
_context7.next = 2;
|
|
505
|
+
return (0, _common.uploadLogs)();
|
|
506
|
+
case 2:
|
|
507
|
+
case "end":
|
|
508
|
+
return _context7.stop();
|
|
509
|
+
}
|
|
510
|
+
}, _callee7, this);
|
|
511
|
+
}));
|
|
512
|
+
function handle409KeepaliveFailure(_x7, _x8, _x9, _x0) {
|
|
513
|
+
return _handle409KeepaliveFailure.apply(this, arguments);
|
|
514
|
+
}
|
|
515
|
+
return handle409KeepaliveFailure;
|
|
516
|
+
}()
|
|
422
517
|
/**
|
|
423
518
|
* Callback for handling 429 retry response from the server
|
|
424
519
|
*/
|
|
@@ -426,21 +521,21 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
426
521
|
}, {
|
|
427
522
|
key: "handle429Retry",
|
|
428
523
|
value: (function () {
|
|
429
|
-
var _handle429Retry = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
524
|
+
var _handle429Retry = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9(retryAfter, caller) {
|
|
430
525
|
var _this2 = this;
|
|
431
526
|
var interval, abort;
|
|
432
|
-
return _regenerator.default.wrap(function (
|
|
433
|
-
while (1) switch (
|
|
527
|
+
return _regenerator.default.wrap(function (_context9) {
|
|
528
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
434
529
|
case 0:
|
|
435
530
|
if (!(caller === _constants2.FAILBACK_UTIL)) {
|
|
436
|
-
|
|
531
|
+
_context9.next = 4;
|
|
437
532
|
break;
|
|
438
533
|
}
|
|
439
534
|
if (!(this.failback429RetryAttempts >= _constants2.REG_FAILBACK_429_MAX_RETRIES)) {
|
|
440
|
-
|
|
535
|
+
_context9.next = 1;
|
|
441
536
|
break;
|
|
442
537
|
}
|
|
443
|
-
return
|
|
538
|
+
return _context9.abrupt("return");
|
|
444
539
|
case 1:
|
|
445
540
|
this.clearFailbackTimer();
|
|
446
541
|
this.failback429RetryAttempts += 1;
|
|
@@ -451,26 +546,26 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
451
546
|
interval = this.getRegRetryInterval(this.failback429RetryAttempts);
|
|
452
547
|
this.startFailbackTimer(interval);
|
|
453
548
|
this.scheduled429Retry = true;
|
|
454
|
-
|
|
549
|
+
_context9.next = 2;
|
|
455
550
|
return this.restorePreviousRegistration(_constants2.REG_429_RETRY_UTIL);
|
|
456
551
|
case 2:
|
|
457
|
-
abort =
|
|
552
|
+
abort = _context9.sent;
|
|
458
553
|
if (!(!abort && !this.isDeviceRegistered())) {
|
|
459
|
-
|
|
554
|
+
_context9.next = 3;
|
|
460
555
|
break;
|
|
461
556
|
}
|
|
462
|
-
|
|
557
|
+
_context9.next = 3;
|
|
463
558
|
return this.restartRegistration(_constants2.REG_429_RETRY_UTIL);
|
|
464
559
|
case 3:
|
|
465
|
-
|
|
560
|
+
_context9.next = 5;
|
|
466
561
|
break;
|
|
467
562
|
case 4:
|
|
468
563
|
if (caller === _constants2.KEEPALIVE_UTIL) {
|
|
469
564
|
this.clearKeepaliveTimer();
|
|
470
|
-
setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
565
|
+
setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
|
|
471
566
|
var _this2$deviceInfo$dev;
|
|
472
|
-
return _regenerator.default.wrap(function (
|
|
473
|
-
while (1) switch (
|
|
567
|
+
return _regenerator.default.wrap(function (_context8) {
|
|
568
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
474
569
|
case 0:
|
|
475
570
|
_Logger.default.log("Resuming keepalive after ".concat(retryAfter, " seconds"), {
|
|
476
571
|
file: _constants2.REGISTRATION_FILE,
|
|
@@ -478,24 +573,24 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
478
573
|
});
|
|
479
574
|
|
|
480
575
|
// Resume the keepalive after waiting for the retry after period
|
|
481
|
-
|
|
576
|
+
_context8.next = 1;
|
|
482
577
|
return _this2.startKeepaliveTimer((_this2$deviceInfo$dev = _this2.deviceInfo.device) === null || _this2$deviceInfo$dev === void 0 ? void 0 : _this2$deviceInfo$dev.uri, _this2.deviceInfo.keepaliveInterval, 'UNKNOWN');
|
|
483
578
|
case 1:
|
|
484
579
|
case "end":
|
|
485
|
-
return
|
|
580
|
+
return _context8.stop();
|
|
486
581
|
}
|
|
487
|
-
},
|
|
488
|
-
})), retryAfter * 1000);
|
|
582
|
+
}, _callee8);
|
|
583
|
+
})), (retryAfter - Number(this.deviceInfo.keepaliveInterval || 0)) * 1000);
|
|
489
584
|
} else {
|
|
490
585
|
this.retryAfter = retryAfter;
|
|
491
586
|
}
|
|
492
587
|
case 5:
|
|
493
588
|
case "end":
|
|
494
|
-
return
|
|
589
|
+
return _context9.stop();
|
|
495
590
|
}
|
|
496
|
-
},
|
|
591
|
+
}, _callee9, this);
|
|
497
592
|
}));
|
|
498
|
-
function handle429Retry(
|
|
593
|
+
function handle429Retry(_x1, _x10) {
|
|
499
594
|
return _handle429Retry.apply(this, arguments);
|
|
500
595
|
}
|
|
501
596
|
return handle429Retry;
|
|
@@ -524,7 +619,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
524
619
|
}, {
|
|
525
620
|
key: "startFailoverTimer",
|
|
526
621
|
value: (function () {
|
|
527
|
-
var _startFailoverTimer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
622
|
+
var _startFailoverTimer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12() {
|
|
528
623
|
var _this3 = this;
|
|
529
624
|
var attempt,
|
|
530
625
|
timeElapsed,
|
|
@@ -534,12 +629,12 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
534
629
|
excessVal,
|
|
535
630
|
abort,
|
|
536
631
|
scheduledTime,
|
|
537
|
-
|
|
538
|
-
return _regenerator.default.wrap(function (
|
|
539
|
-
while (1) switch (
|
|
632
|
+
_args12 = arguments;
|
|
633
|
+
return _regenerator.default.wrap(function (_context12) {
|
|
634
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
540
635
|
case 0:
|
|
541
|
-
attempt =
|
|
542
|
-
timeElapsed =
|
|
636
|
+
attempt = _args12.length > 0 && _args12[0] !== undefined ? _args12[0] : 1;
|
|
637
|
+
timeElapsed = _args12.length > 1 && _args12[1] !== undefined ? _args12[1] : 0;
|
|
543
638
|
loggerContext = {
|
|
544
639
|
file: _constants2.REGISTRATION_FILE,
|
|
545
640
|
method: _constants2.FAILOVER_UTIL
|
|
@@ -554,7 +649,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
554
649
|
this.failoverImmediately = this.retryAfter + timeElapsed > TIMER_THRESHOLD;
|
|
555
650
|
}
|
|
556
651
|
if (!(interval > _constants2.BASE_REG_RETRY_TIMER_VAL_IN_SEC && !this.failoverImmediately)) {
|
|
557
|
-
|
|
652
|
+
_context12.next = 1;
|
|
558
653
|
break;
|
|
559
654
|
}
|
|
560
655
|
scheduledTime = Math.floor((0, _now.default)() / 1000);
|
|
@@ -567,47 +662,60 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
567
662
|
retryScheduledTime: scheduledTime,
|
|
568
663
|
serverType: 'primary'
|
|
569
664
|
});
|
|
570
|
-
setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
571
|
-
return _regenerator.default.wrap(function (
|
|
572
|
-
while (1) switch (
|
|
665
|
+
setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
|
|
666
|
+
return _regenerator.default.wrap(function (_context1) {
|
|
667
|
+
while (1) switch (_context1.prev = _context1.next) {
|
|
573
668
|
case 0:
|
|
574
|
-
|
|
575
|
-
return _this3.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
669
|
+
_context1.next = 1;
|
|
670
|
+
return _this3.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
|
|
576
671
|
var currentTime;
|
|
577
|
-
return _regenerator.default.wrap(function (
|
|
578
|
-
while (1) switch (
|
|
672
|
+
return _regenerator.default.wrap(function (_context0) {
|
|
673
|
+
while (1) switch (_context0.prev = _context0.next) {
|
|
579
674
|
case 0:
|
|
580
|
-
|
|
675
|
+
_context0.next = 1;
|
|
581
676
|
return _this3.attemptRegistrationWithServers(_constants2.FAILOVER_UTIL);
|
|
582
677
|
case 1:
|
|
583
|
-
abort =
|
|
678
|
+
abort = _context0.sent;
|
|
584
679
|
currentTime = Math.floor((0, _now.default)() / 1000);
|
|
585
680
|
if (!(!abort && !_this3.isDeviceRegistered())) {
|
|
586
|
-
|
|
681
|
+
_context0.next = 2;
|
|
587
682
|
break;
|
|
588
683
|
}
|
|
589
|
-
|
|
684
|
+
_context0.next = 2;
|
|
590
685
|
return _this3.startFailoverTimer(attempt + 1, timeElapsed + (currentTime - scheduledTime));
|
|
591
686
|
case 2:
|
|
592
687
|
case "end":
|
|
593
|
-
return
|
|
688
|
+
return _context0.stop();
|
|
594
689
|
}
|
|
595
|
-
},
|
|
690
|
+
}, _callee0);
|
|
596
691
|
})));
|
|
597
692
|
case 1:
|
|
598
693
|
case "end":
|
|
599
|
-
return
|
|
694
|
+
return _context1.stop();
|
|
600
695
|
}
|
|
601
|
-
},
|
|
696
|
+
}, _callee1);
|
|
602
697
|
})), interval * _constants2.SEC_TO_MSEC_MFACTOR);
|
|
603
698
|
_Logger.default.log("Scheduled retry with primary in ".concat(interval, " seconds, number of attempts : ").concat(attempt), loggerContext);
|
|
604
|
-
|
|
699
|
+
_context12.next = 7;
|
|
605
700
|
break;
|
|
606
701
|
case 1:
|
|
607
702
|
if (!this.backupMobiusUris.length) {
|
|
608
|
-
|
|
703
|
+
_context12.next = 5;
|
|
609
704
|
break;
|
|
610
705
|
}
|
|
706
|
+
if (!this.apiRequest.isSocketEnabled()) {
|
|
707
|
+
_context12.next = 3;
|
|
708
|
+
break;
|
|
709
|
+
}
|
|
710
|
+
_Logger.default.info('Disconnecting from primary Mobius socket for failover to backup servers', loggerContext);
|
|
711
|
+
_context12.next = 2;
|
|
712
|
+
return this.apiRequest.disconnectFromMobiusSocket({
|
|
713
|
+
code: 3050,
|
|
714
|
+
reason: 'done (permanent)'
|
|
715
|
+
});
|
|
716
|
+
case 2:
|
|
717
|
+
_Logger.default.log('Mobius socket disconnect complete prior to backup failover', loggerContext);
|
|
718
|
+
case 3:
|
|
611
719
|
this.saveFailoverState({
|
|
612
720
|
attempt: attempt,
|
|
613
721
|
timeElapsed: timeElapsed,
|
|
@@ -616,66 +724,66 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
616
724
|
});
|
|
617
725
|
_Logger.default.info('Failing over to backup servers.', loggerContext);
|
|
618
726
|
this.failoverImmediately = false;
|
|
619
|
-
|
|
727
|
+
_context12.next = 4;
|
|
620
728
|
return this.attemptRegistrationWithServers(_constants2.FAILOVER_UTIL, this.backupMobiusUris);
|
|
621
|
-
case
|
|
622
|
-
abort =
|
|
729
|
+
case 4:
|
|
730
|
+
abort = _context12.sent;
|
|
623
731
|
if (!abort && !this.isDeviceRegistered()) {
|
|
624
732
|
interval = this.getRegRetryInterval();
|
|
625
733
|
if (this.retryAfter != null && this.retryAfter < _constants2.RETRY_TIMER_UPPER_LIMIT) {
|
|
626
734
|
interval = interval < this.retryAfter ? this.retryAfter : interval;
|
|
627
735
|
}
|
|
628
|
-
setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
629
|
-
return _regenerator.default.wrap(function (
|
|
630
|
-
while (1) switch (
|
|
736
|
+
setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11() {
|
|
737
|
+
return _regenerator.default.wrap(function (_context11) {
|
|
738
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
631
739
|
case 0:
|
|
632
|
-
|
|
633
|
-
return _this3.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
634
|
-
return _regenerator.default.wrap(function (
|
|
635
|
-
while (1) switch (
|
|
740
|
+
_context11.next = 1;
|
|
741
|
+
return _this3.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
|
|
742
|
+
return _regenerator.default.wrap(function (_context10) {
|
|
743
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
636
744
|
case 0:
|
|
637
|
-
|
|
745
|
+
_context10.next = 1;
|
|
638
746
|
return _this3.attemptRegistrationWithServers(_constants2.FAILOVER_UTIL, _this3.backupMobiusUris);
|
|
639
747
|
case 1:
|
|
640
|
-
abort =
|
|
748
|
+
abort = _context10.sent;
|
|
641
749
|
if (!(!abort && !_this3.isDeviceRegistered())) {
|
|
642
|
-
|
|
750
|
+
_context10.next = 3;
|
|
643
751
|
break;
|
|
644
752
|
}
|
|
645
|
-
|
|
753
|
+
_context10.next = 2;
|
|
646
754
|
return (0, _common.uploadLogs)();
|
|
647
755
|
case 2:
|
|
648
756
|
(0, _common.emitFinalFailure)(function (clientError) {
|
|
649
|
-
_this3.lineEmitter(
|
|
757
|
+
_this3.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
|
|
650
758
|
}, loggerContext);
|
|
651
759
|
case 3:
|
|
652
760
|
case "end":
|
|
653
|
-
return
|
|
761
|
+
return _context10.stop();
|
|
654
762
|
}
|
|
655
|
-
},
|
|
763
|
+
}, _callee10);
|
|
656
764
|
})));
|
|
657
765
|
case 1:
|
|
658
766
|
case "end":
|
|
659
|
-
return
|
|
767
|
+
return _context11.stop();
|
|
660
768
|
}
|
|
661
|
-
},
|
|
769
|
+
}, _callee11);
|
|
662
770
|
})), interval * _constants2.SEC_TO_MSEC_MFACTOR);
|
|
663
771
|
_Logger.default.log("Scheduled retry with backup servers in ".concat(interval, " seconds."), loggerContext);
|
|
664
772
|
}
|
|
665
|
-
|
|
773
|
+
_context12.next = 7;
|
|
666
774
|
break;
|
|
667
|
-
case
|
|
668
|
-
|
|
775
|
+
case 5:
|
|
776
|
+
_context12.next = 6;
|
|
669
777
|
return (0, _common.uploadLogs)();
|
|
670
|
-
case
|
|
778
|
+
case 6:
|
|
671
779
|
(0, _common.emitFinalFailure)(function (clientError) {
|
|
672
|
-
_this3.lineEmitter(
|
|
673
|
-
}, loggerContext);
|
|
674
|
-
case
|
|
780
|
+
_this3.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
|
|
781
|
+
}, loggerContext, interval < 0 ? 'Timer threshold exceeded during failover' : undefined);
|
|
782
|
+
case 7:
|
|
675
783
|
case "end":
|
|
676
|
-
return
|
|
784
|
+
return _context12.stop();
|
|
677
785
|
}
|
|
678
|
-
},
|
|
786
|
+
}, _callee12, this);
|
|
679
787
|
}));
|
|
680
788
|
function startFailoverTimer() {
|
|
681
789
|
return _startFailoverTimer.apply(this, arguments);
|
|
@@ -694,37 +802,65 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
694
802
|
this.failbackTimer = undefined;
|
|
695
803
|
}
|
|
696
804
|
}
|
|
805
|
+
}, {
|
|
806
|
+
key: "postKeepAlive",
|
|
807
|
+
value: function () {
|
|
808
|
+
var _postKeepAlive = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13(deviceUrl, url) {
|
|
809
|
+
var _this$deviceInfo$devi;
|
|
810
|
+
return _regenerator.default.wrap(function (_context13) {
|
|
811
|
+
while (1) switch (_context13.prev = _context13.next) {
|
|
812
|
+
case 0:
|
|
813
|
+
return _context13.abrupt("return", this.apiRequest.makeRequest({
|
|
814
|
+
uri: "".concat(url, "/status"),
|
|
815
|
+
method: _types3.HTTP_METHODS.POST,
|
|
816
|
+
headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, deviceUrl), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
|
|
817
|
+
body: {
|
|
818
|
+
deviceId: (_this$deviceInfo$devi = this.deviceInfo.device) === null || _this$deviceInfo$devi === void 0 ? void 0 : _this$deviceInfo$devi.deviceId
|
|
819
|
+
},
|
|
820
|
+
service: _types3.ALLOWED_SERVICES.MOBIUS
|
|
821
|
+
}));
|
|
822
|
+
case 1:
|
|
823
|
+
case "end":
|
|
824
|
+
return _context13.stop();
|
|
825
|
+
}
|
|
826
|
+
}, _callee13, this);
|
|
827
|
+
}));
|
|
828
|
+
function postKeepAlive(_x11, _x12) {
|
|
829
|
+
return _postKeepAlive.apply(this, arguments);
|
|
830
|
+
}
|
|
831
|
+
return postKeepAlive;
|
|
832
|
+
}()
|
|
697
833
|
}, {
|
|
698
834
|
key: "isPrimaryActive",
|
|
699
835
|
value: function () {
|
|
700
|
-
var _isPrimaryActive = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
701
|
-
var status, _iterator, _step, mobiusUrl, baseUri, response, _ref7, statusCode,
|
|
702
|
-
return _regenerator.default.wrap(function (
|
|
703
|
-
while (1) switch (
|
|
836
|
+
var _isPrimaryActive = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee14() {
|
|
837
|
+
var status, _iterator, _step, mobiusUrl, baseUri, response, _ref7, statusCode, _t3, _t4;
|
|
838
|
+
return _regenerator.default.wrap(function (_context14) {
|
|
839
|
+
while (1) switch (_context14.prev = _context14.next) {
|
|
704
840
|
case 0:
|
|
705
841
|
_iterator = _createForOfIteratorHelper(this.primaryMobiusUris);
|
|
706
|
-
|
|
842
|
+
_context14.prev = 1;
|
|
707
843
|
_iterator.s();
|
|
708
844
|
case 2:
|
|
709
845
|
if ((_step = _iterator.n()).done) {
|
|
710
|
-
|
|
846
|
+
_context14.next = 8;
|
|
711
847
|
break;
|
|
712
848
|
}
|
|
713
849
|
mobiusUrl = _step.value;
|
|
714
|
-
|
|
715
|
-
baseUri = mobiusUrl.replace(_constants2.URL_ENDPOINT, '/'); // eslint-disable-next-line no-await-in-loop
|
|
716
|
-
|
|
850
|
+
_context14.prev = 3;
|
|
851
|
+
baseUri = mobiusUrl.replace(_constants2.URL_ENDPOINT, '/').replace('wss://', 'https://'); // eslint-disable-next-line no-await-in-loop
|
|
852
|
+
_context14.next = 4;
|
|
717
853
|
return this.webex.request({
|
|
718
854
|
uri: "".concat(baseUri, "ping"),
|
|
719
|
-
method:
|
|
855
|
+
method: _types3.HTTP_METHODS.GET,
|
|
720
856
|
headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, this.webex.internal.device.url), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
|
|
721
|
-
service:
|
|
857
|
+
service: _types3.ALLOWED_SERVICES.MOBIUS
|
|
722
858
|
});
|
|
723
859
|
case 4:
|
|
724
|
-
response =
|
|
860
|
+
response = _context14.sent;
|
|
725
861
|
_ref7 = response, statusCode = _ref7.statusCode;
|
|
726
862
|
if (!(statusCode === 200)) {
|
|
727
|
-
|
|
863
|
+
_context14.next = 5;
|
|
728
864
|
break;
|
|
729
865
|
}
|
|
730
866
|
_Logger.default.info("Ping successful for primary Mobius: ".concat(mobiusUrl), {
|
|
@@ -732,39 +868,39 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
732
868
|
method: _constants2.FAILBACK_UTIL
|
|
733
869
|
});
|
|
734
870
|
status = 'up';
|
|
735
|
-
return
|
|
871
|
+
return _context14.abrupt("continue", 8);
|
|
736
872
|
case 5:
|
|
737
|
-
|
|
873
|
+
_context14.next = 7;
|
|
738
874
|
break;
|
|
739
875
|
case 6:
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
_Logger.default.warn("Ping failed for primary Mobius: ".concat(mobiusUrl, " with error: ").concat((0, _stringify.default)(
|
|
876
|
+
_context14.prev = 6;
|
|
877
|
+
_t3 = _context14["catch"](3);
|
|
878
|
+
_Logger.default.warn("Ping failed for primary Mobius: ".concat(mobiusUrl, " with error: ").concat((0, _stringify.default)(_t3)), {
|
|
743
879
|
file: _constants2.REGISTRATION_FILE,
|
|
744
880
|
method: _constants2.FAILBACK_UTIL
|
|
745
881
|
});
|
|
746
882
|
status = 'down';
|
|
747
883
|
case 7:
|
|
748
|
-
|
|
884
|
+
_context14.next = 2;
|
|
749
885
|
break;
|
|
750
886
|
case 8:
|
|
751
|
-
|
|
887
|
+
_context14.next = 10;
|
|
752
888
|
break;
|
|
753
889
|
case 9:
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
_iterator.e(
|
|
890
|
+
_context14.prev = 9;
|
|
891
|
+
_t4 = _context14["catch"](1);
|
|
892
|
+
_iterator.e(_t4);
|
|
757
893
|
case 10:
|
|
758
|
-
|
|
894
|
+
_context14.prev = 10;
|
|
759
895
|
_iterator.f();
|
|
760
|
-
return
|
|
896
|
+
return _context14.finish(10);
|
|
761
897
|
case 11:
|
|
762
|
-
return
|
|
898
|
+
return _context14.abrupt("return", status === 'up');
|
|
763
899
|
case 12:
|
|
764
900
|
case "end":
|
|
765
|
-
return
|
|
901
|
+
return _context14.stop();
|
|
766
902
|
}
|
|
767
|
-
},
|
|
903
|
+
}, _callee14, this, [[1, 9, 10, 11], [3, 6]]);
|
|
768
904
|
}));
|
|
769
905
|
function isPrimaryActive() {
|
|
770
906
|
return _isPrimaryActive.apply(this, arguments);
|
|
@@ -797,13 +933,21 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
797
933
|
}, {
|
|
798
934
|
key: "initiateFailback",
|
|
799
935
|
value: function initiateFailback() {
|
|
936
|
+
var loggerContext = {
|
|
937
|
+
file: _constants2.REGISTRATION_FILE,
|
|
938
|
+
method: _constants2.METHODS.INITIATE_FAILBACK
|
|
939
|
+
};
|
|
800
940
|
if (this.isFailbackRequired()) {
|
|
801
941
|
if (!this.failbackTimer) {
|
|
802
942
|
this.failback429RetryAttempts = 0;
|
|
803
943
|
var intervalInMinutes = this.getFailbackInterval();
|
|
944
|
+
_Logger.default.info("Scheduling failback to primary - intervalMinutes: ".concat(intervalInMinutes), loggerContext);
|
|
804
945
|
this.startFailbackTimer(intervalInMinutes * _constants2.MINUTES_TO_SEC_MFACTOR);
|
|
946
|
+
} else {
|
|
947
|
+
_Logger.default.info('Failback timer already scheduled, skipping', loggerContext);
|
|
805
948
|
}
|
|
806
949
|
} else {
|
|
950
|
+
_Logger.default.info('Failback not required, clearing any pending failback timer', loggerContext);
|
|
807
951
|
this.failback429RetryAttempts = 0;
|
|
808
952
|
this.clearFailbackTimer();
|
|
809
953
|
}
|
|
@@ -817,16 +961,16 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
817
961
|
key: "startFailbackTimer",
|
|
818
962
|
value: function startFailbackTimer(intervalInSeconds) {
|
|
819
963
|
var _this4 = this;
|
|
820
|
-
this.failbackTimer = setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
821
|
-
return _regenerator.default.wrap(function (
|
|
822
|
-
while (1) switch (
|
|
964
|
+
this.failbackTimer = setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee15() {
|
|
965
|
+
return _regenerator.default.wrap(function (_context15) {
|
|
966
|
+
while (1) switch (_context15.prev = _context15.next) {
|
|
823
967
|
case 0:
|
|
824
|
-
return
|
|
968
|
+
return _context15.abrupt("return", _this4.executeFailback());
|
|
825
969
|
case 1:
|
|
826
970
|
case "end":
|
|
827
|
-
return
|
|
971
|
+
return _context15.stop();
|
|
828
972
|
}
|
|
829
|
-
},
|
|
973
|
+
}, _callee15);
|
|
830
974
|
})), intervalInSeconds * _constants2.SEC_TO_MSEC_MFACTOR);
|
|
831
975
|
_Logger.default.log("Failback scheduled after ".concat(intervalInSeconds, " seconds."), {
|
|
832
976
|
file: _constants2.REGISTRATION_FILE,
|
|
@@ -841,90 +985,103 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
841
985
|
}, {
|
|
842
986
|
key: "executeFailback",
|
|
843
987
|
value: (function () {
|
|
844
|
-
var _executeFailback = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
988
|
+
var _executeFailback = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee17() {
|
|
845
989
|
var _this5 = this;
|
|
846
|
-
|
|
847
|
-
|
|
990
|
+
var loggerContext;
|
|
991
|
+
return _regenerator.default.wrap(function (_context17) {
|
|
992
|
+
while (1) switch (_context17.prev = _context17.next) {
|
|
848
993
|
case 0:
|
|
849
|
-
|
|
850
|
-
|
|
994
|
+
loggerContext = {
|
|
995
|
+
file: _constants2.REGISTRATION_FILE,
|
|
996
|
+
method: _constants2.METHODS.EXECUTE_FAILBACK
|
|
997
|
+
};
|
|
998
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, loggerContext);
|
|
999
|
+
_context17.next = 1;
|
|
1000
|
+
return this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee16() {
|
|
851
1001
|
var primaryServerStatus, abort, abortNew;
|
|
852
|
-
return _regenerator.default.wrap(function (
|
|
853
|
-
while (1) switch (
|
|
1002
|
+
return _regenerator.default.wrap(function (_context16) {
|
|
1003
|
+
while (1) switch (_context16.prev = _context16.next) {
|
|
854
1004
|
case 0:
|
|
855
1005
|
if (!_this5.isFailbackRequired()) {
|
|
856
|
-
|
|
1006
|
+
_context16.next = 13;
|
|
857
1007
|
break;
|
|
858
1008
|
}
|
|
859
|
-
|
|
1009
|
+
_context16.next = 1;
|
|
860
1010
|
return _this5.isPrimaryActive();
|
|
861
1011
|
case 1:
|
|
862
|
-
primaryServerStatus =
|
|
1012
|
+
primaryServerStatus = _context16.sent;
|
|
863
1013
|
if (!((0, _keys.default)(_this5.callManager.getActiveCalls()).length === 0 && primaryServerStatus)) {
|
|
864
|
-
|
|
1014
|
+
_context16.next = 12;
|
|
865
1015
|
break;
|
|
866
1016
|
}
|
|
867
|
-
_Logger.default.info("Attempting failback to primary.",
|
|
868
|
-
|
|
869
|
-
method: _this5.executeFailback.name
|
|
870
|
-
});
|
|
871
|
-
_context14.next = 2;
|
|
1017
|
+
_Logger.default.info("Attempting failback to primary.", loggerContext);
|
|
1018
|
+
_context16.next = 2;
|
|
872
1019
|
return _this5.deregister();
|
|
873
1020
|
case 2:
|
|
874
|
-
|
|
875
|
-
|
|
1021
|
+
if (!_this5.apiRequest.isSocketEnabled()) {
|
|
1022
|
+
_context16.next = 4;
|
|
1023
|
+
break;
|
|
1024
|
+
}
|
|
1025
|
+
_Logger.default.info('Disconnecting from backup Mobius socket for failback to primary', loggerContext);
|
|
1026
|
+
_context16.next = 3;
|
|
1027
|
+
return _this5.apiRequest.disconnectFromMobiusSocket({
|
|
1028
|
+
code: 3050,
|
|
1029
|
+
reason: 'done (permanent)'
|
|
1030
|
+
});
|
|
876
1031
|
case 3:
|
|
877
|
-
|
|
1032
|
+
_Logger.default.log('Mobius socket disconnect complete prior to primary failback', loggerContext);
|
|
1033
|
+
case 4:
|
|
1034
|
+
_context16.next = 5;
|
|
1035
|
+
return _this5.attemptRegistrationWithServers(_constants2.FAILBACK_UTIL);
|
|
1036
|
+
case 5:
|
|
1037
|
+
abort = _context16.sent;
|
|
878
1038
|
if (!(_this5.scheduled429Retry || abort || _this5.isDeviceRegistered())) {
|
|
879
|
-
|
|
1039
|
+
_context16.next = 6;
|
|
880
1040
|
break;
|
|
881
1041
|
}
|
|
882
|
-
return
|
|
883
|
-
case
|
|
884
|
-
|
|
1042
|
+
return _context16.abrupt("return");
|
|
1043
|
+
case 6:
|
|
1044
|
+
_context16.next = 7;
|
|
885
1045
|
return _this5.restorePreviousRegistration(_constants2.FAILBACK_UTIL);
|
|
886
|
-
case
|
|
887
|
-
abortNew =
|
|
1046
|
+
case 7:
|
|
1047
|
+
abortNew = _context16.sent;
|
|
888
1048
|
if (!abortNew) {
|
|
889
|
-
|
|
1049
|
+
_context16.next = 8;
|
|
890
1050
|
break;
|
|
891
1051
|
}
|
|
892
1052
|
_this5.clearFailbackTimer();
|
|
893
|
-
return
|
|
894
|
-
case
|
|
1053
|
+
return _context16.abrupt("return");
|
|
1054
|
+
case 8:
|
|
895
1055
|
if (_this5.isDeviceRegistered()) {
|
|
896
|
-
|
|
1056
|
+
_context16.next = 10;
|
|
897
1057
|
break;
|
|
898
1058
|
}
|
|
899
|
-
|
|
900
|
-
return _this5.restartRegistration(
|
|
901
|
-
case 7:
|
|
902
|
-
_context14.next = 9;
|
|
903
|
-
break;
|
|
904
|
-
case 8:
|
|
905
|
-
_this5.failbackTimer = undefined;
|
|
906
|
-
_this5.initiateFailback();
|
|
1059
|
+
_context16.next = 9;
|
|
1060
|
+
return _this5.restartRegistration(loggerContext.method);
|
|
907
1061
|
case 9:
|
|
908
|
-
|
|
1062
|
+
_context16.next = 11;
|
|
909
1063
|
break;
|
|
910
1064
|
case 10:
|
|
911
|
-
_Logger.default.info('Active calls present or primary Mobius is down, deferring failback to next cycle.', {
|
|
912
|
-
file: _constants2.REGISTRATION_FILE,
|
|
913
|
-
method: _this5.executeFailback.name
|
|
914
|
-
});
|
|
915
1065
|
_this5.failbackTimer = undefined;
|
|
916
1066
|
_this5.initiateFailback();
|
|
917
1067
|
case 11:
|
|
1068
|
+
_context16.next = 13;
|
|
1069
|
+
break;
|
|
1070
|
+
case 12:
|
|
1071
|
+
_Logger.default.info('Active calls present or primary Mobius is down, deferring failback to next cycle.', loggerContext);
|
|
1072
|
+
_this5.failbackTimer = undefined;
|
|
1073
|
+
_this5.initiateFailback();
|
|
1074
|
+
case 13:
|
|
918
1075
|
case "end":
|
|
919
|
-
return
|
|
1076
|
+
return _context16.stop();
|
|
920
1077
|
}
|
|
921
|
-
},
|
|
1078
|
+
}, _callee16);
|
|
922
1079
|
})));
|
|
923
1080
|
case 1:
|
|
924
1081
|
case "end":
|
|
925
|
-
return
|
|
1082
|
+
return _context17.stop();
|
|
926
1083
|
}
|
|
927
|
-
},
|
|
1084
|
+
}, _callee17, this);
|
|
928
1085
|
}));
|
|
929
1086
|
function executeFailback() {
|
|
930
1087
|
return _executeFailback.apply(this, arguments);
|
|
@@ -966,7 +1123,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
966
1123
|
}, {
|
|
967
1124
|
key: "isDeviceRegistered",
|
|
968
1125
|
value: function isDeviceRegistered() {
|
|
969
|
-
return this.registrationStatus ===
|
|
1126
|
+
return this.registrationStatus === _types3.RegistrationStatus.ACTIVE;
|
|
970
1127
|
}
|
|
971
1128
|
}, {
|
|
972
1129
|
key: "getStatus",
|
|
@@ -987,34 +1144,42 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
987
1144
|
}, {
|
|
988
1145
|
key: "restartRegistration",
|
|
989
1146
|
value: (function () {
|
|
990
|
-
var _restartRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
991
|
-
var abort;
|
|
992
|
-
return _regenerator.default.wrap(function (
|
|
993
|
-
while (1) switch (
|
|
1147
|
+
var _restartRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee18(caller) {
|
|
1148
|
+
var loggerContext, abort;
|
|
1149
|
+
return _regenerator.default.wrap(function (_context18) {
|
|
1150
|
+
while (1) switch (_context18.prev = _context18.next) {
|
|
994
1151
|
case 0:
|
|
1152
|
+
loggerContext = {
|
|
1153
|
+
file: _constants2.REGISTRATION_FILE,
|
|
1154
|
+
method: _constants2.METHODS.RESTART_REGISTRATION
|
|
1155
|
+
};
|
|
1156
|
+
_Logger.default.info("".concat(_constants.METHOD_START_MESSAGE, " - caller: ").concat(caller), loggerContext);
|
|
1157
|
+
|
|
995
1158
|
/*
|
|
996
1159
|
* Cancel any failback timer running
|
|
997
1160
|
* and start fresh registration attempt with retry as true.
|
|
998
1161
|
*/
|
|
999
1162
|
this.clearFailbackTimer();
|
|
1000
1163
|
this.failback429RetryAttempts = 0;
|
|
1001
|
-
|
|
1164
|
+
_context18.next = 1;
|
|
1002
1165
|
return this.attemptRegistrationWithServers(caller, this.primaryMobiusUris);
|
|
1003
1166
|
case 1:
|
|
1004
|
-
abort =
|
|
1167
|
+
abort = _context18.sent;
|
|
1005
1168
|
if (!(!abort && !this.isDeviceRegistered())) {
|
|
1006
|
-
|
|
1169
|
+
_context18.next = 2;
|
|
1007
1170
|
break;
|
|
1008
1171
|
}
|
|
1009
|
-
|
|
1172
|
+
_context18.next = 2;
|
|
1010
1173
|
return this.startFailoverTimer();
|
|
1011
1174
|
case 2:
|
|
1175
|
+
_Logger.default.log("restartRegistration completed - caller: ".concat(caller, ", deviceRegistered: ").concat(this.isDeviceRegistered(), ", abort: ").concat(abort), loggerContext);
|
|
1176
|
+
case 3:
|
|
1012
1177
|
case "end":
|
|
1013
|
-
return
|
|
1178
|
+
return _context18.stop();
|
|
1014
1179
|
}
|
|
1015
|
-
},
|
|
1180
|
+
}, _callee18, this);
|
|
1016
1181
|
}));
|
|
1017
|
-
function restartRegistration(
|
|
1182
|
+
function restartRegistration(_x13) {
|
|
1018
1183
|
return _restartRegistration.apply(this, arguments);
|
|
1019
1184
|
}
|
|
1020
1185
|
return restartRegistration;
|
|
@@ -1028,23 +1193,23 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1028
1193
|
}, {
|
|
1029
1194
|
key: "handleConnectionRestoration",
|
|
1030
1195
|
value: (function () {
|
|
1031
|
-
var _handleConnectionRestoration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
1196
|
+
var _handleConnectionRestoration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee20(retry) {
|
|
1032
1197
|
var _this6 = this;
|
|
1033
|
-
return _regenerator.default.wrap(function (
|
|
1034
|
-
while (1) switch (
|
|
1198
|
+
return _regenerator.default.wrap(function (_context20) {
|
|
1199
|
+
while (1) switch (_context20.prev = _context20.next) {
|
|
1035
1200
|
case 0:
|
|
1036
1201
|
_Logger.default.info(_constants.METHOD_START_MESSAGE, {
|
|
1037
1202
|
method: _constants2.METHODS.HANDLE_CONNECTION_RESTORATION,
|
|
1038
1203
|
file: _constants2.REGISTRATION_FILE
|
|
1039
1204
|
});
|
|
1040
|
-
|
|
1041
|
-
return this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
1205
|
+
_context20.next = 1;
|
|
1206
|
+
return this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee19() {
|
|
1042
1207
|
var abort;
|
|
1043
|
-
return _regenerator.default.wrap(function (
|
|
1044
|
-
while (1) switch (
|
|
1208
|
+
return _regenerator.default.wrap(function (_context19) {
|
|
1209
|
+
while (1) switch (_context19.prev = _context19.next) {
|
|
1045
1210
|
case 0:
|
|
1046
1211
|
if (!retry) {
|
|
1047
|
-
|
|
1212
|
+
_context19.next = 4;
|
|
1048
1213
|
break;
|
|
1049
1214
|
}
|
|
1050
1215
|
_Logger.default.log('Network is up again, re-registering with Webex Calling if needed', {
|
|
@@ -1053,43 +1218,43 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1053
1218
|
});
|
|
1054
1219
|
_this6.clearKeepaliveTimer();
|
|
1055
1220
|
if (!_this6.isDeviceRegistered()) {
|
|
1056
|
-
|
|
1221
|
+
_context19.next = 1;
|
|
1057
1222
|
break;
|
|
1058
1223
|
}
|
|
1059
|
-
|
|
1224
|
+
_context19.next = 1;
|
|
1060
1225
|
return _this6.deregister();
|
|
1061
1226
|
case 1:
|
|
1062
1227
|
if (!_this6.activeMobiusUrl) {
|
|
1063
|
-
|
|
1228
|
+
_context19.next = 3;
|
|
1064
1229
|
break;
|
|
1065
1230
|
}
|
|
1066
|
-
|
|
1231
|
+
_context19.next = 2;
|
|
1067
1232
|
return _this6.restorePreviousRegistration(_constants2.METHODS.HANDLE_CONNECTION_RESTORATION);
|
|
1068
1233
|
case 2:
|
|
1069
|
-
abort =
|
|
1234
|
+
abort = _context19.sent;
|
|
1070
1235
|
if (!(!abort && !_this6.isDeviceRegistered())) {
|
|
1071
|
-
|
|
1236
|
+
_context19.next = 3;
|
|
1072
1237
|
break;
|
|
1073
1238
|
}
|
|
1074
|
-
|
|
1239
|
+
_context19.next = 3;
|
|
1075
1240
|
return _this6.restartRegistration(_constants2.METHODS.HANDLE_CONNECTION_RESTORATION);
|
|
1076
1241
|
case 3:
|
|
1077
1242
|
retry = false;
|
|
1078
1243
|
case 4:
|
|
1079
1244
|
case "end":
|
|
1080
|
-
return
|
|
1245
|
+
return _context19.stop();
|
|
1081
1246
|
}
|
|
1082
|
-
},
|
|
1247
|
+
}, _callee19);
|
|
1083
1248
|
})));
|
|
1084
1249
|
case 1:
|
|
1085
|
-
return
|
|
1250
|
+
return _context20.abrupt("return", retry);
|
|
1086
1251
|
case 2:
|
|
1087
1252
|
case "end":
|
|
1088
|
-
return
|
|
1253
|
+
return _context20.stop();
|
|
1089
1254
|
}
|
|
1090
|
-
},
|
|
1255
|
+
}, _callee20, this);
|
|
1091
1256
|
}));
|
|
1092
|
-
function handleConnectionRestoration(
|
|
1257
|
+
function handleConnectionRestoration(_x14) {
|
|
1093
1258
|
return _handleConnectionRestoration.apply(this, arguments);
|
|
1094
1259
|
}
|
|
1095
1260
|
return handleConnectionRestoration;
|
|
@@ -1105,53 +1270,53 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1105
1270
|
value: function restoreRegistrationCallBack() {
|
|
1106
1271
|
var _this7 = this;
|
|
1107
1272
|
return /*#__PURE__*/function () {
|
|
1108
|
-
var _ref1 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
1273
|
+
var _ref1 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee21(restoreData, caller) {
|
|
1109
1274
|
var logContext, restore, finalError;
|
|
1110
|
-
return _regenerator.default.wrap(function (
|
|
1111
|
-
while (1) switch (
|
|
1275
|
+
return _regenerator.default.wrap(function (_context21) {
|
|
1276
|
+
while (1) switch (_context21.prev = _context21.next) {
|
|
1112
1277
|
case 0:
|
|
1113
1278
|
logContext = {
|
|
1114
1279
|
file: _constants2.REGISTRATION_FILE,
|
|
1115
1280
|
method: caller
|
|
1116
1281
|
};
|
|
1117
1282
|
if (_this7.isRegRetry()) {
|
|
1118
|
-
|
|
1283
|
+
_context21.next = 4;
|
|
1119
1284
|
break;
|
|
1120
1285
|
}
|
|
1121
1286
|
_Logger.default.info('Registration restoration in progress.', logContext);
|
|
1122
1287
|
restore = _this7.getExistingDevice(restoreData);
|
|
1123
1288
|
if (!restore) {
|
|
1124
|
-
|
|
1289
|
+
_context21.next = 3;
|
|
1125
1290
|
break;
|
|
1126
1291
|
}
|
|
1127
1292
|
_this7.setRegRetry(true);
|
|
1128
|
-
|
|
1293
|
+
_context21.next = 1;
|
|
1129
1294
|
return _this7.deregister();
|
|
1130
1295
|
case 1:
|
|
1131
|
-
|
|
1296
|
+
_context21.next = 2;
|
|
1132
1297
|
return _this7.restorePreviousRegistration(caller);
|
|
1133
1298
|
case 2:
|
|
1134
|
-
finalError =
|
|
1299
|
+
finalError = _context21.sent;
|
|
1135
1300
|
_this7.setRegRetry(false);
|
|
1136
1301
|
if (_this7.isDeviceRegistered()) {
|
|
1137
1302
|
_Logger.default.info('Registration restored successfully.', logContext);
|
|
1138
1303
|
}
|
|
1139
|
-
return
|
|
1304
|
+
return _context21.abrupt("return", finalError);
|
|
1140
1305
|
case 3:
|
|
1141
|
-
_this7.lineEmitter(
|
|
1142
|
-
|
|
1306
|
+
_this7.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
|
|
1307
|
+
_context21.next = 5;
|
|
1143
1308
|
break;
|
|
1144
1309
|
case 4:
|
|
1145
|
-
_this7.lineEmitter(
|
|
1310
|
+
_this7.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
|
|
1146
1311
|
case 5:
|
|
1147
|
-
return
|
|
1312
|
+
return _context21.abrupt("return", false);
|
|
1148
1313
|
case 6:
|
|
1149
1314
|
case "end":
|
|
1150
|
-
return
|
|
1315
|
+
return _context21.stop();
|
|
1151
1316
|
}
|
|
1152
|
-
},
|
|
1317
|
+
}, _callee21);
|
|
1153
1318
|
}));
|
|
1154
|
-
return function (
|
|
1319
|
+
return function (_x15, _x16) {
|
|
1155
1320
|
return _ref1.apply(this, arguments);
|
|
1156
1321
|
};
|
|
1157
1322
|
}();
|
|
@@ -1164,39 +1329,51 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1164
1329
|
}, {
|
|
1165
1330
|
key: "triggerRegistration",
|
|
1166
1331
|
value: (function () {
|
|
1167
|
-
var _triggerRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
1168
|
-
var abort;
|
|
1169
|
-
return _regenerator.default.wrap(function (
|
|
1170
|
-
while (1) switch (
|
|
1332
|
+
var _triggerRegistration = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee22() {
|
|
1333
|
+
var loggerContext, abort;
|
|
1334
|
+
return _regenerator.default.wrap(function (_context22) {
|
|
1335
|
+
while (1) switch (_context22.prev = _context22.next) {
|
|
1171
1336
|
case 0:
|
|
1172
|
-
|
|
1337
|
+
loggerContext = {
|
|
1338
|
+
file: _constants2.REGISTRATION_FILE,
|
|
1339
|
+
method: _constants2.METHODS.TRIGGER_REGISTRATION
|
|
1340
|
+
};
|
|
1341
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, loggerContext);
|
|
1342
|
+
_context22.next = 1;
|
|
1173
1343
|
return this.resumeFailover();
|
|
1174
1344
|
case 1:
|
|
1175
|
-
if (!
|
|
1176
|
-
|
|
1345
|
+
if (!_context22.sent) {
|
|
1346
|
+
_context22.next = 2;
|
|
1177
1347
|
break;
|
|
1178
1348
|
}
|
|
1179
|
-
|
|
1349
|
+
_Logger.default.info('Registration trigger handled by resumeFailover path', loggerContext);
|
|
1350
|
+
return _context22.abrupt("return");
|
|
1180
1351
|
case 2:
|
|
1181
1352
|
if (!(this.primaryMobiusUris.length > 0)) {
|
|
1182
|
-
|
|
1353
|
+
_context22.next = 5;
|
|
1183
1354
|
break;
|
|
1184
1355
|
}
|
|
1185
|
-
|
|
1356
|
+
_context22.next = 3;
|
|
1186
1357
|
return this.attemptRegistrationWithServers(_constants2.REGISTRATION_UTIL, this.primaryMobiusUris);
|
|
1187
1358
|
case 3:
|
|
1188
|
-
abort =
|
|
1359
|
+
abort = _context22.sent;
|
|
1189
1360
|
if (!(!this.isDeviceRegistered() && !abort)) {
|
|
1190
|
-
|
|
1361
|
+
_context22.next = 4;
|
|
1191
1362
|
break;
|
|
1192
1363
|
}
|
|
1193
|
-
|
|
1364
|
+
_context22.next = 4;
|
|
1194
1365
|
return this.startFailoverTimer();
|
|
1195
1366
|
case 4:
|
|
1367
|
+
_Logger.default.log("triggerRegistration completed - deviceRegistered: ".concat(this.isDeviceRegistered(), ", abort: ").concat(abort), loggerContext);
|
|
1368
|
+
_context22.next = 6;
|
|
1369
|
+
break;
|
|
1370
|
+
case 5:
|
|
1371
|
+
_Logger.default.warn('triggerRegistration skipped: no primary Mobius URIs available', loggerContext);
|
|
1372
|
+
case 6:
|
|
1196
1373
|
case "end":
|
|
1197
|
-
return
|
|
1374
|
+
return _context22.stop();
|
|
1198
1375
|
}
|
|
1199
|
-
},
|
|
1376
|
+
}, _callee22, this);
|
|
1200
1377
|
}));
|
|
1201
1378
|
function triggerRegistration() {
|
|
1202
1379
|
return _triggerRegistration.apply(this, arguments);
|
|
@@ -1215,160 +1392,199 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1215
1392
|
}, {
|
|
1216
1393
|
key: "attemptRegistrationWithServers",
|
|
1217
1394
|
value: (function () {
|
|
1218
|
-
var _attemptRegistrationWithServers = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
1395
|
+
var _attemptRegistrationWithServers = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee23(caller) {
|
|
1219
1396
|
var _this8 = this;
|
|
1220
1397
|
var servers,
|
|
1398
|
+
loggerContext,
|
|
1221
1399
|
abort,
|
|
1400
|
+
connectedWebSocketUrl,
|
|
1222
1401
|
_iterator2,
|
|
1223
1402
|
_step2,
|
|
1224
1403
|
_loop,
|
|
1225
1404
|
_ret,
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
return _regenerator.default.wrap(function (
|
|
1229
|
-
while (1) switch (
|
|
1405
|
+
_args24 = arguments,
|
|
1406
|
+
_t6;
|
|
1407
|
+
return _regenerator.default.wrap(function (_context24) {
|
|
1408
|
+
while (1) switch (_context24.prev = _context24.next) {
|
|
1230
1409
|
case 0:
|
|
1231
|
-
servers =
|
|
1410
|
+
servers = _args24.length > 1 && _args24[1] !== undefined ? _args24[1] : this.primaryMobiusUris;
|
|
1411
|
+
loggerContext = {
|
|
1412
|
+
file: _constants2.REGISTRATION_FILE,
|
|
1413
|
+
method: _constants2.REGISTER_UTIL
|
|
1414
|
+
};
|
|
1232
1415
|
abort = false;
|
|
1233
1416
|
this.retryAfter = undefined;
|
|
1234
1417
|
if (!this.failoverImmediately) {
|
|
1235
|
-
|
|
1418
|
+
_context24.next = 1;
|
|
1236
1419
|
break;
|
|
1237
1420
|
}
|
|
1238
|
-
return
|
|
1421
|
+
return _context24.abrupt("return", abort);
|
|
1239
1422
|
case 1:
|
|
1240
1423
|
if (!this.isDeviceRegistered()) {
|
|
1241
|
-
|
|
1424
|
+
_context24.next = 2;
|
|
1242
1425
|
break;
|
|
1243
1426
|
}
|
|
1244
|
-
_Logger.default.info("[".concat(caller, "] : Device already registered with : ").concat(this.activeMobiusUrl),
|
|
1245
|
-
|
|
1246
|
-
method: _constants2.REGISTER_UTIL
|
|
1247
|
-
});
|
|
1248
|
-
return _context22.abrupt("return", abort);
|
|
1427
|
+
_Logger.default.info("[".concat(caller, "] : Device already registered with : ").concat(this.activeMobiusUrl), loggerContext);
|
|
1428
|
+
return _context24.abrupt("return", abort);
|
|
1249
1429
|
case 2:
|
|
1430
|
+
/*
|
|
1431
|
+
* Align the active transport with this server group. When the Mobius socket is enabled
|
|
1432
|
+
* but a group has no WSS URL, CallingClient hands us its HTTP URIs instead; routing those
|
|
1433
|
+
* over the socket would fail, so toggle the transport from the group's URL scheme. This
|
|
1434
|
+
* keeps every socket-gated path below (connect, teardown, makeRequest) consistent for the
|
|
1435
|
+
* group being registered, while primary and backup are resolved independently.
|
|
1436
|
+
*/
|
|
1437
|
+
if (servers.length) {
|
|
1438
|
+
this.apiRequest.setSocketEnabled(servers[0].startsWith('wss://'));
|
|
1439
|
+
}
|
|
1250
1440
|
_iterator2 = _createForOfIteratorHelper(servers);
|
|
1251
|
-
|
|
1441
|
+
_context24.prev = 3;
|
|
1252
1442
|
_loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
|
|
1253
|
-
var _this8$
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
while (1) switch (_context21.prev = _context21.next) {
|
|
1443
|
+
var url, serverType, _this8$deviceInfo$dev, _resp$headers, _resp$headers$trackin, _resp$headers2, _this8$deviceInfo$dev2, wssNormalizedUrl, resp, body, _yield$handleRegistra, finalError, shouldDisconnect, _t5;
|
|
1444
|
+
return _regenerator.default.wrap(function (_context23) {
|
|
1445
|
+
while (1) switch (_context23.prev = _context23.next) {
|
|
1257
1446
|
case 0:
|
|
1258
1447
|
url = _step2.value;
|
|
1259
|
-
serverType = _this8.
|
|
1260
|
-
|
|
1448
|
+
serverType = _this8.getServerType(url);
|
|
1449
|
+
_context23.prev = 1;
|
|
1261
1450
|
abort = false;
|
|
1262
|
-
_this8.registrationStatus =
|
|
1263
|
-
_this8.lineEmitter(
|
|
1264
|
-
_Logger.default.info("[".concat(caller, "] : Mobius url to contact: ").concat(url),
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1451
|
+
_this8.registrationStatus = _types3.RegistrationStatus.INACTIVE;
|
|
1452
|
+
_this8.lineEmitter(_types4.LINE_EVENTS.CONNECTING);
|
|
1453
|
+
_Logger.default.info("[".concat(caller, "] : Mobius url to contact: ").concat(url), loggerContext);
|
|
1454
|
+
if (!_this8.apiRequest.isSocketEnabled()) {
|
|
1455
|
+
_context23.next = 3;
|
|
1456
|
+
break;
|
|
1457
|
+
}
|
|
1458
|
+
wssNormalizedUrl = url.endsWith('/') ? url.slice(0, -1) : url;
|
|
1459
|
+
_Logger.default.info("[".concat(caller, "] : Connecting to Mobius WebSocket - serverType: ").concat(serverType, ", wssUrl: ").concat(wssNormalizedUrl), loggerContext);
|
|
1460
|
+
|
|
1268
1461
|
// eslint-disable-next-line no-await-in-loop
|
|
1269
|
-
|
|
1270
|
-
return _this8.
|
|
1462
|
+
_context23.next = 2;
|
|
1463
|
+
return _this8.apiRequest.connectToMobiusSocket(wssNormalizedUrl);
|
|
1271
1464
|
case 2:
|
|
1272
|
-
|
|
1465
|
+
connectedWebSocketUrl = _context23.sent;
|
|
1466
|
+
connectedWebSocketUrl = connectedWebSocketUrl ? "".concat(connectedWebSocketUrl, "/") : undefined;
|
|
1467
|
+
_Logger.default.log("[".concat(caller, "] : Mobius WebSocket connected - serverType: ").concat(serverType, ", connectedWebSocketUrl: ").concat(connectedWebSocketUrl), loggerContext);
|
|
1468
|
+
case 3:
|
|
1469
|
+
_context23.next = 4;
|
|
1470
|
+
return _this8.postRegistration(url);
|
|
1471
|
+
case 4:
|
|
1472
|
+
resp = _context23.sent;
|
|
1273
1473
|
_this8.clearFailoverState();
|
|
1274
1474
|
_this8.deviceInfo = resp.body;
|
|
1275
|
-
_this8.registrationStatus =
|
|
1276
|
-
_this8.setActiveMobiusUrl(url);
|
|
1277
|
-
_this8.lineEmitter(
|
|
1278
|
-
_Logger.default.log("Registration successful for deviceId: ".concat((_this8$deviceInfo$dev = _this8.deviceInfo.device) === null || _this8$deviceInfo$dev === void 0 ? void 0 : _this8$deviceInfo$dev.deviceId, " userId: ").concat(_this8.userId, " responseTrackingId: ").concat((_resp$headers = resp.headers) === null || _resp$headers === void 0 ? void 0 : _resp$headers.trackingid),
|
|
1279
|
-
file: _constants2.REGISTRATION_FILE,
|
|
1280
|
-
method: _constants2.METHODS.REGISTER
|
|
1281
|
-
});
|
|
1475
|
+
_this8.registrationStatus = _types3.RegistrationStatus.ACTIVE;
|
|
1476
|
+
_this8.setActiveMobiusUrl(connectedWebSocketUrl || url);
|
|
1477
|
+
_this8.lineEmitter(_types4.LINE_EVENTS.REGISTERED, resp.body);
|
|
1478
|
+
_Logger.default.log("Registration successful for deviceId: ".concat((_this8$deviceInfo$dev = _this8.deviceInfo.device) === null || _this8$deviceInfo$dev === void 0 ? void 0 : _this8$deviceInfo$dev.deviceId, " userId: ").concat(_this8.userId, " responseTrackingId: ").concat((_resp$headers = resp.headers) === null || _resp$headers === void 0 ? void 0 : _resp$headers.trackingid), loggerContext);
|
|
1282
1479
|
_this8.setIntervalValues(_this8.deviceInfo);
|
|
1283
1480
|
_this8.metricManager.setDeviceInfo(_this8.deviceInfo);
|
|
1284
1481
|
_this8.metricManager.submitRegistrationMetric(_types.METRIC_EVENT.REGISTRATION, _types.REG_ACTION.REGISTER, _types.METRIC_TYPE.BEHAVIORAL, caller, serverType, (_resp$headers$trackin = (_resp$headers2 = resp.headers) === null || _resp$headers2 === void 0 ? void 0 : _resp$headers2.trackingid) !== null && _resp$headers$trackin !== void 0 ? _resp$headers$trackin : '', undefined, undefined);
|
|
1285
1482
|
_this8.startKeepaliveTimer((_this8$deviceInfo$dev2 = _this8.deviceInfo.device) === null || _this8$deviceInfo$dev2 === void 0 ? void 0 : _this8$deviceInfo$dev2.uri, _this8.deviceInfo.keepaliveInterval, serverType);
|
|
1286
1483
|
_this8.initiateFailback();
|
|
1287
|
-
return
|
|
1288
|
-
case
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
body =
|
|
1292
|
-
|
|
1293
|
-
return (0, _common.handleRegistrationErrors)(body, function (clientError,
|
|
1484
|
+
return _context23.abrupt("return", 0);
|
|
1485
|
+
case 5:
|
|
1486
|
+
_context23.prev = 5;
|
|
1487
|
+
_t5 = _context23["catch"](1);
|
|
1488
|
+
body = _t5; // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-unused-vars
|
|
1489
|
+
_context23.next = 6;
|
|
1490
|
+
return (0, _common.handleRegistrationErrors)(body, function (clientError, isFinalError) {
|
|
1294
1491
|
var _body$headers$trackin, _body$headers;
|
|
1295
|
-
if (
|
|
1296
|
-
_this8.lineEmitter(
|
|
1492
|
+
if (isFinalError) {
|
|
1493
|
+
_this8.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
|
|
1297
1494
|
} else {
|
|
1298
|
-
_this8.lineEmitter(
|
|
1495
|
+
_this8.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
|
|
1299
1496
|
}
|
|
1300
1497
|
_this8.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);
|
|
1301
1498
|
}, {
|
|
1302
1499
|
method: caller,
|
|
1303
1500
|
file: _constants2.REGISTRATION_FILE
|
|
1304
|
-
},
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1501
|
+
}, {
|
|
1502
|
+
retry429Cb: function retry429Cb(retryAfter, retryCaller) {
|
|
1503
|
+
return _this8.handle429Retry(retryAfter, retryCaller);
|
|
1504
|
+
},
|
|
1505
|
+
restoreRegCb: _this8.restoreRegistrationCallBack()
|
|
1506
|
+
}, servers.length);
|
|
1507
|
+
case 6:
|
|
1508
|
+
_yield$handleRegistra = _context23.sent;
|
|
1509
|
+
finalError = _yield$handleRegistra.finalError;
|
|
1510
|
+
shouldDisconnect = _yield$handleRegistra.shouldDisconnect;
|
|
1511
|
+
abort = finalError;
|
|
1512
|
+
if (!(_this8.registrationStatus === _types3.RegistrationStatus.ACTIVE)) {
|
|
1513
|
+
_context23.next = 7;
|
|
1311
1514
|
break;
|
|
1312
1515
|
}
|
|
1313
|
-
_Logger.default.info("[".concat(caller, "] : Device is already restored, active mobius url: ").concat(_this8.activeMobiusUrl),
|
|
1314
|
-
|
|
1315
|
-
|
|
1516
|
+
_Logger.default.info("[".concat(caller, "] : Device is already restored, active mobius url: ").concat(_this8.activeMobiusUrl), loggerContext);
|
|
1517
|
+
return _context23.abrupt("return", 0);
|
|
1518
|
+
case 7:
|
|
1519
|
+
if (!(shouldDisconnect && _this8.apiRequest.isSocketEnabled())) {
|
|
1520
|
+
_context23.next = 9;
|
|
1521
|
+
break;
|
|
1522
|
+
}
|
|
1523
|
+
connectedWebSocketUrl = undefined;
|
|
1524
|
+
_Logger.default.info("[".concat(caller, "] : Tearing down Mobius WebSocket after registration error - serverType: ").concat(serverType), loggerContext);
|
|
1525
|
+
|
|
1526
|
+
// eslint-disable-next-line no-await-in-loop
|
|
1527
|
+
_context23.next = 8;
|
|
1528
|
+
return _this8.apiRequest.disconnectFromMobiusSocket({
|
|
1529
|
+
code: 3050,
|
|
1530
|
+
reason: 'done (permanent)'
|
|
1316
1531
|
});
|
|
1317
|
-
|
|
1318
|
-
|
|
1532
|
+
case 8:
|
|
1533
|
+
_Logger.default.log("[".concat(caller, "] : Mobius WebSocket disconnect complete after registration error - serverType: ").concat(serverType), loggerContext);
|
|
1534
|
+
case 9:
|
|
1319
1535
|
if (!abort) {
|
|
1320
|
-
|
|
1536
|
+
_context23.next = 11;
|
|
1321
1537
|
break;
|
|
1322
1538
|
}
|
|
1323
|
-
_this8.setStatus(
|
|
1539
|
+
_this8.setStatus(_types3.RegistrationStatus.INACTIVE);
|
|
1324
1540
|
// eslint-disable-next-line no-await-in-loop
|
|
1325
|
-
|
|
1541
|
+
_context23.next = 10;
|
|
1326
1542
|
return (0, _common.uploadLogs)();
|
|
1327
|
-
case
|
|
1328
|
-
return
|
|
1329
|
-
case
|
|
1543
|
+
case 10:
|
|
1544
|
+
return _context23.abrupt("return", 0);
|
|
1545
|
+
case 11:
|
|
1330
1546
|
case "end":
|
|
1331
|
-
return
|
|
1547
|
+
return _context23.stop();
|
|
1332
1548
|
}
|
|
1333
|
-
}, _loop, null, [[1,
|
|
1549
|
+
}, _loop, null, [[1, 5]]);
|
|
1334
1550
|
});
|
|
1335
1551
|
_iterator2.s();
|
|
1336
1552
|
case 4:
|
|
1337
1553
|
if ((_step2 = _iterator2.n()).done) {
|
|
1338
|
-
|
|
1554
|
+
_context24.next = 7;
|
|
1339
1555
|
break;
|
|
1340
1556
|
}
|
|
1341
|
-
return
|
|
1557
|
+
return _context24.delegateYield(_loop(), "t0", 5);
|
|
1342
1558
|
case 5:
|
|
1343
|
-
_ret =
|
|
1559
|
+
_ret = _context24.t0;
|
|
1344
1560
|
if (!(_ret === 0)) {
|
|
1345
|
-
|
|
1561
|
+
_context24.next = 6;
|
|
1346
1562
|
break;
|
|
1347
1563
|
}
|
|
1348
|
-
return
|
|
1564
|
+
return _context24.abrupt("continue", 7);
|
|
1349
1565
|
case 6:
|
|
1350
|
-
|
|
1566
|
+
_context24.next = 4;
|
|
1351
1567
|
break;
|
|
1352
1568
|
case 7:
|
|
1353
|
-
|
|
1569
|
+
_context24.next = 9;
|
|
1354
1570
|
break;
|
|
1355
1571
|
case 8:
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
_iterator2.e(
|
|
1572
|
+
_context24.prev = 8;
|
|
1573
|
+
_t6 = _context24["catch"](3);
|
|
1574
|
+
_iterator2.e(_t6);
|
|
1359
1575
|
case 9:
|
|
1360
|
-
|
|
1576
|
+
_context24.prev = 9;
|
|
1361
1577
|
_iterator2.f();
|
|
1362
|
-
return
|
|
1578
|
+
return _context24.finish(9);
|
|
1363
1579
|
case 10:
|
|
1364
|
-
return
|
|
1580
|
+
return _context24.abrupt("return", abort);
|
|
1365
1581
|
case 11:
|
|
1366
1582
|
case "end":
|
|
1367
|
-
return
|
|
1583
|
+
return _context24.stop();
|
|
1368
1584
|
}
|
|
1369
|
-
},
|
|
1585
|
+
}, _callee23, this, [[3, 8, 9, 10]]);
|
|
1370
1586
|
}));
|
|
1371
|
-
function attemptRegistrationWithServers(
|
|
1587
|
+
function attemptRegistrationWithServers(_x17) {
|
|
1372
1588
|
return _attemptRegistrationWithServers.apply(this, arguments);
|
|
1373
1589
|
}
|
|
1374
1590
|
return attemptRegistrationWithServers;
|
|
@@ -1381,132 +1597,168 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1381
1597
|
}, {
|
|
1382
1598
|
key: "startKeepaliveTimer",
|
|
1383
1599
|
value: (function () {
|
|
1384
|
-
var _startKeepaliveTimer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
1600
|
+
var _startKeepaliveTimer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee26(url, interval, serverType) {
|
|
1385
1601
|
var _this9 = this;
|
|
1386
1602
|
var RETRY_COUNT_THRESHOLD;
|
|
1387
|
-
return _regenerator.default.wrap(function (
|
|
1388
|
-
while (1) switch (
|
|
1603
|
+
return _regenerator.default.wrap(function (_context27) {
|
|
1604
|
+
while (1) switch (_context27.prev = _context27.next) {
|
|
1389
1605
|
case 0:
|
|
1390
1606
|
this.clearKeepaliveTimer();
|
|
1391
1607
|
RETRY_COUNT_THRESHOLD = this.isCCFlow ? 4 : 5;
|
|
1392
|
-
|
|
1393
|
-
return this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
1394
|
-
var
|
|
1395
|
-
return _regenerator.default.wrap(function (
|
|
1396
|
-
while (1) switch (
|
|
1608
|
+
_context27.next = 1;
|
|
1609
|
+
return this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
|
1610
|
+
var blob, blobUrl;
|
|
1611
|
+
return _regenerator.default.wrap(function (_context26) {
|
|
1612
|
+
while (1) switch (_context26.prev = _context26.next) {
|
|
1397
1613
|
case 0:
|
|
1398
|
-
if (
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
if (!(event.data.type === _types2.WorkerMessageType.KEEPALIVE_FAILURE)) {
|
|
1436
|
-
_context23.next = 7;
|
|
1614
|
+
if (_this9.isDeviceRegistered()) {
|
|
1615
|
+
if (!_this9.webWorker) {
|
|
1616
|
+
blob = new Blob([_webWorkerStr.default], {
|
|
1617
|
+
type: 'application/javascript'
|
|
1618
|
+
});
|
|
1619
|
+
blobUrl = URL.createObjectURL(blob);
|
|
1620
|
+
_this9.webWorker = new Worker(blobUrl);
|
|
1621
|
+
URL.revokeObjectURL(blobUrl);
|
|
1622
|
+
_this9.webWorker.postMessage({
|
|
1623
|
+
type: _types3.WorkerMessageType.START_KEEPALIVE,
|
|
1624
|
+
interval: interval,
|
|
1625
|
+
retryCountThreshold: RETRY_COUNT_THRESHOLD
|
|
1626
|
+
});
|
|
1627
|
+
_this9.webWorker.onmessage = /*#__PURE__*/function () {
|
|
1628
|
+
var _ref11 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee24(event) {
|
|
1629
|
+
var logContext, _this9$webWorker, res, _err$headers, _this9$webWorker2, error, _error, _yield$handleRegistra2, abort, handledByCallback, _t7;
|
|
1630
|
+
return _regenerator.default.wrap(function (_context25) {
|
|
1631
|
+
while (1) switch (_context25.prev = _context25.next) {
|
|
1632
|
+
case 0:
|
|
1633
|
+
logContext = {
|
|
1634
|
+
file: _constants2.REGISTRATION_FILE,
|
|
1635
|
+
method: _constants2.KEEPALIVE_UTIL
|
|
1636
|
+
};
|
|
1637
|
+
if (!(event.data.type === _types3.WorkerMessageType.SEND_KEEPALIVE)) {
|
|
1638
|
+
_context25.next = 4;
|
|
1639
|
+
break;
|
|
1640
|
+
}
|
|
1641
|
+
_context25.prev = 1;
|
|
1642
|
+
_context25.next = 2;
|
|
1643
|
+
return _this9.postKeepAlive(String(_this9.webex.internal.device.url), url);
|
|
1644
|
+
case 2:
|
|
1645
|
+
res = _context25.sent;
|
|
1646
|
+
(_this9$webWorker = _this9.webWorker) === null || _this9$webWorker === void 0 ? void 0 : _this9$webWorker.postMessage({
|
|
1647
|
+
type: _types3.WorkerMessageType.KEEPALIVE_RESULT,
|
|
1648
|
+
statusCode: res.statusCode
|
|
1649
|
+
});
|
|
1650
|
+
_context25.next = 4;
|
|
1437
1651
|
break;
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1652
|
+
case 3:
|
|
1653
|
+
_context25.prev = 3;
|
|
1654
|
+
_t7 = _context25["catch"](1);
|
|
1655
|
+
error = {
|
|
1656
|
+
headers: {
|
|
1657
|
+
trackingid: (_err$headers = _t7.headers) === null || _err$headers === void 0 ? void 0 : _err$headers.trackingid,
|
|
1658
|
+
'retry-after': _t7.headers['retry-after']
|
|
1659
|
+
},
|
|
1660
|
+
statusCode: _t7.statusCode,
|
|
1661
|
+
statusText: _t7.statusText,
|
|
1662
|
+
type: _t7.type
|
|
1663
|
+
};
|
|
1664
|
+
(_this9$webWorker2 = _this9.webWorker) === null || _this9$webWorker2 === void 0 ? void 0 : _this9$webWorker2.postMessage({
|
|
1665
|
+
type: _types3.WorkerMessageType.KEEPALIVE_RESULT,
|
|
1666
|
+
err: error
|
|
1667
|
+
});
|
|
1668
|
+
case 4:
|
|
1669
|
+
if (event.data.type === _types3.WorkerMessageType.KEEPALIVE_SUCCESS) {
|
|
1670
|
+
_Logger.default.info("Sent Keepalive, status: ".concat(event.data.statusCode), logContext);
|
|
1671
|
+
_this9.lineEmitter(_types4.LINE_EVENTS.RECONNECTED);
|
|
1672
|
+
}
|
|
1673
|
+
if (!(event.data.type === _types3.WorkerMessageType.KEEPALIVE_FAILURE)) {
|
|
1674
|
+
_context25.next = 12;
|
|
1675
|
+
break;
|
|
1446
1676
|
}
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1677
|
+
_error = event.data.err;
|
|
1678
|
+
_Logger.default.warn("Keep-alive missed ".concat(event.data.keepAliveRetryCount, " times. Status -> ").concat(_error.statusCode, " "), logContext);
|
|
1679
|
+
_context25.next = 5;
|
|
1680
|
+
return (0, _common.handleRegistrationErrors)(_error, function (clientError, finalError) {
|
|
1681
|
+
var _error$headers$tracki2, _error$headers2;
|
|
1682
|
+
if (finalError) {
|
|
1683
|
+
_this9.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
|
|
1684
|
+
}
|
|
1685
|
+
_this9.metricManager.submitRegistrationMetric(_types.METRIC_EVENT.KEEPALIVE_ERROR, _types.REG_ACTION.KEEPALIVE_FAILURE, _types.METRIC_TYPE.BEHAVIORAL, _constants2.KEEPALIVE_UTIL, serverType, (_error$headers$tracki2 = (_error$headers2 = _error.headers) === null || _error$headers2 === void 0 ? void 0 : _error$headers2.trackingid) !== null && _error$headers$tracki2 !== void 0 ? _error$headers$tracki2 : '', event.data.keepAliveRetryCount, clientError);
|
|
1686
|
+
}, {
|
|
1687
|
+
method: _constants2.KEEPALIVE_UTIL,
|
|
1688
|
+
file: _constants2.REGISTRATION_FILE
|
|
1689
|
+
}, {
|
|
1690
|
+
retry429Cb: function retry429Cb(retryAfter, retryCaller) {
|
|
1691
|
+
return _this9.handle429Retry(retryAfter, retryCaller);
|
|
1692
|
+
},
|
|
1693
|
+
sessionSupersededCb: function sessionSupersededCb(clientError) {
|
|
1694
|
+
return _this9.handle409KeepaliveFailure(clientError, _error, serverType, event.data.keepAliveRetryCount);
|
|
1695
|
+
}
|
|
1696
|
+
});
|
|
1697
|
+
case 5:
|
|
1698
|
+
_yield$handleRegistra2 = _context25.sent;
|
|
1699
|
+
abort = _yield$handleRegistra2.finalError;
|
|
1700
|
+
handledByCallback = _yield$handleRegistra2.handledByCallback;
|
|
1701
|
+
if (!handledByCallback) {
|
|
1702
|
+
_context25.next = 6;
|
|
1703
|
+
break;
|
|
1704
|
+
}
|
|
1705
|
+
return _context25.abrupt("return");
|
|
1706
|
+
case 6:
|
|
1707
|
+
if (!(abort || event.data.keepAliveRetryCount >= RETRY_COUNT_THRESHOLD)) {
|
|
1708
|
+
_context25.next = 11;
|
|
1709
|
+
break;
|
|
1710
|
+
}
|
|
1711
|
+
_this9.failoverImmediately = _this9.isCCFlow;
|
|
1712
|
+
_this9.setStatus(_types3.RegistrationStatus.INACTIVE);
|
|
1713
|
+
_this9.clearKeepaliveTimer();
|
|
1714
|
+
_this9.clearFailbackTimer();
|
|
1715
|
+
_this9.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
|
|
1716
|
+
_context25.next = 7;
|
|
1717
|
+
return (0, _common.uploadLogs)();
|
|
1718
|
+
case 7:
|
|
1719
|
+
if (abort) {
|
|
1720
|
+
_context25.next = 9;
|
|
1721
|
+
break;
|
|
1722
|
+
}
|
|
1723
|
+
_context25.next = 8;
|
|
1724
|
+
return _this9.reconnectOnFailure(_constants2.RECONNECT_ON_FAILURE_UTIL);
|
|
1725
|
+
case 8:
|
|
1726
|
+
_context25.next = 10;
|
|
1458
1727
|
break;
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
_context23.next = 2;
|
|
1466
|
-
return (0, _common.uploadLogs)();
|
|
1467
|
-
case 2:
|
|
1468
|
-
if (abort) {
|
|
1469
|
-
_context23.next = 4;
|
|
1728
|
+
case 9:
|
|
1729
|
+
if (_error.statusCode === 404) {
|
|
1730
|
+
_this9.handle404KeepaliveFailure(_constants2.KEEPALIVE_UTIL);
|
|
1731
|
+
}
|
|
1732
|
+
case 10:
|
|
1733
|
+
_context25.next = 12;
|
|
1470
1734
|
break;
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
case 6:
|
|
1485
|
-
_this9.lineEmitter(_types3.LINE_EVENTS.RECONNECTING);
|
|
1486
|
-
case 7:
|
|
1487
|
-
case "end":
|
|
1488
|
-
return _context23.stop();
|
|
1489
|
-
}
|
|
1490
|
-
}, _callee22);
|
|
1491
|
-
}));
|
|
1492
|
-
return function (_x15) {
|
|
1493
|
-
return _ref11.apply(this, arguments);
|
|
1494
|
-
};
|
|
1495
|
-
}();
|
|
1735
|
+
case 11:
|
|
1736
|
+
_this9.lineEmitter(_types4.LINE_EVENTS.RECONNECTING);
|
|
1737
|
+
case 12:
|
|
1738
|
+
case "end":
|
|
1739
|
+
return _context25.stop();
|
|
1740
|
+
}
|
|
1741
|
+
}, _callee24, null, [[1, 3]]);
|
|
1742
|
+
}));
|
|
1743
|
+
return function (_x21) {
|
|
1744
|
+
return _ref11.apply(this, arguments);
|
|
1745
|
+
};
|
|
1746
|
+
}();
|
|
1747
|
+
}
|
|
1496
1748
|
}
|
|
1497
|
-
case
|
|
1749
|
+
case 1:
|
|
1498
1750
|
case "end":
|
|
1499
|
-
return
|
|
1751
|
+
return _context26.stop();
|
|
1500
1752
|
}
|
|
1501
|
-
},
|
|
1753
|
+
}, _callee25);
|
|
1502
1754
|
})));
|
|
1503
1755
|
case 1:
|
|
1504
1756
|
case "end":
|
|
1505
|
-
return
|
|
1757
|
+
return _context27.stop();
|
|
1506
1758
|
}
|
|
1507
|
-
},
|
|
1759
|
+
}, _callee26, this);
|
|
1508
1760
|
}));
|
|
1509
|
-
function startKeepaliveTimer(
|
|
1761
|
+
function startKeepaliveTimer(_x18, _x19, _x20) {
|
|
1510
1762
|
return _startKeepaliveTimer.apply(this, arguments);
|
|
1511
1763
|
}
|
|
1512
1764
|
return startKeepaliveTimer;
|
|
@@ -1520,7 +1772,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1520
1772
|
value: function clearKeepaliveTimer() {
|
|
1521
1773
|
if (this.webWorker) {
|
|
1522
1774
|
this.webWorker.postMessage({
|
|
1523
|
-
type:
|
|
1775
|
+
type: _types3.WorkerMessageType.CLEAR_KEEPALIVE
|
|
1524
1776
|
});
|
|
1525
1777
|
this.webWorker.terminate();
|
|
1526
1778
|
this.webWorker = undefined;
|
|
@@ -1534,37 +1786,54 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1534
1786
|
}, {
|
|
1535
1787
|
key: "deregister",
|
|
1536
1788
|
value: function () {
|
|
1537
|
-
var _deregister = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
1538
|
-
var
|
|
1539
|
-
|
|
1540
|
-
|
|
1789
|
+
var _deregister = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee27() {
|
|
1790
|
+
var closeMobiusWss,
|
|
1791
|
+
loggerContext,
|
|
1792
|
+
_this$deviceInfo$devi2,
|
|
1793
|
+
_this$deviceInfo$devi3,
|
|
1794
|
+
_args28 = arguments,
|
|
1795
|
+
_t8;
|
|
1796
|
+
return _regenerator.default.wrap(function (_context28) {
|
|
1797
|
+
while (1) switch (_context28.prev = _context28.next) {
|
|
1541
1798
|
case 0:
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
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);
|
|
1545
|
-
case 1:
|
|
1546
|
-
_Logger.default.log('Registration successfully deregistered', {
|
|
1799
|
+
closeMobiusWss = _args28.length > 0 && _args28[0] !== undefined ? _args28[0] : false;
|
|
1800
|
+
loggerContext = {
|
|
1547
1801
|
file: _constants2.REGISTRATION_FILE,
|
|
1548
1802
|
method: _constants2.METHODS.DEREGISTER
|
|
1549
|
-
}
|
|
1550
|
-
|
|
1551
|
-
|
|
1803
|
+
};
|
|
1804
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, loggerContext);
|
|
1805
|
+
_context28.prev = 1;
|
|
1806
|
+
_context28.next = 2;
|
|
1807
|
+
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);
|
|
1552
1808
|
case 2:
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
file: _constants2.REGISTRATION_FILE,
|
|
1557
|
-
method: _constants2.METHODS.DEREGISTER
|
|
1558
|
-
});
|
|
1809
|
+
_Logger.default.log('Registration successfully deregistered', loggerContext);
|
|
1810
|
+
_context28.next = 4;
|
|
1811
|
+
break;
|
|
1559
1812
|
case 3:
|
|
1813
|
+
_context28.prev = 3;
|
|
1814
|
+
_t8 = _context28["catch"](1);
|
|
1815
|
+
_Logger.default.warn("Delete failed with Mobius: ".concat((0, _stringify.default)(_t8)), loggerContext);
|
|
1816
|
+
case 4:
|
|
1817
|
+
if (!closeMobiusWss) {
|
|
1818
|
+
_context28.next = 6;
|
|
1819
|
+
break;
|
|
1820
|
+
}
|
|
1821
|
+
_context28.next = 5;
|
|
1822
|
+
return this.apiRequest.disconnectFromMobiusSocket({
|
|
1823
|
+
code: 3050,
|
|
1824
|
+
reason: 'done (permanent)'
|
|
1825
|
+
});
|
|
1826
|
+
case 5:
|
|
1827
|
+
_Logger.default.log('Mobius socket disconnect complete after deregistration', loggerContext);
|
|
1828
|
+
case 6:
|
|
1560
1829
|
this.clearKeepaliveTimer();
|
|
1561
|
-
this.setStatus(
|
|
1830
|
+
this.setStatus(_types3.RegistrationStatus.INACTIVE);
|
|
1562
1831
|
this.clearFailoverState();
|
|
1563
|
-
case
|
|
1832
|
+
case 7:
|
|
1564
1833
|
case "end":
|
|
1565
|
-
return
|
|
1834
|
+
return _context28.stop();
|
|
1566
1835
|
}
|
|
1567
|
-
},
|
|
1836
|
+
}, _callee27, this, [[1, 3]]);
|
|
1568
1837
|
}));
|
|
1569
1838
|
function deregister() {
|
|
1570
1839
|
return _deregister.apply(this, arguments);
|
|
@@ -1609,8 +1878,12 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1609
1878
|
};
|
|
1610
1879
|
var stringToReplace = "".concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "/").concat(restoreData.devices[0].deviceId);
|
|
1611
1880
|
var uri = restoreData.devices[0].uri.replace(stringToReplace, '');
|
|
1881
|
+
if (this.apiRequest.isSocketEnabled()) {
|
|
1882
|
+
uri = uri.replace('https://', 'wss://');
|
|
1883
|
+
uri = !uri.endsWith('/') ? "".concat(uri, "/") : uri;
|
|
1884
|
+
}
|
|
1612
1885
|
this.setActiveMobiusUrl(uri);
|
|
1613
|
-
this.registrationStatus =
|
|
1886
|
+
this.registrationStatus = _types3.RegistrationStatus.ACTIVE;
|
|
1614
1887
|
return true;
|
|
1615
1888
|
}
|
|
1616
1889
|
return false;
|
|
@@ -1628,10 +1901,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1628
1901
|
}, {
|
|
1629
1902
|
key: "reconnectOnFailure",
|
|
1630
1903
|
value: (function () {
|
|
1631
|
-
var _reconnectOnFailure = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
1904
|
+
var _reconnectOnFailure = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee28(caller) {
|
|
1632
1905
|
var abort;
|
|
1633
|
-
return _regenerator.default.wrap(function (
|
|
1634
|
-
while (1) switch (
|
|
1906
|
+
return _regenerator.default.wrap(function (_context29) {
|
|
1907
|
+
while (1) switch (_context29.prev = _context29.next) {
|
|
1635
1908
|
case 0:
|
|
1636
1909
|
_Logger.default.info(_constants.METHOD_START_MESSAGE, {
|
|
1637
1910
|
method: _constants2.METHODS.RECONNECT_ON_FAILURE,
|
|
@@ -1639,25 +1912,25 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1639
1912
|
});
|
|
1640
1913
|
this.reconnectPending = false;
|
|
1641
1914
|
if (this.isDeviceRegistered()) {
|
|
1642
|
-
|
|
1915
|
+
_context29.next = 4;
|
|
1643
1916
|
break;
|
|
1644
1917
|
}
|
|
1645
1918
|
if (!((0, _keys.default)(this.callManager.getActiveCalls()).length === 0)) {
|
|
1646
|
-
|
|
1919
|
+
_context29.next = 3;
|
|
1647
1920
|
break;
|
|
1648
1921
|
}
|
|
1649
|
-
|
|
1922
|
+
_context29.next = 1;
|
|
1650
1923
|
return this.restorePreviousRegistration(caller);
|
|
1651
1924
|
case 1:
|
|
1652
|
-
abort =
|
|
1925
|
+
abort = _context29.sent;
|
|
1653
1926
|
if (!(!abort && !this.isDeviceRegistered())) {
|
|
1654
|
-
|
|
1927
|
+
_context29.next = 2;
|
|
1655
1928
|
break;
|
|
1656
1929
|
}
|
|
1657
|
-
|
|
1930
|
+
_context29.next = 2;
|
|
1658
1931
|
return this.restartRegistration(caller);
|
|
1659
1932
|
case 2:
|
|
1660
|
-
|
|
1933
|
+
_context29.next = 4;
|
|
1661
1934
|
break;
|
|
1662
1935
|
case 3:
|
|
1663
1936
|
this.reconnectPending = true;
|
|
@@ -1667,14 +1940,134 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1667
1940
|
});
|
|
1668
1941
|
case 4:
|
|
1669
1942
|
case "end":
|
|
1670
|
-
return
|
|
1943
|
+
return _context29.stop();
|
|
1671
1944
|
}
|
|
1672
|
-
},
|
|
1945
|
+
}, _callee28, this);
|
|
1673
1946
|
}));
|
|
1674
|
-
function reconnectOnFailure(
|
|
1947
|
+
function reconnectOnFailure(_x22) {
|
|
1675
1948
|
return _reconnectOnFailure.apply(this, arguments);
|
|
1676
1949
|
}
|
|
1677
1950
|
return reconnectOnFailure;
|
|
1951
|
+
}()
|
|
1952
|
+
/**
|
|
1953
|
+
* Handles an async REGISTRATION_DOWN event emitted by Mobius. Ends the first
|
|
1954
|
+
* active call (if any) and runs registration-side cleanup.
|
|
1955
|
+
*
|
|
1956
|
+
* @param event - The Mobius async event payload (trackingId/eventId used for logs).
|
|
1957
|
+
*/
|
|
1958
|
+
)
|
|
1959
|
+
}, {
|
|
1960
|
+
key: "handleRegistrationDownEvent",
|
|
1961
|
+
value: (function () {
|
|
1962
|
+
var _handleRegistrationDownEvent = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee29(event) {
|
|
1963
|
+
var _event$trackingId, _event$eventId;
|
|
1964
|
+
var loggerContext, _Object$values, _Object$values2, activeCall;
|
|
1965
|
+
return _regenerator.default.wrap(function (_context30) {
|
|
1966
|
+
while (1) switch (_context30.prev = _context30.next) {
|
|
1967
|
+
case 0:
|
|
1968
|
+
loggerContext = {
|
|
1969
|
+
file: _constants2.REGISTRATION_FILE,
|
|
1970
|
+
method: _constants2.METHODS.HANDLE_REGISTRATION_DOWN_EVENT
|
|
1971
|
+
};
|
|
1972
|
+
_Logger.default.info("Registration down received - trackingId: ".concat((_event$trackingId = event === null || event === void 0 ? void 0 : event.trackingId) !== null && _event$trackingId !== void 0 ? _event$trackingId : 'unknown', ", eventId: ").concat((_event$eventId = event === null || event === void 0 ? void 0 : event.eventId) !== null && _event$eventId !== void 0 ? _event$eventId : 'unknown'), loggerContext);
|
|
1973
|
+
_Object$values = (0, _values.default)(this.callManager.getActiveCalls()), _Object$values2 = (0, _slicedToArray2.default)(_Object$values, 1), activeCall = _Object$values2[0];
|
|
1974
|
+
activeCall === null || activeCall === void 0 ? void 0 : activeCall.end();
|
|
1975
|
+
_context30.next = 1;
|
|
1976
|
+
return this.registrationCleanup(_constants2.METHODS.HANDLE_REGISTRATION_DOWN_EVENT, {
|
|
1977
|
+
reason: _types2.HARD_STOP_REASON.REGISTRATION_DOWN
|
|
1978
|
+
});
|
|
1979
|
+
case 1:
|
|
1980
|
+
case "end":
|
|
1981
|
+
return _context30.stop();
|
|
1982
|
+
}
|
|
1983
|
+
}, _callee29, this);
|
|
1984
|
+
}));
|
|
1985
|
+
function handleRegistrationDownEvent(_x23) {
|
|
1986
|
+
return _handleRegistrationDownEvent.apply(this, arguments);
|
|
1987
|
+
}
|
|
1988
|
+
return handleRegistrationDownEvent;
|
|
1989
|
+
}()
|
|
1990
|
+
/**
|
|
1991
|
+
* Cleans up registration-side state for a hard stop, i.e. a registration that is gone
|
|
1992
|
+
* and must not be re-established by the SDK (Mobius registration-down event, or a
|
|
1993
|
+
* session superseded by another registration for the same user).
|
|
1994
|
+
*
|
|
1995
|
+
* Stops timers, resets transient flags, clears failover cache, sets status to
|
|
1996
|
+
* INACTIVE, tears down the Mobius WebSocket (when enabled), and finally emits
|
|
1997
|
+
* `LINE_EVENTS.UNREGISTERED` so the SDK consumer is notified. A superseded session
|
|
1998
|
+
* carries its `LineError` on that event as the reason the line will stay unregistered.
|
|
1999
|
+
*
|
|
2000
|
+
* Runs under the shared mutex to avoid racing with other registration flows.
|
|
2001
|
+
*
|
|
2002
|
+
* @param caller - Identifier of the caller, used for logs.
|
|
2003
|
+
* @param hardStop - Why the registration is being torn down as {@link HardStop}.
|
|
2004
|
+
*/
|
|
2005
|
+
)
|
|
2006
|
+
}, {
|
|
2007
|
+
key: "registrationCleanup",
|
|
2008
|
+
value: (function () {
|
|
2009
|
+
var _registrationCleanup = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee31(caller, hardStop) {
|
|
2010
|
+
var _this0 = this;
|
|
2011
|
+
var loggerContext;
|
|
2012
|
+
return _regenerator.default.wrap(function (_context32) {
|
|
2013
|
+
while (1) switch (_context32.prev = _context32.next) {
|
|
2014
|
+
case 0:
|
|
2015
|
+
loggerContext = {
|
|
2016
|
+
file: _constants2.REGISTRATION_FILE,
|
|
2017
|
+
method: caller
|
|
2018
|
+
};
|
|
2019
|
+
_Logger.default.info("[".concat(caller, "] : Running ").concat(hardStop.reason, " cleanup"), loggerContext);
|
|
2020
|
+
_context32.next = 1;
|
|
2021
|
+
return this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee30() {
|
|
2022
|
+
var _t9;
|
|
2023
|
+
return _regenerator.default.wrap(function (_context31) {
|
|
2024
|
+
while (1) switch (_context31.prev = _context31.next) {
|
|
2025
|
+
case 0:
|
|
2026
|
+
_this0.clearFailbackTimer();
|
|
2027
|
+
_this0.clearKeepaliveTimer();
|
|
2028
|
+
_this0.reconnectPending = false;
|
|
2029
|
+
_this0.scheduled429Retry = false;
|
|
2030
|
+
_this0.failoverImmediately = false;
|
|
2031
|
+
_this0.retryAfter = undefined;
|
|
2032
|
+
_this0.registerRetry = false;
|
|
2033
|
+
_this0.clearFailoverState();
|
|
2034
|
+
_this0.setStatus(_types3.RegistrationStatus.INACTIVE);
|
|
2035
|
+
if (!_this0.apiRequest.isSocketEnabled()) {
|
|
2036
|
+
_context31.next = 4;
|
|
2037
|
+
break;
|
|
2038
|
+
}
|
|
2039
|
+
_context31.prev = 1;
|
|
2040
|
+
_context31.next = 2;
|
|
2041
|
+
return _this0.apiRequest.disconnectFromMobiusSocket({
|
|
2042
|
+
code: 3050,
|
|
2043
|
+
reason: 'done (permanent)'
|
|
2044
|
+
});
|
|
2045
|
+
case 2:
|
|
2046
|
+
_Logger.default.log("Mobius socket disconnect complete after ".concat(hardStop.reason), loggerContext);
|
|
2047
|
+
_context31.next = 4;
|
|
2048
|
+
break;
|
|
2049
|
+
case 3:
|
|
2050
|
+
_context31.prev = 3;
|
|
2051
|
+
_t9 = _context31["catch"](1);
|
|
2052
|
+
_Logger.default.warn("Mobius socket disconnect failed after ".concat(hardStop.reason, ": ").concat(String(_t9)), loggerContext);
|
|
2053
|
+
case 4:
|
|
2054
|
+
_this0.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED, undefined, hardStop.error);
|
|
2055
|
+
case 5:
|
|
2056
|
+
case "end":
|
|
2057
|
+
return _context31.stop();
|
|
2058
|
+
}
|
|
2059
|
+
}, _callee30, null, [[1, 3]]);
|
|
2060
|
+
})));
|
|
2061
|
+
case 1:
|
|
2062
|
+
case "end":
|
|
2063
|
+
return _context32.stop();
|
|
2064
|
+
}
|
|
2065
|
+
}, _callee31, this);
|
|
2066
|
+
}));
|
|
2067
|
+
function registrationCleanup(_x24, _x25) {
|
|
2068
|
+
return _registrationCleanup.apply(this, arguments);
|
|
2069
|
+
}
|
|
2070
|
+
return registrationCleanup;
|
|
1678
2071
|
}())
|
|
1679
2072
|
}]);
|
|
1680
2073
|
}();
|