@webex/calling 3.12.0-next.4 → 3.12.0-next.40

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 (204) hide show
  1. package/dist/CallingClient/CallingClient.js +463 -205
  2. package/dist/CallingClient/CallingClient.js.map +1 -1
  3. package/dist/CallingClient/CallingClient.test.js +170 -77
  4. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  5. package/dist/CallingClient/calling/call.js +589 -445
  6. package/dist/CallingClient/calling/call.js.map +1 -1
  7. package/dist/CallingClient/calling/call.test.js +695 -445
  8. package/dist/CallingClient/calling/call.test.js.map +1 -1
  9. package/dist/CallingClient/calling/callManager.js +53 -30
  10. package/dist/CallingClient/calling/callManager.js.map +1 -1
  11. package/dist/CallingClient/calling/callManager.test.js +35 -0
  12. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  13. package/dist/CallingClient/calling/types.js +2 -0
  14. package/dist/CallingClient/calling/types.js.map +1 -1
  15. package/dist/CallingClient/constants.js +25 -3
  16. package/dist/CallingClient/constants.js.map +1 -1
  17. package/dist/CallingClient/line/index.js +4 -1
  18. package/dist/CallingClient/line/index.js.map +1 -1
  19. package/dist/CallingClient/line/line.test.js +16 -1
  20. package/dist/CallingClient/line/line.test.js.map +1 -1
  21. package/dist/CallingClient/registration/register.js +712 -406
  22. package/dist/CallingClient/registration/register.js.map +1 -1
  23. package/dist/CallingClient/registration/register.test.js +202 -21
  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 +41 -104
  27. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  28. package/dist/CallingClient/registration/webWorker.test.js +39 -153
  29. package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
  30. package/dist/CallingClient/registration/webWorkerStr.js +1 -1
  31. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
  32. package/dist/CallingClient/utils/constants.js +46 -0
  33. package/dist/CallingClient/utils/constants.js.map +1 -0
  34. package/dist/CallingClient/utils/index.js +63 -0
  35. package/dist/CallingClient/utils/index.js.map +1 -0
  36. package/dist/CallingClient/utils/mobiusSocketMapper.js +122 -0
  37. package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -0
  38. package/dist/CallingClient/utils/mobiusSocketMapper.test.js +211 -0
  39. package/dist/CallingClient/utils/mobiusSocketMapper.test.js.map +1 -0
  40. package/dist/CallingClient/utils/request.js +354 -0
  41. package/dist/CallingClient/utils/request.js.map +1 -0
  42. package/dist/CallingClient/utils/request.test.js +881 -0
  43. package/dist/CallingClient/utils/request.test.js.map +1 -0
  44. package/dist/CallingClient/utils/types.js +7 -0
  45. package/dist/CallingClient/utils/types.js.map +1 -0
  46. package/dist/CallingClient/utils/wsFeatureFlag.js +70 -0
  47. package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -0
  48. package/dist/CallingClient/utils/wsFeatureFlag.test.js +139 -0
  49. package/dist/CallingClient/utils/wsFeatureFlag.test.js.map +1 -0
  50. package/dist/Contacts/ContactsClient.js +13 -11
  51. package/dist/Contacts/ContactsClient.js.map +1 -1
  52. package/dist/Contacts/ContactsClient.test.js +3 -8
  53. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  54. package/dist/Events/types.js +1 -11
  55. package/dist/Events/types.js.map +1 -1
  56. package/dist/Metrics/index.js +63 -2
  57. package/dist/Metrics/index.js.map +1 -1
  58. package/dist/Metrics/index.test.js +357 -1
  59. package/dist/Metrics/index.test.js.map +1 -1
  60. package/dist/Metrics/types.js +19 -1
  61. package/dist/Metrics/types.js.map +1 -1
  62. package/dist/SDKConnector/types.js.map +1 -1
  63. package/dist/common/Utils.js +138 -44
  64. package/dist/common/Utils.js.map +1 -1
  65. package/dist/common/testUtil.js +8 -4
  66. package/dist/common/testUtil.js.map +1 -1
  67. package/dist/common/types.js +2 -0
  68. package/dist/common/types.js.map +1 -1
  69. package/dist/mobius-socket/config.js +24 -0
  70. package/dist/mobius-socket/config.js.map +1 -0
  71. package/dist/mobius-socket/errors.js +143 -0
  72. package/dist/mobius-socket/errors.js.map +1 -0
  73. package/dist/mobius-socket/errors.test.js +20 -0
  74. package/dist/mobius-socket/errors.test.js.map +1 -0
  75. package/dist/mobius-socket/index.js +57 -0
  76. package/dist/mobius-socket/index.js.map +1 -0
  77. package/dist/mobius-socket/mobius-socket-events.test.js +492 -0
  78. package/dist/mobius-socket/mobius-socket-events.test.js.map +1 -0
  79. package/dist/mobius-socket/mobius-socket.js +841 -0
  80. package/dist/mobius-socket/mobius-socket.js.map +1 -0
  81. package/dist/mobius-socket/mobius-socket.test.js +1845 -0
  82. package/dist/mobius-socket/mobius-socket.test.js.map +1 -0
  83. package/dist/mobius-socket/socket/constants.js +55 -0
  84. package/dist/mobius-socket/socket/constants.js.map +1 -0
  85. package/dist/mobius-socket/socket/index.js +15 -0
  86. package/dist/mobius-socket/socket/index.js.map +1 -0
  87. package/dist/mobius-socket/socket/socket-base.js +604 -0
  88. package/dist/mobius-socket/socket/socket-base.js.map +1 -0
  89. package/dist/mobius-socket/socket/socket.js +19 -0
  90. package/dist/mobius-socket/socket/socket.js.map +1 -0
  91. package/dist/mobius-socket/socket/socket.shim.js +26 -0
  92. package/dist/mobius-socket/socket/socket.shim.js.map +1 -0
  93. package/dist/mobius-socket/socket/types.js +7 -0
  94. package/dist/mobius-socket/socket/types.js.map +1 -0
  95. package/dist/mobius-socket/socket.test.js +727 -0
  96. package/dist/mobius-socket/socket.test.js.map +1 -0
  97. package/dist/mobius-socket/test/mocha-helpers.js +23 -0
  98. package/dist/mobius-socket/test/mocha-helpers.js.map +1 -0
  99. package/dist/mobius-socket/test/promise-tick.js +28 -0
  100. package/dist/mobius-socket/test/promise-tick.js.map +1 -0
  101. package/dist/mobius-socket/types.js +7 -0
  102. package/dist/mobius-socket/types.js.map +1 -0
  103. package/dist/module/CallingClient/CallingClient.js +141 -10
  104. package/dist/module/CallingClient/calling/call.js +177 -61
  105. package/dist/module/CallingClient/calling/callManager.js +27 -7
  106. package/dist/module/CallingClient/calling/types.js +2 -0
  107. package/dist/module/CallingClient/constants.js +21 -0
  108. package/dist/module/CallingClient/line/index.js +2 -2
  109. package/dist/module/CallingClient/registration/register.js +234 -62
  110. package/dist/module/CallingClient/registration/webWorker.js +42 -61
  111. package/dist/module/CallingClient/registration/webWorkerStr.js +47 -82
  112. package/dist/module/CallingClient/utils/constants.js +30 -0
  113. package/dist/module/CallingClient/utils/index.js +5 -0
  114. package/dist/module/CallingClient/utils/mobiusSocketMapper.js +72 -0
  115. package/dist/module/CallingClient/utils/request.js +165 -0
  116. package/dist/module/CallingClient/utils/types.js +1 -0
  117. package/dist/module/CallingClient/utils/wsFeatureFlag.js +41 -0
  118. package/dist/module/Contacts/ContactsClient.js +1 -1
  119. package/dist/module/Events/types.js +0 -10
  120. package/dist/module/Metrics/index.js +48 -1
  121. package/dist/module/Metrics/types.js +18 -0
  122. package/dist/module/common/Utils.js +52 -12
  123. package/dist/module/common/testUtil.js +5 -1
  124. package/dist/module/common/types.js +2 -0
  125. package/dist/module/mobius-socket/config.js +15 -0
  126. package/dist/module/mobius-socket/errors.js +58 -0
  127. package/dist/module/mobius-socket/index.js +24 -0
  128. package/dist/module/mobius-socket/mobius-socket.js +589 -0
  129. package/dist/module/mobius-socket/socket/constants.js +26 -0
  130. package/dist/module/mobius-socket/socket/index.js +4 -0
  131. package/dist/module/mobius-socket/socket/socket-base.js +368 -0
  132. package/dist/module/mobius-socket/socket/socket.js +9 -0
  133. package/dist/module/mobius-socket/socket/socket.shim.js +12 -0
  134. package/dist/module/mobius-socket/socket/types.js +1 -0
  135. package/dist/module/mobius-socket/types.js +1 -0
  136. package/dist/types/CallingClient/CallingClient.d.ts +7 -0
  137. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  138. package/dist/types/CallingClient/calling/call.d.ts +12 -0
  139. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  140. package/dist/types/CallingClient/calling/callManager.d.ts +3 -2
  141. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  142. package/dist/types/CallingClient/calling/types.d.ts +34 -9
  143. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  144. package/dist/types/CallingClient/constants.d.ts +21 -0
  145. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  146. package/dist/types/CallingClient/line/index.d.ts +1 -1
  147. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  148. package/dist/types/CallingClient/registration/register.d.ts +7 -1
  149. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  150. package/dist/types/CallingClient/registration/types.d.ts +4 -2
  151. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  152. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
  153. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  154. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  155. package/dist/types/CallingClient/utils/constants.d.ts +30 -0
  156. package/dist/types/CallingClient/utils/constants.d.ts.map +1 -0
  157. package/dist/types/CallingClient/utils/index.d.ts +6 -0
  158. package/dist/types/CallingClient/utils/index.d.ts.map +1 -0
  159. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts +5 -0
  160. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -0
  161. package/dist/types/CallingClient/utils/request.d.ts +24 -0
  162. package/dist/types/CallingClient/utils/request.d.ts.map +1 -0
  163. package/dist/types/CallingClient/utils/types.d.ts +29 -0
  164. package/dist/types/CallingClient/utils/types.d.ts.map +1 -0
  165. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts +4 -0
  166. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -0
  167. package/dist/types/Events/types.d.ts +4 -11
  168. package/dist/types/Events/types.d.ts.map +1 -1
  169. package/dist/types/Metrics/index.d.ts.map +1 -1
  170. package/dist/types/Metrics/types.d.ts +19 -2
  171. package/dist/types/Metrics/types.d.ts.map +1 -1
  172. package/dist/types/SDKConnector/types.d.ts +24 -0
  173. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  174. package/dist/types/common/Utils.d.ts +9 -2
  175. package/dist/types/common/Utils.d.ts.map +1 -1
  176. package/dist/types/common/testUtil.d.ts +4 -1
  177. package/dist/types/common/testUtil.d.ts.map +1 -1
  178. package/dist/types/common/types.d.ts +3 -0
  179. package/dist/types/common/types.d.ts.map +1 -1
  180. package/dist/types/mobius-socket/config.d.ts +17 -0
  181. package/dist/types/mobius-socket/config.d.ts.map +1 -0
  182. package/dist/types/mobius-socket/errors.d.ts +32 -0
  183. package/dist/types/mobius-socket/errors.d.ts.map +1 -0
  184. package/dist/types/mobius-socket/index.d.ts +14 -0
  185. package/dist/types/mobius-socket/index.d.ts.map +1 -0
  186. package/dist/types/mobius-socket/mobius-socket.d.ts +48 -0
  187. package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -0
  188. package/dist/types/mobius-socket/socket/constants.d.ts +27 -0
  189. package/dist/types/mobius-socket/socket/constants.d.ts.map +1 -0
  190. package/dist/types/mobius-socket/socket/index.d.ts +5 -0
  191. package/dist/types/mobius-socket/socket/index.d.ts.map +1 -0
  192. package/dist/types/mobius-socket/socket/socket-base.d.ts +43 -0
  193. package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -0
  194. package/dist/types/mobius-socket/socket/socket.d.ts +6 -0
  195. package/dist/types/mobius-socket/socket/socket.d.ts.map +1 -0
  196. package/dist/types/mobius-socket/socket/socket.shim.d.ts +6 -0
  197. package/dist/types/mobius-socket/socket/socket.shim.d.ts.map +1 -0
  198. package/dist/types/mobius-socket/socket/types.d.ts +61 -0
  199. package/dist/types/mobius-socket/socket/types.d.ts.map +1 -0
  200. package/dist/types/mobius-socket/types.d.ts +21 -0
  201. package/dist/types/mobius-socket/types.d.ts.map +1 -0
  202. package/package.json +20 -5
  203. package/src/mobius-socket/socket/socket.shim.ts +22 -0
  204. package/src/mobius-socket/socket/socket.ts +14 -0
