@webex/calling 3.11.0-webex-services-ready.1 → 3.12.0-mobius-socket.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/CallHistory/CallHistory.js +68 -51
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallingClient/CallingClient.js +489 -165
  4. package/dist/CallingClient/CallingClient.js.map +1 -1
  5. package/dist/CallingClient/CallingClient.test.js +207 -6
  6. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  7. package/dist/CallingClient/calling/call.js +20 -16
  8. package/dist/CallingClient/calling/call.js.map +1 -1
  9. package/dist/CallingClient/calling/call.test.js +467 -387
  10. package/dist/CallingClient/calling/call.test.js.map +1 -1
  11. package/dist/CallingClient/calling/callManager.js +53 -32
  12. package/dist/CallingClient/calling/callManager.js.map +1 -1
  13. package/dist/CallingClient/calling/callManager.test.js +35 -0
  14. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  15. package/dist/CallingClient/calling/types.js +2 -0
  16. package/dist/CallingClient/calling/types.js.map +1 -1
  17. package/dist/CallingClient/constants.js +11 -3
  18. package/dist/CallingClient/constants.js.map +1 -1
  19. package/dist/CallingClient/line/line.test.js +15 -0
  20. package/dist/CallingClient/line/line.test.js.map +1 -1
  21. package/dist/CallingClient/registration/register.js +114 -71
  22. package/dist/CallingClient/registration/register.js.map +1 -1
  23. package/dist/CallingClient/registration/register.test.js +21 -12
  24. package/dist/CallingClient/registration/register.test.js.map +1 -1
  25. package/dist/CallingClient/registration/types.js.map +1 -1
  26. package/dist/CallingClient/registration/webWorker.js +2 -0
  27. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  28. package/dist/CallingClient/types.js.map +1 -1
  29. package/dist/CallingClient/utils/constants.js +46 -0
  30. package/dist/CallingClient/utils/constants.js.map +1 -0
  31. package/dist/CallingClient/utils/index.js +63 -0
  32. package/dist/CallingClient/utils/index.js.map +1 -0
  33. package/dist/CallingClient/utils/mobiusSocketMapper.js +106 -0
  34. package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -0
  35. package/dist/CallingClient/utils/request.js +267 -0
  36. package/dist/CallingClient/utils/request.js.map +1 -0
  37. package/dist/CallingClient/utils/types.js +7 -0
  38. package/dist/CallingClient/utils/types.js.map +1 -0
  39. package/dist/CallingClient/utils/wsFeatureFlag.js +20 -0
  40. package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -0
  41. package/dist/Events/types.js +1 -11
  42. package/dist/Events/types.js.map +1 -1
  43. package/dist/SDKConnector/index.js +32 -0
  44. package/dist/SDKConnector/index.js.map +1 -1
  45. package/dist/SDKConnector/types.js.map +1 -1
  46. package/dist/common/Utils.js +69 -10
  47. package/dist/common/Utils.js.map +1 -1
  48. package/dist/common/testUtil.js +5 -0
  49. package/dist/common/testUtil.js.map +1 -1
  50. package/dist/common/types.js.map +1 -1
  51. package/dist/module/CallHistory/CallHistory.js +28 -17
  52. package/dist/module/CallingClient/CallingClient.js +157 -4
  53. package/dist/module/CallingClient/calling/call.js +12 -8
  54. package/dist/module/CallingClient/calling/callManager.js +29 -10
  55. package/dist/module/CallingClient/calling/types.js +2 -0
  56. package/dist/module/CallingClient/constants.js +8 -0
  57. package/dist/module/CallingClient/registration/register.js +46 -16
  58. package/dist/module/CallingClient/utils/constants.js +30 -0
  59. package/dist/module/CallingClient/utils/index.js +5 -0
  60. package/dist/module/CallingClient/utils/mobiusSocketMapper.js +56 -0
  61. package/dist/module/CallingClient/utils/request.js +112 -0
  62. package/dist/module/CallingClient/utils/types.js +1 -0
  63. package/dist/module/CallingClient/utils/wsFeatureFlag.js +5 -0
  64. package/dist/module/Events/types.js +0 -10
  65. package/dist/module/SDKConnector/index.js +17 -0
  66. package/dist/module/common/Utils.js +35 -4
  67. package/dist/module/common/testUtil.js +3 -0
  68. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  69. package/dist/types/CallingClient/CallingClient.d.ts +10 -1
  70. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  71. package/dist/types/CallingClient/calling/call.d.ts +1 -0
  72. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  73. package/dist/types/CallingClient/calling/callManager.d.ts +5 -4
  74. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  75. package/dist/types/CallingClient/calling/types.d.ts +21 -9
  76. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  77. package/dist/types/CallingClient/constants.d.ts +8 -0
  78. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  79. package/dist/types/CallingClient/registration/register.d.ts +3 -1
  80. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  81. package/dist/types/CallingClient/registration/types.d.ts +2 -1
  82. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  83. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
  84. package/dist/types/CallingClient/types.d.ts +3 -1
  85. package/dist/types/CallingClient/types.d.ts.map +1 -1
  86. package/dist/types/CallingClient/utils/constants.d.ts +30 -0
  87. package/dist/types/CallingClient/utils/constants.d.ts.map +1 -0
  88. package/dist/types/CallingClient/utils/index.d.ts +6 -0
  89. package/dist/types/CallingClient/utils/index.d.ts.map +1 -0
  90. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts +4 -0
  91. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -0
  92. package/dist/types/CallingClient/utils/request.d.ts +20 -0
  93. package/dist/types/CallingClient/utils/request.d.ts.map +1 -0
  94. package/dist/types/CallingClient/utils/types.d.ts +23 -0
  95. package/dist/types/CallingClient/utils/types.d.ts.map +1 -0
  96. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts +4 -0
  97. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -0
  98. package/dist/types/Events/types.d.ts +0 -10
  99. package/dist/types/Events/types.d.ts.map +1 -1
  100. package/dist/types/SDKConnector/index.d.ts +2 -0
  101. package/dist/types/SDKConnector/index.d.ts.map +1 -1
  102. package/dist/types/SDKConnector/types.d.ts +11 -0
  103. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  104. package/dist/types/common/Utils.d.ts +4 -1
  105. package/dist/types/common/Utils.d.ts.map +1 -1
  106. package/dist/types/common/testUtil.d.ts +3 -0
  107. package/dist/types/common/testUtil.d.ts.map +1 -1
  108. package/dist/types/common/types.d.ts +5 -0
  109. package/dist/types/common/types.d.ts.map +1 -1
  110. package/package.json +8 -4
@@ -18,6 +18,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regene
18
18
  var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
19
19
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
20
20
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
21
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
21
22
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
22
23
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
23
24
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
@@ -26,6 +27,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
26
27
  var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
27
28
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
28
29
  var Media = _interopRequireWildcard(require("@webex/internal-media-core"));
30
+ var _internalPluginMobiusSocket = require("@webex/internal-plugin-mobius-socket");
29
31
  var _asyncMutex = require("async-mutex");
30
32
  var _constants = require("../common/constants");
31
33
  var _Utils = require("../common/Utils");
@@ -34,19 +36,22 @@ var _SDKConnector = _interopRequireDefault(require("../SDKConnector"));
34
36
  var _impl = require("../Events/impl");
35
37
  var _types2 = require("../Events/types");
36
38
  var _types3 = require("../common/types");
39
+ var _types4 = require("./calling/types");
37
40
  var _Logger = _interopRequireDefault(require("../Logger"));
38
41
  var _callManager = require("./calling/callManager");
39
42
  var _constants2 = require("./constants");
40
43
  var _line = _interopRequireDefault(require("./line"));
41
- var _types4 = require("../Metrics/types");
44
+ var _types5 = require("../Metrics/types");
42
45
  var _Metrics = require("../Metrics");
43
46
  var _windowsChromiumIceWarmupUtils = _interopRequireDefault(require("./windowsChromiumIceWarmupUtils"));
44
- function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t7 in e) "default" !== _t7 && {}.hasOwnProperty.call(e, _t7) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t7)) && (i.get || i.set) ? o(f, _t7, i) : f[_t7] = e[_t7]); return f; })(e, t); }
47
+ var _request = require("./utils/request");
48
+ var _utils = require("./utils");
49
+ function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t11 in e) "default" !== _t11 && {}.hasOwnProperty.call(e, _t11) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t11)) && (i.get || i.set) ? o(f, _t11, i) : f[_t11] = e[_t11]); return f; })(e, t); }
45
50
  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; } } }; }
