@webex/calling 3.0.0-next.9 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallHistory/CallHistory.js +48 -48
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/CallHistory.test.js +9 -0
- package/dist/CallHistory/CallHistory.test.js.map +1 -1
- package/dist/CallHistory/callHistoryFixtures.js +63 -7
- package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
- package/dist/CallHistory/constants.js +9 -18
- package/dist/CallHistory/constants.js.map +1 -1
- package/dist/CallSettings/CallSettings.js +18 -13
- package/dist/CallSettings/CallSettings.js.map +1 -1
- package/dist/CallSettings/CallSettings.test.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.js +7 -8
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +69 -37
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.js +19 -13
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.test.js +2 -2
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/constants.js +11 -22
- package/dist/CallSettings/constants.js.map +1 -1
- package/dist/CallSettings/testFixtures.js +4 -8
- package/dist/CallSettings/testFixtures.js.map +1 -1
- package/dist/CallSettings/types.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +108 -64
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +170 -109
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/callRecordFixtures.js +2 -4
- package/dist/CallingClient/callRecordFixtures.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/index.js +9 -29
- package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
- package/dist/CallingClient/calling/call.js +136 -70
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +651 -409
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.js +3 -5
- package/dist/CallingClient/calling/callManager.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +1 -1
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/calling/types.js +31 -33
- package/dist/CallingClient/calling/types.js.map +1 -1
- package/dist/CallingClient/callingClientFixtures.js +107 -17
- package/dist/CallingClient/callingClientFixtures.js.map +1 -1
- package/dist/CallingClient/constants.js +101 -193
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/index.js +18 -17
- package/dist/CallingClient/line/index.js.map +1 -1
- package/dist/CallingClient/line/line.test.js +13 -13
- package/dist/CallingClient/line/line.test.js.map +1 -1
- package/dist/CallingClient/line/types.js +7 -14
- package/dist/CallingClient/line/types.js.map +1 -1
- package/dist/CallingClient/registration/register.js +90 -71
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +33 -32
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/CallingClient/registration/registerFixtures.js +5 -10
- package/dist/CallingClient/registration/registerFixtures.js.map +1 -1
- package/dist/CallingClient/registration/types.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +30 -19
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +4 -4
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Contacts/constants.js +10 -18
- package/dist/Contacts/constants.js.map +1 -1
- package/dist/Contacts/contactFixtures.js +26 -52
- package/dist/Contacts/contactFixtures.js.map +1 -1
- package/dist/Contacts/types.js +29 -9
- package/dist/Contacts/types.js.map +1 -1
- package/dist/Errors/catalog/CallError.js +3 -5
- package/dist/Errors/catalog/CallError.js.map +1 -1
- package/dist/Errors/catalog/CallingDeviceError.js +4 -6
- package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
- package/dist/Errors/catalog/ExtendedError.js +2 -3
- package/dist/Errors/catalog/ExtendedError.js.map +1 -1
- package/dist/Errors/catalog/LineError.js +5 -7
- package/dist/Errors/catalog/LineError.js.map +1 -1
- package/dist/Errors/index.js +7 -0
- package/dist/Errors/index.js.map +1 -1
- package/dist/Errors/types.js +15 -20
- package/dist/Errors/types.js.map +1 -1
- package/dist/Events/impl/index.js +2 -3
- package/dist/Events/impl/index.js.map +1 -1
- package/dist/Events/types.js +44 -52
- package/dist/Events/types.js.map +1 -1
- package/dist/Logger/index.js +1 -2
- package/dist/Logger/index.js.map +1 -1
- package/dist/Logger/index.test.js.map +1 -1
- package/dist/Logger/types.js +9 -12
- package/dist/Logger/types.js.map +1 -1
- package/dist/Metrics/index.js +2 -4
- package/dist/Metrics/index.js.map +1 -1
- package/dist/Metrics/index.test.js +3 -3
- package/dist/Metrics/index.test.js.map +1 -1
- package/dist/Metrics/types.js +15 -20
- package/dist/Metrics/types.js.map +1 -1
- package/dist/SDKConnector/index.js +1 -2
- package/dist/SDKConnector/index.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/SDKConnector/utils.js +1 -2
- package/dist/SDKConnector/utils.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.js +21 -12
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.test.js +2 -2
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.js +19 -11
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.test.js +5 -4
- package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/Voicemail.js +17 -12
- package/dist/Voicemail/Voicemail.js.map +1 -1
- package/dist/Voicemail/Voicemail.test.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js +17 -10
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.test.js +4 -4
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/constants.js +29 -58
- package/dist/Voicemail/constants.js.map +1 -1
- package/dist/Voicemail/voicemailFixture.js +35 -70
- package/dist/Voicemail/voicemailFixture.js.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/common/Utils.js +18 -25
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +3 -3
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/constants.js +41 -82
- package/dist/common/constants.js.map +1 -1
- package/dist/common/testUtil.js +12 -21
- package/dist/common/testUtil.js.map +1 -1
- package/dist/common/types.js +34 -43
- package/dist/common/types.js.map +1 -1
- package/dist/index.js +246 -0
- package/dist/index.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +7 -5
- package/dist/module/CallHistory/callHistoryFixtures.js +59 -0
- package/dist/module/CallSettings/UcmBackendConnector.js +4 -4
- package/dist/module/CallingClient/CallingClient.js +59 -42
- package/dist/module/CallingClient/calling/CallerId/index.js +3 -23
- package/dist/module/CallingClient/calling/call.js +69 -26
- package/dist/module/CallingClient/callingClientFixtures.js +119 -1
- package/dist/module/CallingClient/constants.js +8 -4
- package/dist/module/CallingClient/line/index.js +9 -12
- package/dist/module/CallingClient/line/types.js +0 -5
- package/dist/module/CallingClient/registration/register.js +28 -20
- package/dist/module/Errors/catalog/CallingDeviceError.js +2 -2
- package/dist/module/Errors/catalog/LineError.js +2 -2
- package/dist/module/Errors/index.js +1 -0
- package/dist/module/Events/types.js +2 -0
- package/dist/module/common/Utils.js +14 -19
- package/dist/module/common/testUtil.js +2 -1
- package/dist/module/common/types.js +6 -5
- package/dist/module/index.js +9 -0
- package/dist/types/CallHistory/CallHistory.d.ts +2 -1
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallHistory/callHistoryFixtures.d.ts +1 -0
- package/dist/types/CallHistory/callHistoryFixtures.d.ts.map +1 -1
- package/dist/types/CallSettings/UcmBackendConnector.d.ts +1 -1
- package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/types.d.ts +1 -0
- package/dist/types/CallSettings/types.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts +2 -0
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/CallerId/index.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts +2 -0
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/types.d.ts +1 -0
- package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
- package/dist/types/CallingClient/callingClientFixtures.d.ts +69 -1
- package/dist/types/CallingClient/callingClientFixtures.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +7 -3
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/line/index.d.ts +6 -6
- package/dist/types/CallingClient/line/index.d.ts.map +1 -1
- package/dist/types/CallingClient/line/types.d.ts +5 -17
- package/dist/types/CallingClient/line/types.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +3 -3
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/types.d.ts +3 -3
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts +1 -1
- package/dist/types/Errors/catalog/CallingDeviceError.d.ts +4 -4
- package/dist/types/Errors/catalog/CallingDeviceError.d.ts.map +1 -1
- package/dist/types/Errors/catalog/LineError.d.ts +4 -4
- package/dist/types/Errors/catalog/LineError.d.ts.map +1 -1
- package/dist/types/Errors/index.d.ts +1 -0
- package/dist/types/Errors/index.d.ts.map +1 -1
- package/dist/types/Errors/types.d.ts +2 -3
- package/dist/types/Errors/types.d.ts.map +1 -1
- package/dist/types/Events/types.d.ts +28 -5
- package/dist/types/Events/types.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +2 -1
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/Voicemail/UcmBackendConnector.d.ts +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts +1 -1
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +1 -0
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +3 -2
- package/dist/types/common/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
|
|
4
4
|
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
5
|
+
var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
|
|
6
|
+
var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
|
|
7
|
+
var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
|
|
8
|
+
var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
|
|
5
9
|
var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
|
|
6
10
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
7
11
|
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
@@ -33,13 +37,15 @@ var _Logger = _interopRequireDefault(require("../Logger"));
|
|
|
33
37
|
var _callManager = require("./calling/callManager");
|
|
34
38
|
var _constants = require("./constants");
|
|
35
39
|
var _line = _interopRequireDefault(require("./line"));
|
|
36
|
-
var _types4 = require("
|
|
37
|
-
var _types5 = require("../Metrics/types");
|
|
40
|
+
var _types4 = require("../Metrics/types");
|
|
38
41
|
var _Metrics = require("../Metrics");
|
|
39
|
-
function _getRequireWildcardCache(
|
|
40
|
-
function _interopRequireWildcard(
|
|
42
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
43
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
44
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
45
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
46
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
41
47
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
42
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
48
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable no-underscore-dangle */ /* eslint-disable valid-jsdoc */ /* eslint-disable @typescript-eslint/no-shadow */
|
|
43
49
|
/**
|
|
44
50
|
* The `CallingClient` module provides a set of APIs for line registration and calling functionalities within the SDK.
|
|
45
51
|
*
|
|
@@ -50,7 +56,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
|
|
|
50
56
|
* const callingClient = createClient(webex, callingConfig);
|
|
51
57
|
* ```
|
|
52
58
|
*/
|
|
53
|
-
var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
59
|
+
var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
54
60
|
(0, _inherits2.default)(CallingClient, _Eventing);
|
|
55
61
|
var _super = _createSuper(CallingClient);
|
|
56
62
|
/**
|
|
@@ -69,6 +75,8 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
69
75
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sdkConfig", void 0);
|
|
70
76
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "primaryMobiusUris", void 0);
|
|
71
77
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "backupMobiusUris", void 0);
|
|
78
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mobiusClusters", void 0);
|
|
79
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mobiusHost", void 0);
|
|
72
80
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaEngine", void 0);
|
|
73
81
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "lineDict", {});
|
|
74
82
|
/**
|
|
@@ -135,6 +143,8 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
135
143
|
_this.mediaEngine = Media;
|
|
136
144
|
_this.primaryMobiusUris = [];
|
|
137
145
|
_this.backupMobiusUris = [];
|
|
146
|
+
_this.mobiusClusters = _this.webex.internal.services._hostCatalog[_constants.MOBIUS_US_PROD] || _this.webex.internal.services._hostCatalog[_constants.MOBIUS_EU_PROD] || _this.webex.internal.services._hostCatalog[_constants.MOBIUS_US_INT] || _this.webex.internal.services._hostCatalog[_constants.MOBIUS_EU_INT];
|
|
147
|
+
_this.mobiusHost = '';
|
|
138
148
|
_this.registerSessionsListener();
|
|
139
149
|
_Logger.default.setLogger(logLevel, _constants.CALLING_CLIENT_FILE);
|
|
140
150
|
_this.registerCallsClearedListener();
|
|
@@ -186,7 +196,7 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
186
196
|
*/
|
|
187
197
|
}, {
|
|
188
198
|
key: "detectNetworkChange",
|
|
189
|
-
value: function () {
|
|
199
|
+
value: (function () {
|
|
190
200
|
var _detectNetworkChange = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
191
201
|
var _this2 = this;
|
|
192
202
|
var retry, line;
|
|
@@ -205,19 +215,26 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
205
215
|
file: _constants.CALLING_CLIENT_FILE,
|
|
206
216
|
method: _this2.detectNetworkChange.name
|
|
207
217
|
});
|
|
208
|
-
line.lineEmitter(_types4.LINE_EVENTS.UNREGISTERED);
|
|
209
218
|
line.registration.clearKeepaliveTimer();
|
|
210
219
|
retry = true;
|
|
211
220
|
}
|
|
212
221
|
if (!(retry && _this2.webex.internal.mercury.connected)) {
|
|
213
|
-
_context4.next =
|
|
222
|
+
_context4.next = 9;
|
|
223
|
+
break;
|
|
224
|
+
}
|
|
225
|
+
if (!(line.getStatus() !== _types3.RegistrationStatus.IDLE)) {
|
|
226
|
+
_context4.next = 8;
|
|
214
227
|
break;
|
|
215
228
|
}
|
|
216
|
-
_context4.next =
|
|
229
|
+
_context4.next = 5;
|
|
217
230
|
return line.registration.handleConnectionRestoration(retry);
|
|
218
|
-
case 4:
|
|
219
|
-
retry = _context4.sent;
|
|
220
231
|
case 5:
|
|
232
|
+
retry = _context4.sent;
|
|
233
|
+
_context4.next = 9;
|
|
234
|
+
break;
|
|
235
|
+
case 8:
|
|
236
|
+
retry = false;
|
|
237
|
+
case 9:
|
|
221
238
|
case "end":
|
|
222
239
|
return _context4.stop();
|
|
223
240
|
}
|
|
@@ -237,46 +254,56 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
237
254
|
/**
|
|
238
255
|
* Fetches countryCode and region of the client.
|
|
239
256
|
*/
|
|
257
|
+
)
|
|
240
258
|
}, {
|
|
241
259
|
key: "getClientRegionInfo",
|
|
242
|
-
value: function () {
|
|
260
|
+
value: (function () {
|
|
243
261
|
var _getClientRegionInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
244
262
|
var _this3 = this;
|
|
245
|
-
var regionInfo,
|
|
263
|
+
var regionInfo, _iterator, _step, mobius, temp, myIP, response, clientRegionInfo;
|
|
246
264
|
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
247
265
|
while (1) switch (_context6.prev = _context6.next) {
|
|
248
266
|
case 0:
|
|
249
267
|
regionInfo = {};
|
|
250
|
-
|
|
251
|
-
_context6.
|
|
268
|
+
_iterator = _createForOfIteratorHelper(this.mobiusClusters);
|
|
269
|
+
_context6.prev = 2;
|
|
270
|
+
_iterator.s();
|
|
271
|
+
case 4:
|
|
272
|
+
if ((_step = _iterator.n()).done) {
|
|
273
|
+
_context6.next = 28;
|
|
274
|
+
break;
|
|
275
|
+
}
|
|
276
|
+
mobius = _step.value;
|
|
277
|
+
this.mobiusHost = "https://".concat(mobius.host).concat(_constants.API_V1);
|
|
278
|
+
_context6.prev = 7;
|
|
279
|
+
_context6.next = 10;
|
|
252
280
|
return this.webex.request({
|
|
253
|
-
uri: "".concat(this.
|
|
281
|
+
uri: "".concat(this.mobiusHost).concat(_constants.URL_ENDPOINT).concat(_constants.IP_ENDPOINT),
|
|
254
282
|
method: _types3.HTTP_METHODS.GET,
|
|
255
|
-
headers: (
|
|
283
|
+
headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.CISCO_DEVICE_URL, this.webex.internal.device.url), _constants.SPARK_USER_AGENT, _constants.CALLING_USER_AGENT),
|
|
256
284
|
service: _types3.ALLOWED_SERVICES.MOBIUS
|
|
257
285
|
});
|
|
258
|
-
case
|
|
286
|
+
case 10:
|
|
259
287
|
temp = _context6.sent;
|
|
260
|
-
myIP = temp.body.ipv4;
|
|
261
|
-
_context6.next =
|
|
288
|
+
myIP = temp.body.ipv4; // eslint-disable-next-line no-await-in-loop
|
|
289
|
+
_context6.next = 14;
|
|
262
290
|
return this.webex.request({
|
|
263
291
|
uri: "".concat(_constants.DISCOVERY_URL, "/").concat(myIP),
|
|
264
292
|
method: _types3.HTTP_METHODS.GET,
|
|
265
293
|
addAuthHeader: false,
|
|
266
294
|
headers: (0, _defineProperty2.default)({}, _constants.SPARK_USER_AGENT, null)
|
|
267
295
|
});
|
|
268
|
-
case
|
|
296
|
+
case 14:
|
|
269
297
|
response = _context6.sent;
|
|
270
298
|
clientRegionInfo = response.body;
|
|
271
299
|
regionInfo.clientRegion = clientRegionInfo !== null && clientRegionInfo !== void 0 && clientRegionInfo.clientRegion ? clientRegionInfo.clientRegion : '';
|
|
272
300
|
regionInfo.countryCode = clientRegionInfo !== null && clientRegionInfo !== void 0 && clientRegionInfo.countryCode ? clientRegionInfo.countryCode : '';
|
|
273
|
-
_context6.
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
_context6.
|
|
277
|
-
_context6.t0 = _context6["catch"](1);
|
|
301
|
+
return _context6.abrupt("break", 28);
|
|
302
|
+
case 21:
|
|
303
|
+
_context6.prev = 21;
|
|
304
|
+
_context6.t0 = _context6["catch"](7);
|
|
278
305
|
(0, _Utils.handleCallingClientErrors)(_context6.t0, function (clientError) {
|
|
279
|
-
_this3.metricManager.submitRegistrationMetric(
|
|
306
|
+
_this3.metricManager.submitRegistrationMetric(_types4.METRIC_EVENT.REGISTRATION_ERROR, _types4.REG_ACTION.REGISTER, _types4.METRIC_TYPE.BEHAVIORAL, clientError);
|
|
280
307
|
_this3.emit(_types2.CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);
|
|
281
308
|
}, {
|
|
282
309
|
method: _constants.GET_MOBIUS_SERVERS_UTIL,
|
|
@@ -284,13 +311,27 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
284
311
|
});
|
|
285
312
|
regionInfo.clientRegion = '';
|
|
286
313
|
regionInfo.countryCode = '';
|
|
287
|
-
case
|
|
314
|
+
case 26:
|
|
315
|
+
_context6.next = 4;
|
|
316
|
+
break;
|
|
317
|
+
case 28:
|
|
318
|
+
_context6.next = 33;
|
|
319
|
+
break;
|
|
320
|
+
case 30:
|
|
321
|
+
_context6.prev = 30;
|
|
322
|
+
_context6.t1 = _context6["catch"](2);
|
|
323
|
+
_iterator.e(_context6.t1);
|
|
324
|
+
case 33:
|
|
325
|
+
_context6.prev = 33;
|
|
326
|
+
_iterator.f();
|
|
327
|
+
return _context6.finish(33);
|
|
328
|
+
case 36:
|
|
288
329
|
return _context6.abrupt("return", regionInfo);
|
|
289
|
-
case
|
|
330
|
+
case 37:
|
|
290
331
|
case "end":
|
|
291
332
|
return _context6.stop();
|
|
292
333
|
}
|
|
293
|
-
}, _callee6, this, [[
|
|
334
|
+
}, _callee6, this, [[2, 30, 33, 36], [7, 21]]);
|
|
294
335
|
}));
|
|
295
336
|
function getClientRegionInfo() {
|
|
296
337
|
return _getClientRegionInfo.apply(this, arguments);
|
|
@@ -300,16 +341,17 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
300
341
|
/**
|
|
301
342
|
* Local method for finding the mobius servers.
|
|
302
343
|
*/
|
|
344
|
+
)
|
|
303
345
|
}, {
|
|
304
346
|
key: "getMobiusServers",
|
|
305
|
-
value: function () {
|
|
347
|
+
value: (function () {
|
|
306
348
|
var _getMobiusServers = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
|
|
307
349
|
var _this$sdkConfig3,
|
|
308
350
|
_this$sdkConfig3$disc,
|
|
309
351
|
_this$sdkConfig4,
|
|
310
352
|
_this$sdkConfig4$disc,
|
|
311
353
|
_this4 = this;
|
|
312
|
-
var useDefault, clientRegion, countryCode, _this$sdkConfig5, _this$sdkConfig5$disc, _this$sdkConfig6, _this$sdkConfig6$disc, regionInfo,
|
|
354
|
+
var useDefault, clientRegion, countryCode, _this$sdkConfig5, _this$sdkConfig5$disc, _this$sdkConfig6, _this$sdkConfig6$disc, regionInfo, temp, mobiusServers, mobiusUris;
|
|
313
355
|
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
314
356
|
while (1) switch (_context7.prev = _context7.next) {
|
|
315
357
|
case 0:
|
|
@@ -322,7 +364,7 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
322
364
|
*/
|
|
323
365
|
useDefault = false;
|
|
324
366
|
if (!((_this$sdkConfig3 = this.sdkConfig) !== null && _this$sdkConfig3 !== void 0 && (_this$sdkConfig3$disc = _this$sdkConfig3.discovery) !== null && _this$sdkConfig3$disc !== void 0 && _this$sdkConfig3$disc.country && (_this$sdkConfig4 = this.sdkConfig) !== null && _this$sdkConfig4 !== void 0 && (_this$sdkConfig4$disc = _this$sdkConfig4.discovery) !== null && _this$sdkConfig4$disc !== void 0 && _this$sdkConfig4$disc.region)) {
|
|
325
|
-
_context7.next =
|
|
367
|
+
_context7.next = 8;
|
|
326
368
|
break;
|
|
327
369
|
}
|
|
328
370
|
_Logger.default.info('Updating region and country from the SDK config', {
|
|
@@ -331,75 +373,77 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
331
373
|
});
|
|
332
374
|
clientRegion = (_this$sdkConfig5 = this.sdkConfig) === null || _this$sdkConfig5 === void 0 ? void 0 : (_this$sdkConfig5$disc = _this$sdkConfig5.discovery) === null || _this$sdkConfig5$disc === void 0 ? void 0 : _this$sdkConfig5$disc.region;
|
|
333
375
|
countryCode = (_this$sdkConfig6 = this.sdkConfig) === null || _this$sdkConfig6 === void 0 ? void 0 : (_this$sdkConfig6$disc = _this$sdkConfig6.discovery) === null || _this$sdkConfig6$disc === void 0 ? void 0 : _this$sdkConfig6$disc.country;
|
|
334
|
-
|
|
376
|
+
this.mobiusHost = this.webex.internal.services._serviceUrls.mobius;
|
|
377
|
+
_context7.next = 14;
|
|
335
378
|
break;
|
|
336
|
-
case
|
|
379
|
+
case 8:
|
|
337
380
|
_Logger.default.info('Updating region and country through Region discovery', {
|
|
338
381
|
file: _constants.CALLING_CLIENT_FILE,
|
|
339
382
|
method: _constants.GET_MOBIUS_SERVERS_UTIL
|
|
340
383
|
});
|
|
341
|
-
_context7.next =
|
|
384
|
+
_context7.next = 11;
|
|
342
385
|
return this.getClientRegionInfo();
|
|
343
|
-
case
|
|
386
|
+
case 11:
|
|
344
387
|
regionInfo = _context7.sent;
|
|
345
388
|
clientRegion = regionInfo.clientRegion;
|
|
346
389
|
countryCode = regionInfo.countryCode;
|
|
347
|
-
case
|
|
390
|
+
case 14:
|
|
348
391
|
if (!(clientRegion && countryCode)) {
|
|
349
|
-
_context7.next =
|
|
392
|
+
_context7.next = 34;
|
|
350
393
|
break;
|
|
351
394
|
}
|
|
352
395
|
_Logger.default.log("Found Region: ".concat(clientRegion, " and country: ").concat(countryCode, ", going to fetch Mobius server"), '');
|
|
353
|
-
_context7.prev =
|
|
354
|
-
_context7.next =
|
|
396
|
+
_context7.prev = 16;
|
|
397
|
+
_context7.next = 19;
|
|
355
398
|
return this.webex.request({
|
|
356
|
-
uri: "".concat(this.
|
|
399
|
+
uri: "".concat(this.mobiusHost).concat(_constants.URL_ENDPOINT, "?regionCode=").concat(clientRegion, "&countryCode=").concat(countryCode),
|
|
357
400
|
method: _types3.HTTP_METHODS.GET,
|
|
358
|
-
headers: (
|
|
401
|
+
headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.CISCO_DEVICE_URL, this.webex.internal.device.url), _constants.SPARK_USER_AGENT, _constants.CALLING_USER_AGENT),
|
|
359
402
|
service: _types3.ALLOWED_SERVICES.MOBIUS
|
|
360
403
|
});
|
|
361
|
-
case
|
|
404
|
+
case 19:
|
|
362
405
|
temp = _context7.sent;
|
|
363
406
|
_Logger.default.log('Mobius Server found for the region', '');
|
|
364
407
|
mobiusServers = temp.body;
|
|
365
408
|
/* update arrays of Mobius Uris. */
|
|
366
|
-
mobiusUris = (0, _Utils.filterMobiusUris)(mobiusServers, this.
|
|
409
|
+
mobiusUris = (0, _Utils.filterMobiusUris)(mobiusServers, this.mobiusHost);
|
|
367
410
|
this.primaryMobiusUris = mobiusUris.primary;
|
|
368
411
|
this.backupMobiusUris = mobiusUris.backup;
|
|
369
412
|
_Logger.default.info("Final list of Mobius Servers, primary: ".concat(mobiusUris.primary, " and backup: ").concat(mobiusUris.backup), '');
|
|
370
|
-
_context7.next =
|
|
413
|
+
_context7.next = 32;
|
|
371
414
|
break;
|
|
372
|
-
case
|
|
373
|
-
_context7.prev =
|
|
374
|
-
_context7.t0 = _context7["catch"](
|
|
415
|
+
case 28:
|
|
416
|
+
_context7.prev = 28;
|
|
417
|
+
_context7.t0 = _context7["catch"](16);
|
|
375
418
|
(0, _Utils.handleCallingClientErrors)(_context7.t0, function (clientError) {
|
|
376
|
-
_this4.metricManager.submitRegistrationMetric(
|
|
419
|
+
_this4.metricManager.submitRegistrationMetric(_types4.METRIC_EVENT.REGISTRATION_ERROR, _types4.REG_ACTION.REGISTER, _types4.METRIC_TYPE.BEHAVIORAL, clientError);
|
|
377
420
|
_this4.emit(_types2.CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);
|
|
378
421
|
}, {
|
|
379
422
|
method: _constants.GET_MOBIUS_SERVERS_UTIL,
|
|
380
423
|
file: _constants.CALLING_CLIENT_FILE
|
|
381
424
|
});
|
|
382
425
|
useDefault = true;
|
|
383
|
-
case
|
|
384
|
-
_context7.next =
|
|
426
|
+
case 32:
|
|
427
|
+
_context7.next = 35;
|
|
385
428
|
break;
|
|
386
|
-
case
|
|
429
|
+
case 34:
|
|
387
430
|
/* Setting this to true because region info is possibly undefined */
|
|
388
431
|
useDefault = true;
|
|
389
|
-
case
|
|
432
|
+
case 35:
|
|
390
433
|
/* Use a default URL if Mobius discovery fails either because of region info failure
|
|
391
434
|
* or because the discovered Mobius couldn't be reached
|
|
392
435
|
*/
|
|
393
436
|
|
|
394
437
|
if (useDefault) {
|
|
395
|
-
_Logger.default.warn('
|
|
396
|
-
this.
|
|
438
|
+
_Logger.default.warn("Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers", '');
|
|
439
|
+
this.mobiusHost = "https://".concat(this.mobiusClusters[0].host).concat(_constants.API_V1);
|
|
440
|
+
this.primaryMobiusUris = ["".concat(this.mobiusHost).concat(_constants.URL_ENDPOINT)];
|
|
397
441
|
}
|
|
398
|
-
case
|
|
442
|
+
case 36:
|
|
399
443
|
case "end":
|
|
400
444
|
return _context7.stop();
|
|
401
445
|
}
|
|
402
|
-
}, _callee7, this, [[
|
|
446
|
+
}, _callee7, this, [[16, 28]]);
|
|
403
447
|
}));
|
|
404
448
|
function getMobiusServers() {
|
|
405
449
|
return _getMobiusServers.apply(this, arguments);
|
|
@@ -411,6 +455,7 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
411
455
|
* event emitted by callManager when all the calls
|
|
412
456
|
* present on sdk are cleaned up.
|
|
413
457
|
*/
|
|
458
|
+
)
|
|
414
459
|
}, {
|
|
415
460
|
key: "registerCallsClearedListener",
|
|
416
461
|
value: function registerCallsClearedListener() {
|
|
@@ -490,14 +535,14 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
490
535
|
*/
|
|
491
536
|
}, {
|
|
492
537
|
key: "createLine",
|
|
493
|
-
value: function () {
|
|
538
|
+
value: (function () {
|
|
494
539
|
var _createLine = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
|
|
495
540
|
var _this$sdkConfig7;
|
|
496
541
|
var line;
|
|
497
542
|
return _regenerator.default.wrap(function _callee9$(_context9) {
|
|
498
543
|
while (1) switch (_context9.prev = _context9.next) {
|
|
499
544
|
case 0:
|
|
500
|
-
line = new _line.default(this.webex.internal.device.userId, this.webex.internal.device.url,
|
|
545
|
+
line = new _line.default(this.webex.internal.device.userId, this.webex.internal.device.url, this.mutex, this.primaryMobiusUris, this.backupMobiusUris, this.getLoggingLevel(), (_this$sdkConfig7 = this.sdkConfig) === null || _this$sdkConfig7 === void 0 ? void 0 : _this$sdkConfig7.serviceData);
|
|
501
546
|
this.lineDict[line.lineId] = line;
|
|
502
547
|
case 2:
|
|
503
548
|
case "end":
|
|
@@ -514,6 +559,7 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
514
559
|
* Retrieves details of all the Line objects belonging to a User
|
|
515
560
|
* NOTE: currently multiple lines are not supported
|
|
516
561
|
*/
|
|
562
|
+
)
|
|
517
563
|
}, {
|
|
518
564
|
key: "getLines",
|
|
519
565
|
value: function getLines() {
|
|
@@ -561,8 +607,7 @@ var CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
561
607
|
* @param webex - A webex instance.
|
|
562
608
|
* @param config - Config to start the CallingClient with.
|
|
563
609
|
*/
|
|
564
|
-
exports.
|
|
565
|
-
var createClient = /*#__PURE__*/function () {
|
|
610
|
+
var createClient = exports.createClient = /*#__PURE__*/function () {
|
|
566
611
|
var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(webex, config) {
|
|
567
612
|
var callingClientInstance;
|
|
568
613
|
return _regenerator.default.wrap(function _callee10$(_context10) {
|
|
@@ -583,5 +628,4 @@ var createClient = /*#__PURE__*/function () {
|
|
|
583
628
|
return _ref5.apply(this, arguments);
|
|
584
629
|
};
|
|
585
630
|
}();
|
|
586
|
-
exports.createClient = createClient;
|
|
587
631
|
//# sourceMappingURL=CallingClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Media","_interopRequireWildcard","require","_asyncMutex","_Utils","_types","_SDKConnector","_interopRequireDefault","_impl","_types2","_types3","_Logger","_callManager","_constants","_line","_types4","_types5","_Metrics","_getRequireWildcardCache","nodeInterop","_WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","_Object$defineProperty","_Object$getOwnPropertyDescriptor","key","Object","prototype","hasOwnProperty","call","desc","set","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","valueOf","e","CallingClient","_Eventing","_inherits2","_super","webex","config","_this$sdkConfig","_this$sdkConfig$servi","_this$sdkConfig2","_this$sdkConfig2$logg","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_asyncToGenerator2","_regenerator","mark","_callee2","registration","wrap","_callee2$","_context2","prev","next","_values","lineDict","isDeviceRegistered","mutex","runExclusive","_callee","_callee$","_context","isReconnectPending","log","file","CALLING_CLIENT_FILE","method","CALLS_CLEARED_HANDLER_UTIL","reconnectOnFailure","stop","sdkConnector","SDKConnector","getWebex","setWebex","Mutex","sdkConfig","serviceData","indicator","ServiceIndicator","CALLING","domain","logLevel","logger","level","LOGGER","ERROR","validateServiceData","callManager","getCallManager","metricManager","getMetricManager","mediaEngine","primaryMobiusUris","backupMobiusUris","registerSessionsListener","setLogger","registerCallsClearedListener","_createClass2","value","_init","_callee3","_callee3$","_context3","getMobiusServers","createLine","detectNetworkChange","init","_detectNetworkChange","_callee5","_this2","retry","line","_callee5$","_context5","setInterval","_callee4","_callee4$","_context4","internal","mercury","connected","_keys","getActiveCalls","length","warn","name","lineEmitter","LINE_EVENTS","UNREGISTERED","clearKeepaliveTimer","handleConnectionRestoration","sent","NETWORK_FLAP_TIMEOUT","_getClientRegionInfo","_callee6","_this3","regionInfo","_headers","temp","myIP","response","clientRegionInfo","_callee6$","_context6","request","uri","concat","services","_serviceUrls","mobius","URL_ENDPOINT","IP_ENDPOINT","HTTP_METHODS","GET","headers","CISCO_DEVICE_URL","device","url","SPARK_USER_AGENT","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","body","ipv4","DISCOVERY_URL","addAuthHeader","clientRegion","countryCode","t0","handleCallingClientErrors","clientError","submitRegistrationMetric","METRIC_EVENT","REGISTRATION_ERROR","REG_ACTION","REGISTER","METRIC_TYPE","BEHAVIORAL","emit","CALLING_CLIENT_EVENT_KEYS","GET_MOBIUS_SERVERS_UTIL","abrupt","getClientRegionInfo","_getMobiusServers","_callee7","_this$sdkConfig3","_this$sdkConfig3$disc","_this$sdkConfig4","_this$sdkConfig4$disc","_this4","useDefault","_this$sdkConfig5","_this$sdkConfig5$disc","_this$sdkConfig6","_this$sdkConfig6$disc","_headers3","mobiusServers","mobiusUris","_callee7$","_context7","discovery","country","region","info","filterMobiusUris","primary","backup","logContext","on","ALL_CALLS_CLEARED","callsClearedHandler","getLoggingLevel","getLogLevel","getSDKConnector","_this5","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","_ref4","_callee8","event","sessionArr","i","_callee8$","_context8","data","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x","_createLine","_callee9","_this$sdkConfig7","_callee9$","_context9","Line","userId","LineStatus","INACTIVE","lineId","getLines","activeCalls","calls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","Eventing","exports","createClient","_ref5","_callee10","callingClientInstance","_callee10$","_context10","_x2","_x3"],"sources":["CallingClient.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport * as Media from '@webex/internal-media-core';\nimport {Mutex} from 'async-mutex';\nimport {filterMobiusUris, handleCallingClientErrors, validateServiceData} from '../common/Utils';\nimport {LOGGER, LogContext} from '../Logger/types';\nimport SDKConnector from '../SDKConnector';\nimport {ClientRegionInfo, ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {Eventing} from '../Events/impl';\nimport {\n CallingClientEventTypes,\n MOBIUS_EVENT_KEYS,\n CallSessionEvent,\n SessionType,\n CALLING_CLIENT_EVENT_KEYS,\n} from '../Events/types';\nimport {\n ServiceIndicator,\n RegionInfo,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n IpInfo,\n MobiusServers,\n WebexRequestPayload,\n} from '../common/types';\nimport {ICallingClient, CallingClientConfig} from './types';\nimport {ICall, ICallManager} from './calling/types';\nimport log from '../Logger';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n CALLS_CLEARED_HANDLER_UTIL,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n DISCOVERY_URL,\n GET_MOBIUS_SERVERS_UTIL,\n IP_ENDPOINT,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n NETWORK_FLAP_TIMEOUT,\n} from './constants';\nimport Line from './line';\nimport {ILine, LINE_EVENTS, LineStatus} from './line/types';\nimport {METRIC_EVENT, REG_ACTION, METRIC_TYPE, IMetricManager} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\n\n/**\n * The `CallingClient` module provides a set of APIs for line registration and calling functionalities within the SDK.\n *\n * The following code snippet demonstrates how to create an instance of `CallingClient` using a `webex` instance and `callingConfig`:\n *\n * @example\n * ```javascript\n * const callingClient = createClient(webex, callingConfig);\n * ```\n */\n\nexport class CallingClient extends Eventing<CallingClientEventTypes> implements ICallingClient {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private mutex: Mutex;\n\n private callManager: ICallManager;\n\n private metricManager: IMetricManager;\n\n private sdkConfig?: CallingClientConfig;\n\n private primaryMobiusUris: string[];\n\n private backupMobiusUris: string[];\n\n public mediaEngine: typeof Media;\n\n private lineDict: Record<string, ILine> = {};\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, config?: CallingClientConfig) {\n super();\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.mutex = new Mutex();\n this.webex = this.sdkConnector.getWebex();\n\n this.sdkConfig = config;\n const serviceData = this.sdkConfig?.serviceData?.indicator\n ? this.sdkConfig.serviceData\n : {indicator: ServiceIndicator.CALLING, domain: ''};\n\n const logLevel = this.sdkConfig?.logger?.level ? this.sdkConfig.logger.level : LOGGER.ERROR;\n validateServiceData(serviceData);\n\n this.callManager = getCallManager(this.webex, serviceData.indicator);\n this.metricManager = getMetricManager(this.webex, serviceData.indicator);\n\n this.mediaEngine = Media;\n\n this.primaryMobiusUris = [];\n this.backupMobiusUris = [];\n\n this.registerSessionsListener();\n\n log.setLogger(logLevel, CALLING_CLIENT_FILE);\n\n this.registerCallsClearedListener();\n }\n\n // async calls required to run after constructor\n\n /**\n * Initializes the `CallingClient` by performing the following steps:\n *\n * 1. Retrieves list of servers.\n * 2. Creates a line.\n * 3. Sets up network change detection.\n *\n * This method should be called once to initialize the `callingClient`.\n *\n * @returns A promise that resolves when the initialization is complete.\n * @ignore\n */\n public async init() {\n await this.getMobiusServers();\n await this.createLine();\n\n /* Better to run the timer once rather than after every registration */\n this.detectNetworkChange();\n }\n\n /**\n * Register callbacks for network changes.\n */\n private async detectNetworkChange() {\n let retry = false;\n\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const line = Object.values(this.lineDict)[0];\n\n setInterval(async () => {\n if (\n !this.webex.internal.mercury.connected &&\n !retry &&\n !Object.keys(this.callManager.getActiveCalls()).length\n ) {\n log.warn(`Network has flapped, waiting for mercury connection to be up`, {\n file: CALLING_CLIENT_FILE,\n method: this.detectNetworkChange.name,\n });\n\n line.lineEmitter(LINE_EVENTS.UNREGISTERED);\n line.registration.clearKeepaliveTimer();\n\n retry = true;\n }\n\n if (retry && this.webex.internal.mercury.connected) {\n retry = await line.registration.handleConnectionRestoration(retry);\n }\n }, NETWORK_FLAP_TIMEOUT);\n }\n\n /**\n * Fetches countryCode and region of the client.\n */\n private async getClientRegionInfo(): Promise<RegionInfo> {\n const regionInfo = {} as RegionInfo;\n\n try {\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.webex.internal.services._serviceUrls.mobius}${URL_ENDPOINT}${IP_ENDPOINT}`,\n method: HTTP_METHODS.GET,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n\n const myIP = (temp.body as IpInfo).ipv4;\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${DISCOVERY_URL}/${myIP}`,\n method: HTTP_METHODS.GET,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n const clientRegionInfo = response.body as ClientRegionInfo;\n\n regionInfo.clientRegion = clientRegionInfo?.clientRegion ? clientRegionInfo.clientRegion : '';\n\n regionInfo.countryCode = clientRegionInfo?.countryCode ? clientRegionInfo.countryCode : '';\n } catch (err: unknown) {\n handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n regionInfo.clientRegion = '';\n regionInfo.countryCode = '';\n }\n\n return regionInfo;\n }\n\n /**\n * Local method for finding the mobius servers.\n */\n private async getMobiusServers() {\n /* Following operations are performed in a synchronous way ->\n\n 1. Get RegionInfo\n 2. Get Mobius Server with that RegionInfo\n 3. Check whether Mobius server was found without any error\n 4. If there is error , we don't need to send registration\n 5. Otherwise send registration\n */\n\n let useDefault = false;\n\n let clientRegion: string;\n let countryCode: string;\n\n if (this.sdkConfig?.discovery?.country && this.sdkConfig?.discovery?.region) {\n log.info('Updating region and country from the SDK config', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n clientRegion = this.sdkConfig?.discovery?.region;\n countryCode = this.sdkConfig?.discovery?.country;\n } else {\n log.info('Updating region and country through Region discovery', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n\n const regionInfo = await this.getClientRegionInfo();\n\n clientRegion = regionInfo.clientRegion;\n countryCode = regionInfo.countryCode;\n }\n\n if (clientRegion && countryCode) {\n log.log(\n `Found Region: ${clientRegion} and country: ${countryCode}, going to fetch Mobius server`,\n '' as LogContext\n );\n\n try {\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.webex.internal.services._serviceUrls.mobius}${URL_ENDPOINT}?regionCode=${clientRegion}&countryCode=${countryCode}`,\n method: HTTP_METHODS.GET,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n\n log.log('Mobius Server found for the region', '' as LogContext);\n const mobiusServers = temp.body as MobiusServers;\n\n /* update arrays of Mobius Uris. */\n const mobiusUris = filterMobiusUris(\n mobiusServers,\n this.webex.internal.services._serviceUrls.mobius\n );\n this.primaryMobiusUris = mobiusUris.primary;\n this.backupMobiusUris = mobiusUris.backup;\n log.info(\n `Final list of Mobius Servers, primary: ${mobiusUris.primary} and backup: ${mobiusUris.backup}`,\n '' as LogContext\n );\n } catch (err: unknown) {\n handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n\n useDefault = true;\n }\n } else {\n /* Setting this to true because region info is possibly undefined */\n useDefault = true;\n }\n\n /* Use a default URL if Mobius discovery fails either because of region info failure\n * or because the discovered Mobius couldn't be reached\n */\n\n if (useDefault) {\n log.warn('Error in finding Mobius Servers. Will use the default URL.', '' as LogContext);\n this.primaryMobiusUris = [\n `${this.webex.internal.services._serviceUrls.mobius}${URL_ENDPOINT}`,\n ];\n }\n }\n\n /**\n * Registers a listener/handler for ALL_CALLS_CLEARED\n * event emitted by callManager when all the calls\n * present on sdk are cleaned up.\n */\n private registerCallsClearedListener() {\n const logContext = {\n file: CALLING_CLIENT_FILE,\n method: this.registerCallsClearedListener.name,\n };\n\n log.log('Registering listener for all calls cleared event', logContext);\n this.callManager.on(CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED, this.callsClearedHandler);\n }\n\n /**\n * Handler registered for ALL_CALLS_CLEARED event emitted by callManager.\n *\n * If re-register attempt was deferred earlier due to active call(s), then it\n * will be attempted here on receiving a notification from callManager that all\n * calls are cleaned up.\n */\n private callsClearedHandler = async () => {\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const {registration} = Object.values(this.lineDict)[0];\n\n if (!registration.isDeviceRegistered()) {\n await this.mutex.runExclusive(async () => {\n if (registration.isReconnectPending()) {\n log.log('All calls cleared, reconnecting', {\n file: CALLING_CLIENT_FILE,\n method: CALLS_CLEARED_HANDLER_UTIL,\n });\n await registration.reconnectOnFailure(CALLS_CLEARED_HANDLER_UTIL);\n }\n });\n }\n };\n\n /**\n * To get the current log Level.\n * @ignore\n */\n public getLoggingLevel(): LOGGER {\n return log.getLogLevel();\n }\n\n /**\n * To return the `sdkConnector` instance that was used during sdk initialisation.\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n\n private registerSessionsListener() {\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n async (event?: CallSessionEvent) => {\n if (event && event.data.userSessions.userSessions) {\n const sessionArr = event?.data.userSessions.userSessions;\n\n if (sessionArr.length === 1) {\n if (sessionArr[0].sessionType !== SessionType.WEBEX_CALLING) {\n return;\n }\n }\n\n for (let i = 0; i < sessionArr.length; i += 1) {\n if (sessionArr[i].sessionType !== SessionType.WEBEX_CALLING) {\n sessionArr.splice(i, 1);\n }\n }\n this.emit(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event as CallSessionEvent);\n }\n }\n );\n }\n\n /**\n * Creates line object inside calling client per user\n * NOTE: currently multiple lines are not supported\n */\n private async createLine(): Promise<void> {\n const line = new Line(\n this.webex.internal.device.userId,\n this.webex.internal.device.url,\n LineStatus.INACTIVE,\n this.mutex,\n this.primaryMobiusUris,\n this.backupMobiusUris,\n this.getLoggingLevel(),\n this.sdkConfig?.serviceData\n );\n\n this.lineDict[line.lineId] = line;\n }\n\n /**\n * Retrieves details of all the Line objects belonging to a User\n * NOTE: currently multiple lines are not supported\n */\n public getLines(): Record<string, ILine> {\n return this.lineDict;\n }\n\n /**\n * Retrieves call objects for all the active calls present in the client\n */\n public getActiveCalls(): Record<string, ICall[]> {\n const activeCalls = {};\n const calls = this.callManager.getActiveCalls();\n Object.keys(calls).forEach((correlationId) => {\n const call = calls[correlationId];\n if (!activeCalls[call.lineId]) {\n activeCalls[call.lineId] = [];\n }\n activeCalls[call.lineId].push(call);\n });\n\n return activeCalls;\n }\n\n /**\n * Retrieves call object for the connected call in the client\n */\n public getConnectedCall(): ICall | undefined {\n let connectCall;\n const calls = this.callManager.getActiveCalls();\n\n Object.keys(calls).forEach((correlationId) => {\n if (calls[correlationId].isConnected() && !calls[correlationId].isHeld()) {\n connectCall = calls[correlationId];\n }\n });\n\n return connectCall;\n }\n}\n\n/**\n * Create the `CallingClient` instance using the `webex` object and callingSdk `config`\n * @param webex - A webex instance.\n * @param config - Config to start the CallingClient with.\n */\nexport const createClient = async (\n webex: WebexSDK,\n config?: CallingClientConfig\n): Promise<ICallingClient> => {\n const callingClientInstance = new CallingClient(webex, config);\n await callingClientInstance.init();\n\n return callingClientInstance;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAC,sBAAA,CAAAL,OAAA;AAEA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAOA,IAAAQ,OAAA,GAAAR,OAAA;AAWA,IAAAS,OAAA,GAAAJ,sBAAA,CAAAL,OAAA;AACA,IAAAU,YAAA,GAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AAYA,IAAAY,KAAA,GAAAP,sBAAA,CAAAL,OAAA;AACA,IAAAa,OAAA,GAAAb,OAAA;AACA,IAAAc,OAAA,GAAAd,OAAA;AACA,IAAAe,QAAA,GAAAf,OAAA;AAA4C,SAAAgB,yBAAAC,WAAA,eAAAC,QAAA,kCAAAC,iBAAA,OAAAD,QAAA,QAAAE,gBAAA,OAAAF,QAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAlB,wBAAAsB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,4BAAAG,OAAA,EAAAH,GAAA,UAAAI,KAAA,GAAAT,wBAAA,CAAAC,WAAA,OAAAQ,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAL,GAAA,YAAAI,KAAA,CAAAE,GAAA,CAAAN,GAAA,SAAAO,MAAA,WAAAC,qBAAA,GAAAC,sBAAA,IAAAC,gCAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAC,MAAA,CAAAC,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,GAAA,EAAAW,GAAA,SAAAK,IAAA,GAAAR,qBAAA,GAAAE,gCAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAK,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,sBAAA,CAAAF,MAAA,EAAAI,GAAA,EAAAK,IAAA,YAAAT,MAAA,CAAAI,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAJ,MAAA,CAAAJ,OAAA,GAAAH,GAAA,MAAAI,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAjB,GAAA,EAAAO,MAAA,YAAAA,MAAA;AAAA,SAAAW,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAArB,OAAA,EAAAgB,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,OAAAF,gBAAA,CAAArB,OAAA,QAAAwB,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAL,KAAA,EAAAM,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAO,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAA5B,OAAA,QAAAsB,MAAA;AAAA,SAAAJ,0BAAA,eAAAW,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAtB,SAAA,CAAAuB,OAAA,CAAArB,IAAA,CAAAa,kBAAA,CAAAO,OAAA,8CAAAE,CAAA;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,IAWaC,aAAa,0BAAAC,SAAA;EAAA,IAAAC,UAAA,CAAArC,OAAA,EAAAmC,aAAA,EAAAC,SAAA;EAAA,IAAAE,MAAA,GAAAvB,YAAA,CAAAoB,aAAA;EAqBxB;AACF;AACA;EACE,SAAAA,cAAYI,KAAe,EAAEC,MAA4B,EAAE;IAAA,IAAAC,eAAA,EAAAC,qBAAA,EAAAC,gBAAA,EAAAC,qBAAA;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAA9C,OAAA,QAAAmC,aAAA;IACzDU,KAAA,GAAAP,MAAA,CAAA1B,IAAA;IAAQ,IAAAmC,gBAAA,CAAA/C,OAAA,MAAAgD,uBAAA,CAAAhD,OAAA,EAAA6C,KAAA;IAAA,IAAAE,gBAAA,CAAA/C,OAAA,MAAAgD,uBAAA,CAAAhD,OAAA,EAAA6C,KAAA;IAAA,IAAAE,gBAAA,CAAA/C,OAAA,MAAAgD,uBAAA,CAAAhD,OAAA,EAAA6C,KAAA;IAAA,IAAAE,gBAAA,CAAA/C,OAAA,MAAAgD,uBAAA,CAAAhD,OAAA,EAAA6C,KAAA;IAAA,IAAAE,gBAAA,CAAA/C,OAAA,MAAAgD,uBAAA,CAAAhD,OAAA,EAAA6C,KAAA;IAAA,IAAAE,gBAAA,CAAA/C,OAAA,MAAAgD,uBAAA,CAAAhD,OAAA,EAAA6C,KAAA;IAAA,IAAAE,gBAAA,CAAA/C,OAAA,MAAAgD,uBAAA,CAAAhD,OAAA,EAAA6C,KAAA;IAAA,IAAAE,gBAAA,CAAA/C,OAAA,MAAAgD,uBAAA,CAAAhD,OAAA,EAAA6C,KAAA;IAAA,IAAAE,gBAAA,CAAA/C,OAAA,MAAAgD,uBAAA,CAAAhD,OAAA,EAAA6C,KAAA;IAAA,IAAAE,gBAAA,CAAA/C,OAAA,MAAAgD,uBAAA,CAAAhD,OAAA,EAAA6C,KAAA,eANgC,CAAC,CAAC;IAuQ5C;AACF;AACA;AACA;AACA;AACA;AACA;IANE,IAAAE,gBAAA,CAAA/C,OAAA,MAAAgD,uBAAA,CAAAhD,OAAA,EAAA6C,KAAA,2CAAAI,kBAAA,CAAAjD,OAAA,gBAAAkD,YAAA,CAAAlD,OAAA,CAAAmD,IAAA,CAO8B,SAAAC,SAAA;MAAA,IAAAC,YAAA;MAAA,OAAAH,YAAA,CAAAlD,OAAA,CAAAsD,IAAA,UAAAC,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAAE,IAAA;UAAA;YAC5B;YACA;YACOL,YAAY,GAAI,IAAAM,OAAA,CAAA3D,OAAA,EAAc6C,KAAA,CAAKe,QAAQ,CAAC,CAAC,CAAC,CAAC,CAA/CP,YAAY;YAAA,IAEdA,YAAY,CAACQ,kBAAkB,EAAE;cAAAL,SAAA,CAAAE,IAAA;cAAA;YAAA;YAAAF,SAAA,CAAAE,IAAA;YAAA,OAC9Bb,KAAA,CAAKiB,KAAK,CAACC,YAAY,mBAAAd,kBAAA,CAAAjD,OAAA,gBAAAkD,YAAA,CAAAlD,OAAA,CAAAmD,IAAA,CAAC,SAAAa,QAAA;cAAA,OAAAd,YAAA,CAAAlD,OAAA,CAAAsD,IAAA,UAAAW,SAAAC,QAAA;gBAAA,kBAAAA,QAAA,CAAAT,IAAA,GAAAS,QAAA,CAAAR,IAAA;kBAAA;oBAAA,KACxBL,YAAY,CAACc,kBAAkB,EAAE;sBAAAD,QAAA,CAAAR,IAAA;sBAAA;oBAAA;oBACnCU,eAAG,CAACA,GAAG,CAAC,iCAAiC,EAAE;sBACzCC,IAAI,EAAEC,8BAAmB;sBACzBC,MAAM,EAAEC;oBACV,CAAC,CAAC;oBAACN,QAAA,CAAAR,IAAA;oBAAA,OACGL,YAAY,CAACoB,kBAAkB,CAACD,qCAA0B,CAAC;kBAAA;kBAAA;oBAAA,OAAAN,QAAA,CAAAQ,IAAA;gBAAA;cAAA,GAAAV,OAAA;YAAA,CAEpE,GAAC;UAAA;UAAA;YAAA,OAAAR,SAAA,CAAAkB,IAAA;QAAA;MAAA,GAAAtB,QAAA;IAAA,CAEL;IAvRCP,KAAA,CAAK8B,YAAY,GAAGC,qBAAY;IAEhC,IAAI,CAAC/B,KAAA,CAAK8B,YAAY,CAACE,QAAQ,EAAE,EAAE;MACjCD,qBAAY,CAACE,QAAQ,CAACvC,KAAK,CAAC;IAC9B;IACAM,KAAA,CAAKiB,KAAK,GAAG,IAAIiB,iBAAK,EAAE;IACxBlC,KAAA,CAAKN,KAAK,GAAGM,KAAA,CAAK8B,YAAY,CAACE,QAAQ,EAAE;IAEzChC,KAAA,CAAKmC,SAAS,GAAGxC,MAAM;IACvB,IAAMyC,WAAW,GAAG,CAAAxC,eAAA,GAAAI,KAAA,CAAKmC,SAAS,cAAAvC,eAAA,gBAAAC,qBAAA,GAAdD,eAAA,CAAgBwC,WAAW,cAAAvC,qBAAA,eAA3BA,qBAAA,CAA6BwC,SAAS,GACtDrC,KAAA,CAAKmC,SAAS,CAACC,WAAW,GAC1B;MAACC,SAAS,EAAEC,wBAAgB,CAACC,OAAO;MAAEC,MAAM,EAAE;IAAE,CAAC;IAErD,IAAMC,QAAQ,GAAG,CAAA3C,gBAAA,GAAAE,KAAA,CAAKmC,SAAS,cAAArC,gBAAA,gBAAAC,qBAAA,GAAdD,gBAAA,CAAgB4C,MAAM,cAAA3C,qBAAA,eAAtBA,qBAAA,CAAwB4C,KAAK,GAAG3C,KAAA,CAAKmC,SAAS,CAACO,MAAM,CAACC,KAAK,GAAGC,aAAM,CAACC,KAAK;IAC3F,IAAAC,0BAAmB,EAACV,WAAW,CAAC;IAEhCpC,KAAA,CAAK+C,WAAW,GAAG,IAAAC,2BAAc,EAAChD,KAAA,CAAKN,KAAK,EAAE0C,WAAW,CAACC,SAAS,CAAC;IACpErC,KAAA,CAAKiD,aAAa,GAAG,IAAAC,yBAAgB,EAAClD,KAAA,CAAKN,KAAK,EAAE0C,WAAW,CAACC,SAAS,CAAC;IAExErC,KAAA,CAAKmD,WAAW,GAAG1H,KAAK;IAExBuE,KAAA,CAAKoD,iBAAiB,GAAG,EAAE;IAC3BpD,KAAA,CAAKqD,gBAAgB,GAAG,EAAE;IAE1BrD,KAAA,CAAKsD,wBAAwB,EAAE;IAE/B/B,eAAG,CAACgC,SAAS,CAACd,QAAQ,EAAEhB,8BAAmB,CAAC;IAE5CzB,KAAA,CAAKwD,4BAA4B,EAAE;IAAC,OAAAxD,KAAA;EACtC;;EAEA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAXE,IAAAyD,aAAA,CAAAtG,OAAA,EAAAmC,aAAA;IAAA3B,GAAA;IAAA+F,KAAA;MAAA,IAAAC,KAAA,OAAAvD,kBAAA,CAAAjD,OAAA,gBAAAkD,YAAA,CAAAlD,OAAA,CAAAmD,IAAA,CAYA,SAAAsD,SAAA;QAAA,OAAAvD,YAAA,CAAAlD,OAAA,CAAAsD,IAAA,UAAAoD,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAlD,IAAA,GAAAkD,SAAA,CAAAjD,IAAA;YAAA;cAAAiD,SAAA,CAAAjD,IAAA;cAAA,OACQ,IAAI,CAACkD,gBAAgB,EAAE;YAAA;cAAAD,SAAA,CAAAjD,IAAA;cAAA,OACvB,IAAI,CAACmD,UAAU,EAAE;YAAA;cAEvB;cACA,IAAI,CAACC,mBAAmB,EAAE;YAAC;YAAA;cAAA,OAAAH,SAAA,CAAAjC,IAAA;UAAA;QAAA,GAAA+B,QAAA;MAAA,CAC5B;MAAA,SAAAM,KAAA;QAAA,OAAAP,KAAA,CAAA7E,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAqF,IAAA;IAAA;IAED;AACF;AACA;EAFE;IAAAvG,GAAA;IAAA+F,KAAA;MAAA,IAAAS,oBAAA,OAAA/D,kBAAA,CAAAjD,OAAA,gBAAAkD,YAAA,CAAAlD,OAAA,CAAAmD,IAAA,CAGA,SAAA8D,SAAA;QAAA,IAAAC,MAAA;QAAA,IAAAC,KAAA,EAAAC,IAAA;QAAA,OAAAlE,YAAA,CAAAlD,OAAA,CAAAsD,IAAA,UAAA+D,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA7D,IAAA,GAAA6D,SAAA,CAAA5D,IAAA;YAAA;cACMyD,KAAK,GAAG,KAAK,EAEjB;cACA;cACMC,IAAI,GAAG,IAAAzD,OAAA,CAAA3D,OAAA,EAAc,IAAI,CAAC4D,QAAQ,CAAC,CAAC,CAAC,CAAC;cAE5C2D,WAAW,mBAAAtE,kBAAA,CAAAjD,OAAA,gBAAAkD,YAAA,CAAAlD,OAAA,CAAAmD,IAAA,CAAC,SAAAqE,SAAA;gBAAA,OAAAtE,YAAA,CAAAlD,OAAA,CAAAsD,IAAA,UAAAmE,UAAAC,SAAA;kBAAA,kBAAAA,SAAA,CAAAjE,IAAA,GAAAiE,SAAA,CAAAhE,IAAA;oBAAA;sBACV,IACE,CAACwD,MAAI,CAAC3E,KAAK,CAACoF,QAAQ,CAACC,OAAO,CAACC,SAAS,IACtC,CAACV,KAAK,IACN,CAAC,IAAAW,KAAA,CAAA9H,OAAA,EAAYkH,MAAI,CAACtB,WAAW,CAACmC,cAAc,EAAE,CAAC,CAACC,MAAM,EACtD;wBACA5D,eAAG,CAAC6D,IAAI,iEAAiE;0BACvE5D,IAAI,EAAEC,8BAAmB;0BACzBC,MAAM,EAAE2C,MAAI,CAACJ,mBAAmB,CAACoB;wBACnC,CAAC,CAAC;wBAEFd,IAAI,CAACe,WAAW,CAACC,mBAAW,CAACC,YAAY,CAAC;wBAC1CjB,IAAI,CAAC/D,YAAY,CAACiF,mBAAmB,EAAE;wBAEvCnB,KAAK,GAAG,IAAI;sBACd;sBAAC,MAEGA,KAAK,IAAID,MAAI,CAAC3E,KAAK,CAACoF,QAAQ,CAACC,OAAO,CAACC,SAAS;wBAAAH,SAAA,CAAAhE,IAAA;wBAAA;sBAAA;sBAAAgE,SAAA,CAAAhE,IAAA;sBAAA,OAClC0D,IAAI,CAAC/D,YAAY,CAACkF,2BAA2B,CAACpB,KAAK,CAAC;oBAAA;sBAAlEA,KAAK,GAAAO,SAAA,CAAAc,IAAA;oBAAA;oBAAA;sBAAA,OAAAd,SAAA,CAAAhD,IAAA;kBAAA;gBAAA,GAAA8C,QAAA;cAAA,CAER,IAAEiB,+BAAoB,CAAC;YAAC;YAAA;cAAA,OAAAnB,SAAA,CAAA5C,IAAA;UAAA;QAAA,GAAAuC,QAAA;MAAA,CAC1B;MAAA,SAAAH,oBAAA;QAAA,OAAAE,oBAAA,CAAArF,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAoF,mBAAA;IAAA;IAED;AACF;AACA;EAFE;IAAAtG,GAAA;IAAA+F,KAAA;MAAA,IAAAmC,oBAAA,OAAAzF,kBAAA,CAAAjD,OAAA,gBAAAkD,YAAA,CAAAlD,OAAA,CAAAmD,IAAA,CAGA,SAAAwF,SAAA;QAAA,IAAAC,MAAA;QAAA,IAAAC,UAAA,EAAAC,QAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,QAAA,EAAAC,gBAAA;QAAA,OAAAhG,YAAA,CAAAlD,OAAA,CAAAsD,IAAA,UAAA6F,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA3F,IAAA,GAAA2F,SAAA,CAAA1F,IAAA;YAAA;cACQmF,UAAU,GAAG,CAAC,CAAC;cAAAO,SAAA,CAAA3F,IAAA;cAAA2F,SAAA,CAAA1F,IAAA;cAAA,OAGqB,IAAI,CAACnB,KAAK,CAAC8G,OAAO,CAAC;gBACzDC,GAAG,KAAAC,MAAA,CAAK,IAAI,CAAChH,KAAK,CAACoF,QAAQ,CAAC6B,QAAQ,CAACC,YAAY,CAACC,MAAM,EAAAH,MAAA,CAAGI,uBAAY,EAAAJ,MAAA,CAAGK,sBAAW,CAAE;gBACvFrF,MAAM,EAAEsF,oBAAY,CAACC,GAAG;gBACxBC,OAAO,GAAAjB,QAAA,WAAA/F,gBAAA,CAAA/C,OAAA,EAAA8I,QAAA,EACJkB,2BAAgB,EAAG,IAAI,CAACzH,KAAK,CAACoF,QAAQ,CAACsC,MAAM,CAACC,GAAG,OAAAnH,gBAAA,CAAA/C,OAAA,EAAA8I,QAAA,EACjDqB,2BAAgB,EAAGC,6BAAkB,GAAAtB,QAAA,CACvC;gBACDuB,OAAO,EAAEC,wBAAgB,CAACC;cAC5B,CAAC,CAAC;YAAA;cARIxB,IAAI,GAAAK,SAAA,CAAAZ,IAAA;cAUJQ,IAAI,GAAID,IAAI,CAACyB,IAAI,CAAYC,IAAI;cAAArB,SAAA,CAAA1F,IAAA;cAAA,OACK,IAAI,CAACnB,KAAK,CAAC8G,OAAO,CAAC;gBAC7DC,GAAG,KAAAC,MAAA,CAAKmB,wBAAa,OAAAnB,MAAA,CAAIP,IAAI,CAAE;gBAC/BzE,MAAM,EAAEsF,oBAAY,CAACC,GAAG;gBACxBa,aAAa,EAAE,KAAK;gBACpBZ,OAAO,MAAAhH,gBAAA,CAAA/C,OAAA,MACJmK,2BAAgB,EAAG,IAAI;cAE5B,CAAC,CAAC;YAAA;cAPIlB,QAAQ,GAAAG,SAAA,CAAAZ,IAAA;cASRU,gBAAgB,GAAGD,QAAQ,CAACuB,IAAI;cAEtC3B,UAAU,CAAC+B,YAAY,GAAG1B,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAE0B,YAAY,GAAG1B,gBAAgB,CAAC0B,YAAY,GAAG,EAAE;cAE7F/B,UAAU,CAACgC,WAAW,GAAG3B,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAE2B,WAAW,GAAG3B,gBAAgB,CAAC2B,WAAW,GAAG,EAAE;cAACzB,SAAA,CAAA1F,IAAA;cAAA;YAAA;cAAA0F,SAAA,CAAA3F,IAAA;cAAA2F,SAAA,CAAA0B,EAAA,GAAA1B,SAAA;cAE3F,IAAA2B,gCAAyB,EAAA3B,SAAA,CAAA0B,EAAA,EAEvB,UAACE,WAAW,EAAK;gBACfpC,MAAI,CAAC9C,aAAa,CAACmF,wBAAwB,CACzCC,oBAAY,CAACC,kBAAkB,EAC/BC,kBAAU,CAACC,QAAQ,EACnBC,mBAAW,CAACC,UAAU,EACtBP,WAAW,CACZ;gBACDpC,MAAI,CAAC4C,IAAI,CAACC,iCAAyB,CAAC/F,KAAK,EAAEsF,WAAW,CAAC;cACzD,CAAC,EACD;gBAACzG,MAAM,EAAEmH,kCAAuB;gBAAErH,IAAI,EAAEC;cAAmB,CAAC,CAC7D;cACDuE,UAAU,CAAC+B,YAAY,GAAG,EAAE;cAC5B/B,UAAU,CAACgC,WAAW,GAAG,EAAE;YAAC;cAAA,OAAAzB,SAAA,CAAAuC,MAAA,WAGvB9C,UAAU;YAAA;YAAA;cAAA,OAAAO,SAAA,CAAA1E,IAAA;UAAA;QAAA,GAAAiE,QAAA;MAAA,CAClB;MAAA,SAAAiD,oBAAA;QAAA,OAAAlD,oBAAA,CAAA/G,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAkK,mBAAA;IAAA;IAED;AACF;AACA;EAFE;IAAApL,GAAA;IAAA+F,KAAA;MAAA,IAAAsF,iBAAA,OAAA5I,kBAAA,CAAAjD,OAAA,gBAAAkD,YAAA,CAAAlD,OAAA,CAAAmD,IAAA,CAGA,SAAA2I,SAAA;QAAA,IAAAC,gBAAA;UAAAC,qBAAA;UAAAC,gBAAA;UAAAC,qBAAA;UAAAC,MAAA;QAAA,IAAAC,UAAA,EAAAxB,YAAA,EAAAC,WAAA,EAAAwB,gBAAA,EAAAC,qBAAA,EAAAC,gBAAA,EAAAC,qBAAA,EAAA3D,UAAA,EAAA4D,SAAA,EAAA1D,IAAA,EAAA2D,aAAA,EAAAC,UAAA;QAAA,OAAAzJ,YAAA,CAAAlD,OAAA,CAAAsD,IAAA,UAAAsJ,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAApJ,IAAA,GAAAoJ,SAAA,CAAAnJ,IAAA;YAAA;cACE;AACJ;AACA;AACA;AACA;AACA;AACA;cAGQ0I,UAAU,GAAG,KAAK;cAAA,MAKlB,CAAAL,gBAAA,OAAI,CAAC/G,SAAS,cAAA+G,gBAAA,gBAAAC,qBAAA,GAAdD,gBAAA,CAAgBe,SAAS,cAAAd,qBAAA,eAAzBA,qBAAA,CAA2Be,OAAO,KAAAd,gBAAA,GAAI,IAAI,CAACjH,SAAS,cAAAiH,gBAAA,gBAAAC,qBAAA,GAAdD,gBAAA,CAAgBa,SAAS,cAAAZ,qBAAA,eAAzBA,qBAAA,CAA2Bc,MAAM;gBAAAH,SAAA,CAAAnJ,IAAA;gBAAA;cAAA;cACzEU,eAAG,CAAC6I,IAAI,CAAC,iDAAiD,EAAE;gBAC1D5I,IAAI,EAAEC,8BAAmB;gBACzBC,MAAM,EAAEmH;cACV,CAAC,CAAC;cACFd,YAAY,IAAAyB,gBAAA,GAAG,IAAI,CAACrH,SAAS,cAAAqH,gBAAA,wBAAAC,qBAAA,GAAdD,gBAAA,CAAgBS,SAAS,cAAAR,qBAAA,uBAAzBA,qBAAA,CAA2BU,MAAM;cAChDnC,WAAW,IAAA0B,gBAAA,GAAG,IAAI,CAACvH,SAAS,cAAAuH,gBAAA,wBAAAC,qBAAA,GAAdD,gBAAA,CAAgBO,SAAS,cAAAN,qBAAA,uBAAzBA,qBAAA,CAA2BO,OAAO;cAACF,SAAA,CAAAnJ,IAAA;cAAA;YAAA;cAEjDU,eAAG,CAAC6I,IAAI,CAAC,sDAAsD,EAAE;gBAC/D5I,IAAI,EAAEC,8BAAmB;gBACzBC,MAAM,EAAEmH;cACV,CAAC,CAAC;cAACmB,SAAA,CAAAnJ,IAAA;cAAA,OAEsB,IAAI,CAACkI,mBAAmB,EAAE;YAAA;cAA7C/C,UAAU,GAAAgE,SAAA,CAAArE,IAAA;cAEhBoC,YAAY,GAAG/B,UAAU,CAAC+B,YAAY;cACtCC,WAAW,GAAGhC,UAAU,CAACgC,WAAW;YAAC;cAAA,MAGnCD,YAAY,IAAIC,WAAW;gBAAAgC,SAAA,CAAAnJ,IAAA;gBAAA;cAAA;cAC7BU,eAAG,CAACA,GAAG,kBAAAmF,MAAA,CACYqB,YAAY,oBAAArB,MAAA,CAAiBsB,WAAW,qCACzD,EAAE,CACH;cAACgC,SAAA,CAAApJ,IAAA;cAAAoJ,SAAA,CAAAnJ,IAAA;cAAA,OAGwC,IAAI,CAACnB,KAAK,CAAC8G,OAAO,CAAC;gBACzDC,GAAG,KAAAC,MAAA,CAAK,IAAI,CAAChH,KAAK,CAACoF,QAAQ,CAAC6B,QAAQ,CAACC,YAAY,CAACC,MAAM,EAAAH,MAAA,CAAGI,uBAAY,kBAAAJ,MAAA,CAAeqB,YAAY,mBAAArB,MAAA,CAAgBsB,WAAW,CAAE;gBAC/HtG,MAAM,EAAEsF,oBAAY,CAACC,GAAG;gBACxBC,OAAO,GAAA0C,SAAA,WAAA1J,gBAAA,CAAA/C,OAAA,EAAAyM,SAAA,EACJzC,2BAAgB,EAAG,IAAI,CAACzH,KAAK,CAACoF,QAAQ,CAACsC,MAAM,CAACC,GAAG,OAAAnH,gBAAA,CAAA/C,OAAA,EAAAyM,SAAA,EACjDtC,2BAAgB,EAAGC,6BAAkB,GAAAqC,SAAA,CACvC;gBACDpC,OAAO,EAAEC,wBAAgB,CAACC;cAC5B,CAAC,CAAC;YAAA;cARIxB,IAAI,GAAA8D,SAAA,CAAArE,IAAA;cAUVpE,eAAG,CAACA,GAAG,CAAC,oCAAoC,EAAE,EAAE,CAAe;cACzDsI,aAAa,GAAG3D,IAAI,CAACyB,IAAI;cAE/B;cACMmC,UAAU,GAAG,IAAAO,uBAAgB,EACjCR,aAAa,EACb,IAAI,CAACnK,KAAK,CAACoF,QAAQ,CAAC6B,QAAQ,CAACC,YAAY,CAACC,MAAM,CACjD;cACD,IAAI,CAACzD,iBAAiB,GAAG0G,UAAU,CAACQ,OAAO;cAC3C,IAAI,CAACjH,gBAAgB,GAAGyG,UAAU,CAACS,MAAM;cACzChJ,eAAG,CAAC6I,IAAI,2CAAA1D,MAAA,CACoCoD,UAAU,CAACQ,OAAO,mBAAA5D,MAAA,CAAgBoD,UAAU,CAACS,MAAM,GAC7F,EAAE,CACH;cAACP,SAAA,CAAAnJ,IAAA;cAAA;YAAA;cAAAmJ,SAAA,CAAApJ,IAAA;cAAAoJ,SAAA,CAAA/B,EAAA,GAAA+B,SAAA;cAEF,IAAA9B,gCAAyB,EAAA8B,SAAA,CAAA/B,EAAA,EAEvB,UAACE,WAAW,EAAK;gBACfmB,MAAI,CAACrG,aAAa,CAACmF,wBAAwB,CACzCC,oBAAY,CAACC,kBAAkB,EAC/BC,kBAAU,CAACC,QAAQ,EACnBC,mBAAW,CAACC,UAAU,EACtBP,WAAW,CACZ;gBACDmB,MAAI,CAACX,IAAI,CAACC,iCAAyB,CAAC/F,KAAK,EAAEsF,WAAW,CAAC;cACzD,CAAC,EACD;gBAACzG,MAAM,EAAEmH,kCAAuB;gBAAErH,IAAI,EAAEC;cAAmB,CAAC,CAC7D;cAED8H,UAAU,GAAG,IAAI;YAAC;cAAAS,SAAA,CAAAnJ,IAAA;cAAA;YAAA;cAGpB;cACA0I,UAAU,GAAG,IAAI;YAAC;cAGpB;AACJ;AACA;;cAEI,IAAIA,UAAU,EAAE;gBACdhI,eAAG,CAAC6D,IAAI,CAAC,4DAA4D,EAAE,EAAE,CAAe;gBACxF,IAAI,CAAChC,iBAAiB,GAAG,IAAAsD,MAAA,CACpB,IAAI,CAAChH,KAAK,CAACoF,QAAQ,CAAC6B,QAAQ,CAACC,YAAY,CAACC,MAAM,EAAAH,MAAA,CAAGI,uBAAY,EACnE;cACH;YAAC;YAAA;cAAA,OAAAkD,SAAA,CAAAnI,IAAA;UAAA;QAAA,GAAAoH,QAAA;MAAA,CACF;MAAA,SAAAlF,iBAAA;QAAA,OAAAiF,iBAAA,CAAAlK,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAkF,gBAAA;IAAA;IAED;AACF;AACA;AACA;AACA;EAJE;IAAApG,GAAA;IAAA+F,KAAA,EAKA,SAAAF,6BAAA,EAAuC;MACrC,IAAMgH,UAAU,GAAG;QACjBhJ,IAAI,EAAEC,8BAAmB;QACzBC,MAAM,EAAE,IAAI,CAAC8B,4BAA4B,CAAC6B;MAC5C,CAAC;MAED9D,eAAG,CAACA,GAAG,CAAC,kDAAkD,EAAEiJ,UAAU,CAAC;MACvE,IAAI,CAACzH,WAAW,CAAC0H,EAAE,CAAC7B,iCAAyB,CAAC8B,iBAAiB,EAAE,IAAI,CAACC,mBAAmB,CAAC;IAC5F;EAAC;IAAAhN,GAAA;IAAA+F,KAAA;IA2BD;AACF;AACA;AACA;IACE,SAAAkH,gBAAA,EAAiC;MAC/B,OAAOrJ,eAAG,CAACsJ,WAAW,EAAE;IAC1B;;IAEA;AACF;AACA;AACA;EAHE;IAAAlN,GAAA;IAAA+F,KAAA,EAIA,SAAAoH,gBAAA,EAAwC;MACtC,OAAO,IAAI,CAAChJ,YAAY;IAC1B;EAAC;IAAAnE,GAAA;IAAA+F,KAAA,EAED,SAAAJ,yBAAA,EAAmC;MAAA,IAAAyH,MAAA;MACjC,IAAI,CAACjJ,YAAY,CAACkJ,gBAAgB,CAChCC,yBAAiB,CAACC,4BAA4B;QAAA,IAAAC,KAAA,OAAA/K,kBAAA,CAAAjD,OAAA,gBAAAkD,YAAA,CAAAlD,OAAA,CAAAmD,IAAA,CAC9C,SAAA8K,SAAOC,KAAwB;UAAA,IAAAC,UAAA,EAAAC,CAAA;UAAA,OAAAlL,YAAA,CAAAlD,OAAA,CAAAsD,IAAA,UAAA+K,UAAAC,SAAA;YAAA,kBAAAA,SAAA,CAAA7K,IAAA,GAAA6K,SAAA,CAAA5K,IAAA;cAAA;gBAAA,MACzBwK,KAAK,IAAIA,KAAK,CAACK,IAAI,CAACC,YAAY,CAACA,YAAY;kBAAAF,SAAA,CAAA5K,IAAA;kBAAA;gBAAA;gBACzCyK,UAAU,GAAGD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEK,IAAI,CAACC,YAAY,CAACA,YAAY;gBAAA,MAEpDL,UAAU,CAACnG,MAAM,KAAK,CAAC;kBAAAsG,SAAA,CAAA5K,IAAA;kBAAA;gBAAA;gBAAA,MACrByK,UAAU,CAAC,CAAC,CAAC,CAACM,WAAW,KAAKC,mBAAW,CAACC,aAAa;kBAAAL,SAAA,CAAA5K,IAAA;kBAAA;gBAAA;gBAAA,OAAA4K,SAAA,CAAA3C,MAAA;cAAA;gBAK7D,KAASyC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,UAAU,CAACnG,MAAM,EAAEoG,CAAC,IAAI,CAAC,EAAE;kBAC7C,IAAID,UAAU,CAACC,CAAC,CAAC,CAACK,WAAW,KAAKC,mBAAW,CAACC,aAAa,EAAE;oBAC3DR,UAAU,CAACS,MAAM,CAACR,CAAC,EAAE,CAAC,CAAC;kBACzB;gBACF;gBACAR,MAAI,CAACpC,IAAI,CAACC,iCAAyB,CAACoD,iBAAiB,EAAEX,KAAK,CAAqB;cAAC;cAAA;gBAAA,OAAAI,SAAA,CAAA5J,IAAA;YAAA;UAAA,GAAAuJ,QAAA;QAAA,CAErF;QAAA,iBAAAa,EAAA;UAAA,OAAAd,KAAA,CAAArM,KAAA,OAAAD,SAAA;QAAA;MAAA,IACF;IACH;;IAEA;AACF;AACA;AACA;EAHE;IAAAlB,GAAA;IAAA+F,KAAA;MAAA,IAAAwI,WAAA,OAAA9L,kBAAA,CAAAjD,OAAA,gBAAAkD,YAAA,CAAAlD,OAAA,CAAAmD,IAAA,CAIA,SAAA6L,SAAA;QAAA,IAAAC,gBAAA;QAAA,IAAA7H,IAAA;QAAA,OAAAlE,YAAA,CAAAlD,OAAA,CAAAsD,IAAA,UAAA4L,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA1L,IAAA,GAAA0L,SAAA,CAAAzL,IAAA;YAAA;cACQ0D,IAAI,GAAG,IAAIgI,aAAI,CACnB,IAAI,CAAC7M,KAAK,CAACoF,QAAQ,CAACsC,MAAM,CAACoF,MAAM,EACjC,IAAI,CAAC9M,KAAK,CAACoF,QAAQ,CAACsC,MAAM,CAACC,GAAG,EAC9BoF,kBAAU,CAACC,QAAQ,EACnB,IAAI,CAACzL,KAAK,EACV,IAAI,CAACmC,iBAAiB,EACtB,IAAI,CAACC,gBAAgB,EACrB,IAAI,CAACuH,eAAe,EAAE,GAAAwB,gBAAA,GACtB,IAAI,CAACjK,SAAS,cAAAiK,gBAAA,uBAAdA,gBAAA,CAAgBhK,WAAW,CAC5B;cAED,IAAI,CAACrB,QAAQ,CAACwD,IAAI,CAACoI,MAAM,CAAC,GAAGpI,IAAI;YAAC;YAAA;cAAA,OAAA+H,SAAA,CAAAzK,IAAA;UAAA;QAAA,GAAAsK,QAAA;MAAA,CACnC;MAAA,SAAAnI,WAAA;QAAA,OAAAkI,WAAA,CAAApN,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAmF,UAAA;IAAA;IAED;AACF;AACA;AACA;EAHE;IAAArG,GAAA;IAAA+F,KAAA,EAIA,SAAAkJ,SAAA,EAAyC;MACvC,OAAO,IAAI,CAAC7L,QAAQ;IACtB;;IAEA;AACF;AACA;EAFE;IAAApD,GAAA;IAAA+F,KAAA,EAGA,SAAAwB,eAAA,EAAiD;MAC/C,IAAM2H,WAAW,GAAG,CAAC,CAAC;MACtB,IAAMC,KAAK,GAAG,IAAI,CAAC/J,WAAW,CAACmC,cAAc,EAAE;MAC/C,IAAAD,KAAA,CAAA9H,OAAA,EAAY2P,KAAK,CAAC,CAACC,OAAO,CAAC,UAACC,aAAa,EAAK;QAC5C,IAAMjP,IAAI,GAAG+O,KAAK,CAACE,aAAa,CAAC;QACjC,IAAI,CAACH,WAAW,CAAC9O,IAAI,CAAC4O,MAAM,CAAC,EAAE;UAC7BE,WAAW,CAAC9O,IAAI,CAAC4O,MAAM,CAAC,GAAG,EAAE;QAC/B;QACAE,WAAW,CAAC9O,IAAI,CAAC4O,MAAM,CAAC,CAACM,IAAI,CAAClP,IAAI,CAAC;MACrC,CAAC,CAAC;MAEF,OAAO8O,WAAW;IACpB;;IAEA;AACF;AACA;EAFE;IAAAlP,GAAA;IAAA+F,KAAA,EAGA,SAAAwJ,iBAAA,EAA6C;MAC3C,IAAIC,WAAW;MACf,IAAML,KAAK,GAAG,IAAI,CAAC/J,WAAW,CAACmC,cAAc,EAAE;MAE/C,IAAAD,KAAA,CAAA9H,OAAA,EAAY2P,KAAK,CAAC,CAACC,OAAO,CAAC,UAACC,aAAa,EAAK;QAC5C,IAAIF,KAAK,CAACE,aAAa,CAAC,CAACI,WAAW,EAAE,IAAI,CAACN,KAAK,CAACE,aAAa,CAAC,CAACK,MAAM,EAAE,EAAE;UACxEF,WAAW,GAAGL,KAAK,CAACE,aAAa,CAAC;QACpC;MACF,CAAC,CAAC;MAEF,OAAOG,WAAW;IACpB;EAAC;EAAA,OAAA7N,aAAA;AAAA,EArZgCgO,cAAQ;AAwZ3C;AACA;AACA;AACA;AACA;AAJAC,OAAA,CAAAjO,aAAA,GAAAA,aAAA;AAKO,IAAMkO,YAAY;EAAA,IAAAC,KAAA,OAAArN,kBAAA,CAAAjD,OAAA,gBAAAkD,YAAA,CAAAlD,OAAA,CAAAmD,IAAA,CAAG,SAAAoN,UAC1BhO,KAAe,EACfC,MAA4B;IAAA,IAAAgO,qBAAA;IAAA,OAAAtN,YAAA,CAAAlD,OAAA,CAAAsD,IAAA,UAAAmN,WAAAC,UAAA;MAAA,kBAAAA,UAAA,CAAAjN,IAAA,GAAAiN,UAAA,CAAAhN,IAAA;QAAA;UAEtB8M,qBAAqB,GAAG,IAAIrO,aAAa,CAACI,KAAK,EAAEC,MAAM,CAAC;UAAAkO,UAAA,CAAAhN,IAAA;UAAA,OACxD8M,qBAAqB,CAACzJ,IAAI,EAAE;QAAA;UAAA,OAAA2J,UAAA,CAAA/E,MAAA,WAE3B6E,qBAAqB;QAAA;QAAA;UAAA,OAAAE,UAAA,CAAAhM,IAAA;MAAA;IAAA,GAAA6L,SAAA;EAAA,CAC7B;EAAA,gBARYF,YAAYA,CAAAM,GAAA,EAAAC,GAAA;IAAA,OAAAN,KAAA,CAAA3O,KAAA,OAAAD,SAAA;EAAA;AAAA,GAQxB;AAAC0O,OAAA,CAAAC,YAAA,GAAAA,YAAA"}
|
|
1
|
+
{"version":3,"names":["Media","_interopRequireWildcard","require","_asyncMutex","_Utils","_types","_SDKConnector","_interopRequireDefault","_impl","_types2","_types3","_Logger","_callManager","_constants","_line","_types4","_Metrics","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","F","s","done","value","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","valueOf","CallingClient","exports","_Eventing","_inherits2","_super","webex","config","_this$sdkConfig","_this$sdkConfig$servi","_this$sdkConfig2","_this$sdkConfig2$logg","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_asyncToGenerator2","_regenerator","mark","_callee2","registration","wrap","_callee2$","_context2","prev","_values","lineDict","isDeviceRegistered","mutex","runExclusive","_callee","_callee$","_context","isReconnectPending","log","file","CALLING_CLIENT_FILE","method","CALLS_CLEARED_HANDLER_UTIL","reconnectOnFailure","stop","sdkConnector","SDKConnector","getWebex","setWebex","Mutex","sdkConfig","serviceData","indicator","ServiceIndicator","CALLING","domain","logLevel","logger","level","LOGGER","ERROR","validateServiceData","callManager","getCallManager","metricManager","getMetricManager","mediaEngine","primaryMobiusUris","backupMobiusUris","mobiusClusters","internal","services","_hostCatalog","MOBIUS_US_PROD","MOBIUS_EU_PROD","MOBIUS_US_INT","MOBIUS_EU_INT","mobiusHost","registerSessionsListener","setLogger","registerCallsClearedListener","_createClass2","key","_init","_callee3","_callee3$","_context3","getMobiusServers","createLine","detectNetworkChange","init","_detectNetworkChange","_callee5","_this2","retry","line","_callee5$","_context5","setInterval","_callee4","_callee4$","_context4","mercury","connected","_keys","getActiveCalls","warn","clearKeepaliveTimer","getStatus","RegistrationStatus","IDLE","handleConnectionRestoration","sent","NETWORK_FLAP_TIMEOUT","_getClientRegionInfo","_callee6","_this3","regionInfo","_iterator","_step","mobius","temp","myIP","response","clientRegionInfo","_callee6$","_context6","concat","host","API_V1","request","uri","URL_ENDPOINT","IP_ENDPOINT","HTTP_METHODS","GET","headers","CISCO_DEVICE_URL","device","url","SPARK_USER_AGENT","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","body","ipv4","DISCOVERY_URL","addAuthHeader","clientRegion","countryCode","abrupt","t0","handleCallingClientErrors","clientError","submitRegistrationMetric","METRIC_EVENT","REGISTRATION_ERROR","REG_ACTION","REGISTER","METRIC_TYPE","BEHAVIORAL","emit","CALLING_CLIENT_EVENT_KEYS","GET_MOBIUS_SERVERS_UTIL","t1","finish","getClientRegionInfo","_getMobiusServers","_callee7","_this$sdkConfig3","_this$sdkConfig3$disc","_this$sdkConfig4","_this$sdkConfig4$disc","_this4","useDefault","_this$sdkConfig5","_this$sdkConfig5$disc","_this$sdkConfig6","_this$sdkConfig6$disc","mobiusServers","mobiusUris","_callee7$","_context7","discovery","country","region","info","_serviceUrls","filterMobiusUris","primary","backup","logContext","on","ALL_CALLS_CLEARED","callsClearedHandler","getLoggingLevel","getLogLevel","getSDKConnector","_this5","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","_ref4","_callee8","event","sessionArr","_callee8$","_context8","data","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x","_createLine","_callee9","_this$sdkConfig7","_callee9$","_context9","Line","userId","lineId","getLines","activeCalls","calls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","Eventing","createClient","_ref5","_callee10","callingClientInstance","_callee10$","_context10","_x2","_x3"],"sources":["CallingClient.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport * as Media from '@webex/internal-media-core';\nimport {Mutex} from 'async-mutex';\nimport {filterMobiusUris, handleCallingClientErrors, validateServiceData} from '../common/Utils';\nimport {LOGGER, LogContext} from '../Logger/types';\nimport SDKConnector from '../SDKConnector';\nimport {ClientRegionInfo, ISDKConnector, ServiceHost, WebexSDK} from '../SDKConnector/types';\nimport {Eventing} from '../Events/impl';\nimport {\n CallingClientEventTypes,\n MOBIUS_EVENT_KEYS,\n CallSessionEvent,\n SessionType,\n CALLING_CLIENT_EVENT_KEYS,\n} from '../Events/types';\nimport {\n ServiceIndicator,\n RegionInfo,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n IpInfo,\n MobiusServers,\n WebexRequestPayload,\n RegistrationStatus,\n} from '../common/types';\nimport {ICallingClient, CallingClientConfig} from './types';\nimport {ICall, ICallManager} from './calling/types';\nimport log from '../Logger';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n CALLS_CLEARED_HANDLER_UTIL,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n DISCOVERY_URL,\n GET_MOBIUS_SERVERS_UTIL,\n IP_ENDPOINT,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n NETWORK_FLAP_TIMEOUT,\n API_V1,\n MOBIUS_US_PROD,\n MOBIUS_EU_PROD,\n MOBIUS_US_INT,\n MOBIUS_EU_INT,\n} from './constants';\nimport Line from './line';\nimport {ILine} from './line/types';\nimport {METRIC_EVENT, REG_ACTION, METRIC_TYPE, IMetricManager} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\n\n/**\n * The `CallingClient` module provides a set of APIs for line registration and calling functionalities within the SDK.\n *\n * The following code snippet demonstrates how to create an instance of `CallingClient` using a `webex` instance and `callingConfig`:\n *\n * @example\n * ```javascript\n * const callingClient = createClient(webex, callingConfig);\n * ```\n */\n\nexport class CallingClient extends Eventing<CallingClientEventTypes> implements ICallingClient {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private mutex: Mutex;\n\n private callManager: ICallManager;\n\n private metricManager: IMetricManager;\n\n private sdkConfig?: CallingClientConfig;\n\n private primaryMobiusUris: string[];\n\n private backupMobiusUris: string[];\n\n private mobiusClusters: ServiceHost[];\n\n private mobiusHost: string;\n\n public mediaEngine: typeof Media;\n\n private lineDict: Record<string, ILine> = {};\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, config?: CallingClientConfig) {\n super();\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.mutex = new Mutex();\n this.webex = this.sdkConnector.getWebex();\n\n this.sdkConfig = config;\n const serviceData = this.sdkConfig?.serviceData?.indicator\n ? this.sdkConfig.serviceData\n : {indicator: ServiceIndicator.CALLING, domain: ''};\n\n const logLevel = this.sdkConfig?.logger?.level ? this.sdkConfig.logger.level : LOGGER.ERROR;\n validateServiceData(serviceData);\n\n this.callManager = getCallManager(this.webex, serviceData.indicator);\n this.metricManager = getMetricManager(this.webex, serviceData.indicator);\n\n this.mediaEngine = Media;\n\n this.primaryMobiusUris = [];\n this.backupMobiusUris = [];\n this.mobiusClusters =\n this.webex.internal.services._hostCatalog[MOBIUS_US_PROD] ||\n this.webex.internal.services._hostCatalog[MOBIUS_EU_PROD] ||\n this.webex.internal.services._hostCatalog[MOBIUS_US_INT] ||\n this.webex.internal.services._hostCatalog[MOBIUS_EU_INT];\n this.mobiusHost = '';\n\n this.registerSessionsListener();\n\n log.setLogger(logLevel, CALLING_CLIENT_FILE);\n\n this.registerCallsClearedListener();\n }\n\n // async calls required to run after constructor\n\n /**\n * Initializes the `CallingClient` by performing the following steps:\n *\n * 1. Retrieves list of servers.\n * 2. Creates a line.\n * 3. Sets up network change detection.\n *\n * This method should be called once to initialize the `callingClient`.\n *\n * @returns A promise that resolves when the initialization is complete.\n * @ignore\n */\n public async init() {\n await this.getMobiusServers();\n await this.createLine();\n\n /* Better to run the timer once rather than after every registration */\n this.detectNetworkChange();\n }\n\n /**\n * Register callbacks for network changes.\n */\n private async detectNetworkChange() {\n let retry = false;\n\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const line = Object.values(this.lineDict)[0];\n\n setInterval(async () => {\n if (\n !this.webex.internal.mercury.connected &&\n !retry &&\n !Object.keys(this.callManager.getActiveCalls()).length\n ) {\n log.warn(`Network has flapped, waiting for mercury connection to be up`, {\n file: CALLING_CLIENT_FILE,\n method: this.detectNetworkChange.name,\n });\n\n line.registration.clearKeepaliveTimer();\n\n retry = true;\n }\n\n if (retry && this.webex.internal.mercury.connected) {\n if (line.getStatus() !== RegistrationStatus.IDLE) {\n retry = await line.registration.handleConnectionRestoration(retry);\n } else {\n retry = false;\n }\n }\n }, NETWORK_FLAP_TIMEOUT);\n }\n\n /**\n * Fetches countryCode and region of the client.\n */\n private async getClientRegionInfo(): Promise<RegionInfo> {\n const regionInfo = {} as RegionInfo;\n\n for (const mobius of this.mobiusClusters) {\n this.mobiusHost = `https://${mobius.host}${API_V1}`;\n\n try {\n // eslint-disable-next-line no-await-in-loop\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.mobiusHost}${URL_ENDPOINT}${IP_ENDPOINT}`,\n method: HTTP_METHODS.GET,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n\n const myIP = (temp.body as IpInfo).ipv4;\n // eslint-disable-next-line no-await-in-loop\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${DISCOVERY_URL}/${myIP}`,\n method: HTTP_METHODS.GET,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n const clientRegionInfo = response.body as ClientRegionInfo;\n\n regionInfo.clientRegion = clientRegionInfo?.clientRegion\n ? clientRegionInfo.clientRegion\n : '';\n\n regionInfo.countryCode = clientRegionInfo?.countryCode ? clientRegionInfo.countryCode : '';\n break;\n } catch (err: unknown) {\n handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n regionInfo.clientRegion = '';\n regionInfo.countryCode = '';\n }\n }\n\n return regionInfo;\n }\n\n /**\n * Local method for finding the mobius servers.\n */\n private async getMobiusServers() {\n /* Following operations are performed in a synchronous way ->\n\n 1. Get RegionInfo\n 2. Get Mobius Server with that RegionInfo\n 3. Check whether Mobius server was found without any error\n 4. If there is error , we don't need to send registration\n 5. Otherwise send registration\n */\n\n let useDefault = false;\n\n let clientRegion: string;\n let countryCode: string;\n\n if (this.sdkConfig?.discovery?.country && this.sdkConfig?.discovery?.region) {\n log.info('Updating region and country from the SDK config', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n clientRegion = this.sdkConfig?.discovery?.region;\n countryCode = this.sdkConfig?.discovery?.country;\n this.mobiusHost = this.webex.internal.services._serviceUrls.mobius;\n } else {\n log.info('Updating region and country through Region discovery', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n\n const regionInfo = await this.getClientRegionInfo();\n\n clientRegion = regionInfo.clientRegion;\n countryCode = regionInfo.countryCode;\n }\n\n if (clientRegion && countryCode) {\n log.log(\n `Found Region: ${clientRegion} and country: ${countryCode}, going to fetch Mobius server`,\n '' as LogContext\n );\n\n try {\n // eslint-disable-next-line no-await-in-loop\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.mobiusHost}${URL_ENDPOINT}?regionCode=${clientRegion}&countryCode=${countryCode}`,\n method: HTTP_METHODS.GET,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n\n log.log('Mobius Server found for the region', '' as LogContext);\n const mobiusServers = temp.body as MobiusServers;\n\n /* update arrays of Mobius Uris. */\n const mobiusUris = filterMobiusUris(mobiusServers, this.mobiusHost);\n this.primaryMobiusUris = mobiusUris.primary;\n this.backupMobiusUris = mobiusUris.backup;\n log.info(\n `Final list of Mobius Servers, primary: ${mobiusUris.primary} and backup: ${mobiusUris.backup}`,\n '' as LogContext\n );\n } catch (err: unknown) {\n handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n\n useDefault = true;\n }\n } else {\n /* Setting this to true because region info is possibly undefined */\n useDefault = true;\n }\n\n /* Use a default URL if Mobius discovery fails either because of region info failure\n * or because the discovered Mobius couldn't be reached\n */\n\n if (useDefault) {\n log.warn(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n '' as LogContext\n );\n this.mobiusHost = `https://${this.mobiusClusters[0].host}${API_V1}`;\n this.primaryMobiusUris = [`${this.mobiusHost}${URL_ENDPOINT}`];\n }\n }\n\n /**\n * Registers a listener/handler for ALL_CALLS_CLEARED\n * event emitted by callManager when all the calls\n * present on sdk are cleaned up.\n */\n private registerCallsClearedListener() {\n const logContext = {\n file: CALLING_CLIENT_FILE,\n method: this.registerCallsClearedListener.name,\n };\n\n log.log('Registering listener for all calls cleared event', logContext);\n this.callManager.on(CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED, this.callsClearedHandler);\n }\n\n /**\n * Handler registered for ALL_CALLS_CLEARED event emitted by callManager.\n *\n * If re-register attempt was deferred earlier due to active call(s), then it\n * will be attempted here on receiving a notification from callManager that all\n * calls are cleaned up.\n */\n private callsClearedHandler = async () => {\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const {registration} = Object.values(this.lineDict)[0];\n\n if (!registration.isDeviceRegistered()) {\n await this.mutex.runExclusive(async () => {\n if (registration.isReconnectPending()) {\n log.log('All calls cleared, reconnecting', {\n file: CALLING_CLIENT_FILE,\n method: CALLS_CLEARED_HANDLER_UTIL,\n });\n await registration.reconnectOnFailure(CALLS_CLEARED_HANDLER_UTIL);\n }\n });\n }\n };\n\n /**\n * To get the current log Level.\n * @ignore\n */\n public getLoggingLevel(): LOGGER {\n return log.getLogLevel();\n }\n\n /**\n * To return the `sdkConnector` instance that was used during sdk initialisation.\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n\n private registerSessionsListener() {\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n async (event?: CallSessionEvent) => {\n if (event && event.data.userSessions.userSessions) {\n const sessionArr = event?.data.userSessions.userSessions;\n\n if (sessionArr.length === 1) {\n if (sessionArr[0].sessionType !== SessionType.WEBEX_CALLING) {\n return;\n }\n }\n\n for (let i = 0; i < sessionArr.length; i += 1) {\n if (sessionArr[i].sessionType !== SessionType.WEBEX_CALLING) {\n sessionArr.splice(i, 1);\n }\n }\n this.emit(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event as CallSessionEvent);\n }\n }\n );\n }\n\n /**\n * Creates line object inside calling client per user\n * NOTE: currently multiple lines are not supported\n */\n private async createLine(): Promise<void> {\n const line = new Line(\n this.webex.internal.device.userId,\n this.webex.internal.device.url,\n this.mutex,\n this.primaryMobiusUris,\n this.backupMobiusUris,\n this.getLoggingLevel(),\n this.sdkConfig?.serviceData\n );\n\n this.lineDict[line.lineId] = line;\n }\n\n /**\n * Retrieves details of all the Line objects belonging to a User\n * NOTE: currently multiple lines are not supported\n */\n public getLines(): Record<string, ILine> {\n return this.lineDict;\n }\n\n /**\n * Retrieves call objects for all the active calls present in the client\n */\n public getActiveCalls(): Record<string, ICall[]> {\n const activeCalls = {};\n const calls = this.callManager.getActiveCalls();\n Object.keys(calls).forEach((correlationId) => {\n const call = calls[correlationId];\n if (!activeCalls[call.lineId]) {\n activeCalls[call.lineId] = [];\n }\n activeCalls[call.lineId].push(call);\n });\n\n return activeCalls;\n }\n\n /**\n * Retrieves call object for the connected call in the client\n */\n public getConnectedCall(): ICall | undefined {\n let connectCall;\n const calls = this.callManager.getActiveCalls();\n\n Object.keys(calls).forEach((correlationId) => {\n if (calls[correlationId].isConnected() && !calls[correlationId].isHeld()) {\n connectCall = calls[correlationId];\n }\n });\n\n return connectCall;\n }\n}\n\n/**\n * Create the `CallingClient` instance using the `webex` object and callingSdk `config`\n * @param webex - A webex instance.\n * @param config - Config to start the CallingClient with.\n */\nexport const createClient = async (\n webex: WebexSDK,\n config?: CallingClientConfig\n): Promise<ICallingClient> => {\n const callingClientInstance = new CallingClient(webex, config);\n await callingClientInstance.init();\n\n return callingClientInstance;\n};\n"],"mappings":"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"}
|