@@ -35,14 +35,16 @@ var _SDKConnector = _interopRequireDefault(require("../SDKConnector"));
35
35
  var _impl = require("../Events/impl");
36
36
  var _types2 = require("../Events/types");
37
37
  var _types3 = require("../common/types");
38
+ var _types4 = require("./calling/types");
38
39
  var _Logger = _interopRequireDefault(require("../Logger"));
39
40
  var _callManager = require("./calling/callManager");
40
41
  var _constants2 = require("./constants");
41
42
  var _line = _interopRequireDefault(require("./line"));
42
- var _types4 = require("../Metrics/types");
43
+ var _types5 = require("../Metrics/types");
43
44
  var _Metrics = require("../Metrics");
44
45
  var _windowsChromiumIceWarmupUtils = _interopRequireDefault(require("./windowsChromiumIceWarmupUtils"));
45
- 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 _t9 in e) "default" !== _t9 && {}.hasOwnProperty.call(e, _t9) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t9)) && (i.get || i.set) ? o(f, _t9, i) : f[_t9] = e[_t9]); return f; })(e, t); }
46
+ var _request = require("./utils/request");
47
+ 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); }
46
48
  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; } } }; }
47
49
  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; } }
48
50
  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; }
@@ -73,12 +75,16 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
73
75
  (0, _defineProperty2.default)(_this, "callManager", void 0);
74
76
  (0, _defineProperty2.default)(_this, "metricManager", void 0);
75
77
  (0, _defineProperty2.default)(_this, "sdkConfig", void 0);
78
+ (0, _defineProperty2.default)(_this, "serviceData", void 0);
76
79
  (0, _defineProperty2.default)(_this, "primaryMobiusUris", void 0);
77
80
  (0, _defineProperty2.default)(_this, "backupMobiusUris", void 0);
81
+ (0, _defineProperty2.default)(_this, "primaryWssMobiusUris", void 0);
82
+ (0, _defineProperty2.default)(_this, "backupWssMobiusUris", void 0);
78
83
  (0, _defineProperty2.default)(_this, "mobiusClusters", void 0);
79
84
  (0, _defineProperty2.default)(_this, "mobiusHost", void 0);
80
85
  (0, _defineProperty2.default)(_this, "mediaEngine", void 0);
81
86
  (0, _defineProperty2.default)(_this, "lineDict", {});
87
+ (0, _defineProperty2.default)(_this, "apiRequest", void 0);
82
88
  (0, _defineProperty2.default)(_this, "isNetworkDown", false);
83
89
  (0, _defineProperty2.default)(_this, "networkDownTimestamp", '');
84
90
  (0, _defineProperty2.default)(_this, "networkUpTimestamp", '');
@@ -122,7 +128,7 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
122
128
  method: _constants2.METHODS.MERCURY_OFFLINE
123
129
  });
124
130
  _this.mercuryDownTimestamp = new Date().toISOString();
125
- _this.metricManager.submitConnectionMetrics(_types4.METRIC_EVENT.CONNECTION_ERROR, _types4.CONNECTION_ACTION.MERCURY_DOWN, _types4.METRIC_TYPE.BEHAVIORAL, _this.mercuryDownTimestamp, _this.mercuryUpTimestamp);
131
+ _this.metricManager.submitConnectionMetrics(_types5.METRIC_EVENT.CONNECTION_ERROR, _types5.CONNECTION_ACTION.MERCURY_DOWN, _types5.METRIC_TYPE.BEHAVIORAL, _this.mercuryDownTimestamp, _this.mercuryUpTimestamp);
126
132
  });
127
133
  (0, _defineProperty2.default)(_this, "handleMercuryOnline", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
128
134
  var callCheckInterval;
@@ -174,7 +180,7 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
174
180
  _context3.next = 1;
175
181
  return _this.checkCallStatus();
176
182
  case 1:
177
- _this.metricManager.submitConnectionMetrics(_types4.METRIC_EVENT.CONNECTION_ERROR, _types4.CONNECTION_ACTION.NETWORK_FLAP, _types4.METRIC_TYPE.BEHAVIORAL, _this.networkDownTimestamp, _this.networkUpTimestamp);
183
+ _this.metricManager.submitConnectionMetrics(_types5.METRIC_EVENT.CONNECTION_ERROR, _types5.CONNECTION_ACTION.NETWORK_FLAP, _types5.METRIC_TYPE.BEHAVIORAL, _this.networkDownTimestamp, _this.networkUpTimestamp);
178
184
  _context3.next = 4;
179
185
  break;
180
186
  case 2:
@@ -185,13 +191,63 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
185
191
  _context3.next = 3;
186
192
  return _this.checkCallStatus();
187
193
  case 3:
188
- _this.metricManager.submitConnectionMetrics(_types4.METRIC_EVENT.CONNECTION_ERROR, _types4.CONNECTION_ACTION.MERCURY_UP, _types4.METRIC_TYPE.BEHAVIORAL, _this.mercuryDownTimestamp, _this.mercuryUpTimestamp);
194
+ _this.metricManager.submitConnectionMetrics(_types5.METRIC_EVENT.CONNECTION_ERROR, _types5.CONNECTION_ACTION.MERCURY_UP, _types5.METRIC_TYPE.BEHAVIORAL, _this.mercuryDownTimestamp, _this.mercuryUpTimestamp);
189
195
  case 4:
190
196
  case "end":
191
197
  return _context3.stop();
192
198
  }