46
51
  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; } }
47
52
  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; }
48
53
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
49
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable no-underscore-dangle */ /* eslint-disable valid-jsdoc */ /* eslint-disable @typescript-eslint/no-shadow */
54
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable no-underscore-dangle */ /* eslint-disable valid-jsdoc */ /* eslint-disable @typescript-eslint/no-shadow */ // @ts-ignore - JS module without type declarations
50
55
  /**
51
56
  * The `CallingClient` module provides a set of APIs for line registration and calling functionalities within the SDK.
52
57
  *
@@ -62,7 +67,7 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
62
67
  * @ignore
63
68
  */
64
69
  function CallingClient(webex, config) {
65
- var _this$sdkConfig, _this$sdkConfig$servi, _this$sdkConfig2, _this$sdkConfig2$logg;
70
+ var _this$sdkConfig, _this$sdkConfig$servi, _this$sdkConfig2, _this$sdkConfig2$logg, _config$isMobiusSocke;
66
71
  var _this;
67
72
  (0, _classCallCheck2.default)(this, CallingClient);
68
73
  _this = _callSuper(this, CallingClient);
@@ -74,10 +79,16 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
74
79
  (0, _defineProperty2.default)(_this, "sdkConfig", void 0);
75
80
  (0, _defineProperty2.default)(_this, "primaryMobiusUris", void 0);
76
81
  (0, _defineProperty2.default)(_this, "backupMobiusUris", void 0);
82
+ (0, _defineProperty2.default)(_this, "primaryWssMobiusUris", void 0);
83
+ (0, _defineProperty2.default)(_this, "backupWssMobiusUris", void 0);
77
84
  (0, _defineProperty2.default)(_this, "mobiusClusters", void 0);
78
85
  (0, _defineProperty2.default)(_this, "mobiusHost", void 0);
79
86
  (0, _defineProperty2.default)(_this, "mediaEngine", void 0);
80
87
  (0, _defineProperty2.default)(_this, "lineDict", {});
88
+ (0, _defineProperty2.default)(_this, "apiRequest", void 0);
89
+ (0, _defineProperty2.default)(_this, "isMobiusSocketEnabled", void 0);
90
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
91
+ (0, _defineProperty2.default)(_this, "mobiusSocket", void 0);
81
92
  (0, _defineProperty2.default)(_this, "isNetworkDown", false);
82
93
  (0, _defineProperty2.default)(_this, "networkDownTimestamp", '');
83
94
  (0, _defineProperty2.default)(_this, "networkUpTimestamp", '');
@@ -121,7 +132,7 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
121
132
  method: _constants2.METHODS.MERCURY_OFFLINE
122
133
  });
123
134
  _this.mercuryDownTimestamp = new Date().toISOString();
124
- _this.metricManager.submitConnectionMetrics(_types4.METRIC_EVENT.CONNECTION_ERROR, _types4.CONNECTION_ACTION.MERCURY_DOWN, _types4.METRIC_TYPE.BEHAVIORAL, _this.mercuryDownTimestamp, _this.mercuryUpTimestamp);
135
+ _this.metricManager.submitConnectionMetrics(_types5.METRIC_EVENT.CONNECTION_ERROR, _types5.CONNECTION_ACTION.MERCURY_DOWN, _types5.METRIC_TYPE.BEHAVIORAL, _this.mercuryDownTimestamp, _this.mercuryUpTimestamp);
125
136
  });
126
137
  (0, _defineProperty2.default)(_this, "handleMercuryOnline", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
127
138
  var callCheckInterval;
@@ -173,7 +184,7 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
173
184
  _context3.next = 1;
174
185
  return _this.checkCallStatus();
175
186
  case 1:
176
- _this.metricManager.submitConnectionMetrics(_types4.METRIC_EVENT.CONNECTION_ERROR, _types4.CONNECTION_ACTION.NETWORK_FLAP, _types4.METRIC_TYPE.BEHAVIORAL, _this.networkDownTimestamp, _this.networkUpTimestamp);
187
+ _this.metricManager.submitConnectionMetrics(_types5.METRIC_EVENT.CONNECTION_ERROR, _types5.CONNECTION_ACTION.NETWORK_FLAP, _types5.METRIC_TYPE.BEHAVIORAL, _this.networkDownTimestamp, _this.networkUpTimestamp);
177
188
  _context3.next = 4;
178
189
  break;
179
190
  case 2:
@@ -184,13 +195,60 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
184
195
  _context3.next = 3;
185
196
  return _this.checkCallStatus();
186
197
  case 3:
187
- _this.metricManager.submitConnectionMetrics(_types4.METRIC_EVENT.CONNECTION_ERROR, _types4.CONNECTION_ACTION.MERCURY_UP, _types4.METRIC_TYPE.BEHAVIORAL, _this.mercuryDownTimestamp, _this.mercuryUpTimestamp);
198
+ _this.metricManager.submitConnectionMetrics(_types5.METRIC_EVENT.CONNECTION_ERROR, _types5.CONNECTION_ACTION.MERCURY_UP, _types5.METRIC_TYPE.BEHAVIORAL, _this.mercuryDownTimestamp, _this.mercuryUpTimestamp);
188
199
  case 4:
189
200
  case "end":
190
201
  return _context3.stop();
191
202
  }
192
203
  }, _callee3);
193
204
  })));
205
+ // private unregisterMobiusSocketListener() {
206
+ // log.info(METHOD_START_MESSAGE, {
207
+ // file: CALLING_CLIENT_FILE,
208
+ // method: METHODS.UNREGISTER_MOBIUS_SOCKET_LISTENER,
209
+ // });
210
+ // this.sdkConnector.unregisterMobiusSocketListener('async_event');
211
+ // }
212
+ (0, _defineProperty2.default)(_this, "handleMobiusAsyncEvent", /*#__PURE__*/function () {
213
+ var _ref4 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(event) {
214
+ var eventType;
215
+ return _regenerator.default.wrap(function (_context4) {
216
+ while (1) switch (_context4.prev = _context4.next) {
217
+ case 0:
218
+ _Logger.default.info(_constants.METHOD_START_MESSAGE, {
219
+ file: _constants2.CALLING_CLIENT_FILE,
220
+ method: _constants2.METHODS.HANDLE_MOBIUS_ASYNC_EVENT
221
+ });
222
+ eventType = event === null || event === void 0 ? void 0 : event.data.eventType;
223
+ if (eventType) {
224
+ _context4.next = 1;
225
+ break;
226
+ }
227
+ _Logger.default.warn('Dropping unsupported mobius socket payload', {
228
+ file: _constants2.CALLING_CLIENT_FILE,
229
+ method: _constants2.METHODS.HANDLE_MOBIUS_ASYNC_EVENT
230
+ });
231
+ return _context4.abrupt("return");
232
+ case 1:
233
+ if (!(eventType === _types4.MobiusEventType.REGISTRATION_DOWN)) {
234
+ _context4.next = 2;
235
+ break;
236
+ }
237
+ return _context4.abrupt("return");
238
+ case 2:
239
+ if (eventType.startsWith('mobius.')) {
240
+ _this.callManager.dequeueWsEvents(event);
241
+ }
242
+ case 3:
243
+ case "end":
244
+ return _context4.stop();
245
+ }
246
+ }, _callee4);
247
+ }));
248
+ return function (_x) {
249
+ return _ref4.apply(this, arguments);
250
+ };
251
+ }());
194
252
  /**
195
253
  * Handler registered for ALL_CALLS_CLEARED event emitted by callManager.
196
254
  *
@@ -198,10 +256,10 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
198
256
  * will be attempted here on receiving a notification from callManager that all
199
257
  * calls are cleaned up.
200
258
  */