193
199
  }, _callee3);
194
200
  })));
201
+ (0, _defineProperty2.default)(_this, "handleMobiusAsyncEvent", /*#__PURE__*/function () {
202
+ var _ref4 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(event) {
203
+ var loggerContext, eventType, line;
204
+ return _regenerator.default.wrap(function (_context4) {
205
+ while (1) switch (_context4.prev = _context4.next) {
206
+ case 0:
207
+ loggerContext = {
208
+ file: _constants2.CALLING_CLIENT_FILE,
209
+ method: _constants2.METHODS.HANDLE_MOBIUS_ASYNC_EVENT
210
+ };
211
+ eventType = event === null || event === void 0 ? void 0 : event.data.eventType;
212
+ _Logger.default.trace("Mobius async event received - eventType: ".concat(eventType !== null && eventType !== void 0 ? eventType : 'undefined'), loggerContext);
213
+ if (eventType) {
214
+ _context4.next = 1;
215
+ break;
216
+ }
217
+ _Logger.default.warn('Dropping unsupported mobius socket payload', loggerContext);
218
+ return _context4.abrupt("return");
219
+ case 1:
220
+ if (!(eventType === _types4.MobiusEventType.REGISTRATION_DOWN)) {
221
+ _context4.next = 4;
222
+ break;
223
+ }
224
+ _Logger.default.warn("Received ".concat(eventType, " event from Mobius."), loggerContext);
225
+ line = (0, _values.default)(_this.lineDict)[0];
226
+ if (line) {
227
+ _context4.next = 2;
228
+ break;
229
+ }
230
+ _Logger.default.warn('No line found, skipping registration down event', loggerContext);
231
+ return _context4.abrupt("return");
232
+ case 2:
233
+ _context4.next = 3;
234
+ return line.registration.handleRegistrationDownEvent(event);
235
+ case 3:
236
+ _this.metricManager.submitMobiusSocketMetric(_types5.METRIC_EVENT.MOBIUS_SOCKET_ERROR, _types5.MOBIUS_SOCKET_ACTION.REGISTRATION_DOWN, _types5.METRIC_TYPE.BEHAVIORAL, undefined, event === null || event === void 0 ? void 0 : event.trackingId, undefined, eventType);
237
+ return _context4.abrupt("return");
238
+ case 4:
239
+ _this.callManager.dequeueWsEvents(event);
240
+ _Logger.default.trace("Mobius async event dispatched to CallManager - eventType: ".concat(eventType), loggerContext);
241
+ case 5:
242
+ case "end":
243
+ return _context4.stop();
244
+ }
245
+ }, _callee4);
246
+ }));
247
+ return function (_x) {
248
+ return _ref4.apply(this, arguments);
249
+ };
250
+ }());
195
251
  /**
196
252
  * Handler registered for ALL_CALLS_CLEARED event emitted by callManager.
197
253
  *
@@ -199,10 +255,10 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
199
255
  * will be attempted here on receiving a notification from callManager that all
200
256
  * calls are cleaned up.
201
257
  */
202
- (0, _defineProperty2.default)(_this, "callsClearedHandler", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
258
+ (0, _defineProperty2.default)(_this, "callsClearedHandler", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
203
259
  var registration;
204
- return _regenerator.default.wrap(function (_context5) {
205
- while (1) switch (_context5.prev = _context5.next) {
260
+ return _regenerator.default.wrap(function (_context6) {
261
+ while (1) switch (_context6.prev = _context6.next) {
206
262
  case 0:
207
263
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
208
264
  file: _constants2.CALLING_CLIENT_FILE,
@@ -212,35 +268,35 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
212
268
  // it will change once we have proper lineId and multiple lines as well
213
269
  registration = (0, _values.default)(_this.lineDict)[0].registration;
214
270
  if (registration.isDeviceRegistered()) {
215
- _context5.next = 1;
271
+ _context6.next = 1;
216
272
  break;
217
273
  }
218
- _context5.next = 1;
219
- return _this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
220
- return _regenerator.default.wrap(function (_context4) {
221
- while (1) switch (_context4.prev = _context4.next) {
274
+ _context6.next = 1;
275
+ return _this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
276
+ return _regenerator.default.wrap(function (_context5) {
277
+ while (1) switch (_context5.prev = _context5.next) {
222
278
  case 0:
223
279
  if (!registration.isReconnectPending()) {
224
- _context4.next = 1;
280
+ _context5.next = 1;
225
281
  break;
226
282
  }
227
283
  _Logger.default.info('All calls cleared, reconnecting', {
228
284
  file: _constants2.CALLING_CLIENT_FILE,
229
285
  method: _constants2.CALLS_CLEARED_HANDLER_UTIL
230
286
  });
231
- _context4.next = 1;
287
+ _context5.next = 1;
232
288
  return registration.reconnectOnFailure(_constants2.CALLS_CLEARED_HANDLER_UTIL);
233
289
  case 1:
234
290
  case "end":
235
- return _context4.stop();
291
+ return _context5.stop();
236
292
  }
237
- }, _callee4);
293
+ }, _callee5);
238
294
  })));
239
295
  case 1:
240
296
  case "end":
241
- return _context5.stop();
297
+ return _context6.stop();
242
298
  }
243
- }, _callee5);
299
+ }, _callee6);
244
300
  })));
245
301
  _this.sdkConnector = _SDKConnector.default;
246
302
  if (!_this.sdkConnector.getWebex()) {
@@ -254,15 +310,15 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
254
310
  _this.mutex = new _asyncMutex.Mutex();
255
311
  _this.webex = _this.sdkConnector.getWebex();
256
312
  _this.sdkConfig = config;
257
- var serviceData = (_this$sdkConfig = _this.sdkConfig) !== null && _this$sdkConfig !== void 0 && (_this$sdkConfig$servi = _this$sdkConfig.serviceData) !== null && _this$sdkConfig$servi !== void 0 && _this$sdkConfig$servi.indicator ? _this.sdkConfig.serviceData : {
313
+ _this.serviceData = (_this$sdkConfig = _this.sdkConfig) !== null && _this$sdkConfig !== void 0 && (_this$sdkConfig$servi = _this$sdkConfig.serviceData) !== null && _this$sdkConfig$servi !== void 0 && _this$sdkConfig$servi.indicator ? _this.sdkConfig.serviceData : {
258
314
  indicator: _types3.ServiceIndicator.CALLING,
259
315
  domain: ''
260
316
  };
261
317
  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;
262
318
  _Logger.default.setLogger(logLevel, _constants2.CALLING_CLIENT_FILE);
263
- (0, _Utils.validateServiceData)(serviceData);
264
- _this.callManager = (0, _callManager.getCallManager)(_this.webex, serviceData.indicator);
265
- _this.metricManager = (0, _Metrics.getMetricManager)(_this.webex, serviceData.indicator);
319
+ (0, _Utils.validateServiceData)(_this.serviceData);
320
+ _this.callManager = (0, _callManager.getCallManager)(_this.webex, _this.serviceData.indicator);
321
+ _this.metricManager = (0, _Metrics.getMetricManager)(_this.webex, _this.serviceData.indicator);
266
322
  _this.mediaEngine = Media;
267
323
  var adaptedLogger = {
268
324
  log: function log() {
@@ -305,8 +361,13 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
305
361
  _this.mediaEngine.setLogger(adaptedLogger);
306
362
  _this.primaryMobiusUris = [];
307
363
  _this.backupMobiusUris = [];
364
+ _this.primaryWssMobiusUris = [];
365
+ _this.backupWssMobiusUris = [];
308
366
  _this.mobiusClusters = _this.webex.internal.services.getMobiusClusters();
309
367
  _this.mobiusHost = '';
368
+ _this.apiRequest = _request.APIRequest.getInstance({
369
+ webex: _this.webex
370
+ });
310
371
  _this.registerSessionsListener();
311
372
  _this.registerCallsClearedListener();
312
373
  return _this;
@@ -328,27 +389,34 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
328
389
  return (0, _createClass2.default)(CallingClient, [{
329
390
  key: "init",
330
391
  value: (function () {
331
- var _init = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
392
+ var _init = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
332
393
  var _window, _window$navigator;
333
- var ua, _t;
334
- return _regenerator.default.wrap(function (_context6) {
335
- while (1) switch (_context6.prev = _context6.next) {
394
+ var loggerContext, ua, _this$sdkConfig3, rtmsDomain, _t;
395
+ return _regenerator.default.wrap(function (_context7) {
396
+ while (1) switch (_context7.prev = _context7.next) {
336
397
  case 0:
398
+ loggerContext = {
399
+ file: _constants2.CALLING_CLIENT_FILE,
400
+ method: _constants2.METHODS.INIT
401
+ };
402
+ _Logger.default.info(_constants.METHOD_START_MESSAGE, loggerContext);
403
+
404
+ // Only for Windows Chromium based browsers we need to do the ICE warmup
337
405
  if (!(typeof window !== 'undefined' && (_window = window) !== null && _window !== void 0 && (_window$navigator = _window.navigator) !== null && _window$navigator !== void 0 && _window$navigator.userAgent)) {
338
- _context6.next = 4;
406
+ _context7.next = 4;
339
407
  break;
340
408
  }
341
409
  ua = window.navigator.userAgent;
342
410
  if (!ua.toLowerCase().includes('windows')) {
343
- _context6.next = 4;
411
+ _context7.next = 4;
344
412
  break;
345
413
  }
346
414
  _Logger.default.info('Starting ICE warmup for Windows Chromium based browser', {
347
415
  file: _constants2.CALLING_CLIENT_FILE,
348
416
  method: 'init'
349
417
  });
350
- _context6.prev = 1;
351
- _context6.next = 2;
418
+ _context7.prev = 1;
419
+ _context7.next = 2;
352
420
  return (0, _windowsChromiumIceWarmupUtils.default)({
353
421
  iceServers: [],
354
422
  timeoutMs: 1000
@@ -358,28 +426,52 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
358
426
  file: _constants2.CALLING_CLIENT_FILE,
359
427
  method: 'init'
360
428
  });
361
- _context6.next = 4;
429
+ _context7.next = 4;
362
430
  break;
363
431
  case 3:
364
- _context6.prev = 3;
365
- _t = _context6["catch"](1);
432
+ _context7.prev = 3;
433
+ _t = _context7["catch"](1);
366
434
  _Logger.default.warn("ICE warmup failed: ".concat(_t), {
367
435
  file: _constants2.CALLING_CLIENT_FILE,
368
436
  method: 'init'
369
437
  });
370
438
  case 4:
371
- _context6.next = 5;
439
+ _context7.next = 5;
372
440
  return this.getMobiusServers();
373
441
  case 5:
374
- _context6.next = 6;
375
- return this.createLine();
442
+ if (!this.apiRequest.isSocketEnabled()) {
443
+ _context7.next = 7;
444
+ break;
445
+ }
446
+ _context7.next = 6;
447
+ return this.connectToMobiusSocket();
376
448
  case 6:
377
- this.setupNetworkEventListeners();
449
+ this.apiRequest.registerMobiusSocketListener(this.handleMobiusAsyncEvent);
378
450
  case 7:
451
+ // Auto-fetch RTMS domain from service catalog for contact-center flows
452
+ if (this.serviceData.indicator === _types3.ServiceIndicator.CONTACT_CENTER && !this.serviceData.domain) {
453
+ rtmsDomain = this.getRTMSDomain();
454
+ this.serviceData.domain = rtmsDomain;
455
+ if ((_this$sdkConfig3 = this.sdkConfig) !== null && _this$sdkConfig3 !== void 0 && _this$sdkConfig3.serviceData) {
456
+ this.sdkConfig.serviceData.domain = this.serviceData.domain;
457
+ }
458
+ }
459
+ if ((0, _Utils.isValidServiceDomain)(this.serviceData)) {
460
+ _context7.next = 8;
461
+ break;
462
+ }
463
+ throw new Error('Invalid service domain.');
464
+ case 8:
465
+ _context7.next = 9;
466
+ return this.createLine();
467
+ case 9:
468
+ this.setupNetworkEventListeners();
469
+ _Logger.default.log('CallingClient initialization complete', loggerContext);
470
+ case 10:
379
471
  case "end":
380
- return _context6.stop();
472
+ return _context7.stop();
381
473
  }
382
- }, _callee6, this, [[1, 3]]);
474
+ }, _callee7, this, [[1, 3]]);
383
475
  }));
384
476
  function init() {
385
477
  return _init.apply(this, arguments);
@@ -387,24 +479,53 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
387
479
  return init;
388
480
  }()
389
481
  /**
390
- * Ping a reliable external endpoint with a short timeout to infer connectivity.
482
+ * Retrieves the RTMS domain from the service catalog for contact-center flows.
483
+ *
484
+ * @returns The RTMS domain from catalog when available.
391
485
  */
392
486
  )
487
+ }, {
488
+ key: "getRTMSDomain",
489
+ value: function getRTMSDomain() {
490
+ _Logger.default.info('Fetching RTMS domain from service catalog', {
491
+ file: _constants2.CALLING_CLIENT_FILE,
492
+ method: _constants2.METHODS.GET_RTMS_DOMAIN
493
+ });
494
+ try {
495
+ var rtmsURL = this.webex.internal.services.get(_constants2.WCC_CALLING_RTMS_DOMAIN);
496
+ var url = new URL(rtmsURL);
497
+ _Logger.default.info("RTMS domain resolved from catalog: ".concat(url.hostname), {
498
+ file: _constants2.CALLING_CLIENT_FILE,
499
+ method: _constants2.METHODS.GET_RTMS_DOMAIN
500
+ });
501
+ return url.hostname;
502
+ } catch (error) {
503
+ _Logger.default.warn("Failed to fetch RTMS domain from service catalog: ".concat(error), {
504
+ file: _constants2.CALLING_CLIENT_FILE,
505
+ method: _constants2.METHODS.GET_RTMS_DOMAIN
506
+ });
507
+ return '';
508
+ }
509
+ }
510
+
511
+ /**
512
+ * Ping a reliable external endpoint with a short timeout to infer connectivity.
513
+ */
393
514
  }, {
394
515
  key: "checkNetworkReachability",
395
516
  value: (function () {
396
- var _checkNetworkReachability = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
517
+ var _checkNetworkReachability = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
397
518
  var controller, timeoutId, _t2;
398
- return _regenerator.default.wrap(function (_context7) {
399
- while (1) switch (_context7.prev = _context7.next) {
519
+ return _regenerator.default.wrap(function (_context8) {
520
+ while (1) switch (_context8.prev = _context8.next) {
400
521
  case 0:
401
- _context7.prev = 0;
522
+ _context8.prev = 0;
402
523
  controller = new AbortController();
403
524
  timeoutId = setTimeout(function () {
404
525
  return controller.abort();
405
526
  }, 3000); // Using a common connectivity check endpoint that returns 204 with minimal payload.
406
527
  // no-cors mode yields an opaque response but a successful fetch implies reachability.
407
- _context7.next = 1;
528
+ _context8.next = 1;
408
529
  return fetch('https://www.google.com/generate_204', {
409
530
  method: 'GET',
410
531
  cache: 'no-cache',
@@ -413,20 +534,20 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
413
534
  });
414
535
  case 1:
415
536
  clearTimeout(timeoutId);
416
- return _context7.abrupt("return", true);
537
+ return _context8.abrupt("return", true);
417
538
  case 2:
418
- _context7.prev = 2;
419
- _t2 = _context7["catch"](0);
539
+ _context8.prev = 2;
540
+ _t2 = _context8["catch"](0);
420
541
  _Logger.default.warn("Network connectivity probe failed: ".concat(_t2), {
421
542
  file: _constants2.CALLING_CLIENT_FILE,
422
543
  method: 'pingExternal'
423
544
  });
424
- return _context7.abrupt("return", false);
545
+ return _context8.abrupt("return", false);
425
546
  case 3:
426
547
  case "end":
427
- return _context7.stop();
548
+ return _context8.stop();
428
549
  }
429
- }, _callee7, null, [[0, 2]]);
550
+ }, _callee8, null, [[0, 2]]);
430
551
  }));
431
552
  function checkNetworkReachability() {
432
553
  return _checkNetworkReachability.apply(this, arguments);
@@ -436,10 +557,10 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
436
557
  }, {
437
558
  key: "checkCallStatus",
438
559
  value: function () {
439
- var _checkCallStatus = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
560
+ var _checkCallStatus = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
440
561
  var loggerContext, calls, _iterator, _step, _loop, _t3;
441
- return _regenerator.default.wrap(function (_context9) {
442
- while (1) switch (_context9.prev = _context9.next) {
562
+ return _regenerator.default.wrap(function (_context0) {
563
+ while (1) switch (_context0.prev = _context0.next) {
443
564
  case 0:
444
565
  loggerContext = {
445
566
  file: _constants2.CALLING_CLIENT_FILE,
@@ -447,11 +568,11 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
447
568
  };
448
569
  calls = (0, _values.default)(this.callManager.getActiveCalls());
449
570
  _iterator = _createForOfIteratorHelper(calls);
450
- _context9.prev = 1;
571
+ _context0.prev = 1;
451
572
  _loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
452
573
  var call;
453
- return _regenerator.default.wrap(function (_context8) {
454
- while (1) switch (_context8.prev = _context8.next) {
574
+ return _regenerator.default.wrap(function (_context9) {
575
+ while (1) switch (_context9.prev = _context9.next) {
455
576
  case 0:
456
577
  call = _step.value;
457
578
  call.postStatus().then(function () {
@@ -468,36 +589,36 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
468
589
  });
469
590
  case 1:
470
591
  case "end":
471
- return _context8.stop();
592
+ return _context9.stop();
472
593
  }
473
594
  }, _loop);
474
595
  });
475
596
  _iterator.s();
476
597
  case 2:
477
598
  if ((_step = _iterator.n()).done) {
478
- _context9.next = 4;
599
+ _context0.next = 4;
479
600
  break;
480
601
  }
481
- return _context9.delegateYield(_loop(), "t0", 3);
602
+ return _context0.delegateYield(_loop(), "t0", 3);
482
603
  case 3:
483
- _context9.next = 2;
604
+ _context0.next = 2;
484
605
  break;
485
606
  case 4:
486
- _context9.next = 6;
607
+ _context0.next = 6;
487
608
  break;
488
609
  case 5:
489
- _context9.prev = 5;
490
- _t3 = _context9["catch"](1);
610
+ _context0.prev = 5;
611
+ _t3 = _context0["catch"](1);
491
612
  _iterator.e(_t3);
492
613
  case 6:
493
- _context9.prev = 6;
614
+ _context0.prev = 6;
494
615
  _iterator.f();
495
- return _context9.finish(6);
616
+ return _context0.finish(6);
496
617
  case 7:
497
618
  case "end":
498
- return _context9.stop();
619
+ return _context0.stop();
499
620
  }
500
- }, _callee8, this, [[1, 5, 6, 7]]);
621
+ }, _callee9, this, [[1, 5, 6, 7]]);
501
622
  }));
502
623
  function checkCallStatus() {
503
624
  return _checkCallStatus.apply(this, arguments);
@@ -526,19 +647,19 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
526
647
  }, {
527
648
  key: "getClientRegionInfo",
528
649
  value: (function () {
529
- var _getClientRegionInfo = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
650
+ var _getClientRegionInfo = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
530
651
  var _this3 = this;
531
652
  var abort, regionInfo, _response$headers, _response$headers$tra, _response$headers2, response, clientRegionInfo, _t4;
532
- return _regenerator.default.wrap(function (_context0) {
533
- while (1) switch (_context0.prev = _context0.next) {
653
+ return _regenerator.default.wrap(function (_context1) {
654
+ while (1) switch (_context1.prev = _context1.next) {
534
655
  case 0:
535
656
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
536
657
  file: _constants2.CALLING_CLIENT_FILE,
537
658
  method: _constants2.METHODS.GET_CLIENT_REGION_INFO
538
659
  });
539
660
  regionInfo = {};
540
- _context0.prev = 1;
541
- _context0.next = 2;
661
+ _context1.prev = 1;
662
+ _context1.next = 2;
542
663
  return this.webex.request({
543
664
  uri: "".concat(_constants2.DISCOVERY_URL),
544
665
  method: _types3.HTTP_METHODS.GET,
@@ -546,7 +667,7 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
546
667
  headers: (0, _defineProperty2.default)({}, _constants2.SPARK_USER_AGENT, null)
547
668
  });
548
669
  case 2:
549
- response = _context0.sent;
670
+ response = _context1.sent;
550
671
  clientRegionInfo = response.body;
551
672
  regionInfo.clientRegion = (clientRegionInfo === null || clientRegionInfo === void 0 ? void 0 : clientRegionInfo.clientRegion) || '';
552
673
  regionInfo.countryCode = (clientRegionInfo === null || clientRegionInfo === void 0 ? void 0 : clientRegionInfo.countryCode) || '';
@@ -554,46 +675,46 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
554
675
  file: _constants2.CALLING_CLIENT_FILE,
555
676
  method: _constants2.METHODS.GET_CLIENT_REGION_INFO
556
677
  });
557
- 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 : '');
558
- _context0.next = 6;
678
+ 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 : '');
679
+ _context1.next = 6;
559
680
  break;
560
681
  case 3:
561
- _context0.prev = 3;
562
- _t4 = _context0["catch"](1);
682
+ _context1.prev = 3;
683
+ _t4 = _context1["catch"](1);
563
684
  _Logger.default.error("Failed to get client region info: ".concat((0, _stringify.default)(_t4)), {
564
685
  method: _constants2.METHODS.GET_CLIENT_REGION_INFO,
565
686
  file: _constants2.CALLING_CLIENT_FILE
566
687
  });
567
688
 
568
689
  // eslint-disable-next-line no-await-in-loop
569
- _context0.next = 4;
690
+ _context1.next = 4;
570
691
  return (0, _Utils.handleCallingClientErrors)(_t4, function (clientError) {
571
692
  var _headers$trackingId, _headers2;
572
- _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);
693
+ _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);
573
694
  _this3.emit(_types2.CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);
574
695
  }, {
575
696
  method: _constants2.GET_MOBIUS_SERVERS_UTIL,
576
697
  file: _constants2.CALLING_CLIENT_FILE
577
698
  });
578
699
  case 4:
579
- abort = _context0.sent;
700
+ abort = _context1.sent;
580
701
  regionInfo.clientRegion = '';
581
702
  regionInfo.countryCode = '';
582
703
  if (!abort) {
583
- _context0.next = 6;
704
+ _context1.next = 6;
584
705
  break;
585
706
  }
586
- _context0.next = 5;
707
+ _context1.next = 5;
587
708
  return (0, _Utils.uploadLogs)();
588
709
  case 5:
589
- return _context0.abrupt("return", regionInfo);
710
+ return _context1.abrupt("return", regionInfo);
590
711
  case 6:
591
- return _context0.abrupt("return", regionInfo);
712
+ return _context1.abrupt("return", regionInfo);
592
713
  case 7:
593
714
  case "end":
594
- return _context0.stop();
715
+ return _context1.stop();
595
716
  }
596
- }, _callee9, this, [[1, 3]]);
717
+ }, _callee0, this, [[1, 3]]);
597
718
  }));