201
- (0, _defineProperty2.default)(_this, "callsClearedHandler", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
259
+ (0, _defineProperty2.default)(_this, "callsClearedHandler", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
202
260
  var registration;
203
- return _regenerator.default.wrap(function (_context5) {
204
- while (1) switch (_context5.prev = _context5.next) {
261
+ return _regenerator.default.wrap(function (_context6) {
262
+ while (1) switch (_context6.prev = _context6.next) {
205
263
  case 0:
206
264
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
207
265
  file: _constants2.CALLING_CLIENT_FILE,
@@ -211,35 +269,35 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
211
269
  // it will change once we have proper lineId and multiple lines as well
212
270
  registration = (0, _values.default)(_this.lineDict)[0].registration;
213
271
  if (registration.isDeviceRegistered()) {
214
- _context5.next = 1;
272
+ _context6.next = 1;
215
273
  break;
216
274
  }
217
- _context5.next = 1;
218
- return _this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
219
- return _regenerator.default.wrap(function (_context4) {
220
- while (1) switch (_context4.prev = _context4.next) {
275
+ _context6.next = 1;
276
+ return _this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
277
+ return _regenerator.default.wrap(function (_context5) {
278
+ while (1) switch (_context5.prev = _context5.next) {
221
279
  case 0:
222
280
  if (!registration.isReconnectPending()) {
223
- _context4.next = 1;
281
+ _context5.next = 1;
224
282
  break;
225
283
  }
226
284
  _Logger.default.info('All calls cleared, reconnecting', {
227
285
  file: _constants2.CALLING_CLIENT_FILE,
228
286
  method: _constants2.CALLS_CLEARED_HANDLER_UTIL
229
287
  });
230
- _context4.next = 1;
288
+ _context5.next = 1;
231
289
  return registration.reconnectOnFailure(_constants2.CALLS_CLEARED_HANDLER_UTIL);
232
290
  case 1:
233
291
  case "end":
234
- return _context4.stop();
292
+ return _context5.stop();
235
293
  }
236
- }, _callee4);
294
+ }, _callee5);
237
295
  })));
238
296
  case 1:
239
297
  case "end":
240
- return _context5.stop();
298
+ return _context6.stop();
241
299
  }
242
- }, _callee5);
300
+ }, _callee6);
243
301
  })));
244
302
  _this.sdkConnector = _SDKConnector.default;