598
719
  function getClientRegionInfo() {
599
720
  return _getClientRegionInfo.apply(this, arguments);
@@ -607,15 +728,15 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
607
728
  }, {
608
729
  key: "getMobiusServers",
609
730
  value: (function () {
610
- var _getMobiusServers = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
611
- var _this$sdkConfig3,
612
- _this$sdkConfig3$disc,
613
- _this$sdkConfig4,
731
+ var _getMobiusServers = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
732
+ var _this$sdkConfig4,
614
733
  _this$sdkConfig4$disc,
734
+ _this$sdkConfig5,
735
+ _this$sdkConfig5$disc,
615
736
  _this4 = this;
616
- var useDefault, clientRegion, countryCode, _this$sdkConfig5, _this$sdkConfig5$disc, _this$sdkConfig6, _this$sdkConfig6$disc, _this$webex$internal$, regionInfo, _iterator2, _step2, _loop2, _ret, _t6;
617
- return _regenerator.default.wrap(function (_context10) {
618
- while (1) switch (_context10.prev = _context10.next) {
737
+ var useDefault, clientRegion, countryCode, _this$sdkConfig6, _this$sdkConfig6$disc, _this$sdkConfig7, _this$sdkConfig7$disc, _this$webex$internal$, regionInfo, _iterator2, _step2, _loop2, _ret, _t6;
738
+ return _regenerator.default.wrap(function (_context11) {
739
+ while (1) switch (_context11.prev = _context11.next) {
619
740
  case 0:
620
741
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
621
742
  file: _constants2.CALLING_CLIENT_FILE,
@@ -629,33 +750,33 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
629
750
  5. Otherwise send registration
630
751
  */
631
752
  useDefault = false;
632
- 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)) {
633
- _context10.next = 1;
753
+ if (!((_this$sdkConfig4 = this.sdkConfig) !== null && _this$sdkConfig4 !== void 0 && (_this$sdkConfig4$disc = _this$sdkConfig4.discovery) !== null && _this$sdkConfig4$disc !== void 0 && _this$sdkConfig4$disc.country && (_this$sdkConfig5 = this.sdkConfig) !== null && _this$sdkConfig5 !== void 0 && (_this$sdkConfig5$disc = _this$sdkConfig5.discovery) !== null && _this$sdkConfig5$disc !== void 0 && _this$sdkConfig5$disc.region)) {
754
+ _context11.next = 1;
634
755
  break;
635
756
  }
636
757
  _Logger.default.log('Updating region and country from the SDK config', {
637
758
  file: _constants2.CALLING_CLIENT_FILE,
638
759
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
639
760
  });
640
- 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;
641
- 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;
761
+ clientRegion = (_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.region;
762
+ countryCode = (_this$sdkConfig7 = this.sdkConfig) === null || _this$sdkConfig7 === void 0 ? void 0 : (_this$sdkConfig7$disc = _this$sdkConfig7.discovery) === null || _this$sdkConfig7$disc === void 0 ? void 0 : _this$sdkConfig7$disc.country;
642
763
  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);
643
- _context10.next = 3;
764
+ _context11.next = 3;
644
765
  break;
645
766
  case 1:
646
767
  _Logger.default.log('Updating region and country through Region discovery', {
647
768
  file: _constants2.CALLING_CLIENT_FILE,
648
769
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
649
770
  });
650
- _context10.next = 2;
771
+ _context11.next = 2;
651
772
  return this.getClientRegionInfo();
652
773
  case 2:
653
- regionInfo = _context10.sent;
774
+ regionInfo = _context11.sent;
654
775
  clientRegion = regionInfo.clientRegion;
655
776
  countryCode = regionInfo.countryCode;
656
777
  case 3:
657
778
  if (!(clientRegion && countryCode)) {
658
- _context10.next = 12;
779
+ _context11.next = 12;
659
780
  break;
660
781
  }
661
782
  _Logger.default.log("Found Region: ".concat(clientRegion, " and country: ").concat(countryCode, ", going to fetch Mobius server"), {
@@ -663,11 +784,11 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
663
784
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
664
785
  });
665
786
  _iterator2 = _createForOfIteratorHelper(this.mobiusClusters);
666
- _context10.prev = 4;
787
+ _context11.prev = 4;
667
788
  _loop2 = /*#__PURE__*/_regenerator.default.mark(function _loop2() {
668
789
  var mobius, _response$headers3, _response$headers$tra2, _response$headers4, response, mobiusServers, mobiusUris, abort, _t5;
669
- return _regenerator.default.wrap(function (_context1) {
670
- while (1) switch (_context1.prev = _context1.next) {
790
+ return _regenerator.default.wrap(function (_context10) {
791
+ while (1) switch (_context10.prev = _context10.next) {
671
792
  case 0:
672
793
  mobius = _step2.value;
673
794
  if (mobius.host) {
@@ -675,8 +796,8 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
675
796
  } else {
676
797
  _this4.mobiusHost = mobius;
677
798
  }
678
- _context1.prev = 1;
679
- _context1.next = 2;
799
+ _context10.prev = 1;
800
+ _context10.next = 2;
680
801
  return _this4.webex.request({
681
802
  uri: "".concat(_this4.mobiusHost).concat(_constants2.URL_ENDPOINT, "?regionCode=").concat(clientRegion, "&countryCode=").concat(countryCode),
682
803
  method: _types3.HTTP_METHODS.GET,
@@ -684,89 +805,91 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
684
805
  service: _types3.ALLOWED_SERVICES.MOBIUS
685
806
  });
686
807
  case 2:
687
- response = _context1.sent;
808
+ response = _context10.sent;
688
809
  _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), {
689
810
  file: _constants2.CALLING_CLIENT_FILE,
690
811
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
691
812
  });
692
813
  mobiusServers = response.body; // Metrics for mobius servers
693
- _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 : '');
814
+ _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 : '');
694
815
 
695
816
  /* update arrays of Mobius Uris. */
696
817
  mobiusUris = (0, _Utils.filterMobiusUris)(mobiusServers, _this4.mobiusHost);
697
818
  _this4.primaryMobiusUris = mobiusUris.primary;
698
819
  _this4.backupMobiusUris = mobiusUris.backup;
820
+ _this4.primaryWssMobiusUris = mobiusUris.primaryWss;
821
+ _this4.backupWssMobiusUris = mobiusUris.backupWss;
699
822
  _Logger.default.log("Final list of Mobius Servers, primary: ".concat(mobiusUris.primary, " and backup: ").concat(mobiusUris.backup), {
700
823
  file: _constants2.CALLING_CLIENT_FILE,
701
824
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
702
825
  });
703
- return _context1.abrupt("return", 0);
826
+ return _context10.abrupt("return", 0);
704
827
  case 3:
705
- _context1.prev = 3;
706
- _t5 = _context1["catch"](1);
828
+ _context10.prev = 3;
829
+ _t5 = _context10["catch"](1);
707
830
  _Logger.default.error("Failed to get Mobius servers: ".concat((0, _stringify.default)(_t5)), {
708
831
  method: _constants2.METHODS.GET_MOBIUS_SERVERS,
709
832
  file: _constants2.CALLING_CLIENT_FILE
710
833
  });
711
834
 
712
835
  // eslint-disable-next-line no-await-in-loop
713
- _context1.next = 4;
836
+ _context10.next = 4;
714
837
  return (0, _Utils.handleCallingClientErrors)(_t5, function (clientError) {
715
838
  var _headers$trackingId2, _headers4;
716
- _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);
839
+ _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);
717
840
  _this4.emit(_types2.CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);
718
841
  }, {
719
842
  method: _constants2.GET_MOBIUS_SERVERS_UTIL,
720
843
  file: _constants2.CALLING_CLIENT_FILE
721
844
  });
722
845
  case 4:
723
- abort = _context1.sent;
846
+ abort = _context10.sent;
724
847
  if (!abort) {
725
- _context1.next = 6;
848
+ _context10.next = 6;
726
849
  break;
727
850
  }
728
851
  useDefault = true;
729
852
  // eslint-disable-next-line no-await-in-loop
730
- _context1.next = 5;
853
+ _context10.next = 5;
731
854
  return (0, _Utils.uploadLogs)();
732
855
  case 5:
733
- return _context1.abrupt("return", 0);
856
+ return _context10.abrupt("return", 0);
734
857
  case 6:
735
858
  case "end":
736
- return _context1.stop();
859
+ return _context10.stop();
737
860
  }
738
861
  }, _loop2, null, [[1, 3]]);
739
862
  });
740
863
  _iterator2.s();
741
864
  case 5:
742
865
  if ((_step2 = _iterator2.n()).done) {
743
- _context10.next = 8;
866
+ _context11.next = 8;
744
867
  break;
745
868
  }
746
- return _context10.delegateYield(_loop2(), "t0", 6);
869
+ return _context11.delegateYield(_loop2(), "t0", 6);
747
870
  case 6:
748
- _ret = _context10.t0;
871
+ _ret = _context11.t0;
749
872
  if (!(_ret === 0)) {
750
- _context10.next = 7;
873
+ _context11.next = 7;
751
874
  break;
752
875
  }
753
- return _context10.abrupt("continue", 8);
876
+ return _context11.abrupt("continue", 8);
754
877
  case 7:
755
- _context10.next = 5;
878
+ _context11.next = 5;
756
879
  break;
757
880
  case 8:
758
- _context10.next = 10;
881
+ _context11.next = 10;
759
882
  break;
760
883
  case 9:
761
- _context10.prev = 9;
762
- _t6 = _context10["catch"](4);
884
+ _context11.prev = 9;
885
+ _t6 = _context11["catch"](4);
763
886
  _iterator2.e(_t6);
764
887
  case 10:
765
- _context10.prev = 10;
888
+ _context11.prev = 10;
766
889
  _iterator2.f();
767
- return _context10.finish(10);
890
+ return _context11.finish(10);
768
891
  case 11:
769
- _context10.next = 13;
892
+ _context11.next = 13;
770
893
  break;
771
894
  case 12:
772
895
  /* Setting this to true because region info is possibly undefined */
@@ -786,9 +909,9 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
786
909
  }
787
910
  case 14:
788
911
  case "end":
789
- return _context10.stop();
912
+ return _context11.stop();
790
913
  }
791
- }, _callee0, this, [[4, 9, 10, 11]]);
914
+ }, _callee1, this, [[4, 9, 10, 11]]);
792
915
  }));