245
303
  if (!_this.sdkConnector.getWebex()) {
@@ -260,7 +318,8 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
260
318
  var logLevel = (_this$sdkConfig2 = _this.sdkConfig) !== null && _this$sdkConfig2 !== void 0 && (_this$sdkConfig2$logg = _this$sdkConfig2.logger) !== null && _this$sdkConfig2$logg !== void 0 && _this$sdkConfig2$logg.level ? _this.sdkConfig.logger.level : _types.LOGGER.ERROR;
261
319
  _Logger.default.setLogger(logLevel, _constants2.CALLING_CLIENT_FILE);
262
320
  (0, _Utils.validateServiceData)(serviceData);
263
- _this.callManager = (0, _callManager.getCallManager)(_this.webex, serviceData.indicator);
321
+ _this.isMobiusSocketEnabled = (0, _utils.isMobiusWssEnabled)(_this.webex) || ((_config$isMobiusSocke = config === null || config === void 0 ? void 0 : config.isMobiusSocketEnabled) !== null && _config$isMobiusSocke !== void 0 ? _config$isMobiusSocke : false);
322
+ _this.callManager = (0, _callManager.getCallManager)(_this.webex, serviceData.indicator, _this.isMobiusSocketEnabled);
264
323
  _this.metricManager = (0, _Metrics.getMetricManager)(_this.webex, serviceData.indicator);
265
324
  _this.mediaEngine = Media;
266
325
  var adaptedLogger = {
@@ -304,8 +363,17 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
304
363
  _this.mediaEngine.setLogger(adaptedLogger);
305
364
  _this.primaryMobiusUris = [];
306
365
  _this.backupMobiusUris = [];
366
+ _this.primaryWssMobiusUris = [];
367
+ _this.backupWssMobiusUris = [];
307
368
  _this.mobiusClusters = _this.webex.internal.services.getMobiusClusters();
308
369
  _this.mobiusHost = '';
370
+ if (_this.isMobiusSocketEnabled) {
371
+ _this.mobiusSocket = (0, _internalPluginMobiusSocket.getMobiusSocketInstance)(_this.webex);
372
+ }
373
+ _this.apiRequest = _request.APIRequest.getInstance({
374
+ webex: _this.webex,
375
+ isMobiusSocketEnabled: _this.isMobiusSocketEnabled
376
+ });
309
377
  _this.registerSessionsListener();
310
378
  _this.registerCallsClearedListener();
311
379
  return _this;
@@ -327,27 +395,27 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
327
395
  return (0, _createClass2.default)(CallingClient, [{
328
396
  key: "init",
329
397
  value: (function () {
330
- var _init = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
398
+ var _init = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
331
399
  var _window, _window$navigator;
332
400
  var ua, _t;
333
- return _regenerator.default.wrap(function (_context6) {
334
- while (1) switch (_context6.prev = _context6.next) {
401
+ return _regenerator.default.wrap(function (_context7) {
402
+ while (1) switch (_context7.prev = _context7.next) {
335
403
  case 0:
336
404
  if (!(typeof window !== 'undefined' && (_window = window) !== null && _window !== void 0 && (_window$navigator = _window.navigator) !== null && _window$navigator !== void 0 && _window$navigator.userAgent)) {
337
- _context6.next = 4;
405
+ _context7.next = 4;
338
406
  break;
339
407
  }
340
408
  ua = window.navigator.userAgent;
341
409
  if (!ua.toLowerCase().includes('windows')) {
342
- _context6.next = 4;
410
+ _context7.next = 4;
343
411
  break;
344
412
  }
345
413
  _Logger.default.info('Starting ICE warmup for Windows Chromium based browser', {
346
414
  file: _constants2.CALLING_CLIENT_FILE,
347
415
  method: 'init'
348
416
  });
349
- _context6.prev = 1;
350
- _context6.next = 2;
417
+ _context7.prev = 1;
418
+ _context7.next = 2;
351
419
  return (0, _windowsChromiumIceWarmupUtils.default)({
352
420
  iceServers: [],
353
421
  timeoutMs: 1000
@@ -357,28 +425,37 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
357
425
  file: _constants2.CALLING_CLIENT_FILE,
358
426
  method: 'init'
359
427
  });
360
- _context6.next = 4;
428
+ _context7.next = 4;
361
429
  break;
362
430
  case 3:
363
- _context6.prev = 3;
364
- _t = _context6["catch"](1);
431
+ _context7.prev = 3;
432
+ _t = _context7["catch"](1);
365
433
  _Logger.default.warn("ICE warmup failed: ".concat(_t), {
366
434
  file: _constants2.CALLING_CLIENT_FILE,
367
435
  method: 'init'
368
436
  });
369
437
  case 4:
370
- _context6.next = 5;
438
+ _context7.next = 5;
371
439
  return this.getMobiusServers();
372
440
  case 5:
373
- _context6.next = 6;
374
- return this.createLine();
441
+ if (!this.isMobiusSocketEnabled) {
442
+ _context7.next = 7;
443
+ break;
444
+ }
445
+ _context7.next = 6;
446
+ return this.connectToMobiusSocket();
375
447
  case 6:
376
- this.setupNetworkEventListeners();
448
+ this.registerMobiusSocketListener();
377
449
  case 7:
450
+ _context7.next = 8;
451
+ return this.createLine();
452
+ case 8:
453
+ this.setupNetworkEventListeners();
454
+ case 9:
378
455
  case "end":
379
- return _context6.stop();
456
+ return _context7.stop();
380
457
  }
381
- }, _callee6, this, [[1, 3]]);
458
+ }, _callee7, this, [[1, 3]]);
382
459
  }));
383
460
  function init() {
384
461
  return _init.apply(this, arguments);
@@ -392,18 +469,18 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
392
469
  }, {
393
470
  key: "checkNetworkReachability",
394
471
  value: (function () {
395
- var _checkNetworkReachability = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
472
+ var _checkNetworkReachability = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
396
473
  var controller, timeoutId, _t2;
397
- return _regenerator.default.wrap(function (_context7) {
398
- while (1) switch (_context7.prev = _context7.next) {
474
+ return _regenerator.default.wrap(function (_context8) {
475
+ while (1) switch (_context8.prev = _context8.next) {
399
476
  case 0:
400
- _context7.prev = 0;
477
+ _context8.prev = 0;
401
478
  controller = new AbortController();
402
479
  timeoutId = setTimeout(function () {
403
480
  return controller.abort();
404
481
  }, 3000); // Using a common connectivity check endpoint that returns 204 with minimal payload.
405
482
  // no-cors mode yields an opaque response but a successful fetch implies reachability.
406
- _context7.next = 1;
483
+ _context8.next = 1;
407
484
  return fetch('https://www.google.com/generate_204', {
408
485
  method: 'GET',
409
486
  cache: 'no-cache',
@@ -412,20 +489,20 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
412
489
  });
413
490
  case 1:
414
491
  clearTimeout(timeoutId);
415
- return _context7.abrupt("return", true);
492
+ return _context8.abrupt("return", true);
416
493
  case 2:
417
- _context7.prev = 2;
418
- _t2 = _context7["catch"](0);
494
+ _context8.prev = 2;
495
+ _t2 = _context8["catch"](0);
419
496
  _Logger.default.warn("Network connectivity probe failed: ".concat(_t2), {
420
497
  file: _constants2.CALLING_CLIENT_FILE,
421
498
  method: 'pingExternal'
422
499
  });
423
- return _context7.abrupt("return", false);
500
+ return _context8.abrupt("return", false);
424
501
  case 3:
425
502
  case "end":
426
- return _context7.stop();
503
+ return _context8.stop();
427
504
  }
428
- }, _callee7, null, [[0, 2]]);
505
+ }, _callee8, null, [[0, 2]]);
429
506
  }));
430
507
  function checkNetworkReachability() {
431
508
  return _checkNetworkReachability.apply(this, arguments);
@@ -435,10 +512,10 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
435
512
  }, {
436
513
  key: "checkCallStatus",
437
514
  value: function () {
438
- var _checkCallStatus = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
515
+ var _checkCallStatus = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
439
516
  var loggerContext, calls, _iterator, _step, _loop, _t3;
440
- return _regenerator.default.wrap(function (_context9) {
441
- while (1) switch (_context9.prev = _context9.next) {
517
+ return _regenerator.default.wrap(function (_context0) {
518
+ while (1) switch (_context0.prev = _context0.next) {
442
519
  case 0:
443
520
  loggerContext = {
444
521
  file: _constants2.CALLING_CLIENT_FILE,
@@ -446,11 +523,11 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
446
523
  };
447
524
  calls = (0, _values.default)(this.callManager.getActiveCalls());
448
525
  _iterator = _createForOfIteratorHelper(calls);
449
- _context9.prev = 1;
526
+ _context0.prev = 1;
450
527
  _loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
451
528
  var call;
452
- return _regenerator.default.wrap(function (_context8) {
453
- while (1) switch (_context8.prev = _context8.next) {
529
+ return _regenerator.default.wrap(function (_context9) {
530
+ while (1) switch (_context9.prev = _context9.next) {
454
531
  case 0:
455
532
  call = _step.value;
456
533
  call.postStatus().then(function () {
@@ -467,36 +544,36 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
467
544
  });
468
545
  case 1:
469
546
  case "end":
470
- return _context8.stop();
547
+ return _context9.stop();
471
548
  }
472
549
  }, _loop);
473
550
  });
474
551
  _iterator.s();
475
552
  case 2:
476
553
  if ((_step = _iterator.n()).done) {
477
- _context9.next = 4;
554
+ _context0.next = 4;
478
555
  break;
479
556
  }
480
- return _context9.delegateYield(_loop(), "t0", 3);
557
+ return _context0.delegateYield(_loop(), "t0", 3);
481
558
  case 3:
482
- _context9.next = 2;
559
+ _context0.next = 2;
483
560
  break;
484
561
  case 4:
485
- _context9.next = 6;
562
+ _context0.next = 6;
486
563
  break;
487
564
  case 5:
488
- _context9.prev = 5;
489
- _t3 = _context9["catch"](1);
565
+ _context0.prev = 5;
566
+ _t3 = _context0["catch"](1);
490
567
  _iterator.e(_t3);
491
568
  case 6:
492
- _context9.prev = 6;
569
+ _context0.prev = 6;
493
570
  _iterator.f();
494
- return _context9.finish(6);
571
+ return _context0.finish(6);
495
572
  case 7:
496
573
  case "end":
497
- return _context9.stop();
574
+ return _context0.stop();
498
575
  }
499
- }, _callee8, this, [[1, 5, 6, 7]]);
576
+ }, _callee9, this, [[1, 5, 6, 7]]);
500
577
  }));
501
578
  function checkCallStatus() {
502
579
  return _checkCallStatus.apply(this, arguments);
@@ -525,19 +602,19 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
525
602
  }, {
526
603
  key: "getClientRegionInfo",
527
604
  value: (function () {
528
- var _getClientRegionInfo = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
605
+ var _getClientRegionInfo = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
529
606
  var _this3 = this;
530
607
  var abort, regionInfo, _response$headers, _response$headers$tra, _response$headers2, response, clientRegionInfo, _t4;
531
- return _regenerator.default.wrap(function (_context0) {
532
- while (1) switch (_context0.prev = _context0.next) {
608
+ return _regenerator.default.wrap(function (_context1) {
609
+ while (1) switch (_context1.prev = _context1.next) {
533
610
  case 0:
534
611
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
535
612
  file: _constants2.CALLING_CLIENT_FILE,
536
613
  method: _constants2.METHODS.GET_CLIENT_REGION_INFO
537
614
  });
538
615
  regionInfo = {};
539
- _context0.prev = 1;
540
- _context0.next = 2;
616
+ _context1.prev = 1;
617
+ _context1.next = 2;
541
618
  return this.webex.request({
542
619
  uri: "".concat(_constants2.DISCOVERY_URL),
543
620
  method: _types3.HTTP_METHODS.GET,
@@ -545,7 +622,7 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
545
622
  headers: (0, _defineProperty2.default)({}, _constants2.SPARK_USER_AGENT, null)
546
623
  });
547
624
  case 2:
548
- response = _context0.sent;
625
+ response = _context1.sent;
549
626
  clientRegionInfo = response.body;
550
627
  regionInfo.clientRegion = (clientRegionInfo === null || clientRegionInfo === void 0 ? void 0 : clientRegionInfo.clientRegion) || '';
551
628
  regionInfo.countryCode = (clientRegionInfo === null || clientRegionInfo === void 0 ? void 0 : clientRegionInfo.countryCode) || '';
@@ -553,46 +630,46 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
553
630
  file: _constants2.CALLING_CLIENT_FILE,
554
631
  method: _constants2.METHODS.GET_CLIENT_REGION_INFO
555
632
  });
556
- this.metricManager.submitRegionInfoMetric(_types4.METRIC_EVENT.MOBIUS_DISCOVERY, _types4.MOBIUS_SERVER_ACTION.REGION_INFO, _types4.METRIC_TYPE.BEHAVIORAL, this.mobiusHost, clientRegionInfo.clientRegion, clientRegionInfo.countryCode, (_response$headers$tra = response === null || response === void 0 ? void 0 : (_response$headers2 = response.headers) === null || _response$headers2 === void 0 ? void 0 : _response$headers2.trackingid) !== null && _response$headers$tra !== void 0 ? _response$headers$tra : '');
557
- _context0.next = 6;
633
+ this.metricManager.submitRegionInfoMetric(_types5.METRIC_EVENT.MOBIUS_DISCOVERY, _types5.MOBIUS_SERVER_ACTION.REGION_INFO, _types5.METRIC_TYPE.BEHAVIORAL, this.mobiusHost, clientRegionInfo.clientRegion, clientRegionInfo.countryCode, (_response$headers$tra = response === null || response === void 0 ? void 0 : (_response$headers2 = response.headers) === null || _response$headers2 === void 0 ? void 0 : _response$headers2.trackingid) !== null && _response$headers$tra !== void 0 ? _response$headers$tra : '');
634
+ _context1.next = 6;
558
635
  break;
559
636
  case 3:
560
- _context0.prev = 3;
561
- _t4 = _context0["catch"](1);
637
+ _context1.prev = 3;
638
+ _t4 = _context1["catch"](1);
562
639
  _Logger.default.error("Failed to get client region info: ".concat((0, _stringify.default)(_t4)), {
563
640
  method: _constants2.METHODS.GET_CLIENT_REGION_INFO,
564
641
  file: _constants2.CALLING_CLIENT_FILE
565
642
  });
566
643
 
567
644
  // eslint-disable-next-line no-await-in-loop
568
- _context0.next = 4;
645
+ _context1.next = 4;
569
646
  return (0, _Utils.handleCallingClientErrors)(_t4, function (clientError) {
570
647
  var _headers$trackingId, _headers2;
571
- _this3.metricManager.submitRegistrationMetric(_types4.METRIC_EVENT.REGISTRATION_ERROR, _types4.REG_ACTION.REGISTER, _types4.METRIC_TYPE.BEHAVIORAL, _constants2.GET_MOBIUS_SERVERS_UTIL, 'UNKNOWN', (_headers$trackingId = (_headers2 = _t4.headers) === null || _headers2 === void 0 ? void 0 : _headers2.trackingId) !== null && _headers$trackingId !== void 0 ? _headers$trackingId : '', undefined, clientError);
648
+ _this3.metricManager.submitRegistrationMetric(_types5.METRIC_EVENT.REGISTRATION_ERROR, _types5.REG_ACTION.REGISTER, _types5.METRIC_TYPE.BEHAVIORAL, _constants2.GET_MOBIUS_SERVERS_UTIL, 'UNKNOWN', (_headers$trackingId = (_headers2 = _t4.headers) === null || _headers2 === void 0 ? void 0 : _headers2.trackingId) !== null && _headers$trackingId !== void 0 ? _headers$trackingId : '', undefined, clientError);
572
649
  _this3.emit(_types2.CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);
573
650
  }, {
574
651
  method: _constants2.GET_MOBIUS_SERVERS_UTIL,
575
652
  file: _constants2.CALLING_CLIENT_FILE
576
653
  });
577
654
  case 4:
578
- abort = _context0.sent;
655
+ abort = _context1.sent;
579
656
  regionInfo.clientRegion = '';
580
657
  regionInfo.countryCode = '';
581
658
  if (!abort) {
582
- _context0.next = 6;
659
+ _context1.next = 6;
583
660
  break;
584
661
  }
585
- _context0.next = 5;
662
+ _context1.next = 5;
586
663
  return (0, _Utils.uploadLogs)();
587
664
  case 5:
588
- return _context0.abrupt("return", regionInfo);
665
+ return _context1.abrupt("return", regionInfo);
589
666
  case 6:
590
- return _context0.abrupt("return", regionInfo);
667
+ return _context1.abrupt("return", regionInfo);
591
668
  case 7:
592
669
  case "end":
593
- return _context0.stop();
670
+ return _context1.stop();
594
671
  }
595
- }, _callee9, this, [[1, 3]]);
672
+ }, _callee0, this, [[1, 3]]);
596
673
  }));
597
674
  function getClientRegionInfo() {
598
675
  return _getClientRegionInfo.apply(this, arguments);
@@ -606,15 +683,15 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
606
683
  }, {
607
684
  key: "getMobiusServers",
608
685
  value: (function () {
609
- var _getMobiusServers = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
686
+ var _getMobiusServers = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
610
687
  var _this$sdkConfig3,
611
688
  _this$sdkConfig3$disc,
612
689
  _this$sdkConfig4,
613
690
  _this$sdkConfig4$disc,
614
691
  _this4 = this;
615
692
  var useDefault, clientRegion, countryCode, _this$sdkConfig5, _this$sdkConfig5$disc, _this$sdkConfig6, _this$sdkConfig6$disc, _this$webex$internal$, regionInfo, _iterator2, _step2, _loop2, _ret, _t6;
616
- return _regenerator.default.wrap(function (_context10) {
617
- while (1) switch (_context10.prev = _context10.next) {
693
+ return _regenerator.default.wrap(function (_context11) {
694
+ while (1) switch (_context11.prev = _context11.next) {
618
695
  case 0:
619
696
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
620
697
  file: _constants2.CALLING_CLIENT_FILE,
@@ -629,7 +706,7 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
629
706
  */
630
707
  useDefault = false;
631
708
  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)) {
632
- _context10.next = 1;
709
+ _context11.next = 1;
633
710
  break;
634
711
  }
635
712
  _Logger.default.log('Updating region and country from the SDK config', {
@@ -639,22 +716,22 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
639
716
  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;
640
717
  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;
641
718
  this.mobiusHost = ((_this$webex$internal$ = this.webex.internal.services._serviceUrls) === null || _this$webex$internal$ === void 0 ? void 0 : _this$webex$internal$.mobius) || this.webex.internal.services.get(this.webex.internal.services._activeServices.mobius);
642
- _context10.next = 3;
719
+ _context11.next = 3;
643
720
  break;
644
721
  case 1:
645
722
  _Logger.default.log('Updating region and country through Region discovery', {
646
723
  file: _constants2.CALLING_CLIENT_FILE,
647
724
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
648
725
  });
649
- _context10.next = 2;
726
+ _context11.next = 2;
650
727
  return this.getClientRegionInfo();
651
728
  case 2:
652
- regionInfo = _context10.sent;
729
+ regionInfo = _context11.sent;
653
730
  clientRegion = regionInfo.clientRegion;
654
731
  countryCode = regionInfo.countryCode;
655
732
  case 3:
656
733
  if (!(clientRegion && countryCode)) {
657
- _context10.next = 12;
734
+ _context11.next = 12;
658
735
  break;
659
736
  }
660
737
  _Logger.default.log("Found Region: ".concat(clientRegion, " and country: ").concat(countryCode, ", going to fetch Mobius server"), {
@@ -662,11 +739,11 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
662
739
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
663
740
  });
664
741
  _iterator2 = _createForOfIteratorHelper(this.mobiusClusters);
665
- _context10.prev = 4;
742
+ _context11.prev = 4;
666
743
  _loop2 = /*#__PURE__*/_regenerator.default.mark(function _loop2() {
667
744
  var mobius, _response$headers3, _response$headers$tra2, _response$headers4, response, mobiusServers, mobiusUris, abort, _t5;
668
- return _regenerator.default.wrap(function (_context1) {
669
- while (1) switch (_context1.prev = _context1.next) {
745
+ return _regenerator.default.wrap(function (_context10) {
746
+ while (1) switch (_context10.prev = _context10.next) {
670
747
  case 0:
671
748
  mobius = _step2.value;
672
749
  if (mobius.host) {
@@ -674,8 +751,8 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
674
751
  } else {
675
752
  _this4.mobiusHost = mobius;
676
753
  }
677
- _context1.prev = 1;
678
- _context1.next = 2;
754
+ _context10.prev = 1;
755
+ _context10.next = 2;
679
756
  return _this4.webex.request({
680
757
  uri: "".concat(_this4.mobiusHost).concat(_constants2.URL_ENDPOINT, "?regionCode=").concat(clientRegion, "&countryCode=").concat(countryCode),
681
758
  method: _types3.HTTP_METHODS.GET,
@@ -683,89 +760,91 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
683
760
  service: _types3.ALLOWED_SERVICES.MOBIUS
684
761
  });
685
762
  case 2:
686
- response = _context1.sent;
763
+ response = _context10.sent;
687
764
  _Logger.default.log("Mobius Server found for the region. Response trackingId: ".concat(response === null || response === void 0 ? void 0 : (_response$headers3 = response.headers) === null || _response$headers3 === void 0 ? void 0 : _response$headers3.trackingid), {
688
765
  file: _constants2.CALLING_CLIENT_FILE,
689
766
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
690
767
  });
691
768
  mobiusServers = response.body; // Metrics for mobius servers
692
- _this4.metricManager.submitMobiusServersMetric(_types4.METRIC_EVENT.MOBIUS_DISCOVERY, _types4.MOBIUS_SERVER_ACTION.MOBIUS_SERVERS, _types4.METRIC_TYPE.BEHAVIORAL, mobiusServers, (_response$headers$tra2 = response === null || response === void 0 ? void 0 : (_response$headers4 = response.headers) === null || _response$headers4 === void 0 ? void 0 : _response$headers4.trackingid) !== null && _response$headers$tra2 !== void 0 ? _response$headers$tra2 : '');
769
+ _this4.metricManager.submitMobiusServersMetric(_types5.METRIC_EVENT.MOBIUS_DISCOVERY, _types5.MOBIUS_SERVER_ACTION.MOBIUS_SERVERS, _types5.METRIC_TYPE.BEHAVIORAL, mobiusServers, (_response$headers$tra2 = response === null || response === void 0 ? void 0 : (_response$headers4 = response.headers) === null || _response$headers4 === void 0 ? void 0 : _response$headers4.trackingid) !== null && _response$headers$tra2 !== void 0 ? _response$headers$tra2 : '');
693
770
 
694
771
  /* update arrays of Mobius Uris. */
695
772
  mobiusUris = (0, _Utils.filterMobiusUris)(mobiusServers, _this4.mobiusHost);
696
773
  _this4.primaryMobiusUris = mobiusUris.primary;
697
774
  _this4.backupMobiusUris = mobiusUris.backup;
775
+ _this4.primaryWssMobiusUris = mobiusUris.primaryWss;
776
+ _this4.backupWssMobiusUris = mobiusUris.backupWss;
698
777
  _Logger.default.log("Final list of Mobius Servers, primary: ".concat(mobiusUris.primary, " and backup: ").concat(mobiusUris.backup), {
699
778
  file: _constants2.CALLING_CLIENT_FILE,
700
779
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
701
780
  });
702
- return _context1.abrupt("return", 0);
781
+ return _context10.abrupt("return", 0);
703
782
  case 3:
704
- _context1.prev = 3;
705
- _t5 = _context1["catch"](1);
783
+ _context10.prev = 3;
784
+ _t5 = _context10["catch"](1);
706
785
  _Logger.default.error("Failed to get Mobius servers: ".concat((0, _stringify.default)(_t5)), {
707
786
  method: _constants2.METHODS.GET_MOBIUS_SERVERS,
708
787
  file: _constants2.CALLING_CLIENT_FILE
709
788
  });
710
789
 
711
790
  // eslint-disable-next-line no-await-in-loop
712
- _context1.next = 4;
791
+ _context10.next = 4;
713
792
  return (0, _Utils.handleCallingClientErrors)(_t5, function (clientError) {
714
793
  var _headers$trackingId2, _headers4;
715
- _this4.metricManager.submitRegistrationMetric(_types4.METRIC_EVENT.REGISTRATION_ERROR, _types4.REG_ACTION.REGISTER, _types4.METRIC_TYPE.BEHAVIORAL, _constants2.GET_MOBIUS_SERVERS_UTIL, 'UNKNOWN', (_headers$trackingId2 = (_headers4 = _t5.headers) === null || _headers4 === void 0 ? void 0 : _headers4.trackingId) !== null && _headers$trackingId2 !== void 0 ? _headers$trackingId2 : '', undefined, clientError);
794
+ _this4.metricManager.submitRegistrationMetric(_types5.METRIC_EVENT.REGISTRATION_ERROR, _types5.REG_ACTION.REGISTER, _types5.METRIC_TYPE.BEHAVIORAL, _constants2.GET_MOBIUS_SERVERS_UTIL, 'UNKNOWN', (_headers$trackingId2 = (_headers4 = _t5.headers) === null || _headers4 === void 0 ? void 0 : _headers4.trackingId) !== null && _headers$trackingId2 !== void 0 ? _headers$trackingId2 : '', undefined, clientError);
716
795
  _this4.emit(_types2.CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);
717
796
  }, {
718
797
  method: _constants2.GET_MOBIUS_SERVERS_UTIL,
719
798
  file: _constants2.CALLING_CLIENT_FILE
720
799
  });
721
800
  case 4:
722
- abort = _context1.sent;
801
+ abort = _context10.sent;
723
802
  if (!abort) {
724
- _context1.next = 6;
803
+ _context10.next = 6;
725
804
  break;
726
805
  }
727
806
  useDefault = true;
728
807
  // eslint-disable-next-line no-await-in-loop
729
- _context1.next = 5;
808
+ _context10.next = 5;
730
809
  return (0, _Utils.uploadLogs)();
731
810
  case 5:
732
- return _context1.abrupt("return", 0);
811
+ return _context10.abrupt("return", 0);
733
812
  case 6:
734
813
  case "end":
735
- return _context1.stop();
814
+ return _context10.stop();
736
815
  }
737
816
  }, _loop2, null, [[1, 3]]);
738
817
  });
739
818
  _iterator2.s();
740
819
  case 5:
741
820
  if ((_step2 = _iterator2.n()).done) {
742
- _context10.next = 8;
821
+ _context11.next = 8;
743
822
  break;
744
823
  }
745
- return _context10.delegateYield(_loop2(), "t0", 6);
824
+ return _context11.delegateYield(_loop2(), "t0", 6);
746
825
  case 6:
747
- _ret = _context10.t0;
826
+ _ret = _context11.t0;
748
827
  if (!(_ret === 0)) {
749
- _context10.next = 7;
828
+ _context11.next = 7;
750
829
  break;
751
830
  }
752
- return _context10.abrupt("continue", 8);
831
+ return _context11.abrupt("continue", 8);
753
832
  case 7:
754
- _context10.next = 5;
833
+ _context11.next = 5;
755
834
  break;
756
835
  case 8:
757
- _context10.next = 10;
836
+ _context11.next = 10;
758
837
  break;
759
838
  case 9:
760
- _context10.prev = 9;
761
- _t6 = _context10["catch"](4);
839
+ _context11.prev = 9;
840
+ _t6 = _context11["catch"](4);
762
841
  _iterator2.e(_t6);
763
842
  case 10:
764
- _context10.prev = 10;
843
+ _context11.prev = 10;
765
844
  _iterator2.f();
766
- return _context10.finish(10);
845
+ return _context11.finish(10);
767
846
  case 11:
768
- _context10.next = 13;
847
+ _context11.next = 13;
769
848
  break;
770
849
  case 12:
771
850
  /* Setting this to true because region info is possibly undefined */
@@ -785,9 +864,9 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
785
864
  }
786
865
  case 14:
787
866
  case "end":
788
- return _context10.stop();
867
+ return _context11.stop();
789
868
  }
790
- }, _callee0, this, [[4, 9, 10, 11]]);
869
+ }, _callee1, this, [[4, 9, 10, 11]]);
791
870
  }));
792
871
  function getMobiusServers() {
793
872
  return _getMobiusServers.apply(this, arguments);
@@ -795,14 +874,163 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
795
874
  return getMobiusServers;
796
875
  }()
797
876
  /**
798
- * Registers a listener/handler for ALL_CALLS_CLEARED
799
- * event emitted by callManager when all the calls
800
- * present on sdk are cleaned up.
877
+ * Connects to the Mobius WebSocket using WSS URIs discovered during Mobius server discovery.
878
+ * Attempts primary WSS URIs first, then falls back to backup WSS URIs.
879
+ * If all attempts fail, logs a warning and continues without a socket connection.
801
880
  */
802
881
  )
882
+ }, {
883
+ key: "connectToMobiusSocket",
884
+ value: (function () {
885
+ var _connectToMobiusSocket = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
886
+ var loggerContext, _iterator3, _step3, wssUri, _iterator4, _step4, _wssUri, _t7, _t8, _t9, _t0;
887
+ return _regenerator.default.wrap(function (_context12) {
888
+ while (1) switch (_context12.prev = _context12.next) {
889
+ case 0:
890
+ loggerContext = {
891
+ file: _constants2.CALLING_CLIENT_FILE,
892
+ method: _constants2.METHODS.CONNECT_TO_MOBIUS_SOCKET
893
+ };
894
+ _Logger.default.info(_constants.METHOD_START_MESSAGE, loggerContext);
895
+ if (!(!this.primaryWssMobiusUris.length && !this.backupWssMobiusUris.length)) {
896
+ _context12.next = 1;
897
+ break;
898
+ }
899
+ _Logger.default.warn('No WSS URIs available from Mobius discovery, skipping socket connection', loggerContext);
900
+ return _context12.abrupt("return");
901
+ case 1:
902
+ if (!this.primaryWssMobiusUris.length) {
903
+ _context12.next = 12;
904
+ break;
905
+ }
906
+ _Logger.default.log("Attempting Mobius socket connection using primary WSS URIs (".concat(this.primaryWssMobiusUris.length, " available)"), loggerContext);
907
+ _iterator3 = _createForOfIteratorHelper(this.primaryWssMobiusUris);
908
+ _context12.prev = 2;
909
+ _iterator3.s();
910
+ case 3:
911
+ if ((_step3 = _iterator3.n()).done) {
912
+ _context12.next = 8;
913
+ break;
914
+ }
915
+ wssUri = _step3.value;
916
+ _context12.prev = 4;
917
+ _Logger.default.log("Trying primary WSS URI: ".concat(wssUri), loggerContext);
918
+ // eslint-disable-next-line no-await-in-loop
919
+ _context12.next = 5;
920
+ return this.mobiusSocket.connect(wssUri);
921
+ case 5:
922
+ _Logger.default.log("Successfully connected to Mobius socket on primary WSS URI: ".concat(wssUri), loggerContext);
923
+ return _context12.abrupt("return");
924
+ case 6:
925
+ _context12.prev = 6;
926
+ _t7 = _context12["catch"](4);
927
+ _Logger.default.warn("Primary WSS URI connection failed for ".concat(wssUri, ": ").concat(_t7), loggerContext);
928
+ case 7:
929
+ _context12.next = 3;
930
+ break;
931
+ case 8:
932
+ _context12.next = 10;
933
+ break;
934
+ case 9:
935
+ _context12.prev = 9;
936
+ _t8 = _context12["catch"](2);
937
+ _iterator3.e(_t8);
938
+ case 10:
939
+ _context12.prev = 10;
940
+ _iterator3.f();
941
+ return _context12.finish(10);
942
+ case 11:
943
+ _Logger.default.warn('All primary WSS URI connection attempts failed', loggerContext);
944
+ _context12.next = 13;
945
+ break;
946
+ case 12:
947
+ _Logger.default.warn('No primary WSS URIs available, skipping to backup', loggerContext);
948
+ case 13:
949
+ if (!this.backupWssMobiusUris.length) {
950
+ _context12.next = 24;
951
+ break;
952
+ }
953
+ _Logger.default.log("Attempting Mobius socket connection using backup WSS URIs (".concat(this.backupWssMobiusUris.length, " available)"), loggerContext);
954
+ _iterator4 = _createForOfIteratorHelper(this.backupWssMobiusUris);
955
+ _context12.prev = 14;
956
+ _iterator4.s();
957
+ case 15:
958
+ if ((_step4 = _iterator4.n()).done) {
959
+ _context12.next = 20;
960
+ break;
961
+ }
962
+ _wssUri = _step4.value;
963
+ _context12.prev = 16;
964
+ _Logger.default.log("Trying backup WSS URI: ".concat(_wssUri), loggerContext);
965
+ // eslint-disable-next-line no-await-in-loop
966
+ _context12.next = 17;
967
+ return this.mobiusSocket.connect(_wssUri);
968
+ case 17:
969
+ _Logger.default.log("Successfully connected to Mobius socket on backup WSS URI: ".concat(_wssUri), loggerContext);
970
+ return _context12.abrupt("return");
971
+ case 18:
972
+ _context12.prev = 18;
973
+ _t9 = _context12["catch"](16);
974
+ _Logger.default.warn("Backup WSS URI connection failed for ".concat(_wssUri, ": ").concat(_t9), loggerContext);
975
+ case 19:
976
+ _context12.next = 15;
977
+ break;
978
+ case 20:
979
+ _context12.next = 22;
980
+ break;
981
+ case 21:
982
+ _context12.prev = 21;
983
+ _t0 = _context12["catch"](14);
984
+ _iterator4.e(_t0);
985
+ case 22:
986
+ _context12.prev = 22;
987
+ _iterator4.f();
988
+ return _context12.finish(22);
989
+ case 23:
990
+ _Logger.default.warn('All backup WSS URI connection attempts failed', loggerContext);
991
+ _context12.next = 25;
992
+ break;
993
+ case 24:
994
+ _Logger.default.warn('No backup WSS URIs available', loggerContext);
995
+ case 25:
996
+ // MOBIUS WSS TODO: See if we need to throw an error here if all connection attempts fail
997
+ _Logger.default.warn('All Mobius socket connection attempts exhausted for both primary and backup, continuing without socket', loggerContext);
998
+ case 26:
999
+ case "end":
1000
+ return _context12.stop();
1001
+ }
1002
+ }, _callee10, this, [[2, 9, 10, 11], [4, 6], [14, 21, 22, 23], [16, 18]]);
1003
+ }));
1004
+ function connectToMobiusSocket() {
1005
+ return _connectToMobiusSocket.apply(this, arguments);
1006
+ }
1007
+ return connectToMobiusSocket;
1008
+ }())
1009
+ }, {
1010
+ key: "registerMobiusSocketListener",
1011
+ value: function registerMobiusSocketListener() {
1012
+ var _this5 = this;
1013
+ _Logger.default.info(_constants.METHOD_START_MESSAGE, {
1014
+ file: _constants2.CALLING_CLIENT_FILE,
1015
+ method: _constants2.METHODS.REGISTER_MOBIUS_SOCKET_LISTENER
1016
+ });
1017
+ this.sdkConnector.registerMobiusSocketListener('async_event', function (event) {
1018
+ _this5.handleMobiusAsyncEvent(event);
1019
+ });
1020
+ _Logger.default.info('Successfully registered listener for Mobius events', {
1021
+ file: _constants2.CALLING_CLIENT_FILE,
1022
+ method: _constants2.METHODS.REGISTER_MOBIUS_SOCKET_LISTENER
1023
+ });
1024
+ }
803
1025
  }, {
804
1026
  key: "registerCallsClearedListener",
805
- value: function registerCallsClearedListener() {
1027
+ value:
1028
+ /**
1029
+ * Registers a listener/handler for ALL_CALLS_CLEARED
1030
+ * event emitted by callManager when all the calls
1031
+ * present on sdk are cleaned up.
1032
+ */
1033
+ function registerCallsClearedListener() {
806
1034
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
807
1035
  file: _constants2.CALLING_CLIENT_FILE,
808
1036
  method: _constants2.METHODS.REGISTER_CALLS_CLEARED_LISTENER
@@ -832,46 +1060,46 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
832
1060
  }, {
833
1061
  key: "registerSessionsListener",
834
1062
  value: function registerSessionsListener() {
835
- var _this5 = this;
1063
+ var _this6 = this;
836
1064
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
837
1065
  file: _constants2.CALLING_CLIENT_FILE,
838
1066
  method: _constants2.METHODS.REGISTER_SESSIONS_LISTENER
839
1067
  });
840
1068
  this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE, /*#__PURE__*/function () {
841
- var _ref6 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1(event) {
1069
+ var _ref7 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11(event) {
842
1070
  var sessionArr, i;
843
- return _regenerator.default.wrap(function (_context11) {
844
- while (1) switch (_context11.prev = _context11.next) {
1071
+ return _regenerator.default.wrap(function (_context13) {
1072
+ while (1) switch (_context13.prev = _context13.next) {
845
1073
  case 0:
846
1074
  if (!(event && event.data.userSessions.userSessions)) {
847
- _context11.next = 2;
1075
+ _context13.next = 2;
848
1076
  break;
849
1077
  }
850
1078
  sessionArr = event === null || event === void 0 ? void 0 : event.data.userSessions.userSessions;
851
1079
  if (!(sessionArr.length === 1)) {
852
- _context11.next = 1;
1080
+ _context13.next = 1;
853
1081
  break;
854
1082
  }
855
1083
  if (!(sessionArr[0].sessionType !== _types2.SessionType.WEBEX_CALLING)) {
856
- _context11.next = 1;
1084
+ _context13.next = 1;
857
1085
  break;
858
1086
  }
859
- return _context11.abrupt("return");
1087
+ return _context13.abrupt("return");
860
1088
  case 1:
861
1089
  for (i = 0; i < sessionArr.length; i += 1) {
862
1090
  if (sessionArr[i].sessionType !== _types2.SessionType.WEBEX_CALLING) {
863
1091
  sessionArr.splice(i, 1);
864
1092
  }
865
1093
  }
866
- _this5.emit(_types2.CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event);
1094
+ _this6.emit(_types2.CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event);
867
1095
  case 2:
868
1096
  case "end":
869
- return _context11.stop();
1097
+ return _context13.stop();
870
1098
  }
871
- }, _callee1);
1099
+ }, _callee11);
872
1100
  }));
873
- return function (_x) {
874
- return _ref6.apply(this, arguments);
1101
+ return function (_x2) {
1102
+ return _ref7.apply(this, arguments);
875
1103
  };
876
1104
  }());
877
1105
  }
@@ -883,23 +1111,23 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
883
1111
  }, {
884
1112
  key: "createLine",
885
1113
  value: (function () {
886
- var _createLine = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
1114
+ var _createLine = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12() {
887
1115
  var _this$sdkConfig7, _this$sdkConfig8;
888
1116
  var line;
889
- return _regenerator.default.wrap(function (_context12) {
890
- while (1) switch (_context12.prev = _context12.next) {
1117
+ return _regenerator.default.wrap(function (_context14) {
1118
+ while (1) switch (_context14.prev = _context14.next) {
891
1119
  case 0:
892
1120
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
893
1121
  file: _constants2.CALLING_CLIENT_FILE,
894
1122
  method: _constants2.METHODS.CREATE_LINE
895
1123
  });
896
- 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, (_this$sdkConfig8 = this.sdkConfig) === null || _this$sdkConfig8 === void 0 ? void 0 : _this$sdkConfig8.jwe);
1124
+ line = new _line.default(this.webex.internal.device.userId, this.webex.internal.device.url, this.mutex, this.apiRequest.isSocketEnabled() ? (0, _Utils.normalizeMobiusUris)(this.primaryWssMobiusUris) : this.primaryMobiusUris, this.apiRequest.isSocketEnabled() ? (0, _Utils.normalizeMobiusUris)(this.backupWssMobiusUris) : this.backupMobiusUris, this.getLoggingLevel(), (_this$sdkConfig7 = this.sdkConfig) === null || _this$sdkConfig7 === void 0 ? void 0 : _this$sdkConfig7.serviceData, (_this$sdkConfig8 = this.sdkConfig) === null || _this$sdkConfig8 === void 0 ? void 0 : _this$sdkConfig8.jwe);
897
1125
  this.lineDict[line.lineId] = line;
898
1126
  case 1:
899
1127
  case "end":
900
- return _context12.stop();
1128
+ return _context14.stop();
901
1129
  }
902
- }, _callee10, this);
1130
+ }, _callee12, this);
903
1131
  }));
904
1132
  function createLine() {
905
1133
  return _createLine.apply(this, arguments);
@@ -917,9 +1145,105 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
917
1145
  return this.lineDict;
918
1146
  }
919
1147
 
1148
+ /**
1149
+ * Fetches the list of devices for a given user from Mobius.
1150
+ */
1151
+ }, {
1152
+ key: "getDevices",
1153
+ value: (function () {
1154
+ var _getDevices = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13(userId) {
1155
+ var userid, mobiusUrls, finalError, _iterator5, _step5, mobiusUrl, normalizedMobiusUrl, uri, _body$devices, response, body, _t1, _t10;
1156
+ return _regenerator.default.wrap(function (_context15) {
1157
+ while (1) switch (_context15.prev = _context15.next) {
1158
+ case 0:
1159
+ userid = userId || this.webex.internal.device.userId;
1160
+ if (userid) {
1161
+ _context15.next = 1;
1162
+ break;
1163
+ }
1164
+ throw new Error('userId is required to fetch devices');
1165
+ case 1:
1166
+ _Logger.default.info(_constants.METHOD_START_MESSAGE, {
1167
+ file: _constants2.CALLING_CLIENT_FILE,
1168
+ method: _constants2.METHODS.GET_DEVICES
1169
+ });
1170
+ mobiusUrls = [].concat((0, _toConsumableArray2.default)(this.primaryMobiusUris), (0, _toConsumableArray2.default)(this.backupMobiusUris));
1171
+ if (!(mobiusUrls.length === 0)) {
1172
+ _context15.next = 2;
1173
+ break;
1174
+ }
1175
+ throw new Error('Mobius URLs are not available');
1176
+ case 2:
1177
+ _iterator5 = _createForOfIteratorHelper(mobiusUrls);
1178
+ _context15.prev = 3;
1179
+ _iterator5.s();
1180
+ case 4:
1181
+ if ((_step5 = _iterator5.n()).done) {
1182
+ _context15.next = 10;
1183
+ break;
1184
+ }
1185
+ mobiusUrl = _step5.value;
1186
+ normalizedMobiusUrl = mobiusUrl.replace(/\/+$/, '/');
1187
+ uri = "".concat(normalizedMobiusUrl).concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "?userid=").concat(encodeURIComponent(userid));
1188
+ _context15.prev = 5;
1189
+ _context15.next = 6;
1190
+ return this.apiRequest.makeRequest({
1191
+ uri: uri,
1192
+ method: _types3.HTTP_METHODS.GET,
1193
+ service: _types3.ALLOWED_SERVICES.MOBIUS,
1194
+ headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, this.webex.internal.device.url), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT)
1195
+ });
1196
+ case 6:
1197
+ response = _context15.sent;
1198
+ if (!(response.statusCode !== 200)) {
1199
+ _context15.next = 7;
1200
+ break;
1201
+ }
1202
+ throw new Error("API call failed with ".concat(response.statusCode));
1203
+ case 7:
1204
+ body = response.body; // Hydrate registration deviceInfo for deregister/restore flows
1205
+ (0, _values.default)(this.lineDict)[0].registration.setDeviceInfo(body);
1206
+ (0, _values.default)(this.lineDict)[0].registration.setActiveMobiusUrl(normalizedMobiusUrl);
1207
+ return _context15.abrupt("return", (_body$devices = body.devices) !== null && _body$devices !== void 0 ? _body$devices : []);
1208
+ case 8:
1209
+ _context15.prev = 8;
1210
+ _t1 = _context15["catch"](5);
1211
+ finalError = _t1;
1212
+ case 9:
1213
+ _context15.next = 4;
1214
+ break;
1215
+ case 10:
1216
+ _context15.next = 12;
1217
+ break;
1218
+ case 11:
1219
+ _context15.prev = 11;
1220
+ _t10 = _context15["catch"](3);
1221
+ _iterator5.e(_t10);
1222
+ case 12:
1223
+ _context15.prev = 12;
1224
+ _iterator5.f();
1225
+ return _context15.finish(12);
1226
+ case 13:
1227
+ _Logger.default.error("Failed to fetch devices for userId ".concat(userId, ": ").concat((0, _stringify.default)(finalError)), {
1228
+ file: _constants2.CALLING_CLIENT_FILE,
1229
+ method: _constants2.METHODS.GET_DEVICES
1230
+ });
1231
+ throw finalError;
1232
+ case 14:
1233
+ case "end":
1234
+ return _context15.stop();
1235
+ }
1236
+ }, _callee13, this, [[3, 11, 12, 13], [5, 8]]);
1237
+ }));
1238
+ function getDevices(_x3) {
1239
+ return _getDevices.apply(this, arguments);
1240
+ }
1241
+ return getDevices;
1242
+ }()
920
1243
  /**
921
1244
  * Retrieves call objects for all the active calls present in the client
922
1245
  */