793
916
  function getMobiusServers() {
794
917
  return _getMobiusServers.apply(this, arguments);
@@ -796,14 +919,149 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
796
919
  return getMobiusServers;
797
920
  }()
798
921
  /**
799
- * Registers a listener/handler for ALL_CALLS_CLEARED
800
- * event emitted by callManager when all the calls
801
- * present on sdk are cleaned up.
922
+ * Connects to the Mobius WebSocket using WSS URIs discovered during Mobius server discovery.
923
+ * Attempts primary WSS URIs first, then falls back to backup WSS URIs.
924
+ * If all attempts fail, logs a warning and continues without a socket connection.
802
925
  */
803
926
  )
927
+ }, {
928
+ key: "connectToMobiusSocket",
929
+ value: (function () {
930
+ var _connectToMobiusSocket = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
931
+ var loggerContext, _iterator3, _step3, wssUri, _iterator4, _step4, _wssUri, _t7, _t8, _t9, _t0;
932
+ return _regenerator.default.wrap(function (_context12) {
933
+ while (1) switch (_context12.prev = _context12.next) {
934
+ case 0:
935
+ loggerContext = {
936
+ file: _constants2.CALLING_CLIENT_FILE,
937
+ method: _constants2.METHODS.CONNECT_TO_MOBIUS_SOCKET
938
+ };
939
+ _Logger.default.info(_constants.METHOD_START_MESSAGE, loggerContext);
940
+ if (!(!this.primaryWssMobiusUris.length && !this.backupWssMobiusUris.length)) {
941
+ _context12.next = 1;
942
+ break;
943
+ }
944
+ _Logger.default.warn('No WSS URIs available from Mobius discovery, skipping socket connection', loggerContext);
945
+ return _context12.abrupt("return");
946
+ case 1:
947
+ if (!this.primaryWssMobiusUris.length) {
948
+ _context12.next = 12;
949
+ break;
950
+ }
951
+ _Logger.default.log("Attempting Mobius socket connection using primary WSS URIs (".concat(this.primaryWssMobiusUris.length, " available)"), loggerContext);
952
+ _iterator3 = _createForOfIteratorHelper(this.primaryWssMobiusUris);
953
+ _context12.prev = 2;
954
+ _iterator3.s();
955
+ case 3:
956
+ if ((_step3 = _iterator3.n()).done) {
957
+ _context12.next = 8;
958
+ break;
959
+ }
960
+ wssUri = _step3.value;
961
+ _context12.prev = 4;
962
+ _Logger.default.log("Trying primary WSS URI: ".concat(wssUri), loggerContext);
963
+ // eslint-disable-next-line no-await-in-loop
964
+ _context12.next = 5;
965
+ return this.apiRequest.connectToMobiusSocket(wssUri);
966
+ case 5:
967
+ _Logger.default.log("Successfully connected to Mobius socket on primary WSS URI: ".concat(wssUri), loggerContext);
968
+ return _context12.abrupt("return");
969
+ case 6:
970
+ _context12.prev = 6;
971
+ _t7 = _context12["catch"](4);
972
+ _Logger.default.warn("Primary WSS URI connection failed for ".concat(wssUri, ": ").concat(_t7), loggerContext);
973
+ case 7:
974
+ _context12.next = 3;
975
+ break;
976
+ case 8:
977
+ _context12.next = 10;
978
+ break;
979
+ case 9:
980
+ _context12.prev = 9;
981
+ _t8 = _context12["catch"](2);
982
+ _iterator3.e(_t8);
983
+ case 10:
984
+ _context12.prev = 10;
985
+ _iterator3.f();
986
+ return _context12.finish(10);
987
+ case 11:
988
+ _Logger.default.warn('All primary WSS URI connection attempts failed', loggerContext);
989
+ _context12.next = 13;
990
+ break;
991
+ case 12:
992
+ _Logger.default.warn('No primary WSS URIs available, skipping to backup', loggerContext);
993
+ case 13:
994
+ if (!this.backupWssMobiusUris.length) {
995
+ _context12.next = 24;
996
+ break;
997
+ }
998
+ _Logger.default.log("Attempting Mobius socket connection using backup WSS URIs (".concat(this.backupWssMobiusUris.length, " available)"), loggerContext);
999
+ _iterator4 = _createForOfIteratorHelper(this.backupWssMobiusUris);
1000
+ _context12.prev = 14;
1001
+ _iterator4.s();
1002
+ case 15:
1003
+ if ((_step4 = _iterator4.n()).done) {
1004
+ _context12.next = 20;
1005
+ break;
1006
+ }
1007
+ _wssUri = _step4.value;
1008
+ _context12.prev = 16;
1009
+ _Logger.default.log("Trying backup WSS URI: ".concat(_wssUri), loggerContext);
1010
+ // eslint-disable-next-line no-await-in-loop
1011
+ _context12.next = 17;
1012
+ return this.apiRequest.connectToMobiusSocket(_wssUri);
1013
+ case 17:
1014
+ _Logger.default.log("Successfully connected to Mobius socket on backup WSS URI: ".concat(_wssUri), loggerContext);
1015
+ return _context12.abrupt("return");
1016
+ case 18:
1017
+ _context12.prev = 18;
1018
+ _t9 = _context12["catch"](16);
1019
+ _Logger.default.warn("Backup WSS URI connection failed for ".concat(_wssUri, ": ").concat(_t9), loggerContext);
1020
+ case 19:
1021
+ _context12.next = 15;
1022
+ break;
1023
+ case 20:
1024
+ _context12.next = 22;
1025
+ break;
1026
+ case 21:
1027
+ _context12.prev = 21;
1028
+ _t0 = _context12["catch"](14);
1029
+ _iterator4.e(_t0);
1030
+ case 22:
1031
+ _context12.prev = 22;
1032
+ _iterator4.f();
1033
+ return _context12.finish(22);
1034
+ case 23:
1035
+ _Logger.default.warn('All backup WSS URI connection attempts failed', loggerContext);
1036
+ _context12.next = 25;
1037
+ break;
1038
+ case 24:
1039
+ _Logger.default.warn('No backup WSS URIs available', loggerContext);
1040
+ case 25:
1041
+ // Throwing an error is not required here. Connection will be attempted again during registration if no connection is established.
1042
+ // We might remove this connection attempt logic during optimization since we are anyway going to try to connect to Mobius during
1043
+ // registration and without registration the connection will be closed automatically by the mobius server.
1044
+ _Logger.default.warn('All Mobius socket connection attempts exhausted for both primary and backup, continuing without socket', loggerContext);
1045
+ case 26:
1046
+ case "end":
1047
+ return _context12.stop();
1048
+ }
1049
+ }, _callee10, this, [[2, 9, 10, 11], [4, 6], [14, 21, 22, 23], [16, 18]]);
1050
+ }));
1051
+ function connectToMobiusSocket() {
1052
+ return _connectToMobiusSocket.apply(this, arguments);
1053
+ }
1054
+ return connectToMobiusSocket;
1055
+ }())
804
1056
  }, {
805
1057
  key: "registerCallsClearedListener",
806
- value: function registerCallsClearedListener() {
1058
+ value:
1059
+ /**
1060
+ * Registers a listener/handler for ALL_CALLS_CLEARED
1061
+ * event emitted by callManager when all the calls
1062
+ * present on sdk are cleaned up.
1063
+ */
1064
+ function registerCallsClearedListener() {
807
1065
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
808
1066
  file: _constants2.CALLING_CLIENT_FILE,
809
1067
  method: _constants2.METHODS.REGISTER_CALLS_CLEARED_LISTENER
@@ -839,25 +1097,25 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
839
1097
  method: _constants2.METHODS.REGISTER_SESSIONS_LISTENER
840
1098
  });
841
1099
  this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE, /*#__PURE__*/function () {
842
- var _ref6 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1(event) {
1100
+ var _ref7 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11(event) {
843
1101
  var sessionArr, i;
844
- return _regenerator.default.wrap(function (_context11) {
845
- while (1) switch (_context11.prev = _context11.next) {
1102
+ return _regenerator.default.wrap(function (_context13) {
1103
+ while (1) switch (_context13.prev = _context13.next) {
846
1104
  case 0:
847
1105
  if (!(event && event.data.userSessions.userSessions)) {
848
- _context11.next = 2;
1106
+ _context13.next = 2;
849
1107
  break;
850
1108
  }
851
1109
  sessionArr = event === null || event === void 0 ? void 0 : event.data.userSessions.userSessions;
852
1110
  if (!(sessionArr.length === 1)) {
853
- _context11.next = 1;
1111
+ _context13.next = 1;
854
1112
  break;
855
1113
  }
856
1114
  if (!(sessionArr[0].sessionType !== _types2.SessionType.WEBEX_CALLING)) {
857
- _context11.next = 1;
1115
+ _context13.next = 1;
858
1116
  break;
859
1117
  }
860
- return _context11.abrupt("return");
1118
+ return _context13.abrupt("return");
861
1119
  case 1:
862
1120
  for (i = 0; i < sessionArr.length; i += 1) {
863
1121
  if (sessionArr[i].sessionType !== _types2.SessionType.WEBEX_CALLING) {
@@ -867,12 +1125,12 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
867
1125
  _this5.emit(_types2.CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event);
868
1126
  case 2:
869
1127
  case "end":
870
- return _context11.stop();
1128
+ return _context13.stop();
871
1129
  }
872
- }, _callee1);
1130
+ }, _callee11);
873
1131
  }));
874
- return function (_x) {
875
- return _ref6.apply(this, arguments);
1132
+ return function (_x2) {
1133
+ return _ref7.apply(this, arguments);
876
1134
  };
877
1135
  }());
878
1136
  }
@@ -884,23 +1142,23 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
884
1142
  }, {
885
1143
  key: "createLine",
886
1144
  value: (function () {
887
- var _createLine = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
888
- var _this$sdkConfig7, _this$sdkConfig8;
1145
+ var _createLine = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12() {
1146
+ var _this$sdkConfig8;
889
1147
  var line;
890
- return _regenerator.default.wrap(function (_context12) {
891
- while (1) switch (_context12.prev = _context12.next) {
1148
+ return _regenerator.default.wrap(function (_context14) {
1149
+ while (1) switch (_context14.prev = _context14.next) {
892
1150
  case 0:
893
1151
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
894
1152
  file: _constants2.CALLING_CLIENT_FILE,
895
1153
  method: _constants2.METHODS.CREATE_LINE
896
1154
  });
897
- 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);
1155
+ 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.serviceData, (_this$sdkConfig8 = this.sdkConfig) === null || _this$sdkConfig8 === void 0 ? void 0 : _this$sdkConfig8.jwe);
898
1156
  this.lineDict[line.lineId] = line;
899
1157
  case 1:
900
1158
  case "end":
901
- return _context12.stop();
1159
+ return _context14.stop();
902
1160
  }
903
- }, _callee10, this);
1161
+ }, _callee12, this);
904
1162
  }));
905
1163
  function createLine() {
906
1164
  return _createLine.apply(this, arguments);
@@ -924,14 +1182,14 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
924
1182
  }, {
925
1183
  key: "getDevices",
926
1184
  value: (function () {
927
- var _getDevices = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11(userId) {
928
- var userid, mobiusUrls, finalError, _iterator3, _step3, mobiusUrl, normalizedMobiusUrl, uri, _body$devices, response, body, _t7, _t8;
929
- return _regenerator.default.wrap(function (_context13) {
930
- while (1) switch (_context13.prev = _context13.next) {
1185
+ var _getDevices = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13(userId) {
1186
+ var userid, mobiusUrls, finalError, _iterator5, _step5, mobiusUrl, normalizedMobiusUrl, uri, _body$devices, response, body, _t1, _t10;
1187
+ return _regenerator.default.wrap(function (_context15) {
1188
+ while (1) switch (_context15.prev = _context15.next) {
931
1189
  case 0:
932
1190
  userid = userId || this.webex.internal.device.userId;
933
1191
  if (userid) {
934
- _context13.next = 1;
1192
+ _context15.next = 1;
935
1193
  break;
936
1194
  }
937
1195
  throw new Error('userId is required to fetch devices');
@@ -942,24 +1200,24 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
942
1200
  });
943
1201
  mobiusUrls = [].concat((0, _toConsumableArray2.default)(this.primaryMobiusUris), (0, _toConsumableArray2.default)(this.backupMobiusUris));
944
1202
  if (!(mobiusUrls.length === 0)) {
945
- _context13.next = 2;
1203
+ _context15.next = 2;
946
1204
  break;
947
1205
  }
948
1206
  throw new Error('Mobius URLs are not available');
949
1207
  case 2:
950
- _iterator3 = _createForOfIteratorHelper(mobiusUrls);
951
- _context13.prev = 3;
952
- _iterator3.s();
1208
+ _iterator5 = _createForOfIteratorHelper(mobiusUrls);
1209
+ _context15.prev = 3;
1210
+ _iterator5.s();
953
1211
  case 4:
954
- if ((_step3 = _iterator3.n()).done) {
955
- _context13.next = 10;
1212
+ if ((_step5 = _iterator5.n()).done) {
1213
+ _context15.next = 10;
956
1214
  break;
957
1215
  }
958
- mobiusUrl = _step3.value;
1216
+ mobiusUrl = _step5.value;
959
1217
  normalizedMobiusUrl = mobiusUrl.replace(/\/+$/, '/');
960
1218
  uri = "".concat(normalizedMobiusUrl).concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "?userid=").concat(encodeURIComponent(userid));
961
- _context13.prev = 5;
962
- _context13.next = 6;
1219
+ _context15.prev = 5;
1220
+ _context15.next = 6;
963
1221
  return this.webex.request({
964
1222
  uri: uri,
965
1223
  method: _types3.HTTP_METHODS.GET,
@@ -967,9 +1225,9 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
967
1225
  headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, this.webex.internal.device.url), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT)
968
1226
  });
969
1227
  case 6:
970
- response = _context13.sent;
1228
+ response = _context15.sent;
971
1229
  if (!(response.statusCode !== 200)) {
972
- _context13.next = 7;
1230
+ _context15.next = 7;
973
1231
  break;
974
1232
  }
975
1233
  throw new Error("API call failed with ".concat(response.statusCode));
@@ -977,25 +1235,25 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
977
1235
  body = response.body; // Hydrate registration deviceInfo for deregister/restore flows
978
1236
  (0, _values.default)(this.lineDict)[0].registration.setDeviceInfo(body);
979
1237
  (0, _values.default)(this.lineDict)[0].registration.setActiveMobiusUrl(normalizedMobiusUrl);
980
- return _context13.abrupt("return", (_body$devices = body.devices) !== null && _body$devices !== void 0 ? _body$devices : []);
1238
+ return _context15.abrupt("return", (_body$devices = body.devices) !== null && _body$devices !== void 0 ? _body$devices : []);
981
1239
  case 8:
982
- _context13.prev = 8;
983
- _t7 = _context13["catch"](5);
984
- finalError = _t7;
1240
+ _context15.prev = 8;
1241
+ _t1 = _context15["catch"](5);
1242
+ finalError = _t1;
985
1243
  case 9:
986
- _context13.next = 4;
1244
+ _context15.next = 4;
987
1245
  break;
988
1246
  case 10:
989
- _context13.next = 12;
1247
+ _context15.next = 12;
990
1248
  break;
991
1249
  case 11:
992
- _context13.prev = 11;
993
- _t8 = _context13["catch"](3);
994
- _iterator3.e(_t8);
1250
+ _context15.prev = 11;
1251
+ _t10 = _context15["catch"](3);
1252
+ _iterator5.e(_t10);
995
1253
  case 12:
996
- _context13.prev = 12;
997
- _iterator3.f();
998
- return _context13.finish(12);
1254
+ _context15.prev = 12;
1255
+ _iterator5.f();
1256
+ return _context15.finish(12);
999
1257
  case 13:
1000
1258
  _Logger.default.error("Failed to fetch devices for userId ".concat(userId, ": ").concat((0, _stringify.default)(finalError)), {
1001
1259
  file: _constants2.CALLING_CLIENT_FILE,
@@ -1004,11 +1262,11 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
1004
1262
  throw finalError;
1005
1263
  case 14:
1006
1264
  case "end":
1007
- return _context13.stop();
1265
+ return _context15.stop();
1008
1266
  }
1009
- }, _callee11, this, [[3, 11, 12, 13], [5, 8]]);
1267
+ }, _callee13, this, [[3, 11, 12, 13], [5, 8]]);
1010
1268
  }));
1011
- function getDevices(_x2) {
1269
+ function getDevices(_x3) {
1012
1270
  return _getDevices.apply(this, arguments);
1013
1271
  }
1014
1272
  return getDevices;
@@ -1061,27 +1319,27 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
1061
1319
  }, {
1062
1320
  key: "uploadLogs",
1063
1321
  value: (function () {
1064
- var _uploadLogs2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12() {
1322
+ var _uploadLogs2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee14() {
1065
1323
  var result;
1066
- return _regenerator.default.wrap(function (_context14) {
1067
- while (1) switch (_context14.prev = _context14.next) {
1324
+ return _regenerator.default.wrap(function (_context16) {
1325
+ while (1) switch (_context16.prev = _context16.next) {
1068
1326
  case 0:
1069
- _context14.next = 1;
1327
+ _context16.next = 1;
1070
1328
  return (0, _Utils.uploadLogs)({}, true);
1071
1329
  case 1:
1072
- result = _context14.sent;
1330
+ result = _context16.sent;
1073
1331
  if (result) {
1074
- _context14.next = 2;
1332
+ _context16.next = 2;
1075
1333
  break;
1076
1334
  }
1077
1335
  throw new Error('Failed to upload logs: No response received.');
1078
1336
  case 2:
1079
- return _context14.abrupt("return", result);
1337
+ return _context16.abrupt("return", result);
1080
1338
  case 3:
1081
1339
  case "end":
1082
- return _context14.stop();
1340
+ return _context16.stop();
1083
1341
  }
1084
- }, _callee12);
1342
+ }, _callee14);
1085
1343
  }));
1086
1344
  function uploadLogs() {
1087
1345
  return _uploadLogs2.apply(this, arguments);
@@ -1096,24 +1354,24 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
1096
1354
  * @param config - Config to start the CallingClient with.
1097
1355
  */
1098
1356
  var createClient = exports.createClient = /*#__PURE__*/function () {
1099
- var _ref7 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13(webex, config) {
1357
+ var _ref8 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee15(webex, config) {
1100
1358
  var callingClientInstance;
1101
- return _regenerator.default.wrap(function (_context15) {
1102
- while (1) switch (_context15.prev = _context15.next) {
1359
+ return _regenerator.default.wrap(function (_context17) {
1360
+ while (1) switch (_context17.prev = _context17.next) {
1103
1361
  case 0:
1104
1362
  callingClientInstance = new CallingClient(webex, config);
1105
- _context15.next = 1;
1363
+ _context17.next = 1;
1106
1364
  return callingClientInstance.init();
1107
1365
  case 1:
1108
- return _context15.abrupt("return", callingClientInstance);
1366
+ return _context17.abrupt("return", callingClientInstance);
1109
1367
  case 2:
1110
1368
  case "end":
1111
- return _context15.stop();
1369
+ return _context17.stop();
1112
1370
  }
1113
- }, _callee13);
1371
+ }, _callee15);
1114
1372
  }));
1115
- return function createClient(_x3, _x4) {
1116
- return _ref7.apply(this, arguments);
1373
+ return function createClient(_x4, _x5) {
1374
+ return _ref8.apply(this, arguments);
1117
1375
  };
1118
1376
  }();
1119
1377
  //# sourceMappingURL=CallingClient.js.map