1246
+ )
923
1247
  }, {
924
1248
  key: "getActiveCalls",
925
1249
  value: function getActiveCalls() {
@@ -964,27 +1288,27 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
964
1288
  }, {
965
1289
  key: "uploadLogs",
966
1290
  value: (function () {
967
- var _uploadLogs2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11() {
1291
+ var _uploadLogs2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee14() {
968
1292
  var result;
969
- return _regenerator.default.wrap(function (_context13) {
970
- while (1) switch (_context13.prev = _context13.next) {
1293
+ return _regenerator.default.wrap(function (_context16) {
1294
+ while (1) switch (_context16.prev = _context16.next) {
971
1295
  case 0:
972
- _context13.next = 1;
1296
+ _context16.next = 1;
973
1297
  return (0, _Utils.uploadLogs)({}, true);
974
1298
  case 1:
975
- result = _context13.sent;
1299
+ result = _context16.sent;
976
1300
  if (result) {
977
- _context13.next = 2;
1301
+ _context16.next = 2;
978
1302
  break;
979
1303
  }
980
1304
  throw new Error('Failed to upload logs: No response received.');
981
1305
  case 2:
982
- return _context13.abrupt("return", result);
1306
+ return _context16.abrupt("return", result);
983
1307
  case 3:
984
1308
  case "end":
985
- return _context13.stop();
1309
+ return _context16.stop();
986
1310
  }
987
- }, _callee11);
1311
+ }, _callee14);
988
1312
  }));
989
1313
  function uploadLogs() {
990
1314
  return _uploadLogs2.apply(this, arguments);
@@ -999,24 +1323,24 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
999
1323
  * @param config - Config to start the CallingClient with.
1000
1324
  */
1001
1325
  var createClient = exports.createClient = /*#__PURE__*/function () {
1002
- var _ref7 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12(webex, config) {
1326
+ var _ref8 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee15(webex, config) {
1003
1327
  var callingClientInstance;
1004
- return _regenerator.default.wrap(function (_context14) {
1005
- while (1) switch (_context14.prev = _context14.next) {
1328
+ return _regenerator.default.wrap(function (_context17) {
1329
+ while (1) switch (_context17.prev = _context17.next) {
1006
1330
  case 0:
1007
1331
  callingClientInstance = new CallingClient(webex, config);
1008
- _context14.next = 1;
1332
+ _context17.next = 1;
1009
1333
  return callingClientInstance.init();
1010
1334
  case 1:
1011
- return _context14.abrupt("return", callingClientInstance);
1335
+ return _context17.abrupt("return", callingClientInstance);
1012
1336
  case 2:
1013
1337
  case "end":
1014
- return _context14.stop();
1338
+ return _context17.stop();
1015
1339
  }
1016
- }, _callee12);
1340
+ }, _callee15);
1017
1341
  }));
1018
- return function createClient(_x2, _x3) {
1019
- return _ref7.apply(this, arguments);
1342
+ return function createClient(_x4, _x5) {
1343
+ return _ref8.apply(this, arguments);
1020
1344
  };
1021
1345
  }();
1022
1346
  //# sourceMappingURL=CallingClient.js.map