@webex/calling 3.12.0-next.6 → 3.12.0-next.60

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 (214) hide show
  1. package/dist/CallingClient/CallingClient.js +454 -224
  2. package/dist/CallingClient/CallingClient.js.map +1 -1
  3. package/dist/CallingClient/CallingClient.test.js +513 -154
  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 +81 -31
  10. package/dist/CallingClient/calling/callManager.js.map +1 -1
  11. package/dist/CallingClient/calling/callManager.test.js +123 -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 +28 -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 +724 -407
  22. package/dist/CallingClient/registration/register.js.map +1 -1
  23. package/dist/CallingClient/registration/register.test.js +380 -58
  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/types.js.map +1 -1
  33. package/dist/CallingClient/utils/constants.js +58 -0
  34. package/dist/CallingClient/utils/constants.js.map +1 -0
  35. package/dist/CallingClient/utils/index.js +63 -0
  36. package/dist/CallingClient/utils/index.js.map +1 -0
  37. package/dist/CallingClient/utils/mobiusSocketMapper.js +122 -0
  38. package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -0
  39. package/dist/CallingClient/utils/mobiusSocketMapper.test.js +221 -0
  40. package/dist/CallingClient/utils/mobiusSocketMapper.test.js.map +1 -0
  41. package/dist/CallingClient/utils/request.js +435 -0
  42. package/dist/CallingClient/utils/request.js.map +1 -0
  43. package/dist/CallingClient/utils/request.test.js +999 -0
  44. package/dist/CallingClient/utils/request.test.js.map +1 -0
  45. package/dist/CallingClient/utils/types.js +7 -0
  46. package/dist/CallingClient/utils/types.js.map +1 -0
  47. package/dist/CallingClient/utils/wsFeatureFlag.js +70 -0
  48. package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -0
  49. package/dist/CallingClient/utils/wsFeatureFlag.test.js +139 -0
  50. package/dist/CallingClient/utils/wsFeatureFlag.test.js.map +1 -0
  51. package/dist/Contacts/ContactsClient.js +13 -11
  52. package/dist/Contacts/ContactsClient.js.map +1 -1
  53. package/dist/Contacts/ContactsClient.test.js +3 -8
  54. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  55. package/dist/Events/types.js +11 -11
  56. package/dist/Events/types.js.map +1 -1
  57. package/dist/Metrics/index.js +63 -2
  58. package/dist/Metrics/index.js.map +1 -1
  59. package/dist/Metrics/index.test.js +357 -1
  60. package/dist/Metrics/index.test.js.map +1 -1
  61. package/dist/Metrics/types.js +19 -1
  62. package/dist/Metrics/types.js.map +1 -1
  63. package/dist/SDKConnector/types.js.map +1 -1
  64. package/dist/common/Utils.js +156 -51
  65. package/dist/common/Utils.js.map +1 -1
  66. package/dist/common/Utils.test.js +79 -0
  67. package/dist/common/Utils.test.js.map +1 -1
  68. package/dist/common/testUtil.js +8 -4
  69. package/dist/common/testUtil.js.map +1 -1
  70. package/dist/common/types.js +2 -0
  71. package/dist/common/types.js.map +1 -1
  72. package/dist/index.js +37 -5
  73. package/dist/index.js.map +1 -1
  74. package/dist/mobius-socket/config.js +24 -0
  75. package/dist/mobius-socket/config.js.map +1 -0
  76. package/dist/mobius-socket/errors.js +143 -0
  77. package/dist/mobius-socket/errors.js.map +1 -0
  78. package/dist/mobius-socket/errors.test.js +20 -0
  79. package/dist/mobius-socket/errors.test.js.map +1 -0
  80. package/dist/mobius-socket/index.js +57 -0
  81. package/dist/mobius-socket/index.js.map +1 -0
  82. package/dist/mobius-socket/mobius-socket-events.test.js +492 -0
  83. package/dist/mobius-socket/mobius-socket-events.test.js.map +1 -0
  84. package/dist/mobius-socket/mobius-socket.js +849 -0
  85. package/dist/mobius-socket/mobius-socket.js.map +1 -0
  86. package/dist/mobius-socket/mobius-socket.test.js +1898 -0
  87. package/dist/mobius-socket/mobius-socket.test.js.map +1 -0
  88. package/dist/mobius-socket/socket/constants.js +55 -0
  89. package/dist/mobius-socket/socket/constants.js.map +1 -0
  90. package/dist/mobius-socket/socket/index.js +15 -0
  91. package/dist/mobius-socket/socket/index.js.map +1 -0
  92. package/dist/mobius-socket/socket/socket-base.js +604 -0
  93. package/dist/mobius-socket/socket/socket-base.js.map +1 -0
  94. package/dist/mobius-socket/socket/socket.js +19 -0
  95. package/dist/mobius-socket/socket/socket.js.map +1 -0
  96. package/dist/mobius-socket/socket/socket.shim.js +26 -0
  97. package/dist/mobius-socket/socket/socket.shim.js.map +1 -0
  98. package/dist/mobius-socket/socket/types.js +7 -0
  99. package/dist/mobius-socket/socket/types.js.map +1 -0
  100. package/dist/mobius-socket/socket.test.js +727 -0
  101. package/dist/mobius-socket/socket.test.js.map +1 -0
  102. package/dist/mobius-socket/test/mocha-helpers.js +23 -0
  103. package/dist/mobius-socket/test/mocha-helpers.js.map +1 -0
  104. package/dist/mobius-socket/test/promise-tick.js +28 -0
  105. package/dist/mobius-socket/test/promise-tick.js.map +1 -0
  106. package/dist/mobius-socket/types.js +7 -0
  107. package/dist/mobius-socket/types.js.map +1 -0
  108. package/dist/module/CallingClient/CallingClient.js +126 -10
  109. package/dist/module/CallingClient/calling/call.js +177 -61
  110. package/dist/module/CallingClient/calling/callManager.js +39 -7
  111. package/dist/module/CallingClient/calling/types.js +2 -0
  112. package/dist/module/CallingClient/constants.js +24 -0
  113. package/dist/module/CallingClient/line/index.js +2 -2
  114. package/dist/module/CallingClient/registration/register.js +239 -63
  115. package/dist/module/CallingClient/registration/webWorker.js +42 -61
  116. package/dist/module/CallingClient/registration/webWorkerStr.js +47 -82
  117. package/dist/module/CallingClient/utils/constants.js +36 -0
  118. package/dist/module/CallingClient/utils/index.js +5 -0
  119. package/dist/module/CallingClient/utils/mobiusSocketMapper.js +72 -0
  120. package/dist/module/CallingClient/utils/request.js +211 -0
  121. package/dist/module/CallingClient/utils/types.js +1 -0
  122. package/dist/module/CallingClient/utils/wsFeatureFlag.js +41 -0
  123. package/dist/module/Contacts/ContactsClient.js +1 -1
  124. package/dist/module/Events/types.js +4 -10
  125. package/dist/module/Metrics/index.js +48 -1
  126. package/dist/module/Metrics/types.js +18 -0
  127. package/dist/module/common/Utils.js +60 -17
  128. package/dist/module/common/testUtil.js +5 -1
  129. package/dist/module/common/types.js +2 -0
  130. package/dist/module/index.js +3 -2
  131. package/dist/module/mobius-socket/config.js +15 -0
  132. package/dist/module/mobius-socket/errors.js +58 -0
  133. package/dist/module/mobius-socket/index.js +24 -0
  134. package/dist/module/mobius-socket/mobius-socket.js +593 -0
  135. package/dist/module/mobius-socket/socket/constants.js +26 -0
  136. package/dist/module/mobius-socket/socket/index.js +4 -0
  137. package/dist/module/mobius-socket/socket/socket-base.js +368 -0
  138. package/dist/module/mobius-socket/socket/socket.js +9 -0
  139. package/dist/module/mobius-socket/socket/socket.shim.js +12 -0
  140. package/dist/module/mobius-socket/socket/types.js +1 -0
  141. package/dist/module/mobius-socket/types.js +1 -0
  142. package/dist/types/CallingClient/CallingClient.d.ts +8 -0
  143. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  144. package/dist/types/CallingClient/calling/call.d.ts +12 -0
  145. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  146. package/dist/types/CallingClient/calling/callManager.d.ts +4 -2
  147. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  148. package/dist/types/CallingClient/calling/types.d.ts +34 -9
  149. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  150. package/dist/types/CallingClient/constants.d.ts +24 -0
  151. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  152. package/dist/types/CallingClient/line/index.d.ts +1 -1
  153. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  154. package/dist/types/CallingClient/registration/register.d.ts +7 -1
  155. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  156. package/dist/types/CallingClient/registration/types.d.ts +4 -2
  157. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  158. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
  159. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  160. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  161. package/dist/types/CallingClient/types.d.ts +1 -0
  162. package/dist/types/CallingClient/types.d.ts.map +1 -1
  163. package/dist/types/CallingClient/utils/constants.d.ts +35 -0
  164. package/dist/types/CallingClient/utils/constants.d.ts.map +1 -0
  165. package/dist/types/CallingClient/utils/index.d.ts +6 -0
  166. package/dist/types/CallingClient/utils/index.d.ts.map +1 -0
  167. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts +5 -0
  168. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -0
  169. package/dist/types/CallingClient/utils/request.d.ts +28 -0
  170. package/dist/types/CallingClient/utils/request.d.ts.map +1 -0
  171. package/dist/types/CallingClient/utils/types.d.ts +34 -0
  172. package/dist/types/CallingClient/utils/types.d.ts.map +1 -0
  173. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts +4 -0
  174. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -0
  175. package/dist/types/Events/types.d.ts +14 -13
  176. package/dist/types/Events/types.d.ts.map +1 -1
  177. package/dist/types/Metrics/index.d.ts.map +1 -1
  178. package/dist/types/Metrics/types.d.ts +19 -2
  179. package/dist/types/Metrics/types.d.ts.map +1 -1
  180. package/dist/types/SDKConnector/types.d.ts +37 -12
  181. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  182. package/dist/types/common/Utils.d.ts +11 -3
  183. package/dist/types/common/Utils.d.ts.map +1 -1
  184. package/dist/types/common/testUtil.d.ts +4 -1
  185. package/dist/types/common/testUtil.d.ts.map +1 -1
  186. package/dist/types/common/types.d.ts +3 -0
  187. package/dist/types/common/types.d.ts.map +1 -1
  188. package/dist/types/index.d.ts +4 -2
  189. package/dist/types/index.d.ts.map +1 -1
  190. package/dist/types/mobius-socket/config.d.ts +17 -0
  191. package/dist/types/mobius-socket/config.d.ts.map +1 -0
  192. package/dist/types/mobius-socket/errors.d.ts +32 -0
  193. package/dist/types/mobius-socket/errors.d.ts.map +1 -0
  194. package/dist/types/mobius-socket/index.d.ts +14 -0
  195. package/dist/types/mobius-socket/index.d.ts.map +1 -0
  196. package/dist/types/mobius-socket/mobius-socket.d.ts +48 -0
  197. package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -0
  198. package/dist/types/mobius-socket/socket/constants.d.ts +27 -0
  199. package/dist/types/mobius-socket/socket/constants.d.ts.map +1 -0
  200. package/dist/types/mobius-socket/socket/index.d.ts +5 -0
  201. package/dist/types/mobius-socket/socket/index.d.ts.map +1 -0
  202. package/dist/types/mobius-socket/socket/socket-base.d.ts +43 -0
  203. package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -0
  204. package/dist/types/mobius-socket/socket/socket.d.ts +6 -0
  205. package/dist/types/mobius-socket/socket/socket.d.ts.map +1 -0
  206. package/dist/types/mobius-socket/socket/socket.shim.d.ts +6 -0
  207. package/dist/types/mobius-socket/socket/socket.shim.d.ts.map +1 -0
  208. package/dist/types/mobius-socket/socket/types.d.ts +61 -0
  209. package/dist/types/mobius-socket/socket/types.d.ts.map +1 -0
  210. package/dist/types/mobius-socket/types.d.ts +21 -0
  211. package/dist/types/mobius-socket/types.d.ts.map +1 -0
  212. package/package.json +20 -5
  213. package/src/mobius-socket/socket/socket.shim.ts +22 -0
  214. 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 _t1 in e) "default" !== _t1 && {}.hasOwnProperty.call(e, _t1) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t1)) && (i.get || i.set) ? o(f, _t1, i) : f[_t1] = e[_t1]); 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,36 @@ 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() {
332
- var _window, _window$navigator;
333
- var ua, _t;
334
- return _regenerator.default.wrap(function (_context6) {
335
- while (1) switch (_context6.prev = _context6.next) {
392
+ var _init = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
393
+ var _window,
394
+ _window$navigator,
395
+ _this2 = this;
396
+ var loggerContext, ua, _this$sdkConfig3, rtmsDomain, _t;
397
+ return _regenerator.default.wrap(function (_context7) {
398
+ while (1) switch (_context7.prev = _context7.next) {
336
399
  case 0:
400
+ loggerContext = {
401
+ file: _constants2.CALLING_CLIENT_FILE,
402
+ method: _constants2.METHODS.INIT
403
+ };
404
+ _Logger.default.info(_constants.METHOD_START_MESSAGE, loggerContext);
405
+
406
+ // Only for Windows Chromium based browsers we need to do the ICE warmup
337
407
  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;
408
+ _context7.next = 4;
339
409
  break;
340
410
  }
341
411
  ua = window.navigator.userAgent;
342
412
  if (!ua.toLowerCase().includes('windows')) {
343
- _context6.next = 4;
413
+ _context7.next = 4;
344
414
  break;
345
415
  }
346
416
  _Logger.default.info('Starting ICE warmup for Windows Chromium based browser', {
347
417
  file: _constants2.CALLING_CLIENT_FILE,
348
418
  method: 'init'
349
419
  });
350
- _context6.prev = 1;
351
- _context6.next = 2;
420
+ _context7.prev = 1;
421
+ _context7.next = 2;
352
422
  return (0, _windowsChromiumIceWarmupUtils.default)({
353
423
  iceServers: [],
354
424
  timeoutMs: 1000
@@ -358,28 +428,62 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
358
428
  file: _constants2.CALLING_CLIENT_FILE,
359
429
  method: 'init'
360
430
  });
361
- _context6.next = 4;
431
+ _context7.next = 4;
362
432
  break;
363
433
  case 3:
364
- _context6.prev = 3;
365
- _t = _context6["catch"](1);
434
+ _context7.prev = 3;
435
+ _t = _context7["catch"](1);
366
436
  _Logger.default.warn("ICE warmup failed: ".concat(_t), {
367
437
  file: _constants2.CALLING_CLIENT_FILE,
368
438
  method: 'init'
369
439
  });
370
440
  case 4:
371
- _context6.next = 5;
441
+ _context7.next = 5;
372
442
  return this.getMobiusServers();
373
443
  case 5:
374
- _context6.next = 6;
375
- return this.createLine();
444
+ if (!this.apiRequest.isSocketEnabled()) {
445
+ _context7.next = 7;
446
+ break;
447
+ }
448
+ this.apiRequest.registerMobiusSocketConnectionListener({
449
+ onConnected: function onConnected() {
450
+ return _this2.emit(_types2.CALLING_CLIENT_EVENT_KEYS.MOBIUS_SOCKET_CONNECTED);
451
+ },
452
+ onDisconnected: function onDisconnected(reason) {
453
+ return _this2.emit(_types2.CALLING_CLIENT_EVENT_KEYS.MOBIUS_SOCKET_DISCONNECTED, {
454
+ reason: reason
455
+ });
456
+ }
457
+ });
458
+ _context7.next = 6;
459
+ return this.connectToMobiusSocket();
376
460
  case 6:
377
- this.setupNetworkEventListeners();
461
+ this.apiRequest.registerMobiusSocketListener(this.handleMobiusAsyncEvent);
378
462
  case 7:
463
+ // Auto-fetch RTMS domain from service catalog for contact-center flows
464
+ if (this.serviceData.indicator === _types3.ServiceIndicator.CONTACT_CENTER && !this.serviceData.domain) {
465
+ rtmsDomain = this.getRTMSDomain();
466
+ this.serviceData.domain = rtmsDomain;
467
+ if ((_this$sdkConfig3 = this.sdkConfig) !== null && _this$sdkConfig3 !== void 0 && _this$sdkConfig3.serviceData) {
468
+ this.sdkConfig.serviceData.domain = this.serviceData.domain;
469
+ }
470
+ }
471
+ if ((0, _Utils.isValidServiceDomain)(this.serviceData)) {
472
+ _context7.next = 8;
473
+ break;
474
+ }
475
+ throw new Error('Invalid service domain.');
476
+ case 8:
477
+ _context7.next = 9;
478
+ return this.createLine();
479
+ case 9:
480
+ this.setupNetworkEventListeners();
481
+ _Logger.default.log('CallingClient initialization complete', loggerContext);
482
+ case 10:
379
483
  case "end":
380
- return _context6.stop();
484
+ return _context7.stop();
381
485
  }
382
- }, _callee6, this, [[1, 3]]);
486
+ }, _callee7, this, [[1, 3]]);
383
487
  }));
384
488
  function init() {
385
489
  return _init.apply(this, arguments);
@@ -387,24 +491,53 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
387
491
  return init;
388
492
  }()
389
493
  /**
390
- * Ping a reliable external endpoint with a short timeout to infer connectivity.
494
+ * Retrieves the RTMS domain from the service catalog for contact-center flows.
495
+ *
496
+ * @returns The RTMS domain from catalog when available.
391
497
  */
392
498
  )
499
+ }, {
500
+ key: "getRTMSDomain",
501
+ value: function getRTMSDomain() {
502
+ _Logger.default.info('Fetching RTMS domain from service catalog', {
503
+ file: _constants2.CALLING_CLIENT_FILE,
504
+ method: _constants2.METHODS.GET_RTMS_DOMAIN
505
+ });
506
+ try {
507
+ var rtmsURL = this.webex.internal.services.get(_constants2.WCC_CALLING_RTMS_DOMAIN);
508
+ var url = new URL(rtmsURL);
509
+ _Logger.default.info("RTMS domain resolved from catalog: ".concat(url.hostname), {
510
+ file: _constants2.CALLING_CLIENT_FILE,
511
+ method: _constants2.METHODS.GET_RTMS_DOMAIN
512
+ });
513
+ return url.hostname;
514
+ } catch (error) {
515
+ _Logger.default.warn("Failed to fetch RTMS domain from service catalog: ".concat(error), {
516
+ file: _constants2.CALLING_CLIENT_FILE,
517
+ method: _constants2.METHODS.GET_RTMS_DOMAIN
518
+ });
519
+ return '';
520
+ }
521
+ }
522
+
523
+ /**
524
+ * Ping a reliable external endpoint with a short timeout to infer connectivity.
525
+ */
393
526
  }, {
394
527
  key: "checkNetworkReachability",
395
528
  value: (function () {
396
- var _checkNetworkReachability = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
529
+ var _checkNetworkReachability = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
397
530
  var controller, timeoutId, _t2;
398
- return _regenerator.default.wrap(function (_context7) {
399
- while (1) switch (_context7.prev = _context7.next) {
531
+ return _regenerator.default.wrap(function (_context8) {
532
+ while (1) switch (_context8.prev = _context8.next) {
400
533
  case 0:
401
- _context7.prev = 0;
534
+ _context8.prev = 0;
402
535
  controller = new AbortController();
403
536
  timeoutId = setTimeout(function () {
404
537
  return controller.abort();
405
538
  }, 3000); // Using a common connectivity check endpoint that returns 204 with minimal payload.
406
539
  // no-cors mode yields an opaque response but a successful fetch implies reachability.
407
- _context7.next = 1;
540
+ _context8.next = 1;
408
541
  return fetch('https://www.google.com/generate_204', {
409
542
  method: 'GET',
410
543
  cache: 'no-cache',
@@ -413,20 +546,20 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
413
546
  });
414
547
  case 1:
415
548
  clearTimeout(timeoutId);
416
- return _context7.abrupt("return", true);
549
+ return _context8.abrupt("return", true);
417
550
  case 2:
418
- _context7.prev = 2;
419
- _t2 = _context7["catch"](0);
551
+ _context8.prev = 2;
552
+ _t2 = _context8["catch"](0);
420
553
  _Logger.default.warn("Network connectivity probe failed: ".concat(_t2), {
421
554
  file: _constants2.CALLING_CLIENT_FILE,
422
555
  method: 'pingExternal'
423
556
  });
424
- return _context7.abrupt("return", false);
557
+ return _context8.abrupt("return", false);
425
558
  case 3:
426
559
  case "end":
427
- return _context7.stop();
560
+ return _context8.stop();
428
561
  }
429
- }, _callee7, null, [[0, 2]]);
562
+ }, _callee8, null, [[0, 2]]);
430
563
  }));
431
564
  function checkNetworkReachability() {
432
565
  return _checkNetworkReachability.apply(this, arguments);
@@ -436,10 +569,10 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
436
569
  }, {
437
570
  key: "checkCallStatus",
438
571
  value: function () {
439
- var _checkCallStatus = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
572
+ var _checkCallStatus = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
440
573
  var loggerContext, calls, _iterator, _step, _loop, _t3;
441
- return _regenerator.default.wrap(function (_context9) {
442
- while (1) switch (_context9.prev = _context9.next) {
574
+ return _regenerator.default.wrap(function (_context0) {
575
+ while (1) switch (_context0.prev = _context0.next) {
443
576
  case 0:
444
577
  loggerContext = {
445
578
  file: _constants2.CALLING_CLIENT_FILE,
@@ -447,11 +580,11 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
447
580
  };
448
581
  calls = (0, _values.default)(this.callManager.getActiveCalls());
449
582
  _iterator = _createForOfIteratorHelper(calls);
450
- _context9.prev = 1;
583
+ _context0.prev = 1;
451
584
  _loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
452
585
  var call;
453
- return _regenerator.default.wrap(function (_context8) {
454
- while (1) switch (_context8.prev = _context8.next) {
586
+ return _regenerator.default.wrap(function (_context9) {
587
+ while (1) switch (_context9.prev = _context9.next) {
455
588
  case 0:
456
589
  call = _step.value;
457
590
  call.postStatus().then(function () {
@@ -468,36 +601,36 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
468
601
  });
469
602
  case 1:
470
603
  case "end":
471
- return _context8.stop();
604
+ return _context9.stop();
472
605
  }
473
606
  }, _loop);
474
607
  });
475
608
  _iterator.s();
476
609
  case 2:
477
610
  if ((_step = _iterator.n()).done) {
478
- _context9.next = 4;
611
+ _context0.next = 4;
479
612
  break;
480
613
  }
481
- return _context9.delegateYield(_loop(), "t0", 3);
614
+ return _context0.delegateYield(_loop(), "t0", 3);
482
615
  case 3:
483
- _context9.next = 2;
616
+ _context0.next = 2;
484
617
  break;
485
618
  case 4:
486
- _context9.next = 6;
619
+ _context0.next = 6;
487
620
  break;
488
621
  case 5:
489
- _context9.prev = 5;
490
- _t3 = _context9["catch"](1);
622
+ _context0.prev = 5;
623
+ _t3 = _context0["catch"](1);
491
624
  _iterator.e(_t3);
492
625
  case 6:
493
- _context9.prev = 6;
626
+ _context0.prev = 6;
494
627
  _iterator.f();
495
- return _context9.finish(6);
628
+ return _context0.finish(6);
496
629
  case 7:
497
630
  case "end":
498
- return _context9.stop();
631
+ return _context0.stop();
499
632
  }
500
- }, _callee8, this, [[1, 5, 6, 7]]);
633
+ }, _callee9, this, [[1, 5, 6, 7]]);
501
634
  }));
502
635
  function checkCallStatus() {
503
636
  return _checkCallStatus.apply(this, arguments);
@@ -507,16 +640,16 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
507
640
  }, {
508
641
  key: "setupNetworkEventListeners",
509
642
  value: function setupNetworkEventListeners() {
510
- var _this2 = this;
643
+ var _this3 = this;
511
644
  if (typeof window !== 'undefined' && window.addEventListener) {
512
645
  window.addEventListener('online', this.handleNetworkOnline);
513
646
  window.addEventListener('offline', this.handleNetworkOffline);
514
647
  }
515
648
  this.webex.internal.mercury.on('offline', function () {
516
- _this2.handleMercuryOffline();
649
+ _this3.handleMercuryOffline();
517
650
  });
518
651
  this.webex.internal.mercury.on('online', function () {
519
- _this2.handleMercuryOnline();
652
+ _this3.handleMercuryOnline();
520
653
  });
521
654
  }
522
655
 
@@ -526,19 +659,19 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
526
659
  }, {
527
660
  key: "getClientRegionInfo",
528
661
  value: (function () {
529
- var _getClientRegionInfo = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
530
- var _this3 = this;
662
+ var _getClientRegionInfo = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
663
+ var _this4 = this;
531
664
  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) {
665
+ return _regenerator.default.wrap(function (_context1) {
666
+ while (1) switch (_context1.prev = _context1.next) {
534
667
  case 0:
535
668
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
536
669
  file: _constants2.CALLING_CLIENT_FILE,
537
670
  method: _constants2.METHODS.GET_CLIENT_REGION_INFO
538
671
  });
539
672
  regionInfo = {};
540
- _context0.prev = 1;
541
- _context0.next = 2;
673
+ _context1.prev = 1;
674
+ _context1.next = 2;
542
675
  return this.webex.request({
543
676
  uri: "".concat(_constants2.DISCOVERY_URL),
544
677
  method: _types3.HTTP_METHODS.GET,
@@ -546,7 +679,7 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
546
679
  headers: (0, _defineProperty2.default)({}, _constants2.SPARK_USER_AGENT, null)
547
680
  });
548
681
  case 2:
549
- response = _context0.sent;
682
+ response = _context1.sent;
550
683
  clientRegionInfo = response.body;
551
684
  regionInfo.clientRegion = (clientRegionInfo === null || clientRegionInfo === void 0 ? void 0 : clientRegionInfo.clientRegion) || '';
552
685
  regionInfo.countryCode = (clientRegionInfo === null || clientRegionInfo === void 0 ? void 0 : clientRegionInfo.countryCode) || '';
@@ -554,46 +687,46 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
554
687
  file: _constants2.CALLING_CLIENT_FILE,
555
688
  method: _constants2.METHODS.GET_CLIENT_REGION_INFO
556
689
  });
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;
690
+ 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 : '');
691
+ _context1.next = 6;
559
692
  break;
560
693
  case 3:
561
- _context0.prev = 3;
562
- _t4 = _context0["catch"](1);
694
+ _context1.prev = 3;
695
+ _t4 = _context1["catch"](1);
563
696
  _Logger.default.error("Failed to get client region info: ".concat((0, _stringify.default)(_t4)), {
564
697
  method: _constants2.METHODS.GET_CLIENT_REGION_INFO,
565
698
  file: _constants2.CALLING_CLIENT_FILE
566
699
  });
567
700
 
568
701
  // eslint-disable-next-line no-await-in-loop
569
- _context0.next = 4;
702
+ _context1.next = 4;
570
703
  return (0, _Utils.handleCallingClientErrors)(_t4, function (clientError) {
571
704
  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);
573
- _this3.emit(_types2.CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);
705
+ _this4.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);
706
+ _this4.emit(_types2.CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);
574
707
  }, {
575
708
  method: _constants2.GET_MOBIUS_SERVERS_UTIL,
576
709
  file: _constants2.CALLING_CLIENT_FILE
577
710
  });
578
711
  case 4:
579
- abort = _context0.sent;
712
+ abort = _context1.sent;
580
713
  regionInfo.clientRegion = '';
581
714
  regionInfo.countryCode = '';
582
715
  if (!abort) {
583
- _context0.next = 6;
716
+ _context1.next = 6;
584
717
  break;
585
718
  }
586
- _context0.next = 5;
719
+ _context1.next = 5;
587
720
  return (0, _Utils.uploadLogs)();
588
721
  case 5:
589
- return _context0.abrupt("return", regionInfo);
722
+ return _context1.abrupt("return", regionInfo);
590
723
  case 6:
591
- return _context0.abrupt("return", regionInfo);
724
+ return _context1.abrupt("return", regionInfo);
592
725
  case 7:
593
726
  case "end":
594
- return _context0.stop();
727
+ return _context1.stop();
595
728
  }
596
- }, _callee9, this, [[1, 3]]);
729
+ }, _callee0, this, [[1, 3]]);
597
730
  }));
598
731
  function getClientRegionInfo() {
599
732
  return _getClientRegionInfo.apply(this, arguments);
@@ -607,15 +740,15 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
607
740
  }, {
608
741
  key: "getMobiusServers",
609
742
  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,
743
+ var _getMobiusServers = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
744
+ var _this$sdkConfig4,
614
745
  _this$sdkConfig4$disc,
615
- _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) {
746
+ _this$sdkConfig5,
747
+ _this$sdkConfig5$disc,
748
+ _this5 = this;
749
+ var useDefault, clientRegion, countryCode, _this$sdkConfig6, _this$sdkConfig6$disc, _this$sdkConfig7, _this$sdkConfig7$disc, _this$webex$internal$, regionInfo, _iterator2, _step2, _loop2, _ret, _t6;
750
+ return _regenerator.default.wrap(function (_context11) {
751
+ while (1) switch (_context11.prev = _context11.next) {
619
752
  case 0:
620
753
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
621
754
  file: _constants2.CALLING_CLIENT_FILE,
@@ -629,33 +762,33 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
629
762
  5. Otherwise send registration
630
763
  */
631
764
  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;
765
+ 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)) {
766
+ _context11.next = 1;
634
767
  break;
635
768
  }
636
769
  _Logger.default.log('Updating region and country from the SDK config', {
637
770
  file: _constants2.CALLING_CLIENT_FILE,
638
771
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
639
772
  });
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;
773
+ 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;
774
+ 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
775
  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;
776
+ _context11.next = 3;
644
777
  break;
645
778
  case 1:
646
779
  _Logger.default.log('Updating region and country through Region discovery', {
647
780
  file: _constants2.CALLING_CLIENT_FILE,
648
781
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
649
782
  });
650
- _context10.next = 2;
783
+ _context11.next = 2;
651
784
  return this.getClientRegionInfo();
652
785
  case 2:
653
- regionInfo = _context10.sent;
786
+ regionInfo = _context11.sent;
654
787
  clientRegion = regionInfo.clientRegion;
655
788
  countryCode = regionInfo.countryCode;
656
789
  case 3:
657
790
  if (!(clientRegion && countryCode)) {
658
- _context10.next = 12;
791
+ _context11.next = 12;
659
792
  break;
660
793
  }
661
794
  _Logger.default.log("Found Region: ".concat(clientRegion, " and country: ").concat(countryCode, ", going to fetch Mobius server"), {
@@ -663,110 +796,112 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
663
796
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
664
797
  });
665
798
  _iterator2 = _createForOfIteratorHelper(this.mobiusClusters);
666
- _context10.prev = 4;
799
+ _context11.prev = 4;
667
800
  _loop2 = /*#__PURE__*/_regenerator.default.mark(function _loop2() {
668
801
  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) {
802
+ return _regenerator.default.wrap(function (_context10) {
803
+ while (1) switch (_context10.prev = _context10.next) {
671
804
  case 0:
672
805
  mobius = _step2.value;
673
806
  if (mobius.host) {
674
- _this4.mobiusHost = "https://".concat(mobius.host).concat(_constants2.API_V1);
807
+ _this5.mobiusHost = "https://".concat(mobius.host).concat(_constants2.API_V1);
675
808
  } else {
676
- _this4.mobiusHost = mobius;
809
+ _this5.mobiusHost = mobius;
677
810
  }
678
- _context1.prev = 1;
679
- _context1.next = 2;
680
- return _this4.webex.request({
681
- uri: "".concat(_this4.mobiusHost).concat(_constants2.URL_ENDPOINT, "?regionCode=").concat(clientRegion, "&countryCode=").concat(countryCode),
811
+ _context10.prev = 1;
812
+ _context10.next = 2;
813
+ return _this5.webex.request({
814
+ uri: "".concat(_this5.mobiusHost).concat(_constants2.URL_ENDPOINT, "?regionCode=").concat(clientRegion, "&countryCode=").concat(countryCode),
682
815
  method: _types3.HTTP_METHODS.GET,
683
- headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, _this4.webex.internal.device.url), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
816
+ headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, _this5.webex.internal.device.url), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
684
817
  service: _types3.ALLOWED_SERVICES.MOBIUS
685
818
  });
686
819
  case 2:
687
- response = _context1.sent;
820
+ response = _context10.sent;
688
821
  _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
822
  file: _constants2.CALLING_CLIENT_FILE,
690
823
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
691
824
  });
692
825
  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 : '');
826
+ _this5.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
827
 
695
828
  /* update arrays of Mobius Uris. */
696
- mobiusUris = (0, _Utils.filterMobiusUris)(mobiusServers, _this4.mobiusHost);
697
- _this4.primaryMobiusUris = mobiusUris.primary;
698
- _this4.backupMobiusUris = mobiusUris.backup;
829
+ mobiusUris = (0, _Utils.filterMobiusUris)(mobiusServers, _this5.mobiusHost);
830
+ _this5.primaryMobiusUris = mobiusUris.primary;
831
+ _this5.backupMobiusUris = mobiusUris.backup;
832
+ _this5.primaryWssMobiusUris = mobiusUris.primaryWss;
833
+ _this5.backupWssMobiusUris = mobiusUris.backupWss;
699
834
  _Logger.default.log("Final list of Mobius Servers, primary: ".concat(mobiusUris.primary, " and backup: ").concat(mobiusUris.backup), {
700
835
  file: _constants2.CALLING_CLIENT_FILE,
701
836
  method: _constants2.GET_MOBIUS_SERVERS_UTIL
702
837
  });
703
- return _context1.abrupt("return", 0);
838
+ return _context10.abrupt("return", 0);
704
839
  case 3:
705
- _context1.prev = 3;
706
- _t5 = _context1["catch"](1);
840
+ _context10.prev = 3;
841
+ _t5 = _context10["catch"](1);
707
842
  _Logger.default.error("Failed to get Mobius servers: ".concat((0, _stringify.default)(_t5)), {
708
843
  method: _constants2.METHODS.GET_MOBIUS_SERVERS,
709
844
  file: _constants2.CALLING_CLIENT_FILE
710
845
  });
711
846
 
712
847
  // eslint-disable-next-line no-await-in-loop
713
- _context1.next = 4;
848
+ _context10.next = 4;
714
849
  return (0, _Utils.handleCallingClientErrors)(_t5, function (clientError) {
715
850
  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);
717
- _this4.emit(_types2.CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);
851
+ _this5.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);
852
+ _this5.emit(_types2.CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);
718
853
  }, {
719
854
  method: _constants2.GET_MOBIUS_SERVERS_UTIL,
720
855
  file: _constants2.CALLING_CLIENT_FILE
721
856
  });
722
857
  case 4:
723
- abort = _context1.sent;
858
+ abort = _context10.sent;
724
859
  if (!abort) {
725
- _context1.next = 6;
860
+ _context10.next = 6;
726
861
  break;
727
862
  }
728
863
  useDefault = true;
729
864
  // eslint-disable-next-line no-await-in-loop
730
- _context1.next = 5;
865
+ _context10.next = 5;
731
866
  return (0, _Utils.uploadLogs)();
732
867
  case 5:
733
- return _context1.abrupt("return", 0);
868
+ return _context10.abrupt("return", 0);
734
869
  case 6:
735
870
  case "end":
736
- return _context1.stop();
871
+ return _context10.stop();
737
872
  }
738
873
  }, _loop2, null, [[1, 3]]);
739
874
  });
740
875
  _iterator2.s();
741
876
  case 5:
742
877
  if ((_step2 = _iterator2.n()).done) {
743
- _context10.next = 8;
878
+ _context11.next = 8;
744
879
  break;
745
880
  }
746
- return _context10.delegateYield(_loop2(), "t0", 6);
881
+ return _context11.delegateYield(_loop2(), "t0", 6);
747
882
  case 6:
748
- _ret = _context10.t0;
883
+ _ret = _context11.t0;
749
884
  if (!(_ret === 0)) {
750
- _context10.next = 7;
885
+ _context11.next = 7;
751
886
  break;
752
887
  }
753
- return _context10.abrupt("continue", 8);
888
+ return _context11.abrupt("continue", 8);
754
889
  case 7:
755
- _context10.next = 5;
890
+ _context11.next = 5;
756
891
  break;
757
892
  case 8:
758
- _context10.next = 10;
893
+ _context11.next = 10;
759
894
  break;
760
895
  case 9:
761
- _context10.prev = 9;
762
- _t6 = _context10["catch"](4);
896
+ _context11.prev = 9;
897
+ _t6 = _context11["catch"](4);
763
898
  _iterator2.e(_t6);
764
899
  case 10:
765
- _context10.prev = 10;
900
+ _context11.prev = 10;
766
901
  _iterator2.f();
767
- return _context10.finish(10);
902
+ return _context11.finish(10);
768
903
  case 11:
769
- _context10.next = 13;
904
+ _context11.next = 13;
770
905
  break;
771
906
  case 12:
772
907
  /* Setting this to true because region info is possibly undefined */
@@ -786,9 +921,9 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
786
921
  }
787
922
  case 14:
788
923
  case "end":
789
- return _context10.stop();
924
+ return _context11.stop();
790
925
  }
791
- }, _callee0, this, [[4, 9, 10, 11]]);
926
+ }, _callee1, this, [[4, 9, 10, 11]]);
792
927
  }));
793
928
  function getMobiusServers() {
794
929
  return _getMobiusServers.apply(this, arguments);
@@ -796,14 +931,90 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
796
931
  return getMobiusServers;
797
932
  }()
798
933
  /**
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.
934
+ * Connects to the Mobius WebSocket using WSS URIs discovered during Mobius server discovery.
935
+ * Attempts primary WSS URIs first, then falls back to backup WSS URIs.
936
+ * If all attempts fail, logs a warning and continues without a socket connection.
802
937
  */
803
938
  )
939
+ }, {
940
+ key: "connectToMobiusSocket",
941
+ value: (function () {
942
+ var _connectToMobiusSocket = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
943
+ var loggerContext, _iterator3, _step3, wssUri, _t7, _t8;
944
+ return _regenerator.default.wrap(function (_context12) {
945
+ while (1) switch (_context12.prev = _context12.next) {
946
+ case 0:
947
+ loggerContext = {
948
+ file: _constants2.CALLING_CLIENT_FILE,
949
+ method: _constants2.METHODS.CONNECT_TO_MOBIUS_SOCKET
950
+ };
951
+ _Logger.default.info(_constants.METHOD_START_MESSAGE, loggerContext);
952
+ if (this.primaryWssMobiusUris.length) {
953
+ _context12.next = 1;
954
+ break;
955
+ }
956
+ _Logger.default.warn('No WSS URIs available from Mobius discovery for primary, skipping socket connection', loggerContext);
957
+ return _context12.abrupt("return");
958
+ case 1:
959
+ // Attempt to establish the socket connection with mobius if primary wss urls are present
960
+ // If wss url is not present for primary/backup, registration will be attempted with http even when feature flag is enabled for mobius socket
961
+ _iterator3 = _createForOfIteratorHelper(this.primaryWssMobiusUris);
962
+ _context12.prev = 2;
963
+ _iterator3.s();
964
+ case 3:
965
+ if ((_step3 = _iterator3.n()).done) {
966
+ _context12.next = 8;
967
+ break;
968
+ }
969
+ wssUri = _step3.value;
970
+ _context12.prev = 4;
971
+ _Logger.default.log("Trying primary WSS URI: ".concat(wssUri), loggerContext);
972
+ // eslint-disable-next-line no-await-in-loop
973
+ _context12.next = 5;
974
+ return this.apiRequest.connectToMobiusSocket(wssUri);
975
+ case 5:
976
+ _Logger.default.log("Successfully connected to Mobius socket on primary WSS URI: ".concat(wssUri), loggerContext);
977
+ return _context12.abrupt("return");
978
+ case 6:
979
+ _context12.prev = 6;
980
+ _t7 = _context12["catch"](4);
981
+ _Logger.default.warn("Primary WSS URI connection failed for ".concat(wssUri, ": ").concat(_t7), loggerContext);
982
+ case 7:
983
+ _context12.next = 3;
984
+ break;
985
+ case 8:
986
+ _context12.next = 10;
987
+ break;
988
+ case 9:
989
+ _context12.prev = 9;
990
+ _t8 = _context12["catch"](2);
991
+ _iterator3.e(_t8);
992
+ case 10:
993
+ _context12.prev = 10;
994
+ _iterator3.f();
995
+ return _context12.finish(10);
996
+ case 11:
997
+ _Logger.default.warn('All primary WSS URI connection attempts failed', loggerContext);
998
+ case 12:
999
+ case "end":
1000
+ return _context12.stop();
1001
+ }
1002
+ }, _callee10, this, [[2, 9, 10, 11], [4, 6]]);
1003
+ }));
1004
+ function connectToMobiusSocket() {
1005
+ return _connectToMobiusSocket.apply(this, arguments);
1006
+ }
1007
+ return connectToMobiusSocket;
1008
+ }())
804
1009
  }, {
805
1010
  key: "registerCallsClearedListener",
806
- value: function registerCallsClearedListener() {
1011
+ value:
1012
+ /**
1013
+ * Registers a listener/handler for ALL_CALLS_CLEARED
1014
+ * event emitted by callManager when all the calls
1015
+ * present on sdk are cleaned up.
1016
+ */
1017
+ function registerCallsClearedListener() {
807
1018
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
808
1019
  file: _constants2.CALLING_CLIENT_FILE,
809
1020
  method: _constants2.METHODS.REGISTER_CALLS_CLEARED_LISTENER
@@ -833,46 +1044,46 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
833
1044
  }, {
834
1045
  key: "registerSessionsListener",
835
1046
  value: function registerSessionsListener() {
836
- var _this5 = this;
1047
+ var _this6 = this;
837
1048
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
838
1049
  file: _constants2.CALLING_CLIENT_FILE,
839
1050
  method: _constants2.METHODS.REGISTER_SESSIONS_LISTENER
840
1051
  });
841
1052
  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) {
1053
+ var _ref7 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11(event) {
843
1054
  var sessionArr, i;
844
- return _regenerator.default.wrap(function (_context11) {
845
- while (1) switch (_context11.prev = _context11.next) {
1055
+ return _regenerator.default.wrap(function (_context13) {
1056
+ while (1) switch (_context13.prev = _context13.next) {
846
1057
  case 0:
847
1058
  if (!(event && event.data.userSessions.userSessions)) {
848
- _context11.next = 2;
1059
+ _context13.next = 2;
849
1060
  break;
850
1061
  }
851
1062
  sessionArr = event === null || event === void 0 ? void 0 : event.data.userSessions.userSessions;
852
1063
  if (!(sessionArr.length === 1)) {
853
- _context11.next = 1;
1064
+ _context13.next = 1;
854
1065
  break;
855
1066
  }
856
1067
  if (!(sessionArr[0].sessionType !== _types2.SessionType.WEBEX_CALLING)) {
857
- _context11.next = 1;
1068
+ _context13.next = 1;
858
1069
  break;
859
1070
  }
860
- return _context11.abrupt("return");
1071
+ return _context13.abrupt("return");
861
1072
  case 1:
862
1073
  for (i = 0; i < sessionArr.length; i += 1) {
863
1074
  if (sessionArr[i].sessionType !== _types2.SessionType.WEBEX_CALLING) {
864
1075
  sessionArr.splice(i, 1);
865
1076
  }
866
1077
  }
867
- _this5.emit(_types2.CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event);
1078
+ _this6.emit(_types2.CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event);
868
1079
  case 2:
869
1080
  case "end":
870
- return _context11.stop();
1081
+ return _context13.stop();
871
1082
  }
872
- }, _callee1);
1083
+ }, _callee11);
873
1084
  }));
874
- return function (_x) {
875
- return _ref6.apply(this, arguments);
1085
+ return function (_x2) {
1086
+ return _ref7.apply(this, arguments);
876
1087
  };
877
1088
  }());
878
1089
  }
@@ -884,23 +1095,29 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
884
1095
  }, {
885
1096
  key: "createLine",
886
1097
  value: (function () {
887
- var _createLine = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
888
- var _this$sdkConfig7, _this$sdkConfig8;
889
- var line;
890
- return _regenerator.default.wrap(function (_context12) {
891
- while (1) switch (_context12.prev = _context12.next) {
1098
+ var _createLine = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12() {
1099
+ var _this$sdkConfig8;
1100
+ var socketEnabled, primaryUris, backupUris, line;
1101
+ return _regenerator.default.wrap(function (_context14) {
1102
+ while (1) switch (_context14.prev = _context14.next) {
892
1103
  case 0:
893
1104
  _Logger.default.info(_constants.METHOD_START_MESSAGE, {
894
1105
  file: _constants2.CALLING_CLIENT_FILE,
895
1106
  method: _constants2.METHODS.CREATE_LINE
896
1107
  });
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);
1108
+ // When the Mobius socket is enabled, fall back to the HTTP URIs per group when that
1109
+ // group has no WSS URL, so registration is still attempted (primary and backup are
1110
+ // resolved independently). When the socket is disabled, always use the HTTP URIs.
1111
+ socketEnabled = this.apiRequest.isSocketEnabled();
1112
+ primaryUris = socketEnabled && this.primaryWssMobiusUris.length ? (0, _Utils.normalizeMobiusUris)(this.primaryWssMobiusUris) : this.primaryMobiusUris;
1113
+ backupUris = socketEnabled && this.backupWssMobiusUris.length ? (0, _Utils.normalizeMobiusUris)(this.backupWssMobiusUris) : this.backupMobiusUris;
1114
+ line = new _line.default(this.webex.internal.device.userId, this.webex.internal.device.url, this.mutex, primaryUris, backupUris, this.getLoggingLevel(), this.serviceData, (_this$sdkConfig8 = this.sdkConfig) === null || _this$sdkConfig8 === void 0 ? void 0 : _this$sdkConfig8.jwe);
898
1115
  this.lineDict[line.lineId] = line;
899
1116
  case 1:
900
1117
  case "end":
901
- return _context12.stop();
1118
+ return _context14.stop();
902
1119
  }
903
- }, _callee10, this);
1120
+ }, _callee12, this);
904
1121
  }));
905
1122
  function createLine() {
906
1123
  return _createLine.apply(this, arguments);
@@ -924,14 +1141,14 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
924
1141
  }, {
925
1142
  key: "getDevices",
926
1143
  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) {
1144
+ var _getDevices = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13(userId) {
1145
+ var userid, mobiusUrls, finalError, _iterator4, _step4, mobiusUrl, normalizedMobiusUrl, uri, _body$devices, response, body, _t9, _t0;
1146
+ return _regenerator.default.wrap(function (_context15) {
1147
+ while (1) switch (_context15.prev = _context15.next) {
931
1148
  case 0:
932
1149
  userid = userId || this.webex.internal.device.userId;
933
1150
  if (userid) {
934
- _context13.next = 1;
1151
+ _context15.next = 1;
935
1152
  break;
936
1153
  }
937
1154
  throw new Error('userId is required to fetch devices');
@@ -942,24 +1159,24 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
942
1159
  });
943
1160
  mobiusUrls = [].concat((0, _toConsumableArray2.default)(this.primaryMobiusUris), (0, _toConsumableArray2.default)(this.backupMobiusUris));
944
1161
  if (!(mobiusUrls.length === 0)) {
945
- _context13.next = 2;
1162
+ _context15.next = 2;
946
1163
  break;
947
1164
  }
948
1165
  throw new Error('Mobius URLs are not available');
949
1166
  case 2:
950
- _iterator3 = _createForOfIteratorHelper(mobiusUrls);
951
- _context13.prev = 3;
952
- _iterator3.s();
1167
+ _iterator4 = _createForOfIteratorHelper(mobiusUrls);
1168
+ _context15.prev = 3;
1169
+ _iterator4.s();
953
1170
  case 4:
954
- if ((_step3 = _iterator3.n()).done) {
955
- _context13.next = 10;
1171
+ if ((_step4 = _iterator4.n()).done) {
1172
+ _context15.next = 10;
956
1173
  break;
957
1174
  }
958
- mobiusUrl = _step3.value;
1175
+ mobiusUrl = _step4.value;
959
1176
  normalizedMobiusUrl = mobiusUrl.replace(/\/+$/, '/');
960
1177
  uri = "".concat(normalizedMobiusUrl).concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "?userid=").concat(encodeURIComponent(userid));
961
- _context13.prev = 5;
962
- _context13.next = 6;
1178
+ _context15.prev = 5;
1179
+ _context15.next = 6;
963
1180
  return this.webex.request({
964
1181
  uri: uri,
965
1182
  method: _types3.HTTP_METHODS.GET,
@@ -967,9 +1184,9 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
967
1184
  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
1185
  });
969
1186
  case 6:
970
- response = _context13.sent;
1187
+ response = _context15.sent;
971
1188
  if (!(response.statusCode !== 200)) {
972
- _context13.next = 7;
1189
+ _context15.next = 7;
973
1190
  break;
974
1191
  }
975
1192
  throw new Error("API call failed with ".concat(response.statusCode));
@@ -977,25 +1194,25 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
977
1194
  body = response.body; // Hydrate registration deviceInfo for deregister/restore flows
978
1195
  (0, _values.default)(this.lineDict)[0].registration.setDeviceInfo(body);
979
1196
  (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 : []);
1197
+ return _context15.abrupt("return", (_body$devices = body.devices) !== null && _body$devices !== void 0 ? _body$devices : []);
981
1198
  case 8:
982
- _context13.prev = 8;
983
- _t7 = _context13["catch"](5);
984
- finalError = _t7;
1199
+ _context15.prev = 8;
1200
+ _t9 = _context15["catch"](5);
1201
+ finalError = _t9;
985
1202
  case 9:
986
- _context13.next = 4;
1203
+ _context15.next = 4;
987
1204
  break;
988
1205
  case 10:
989
- _context13.next = 12;
1206
+ _context15.next = 12;
990
1207
  break;
991
1208
  case 11:
992
- _context13.prev = 11;
993
- _t8 = _context13["catch"](3);
994
- _iterator3.e(_t8);
1209
+ _context15.prev = 11;
1210
+ _t0 = _context15["catch"](3);
1211
+ _iterator4.e(_t0);
995
1212
  case 12:
996
- _context13.prev = 12;
997
- _iterator3.f();
998
- return _context13.finish(12);
1213
+ _context15.prev = 12;
1214
+ _iterator4.f();
1215
+ return _context15.finish(12);
999
1216
  case 13:
1000
1217
  _Logger.default.error("Failed to fetch devices for userId ".concat(userId, ": ").concat((0, _stringify.default)(finalError)), {
1001
1218
  file: _constants2.CALLING_CLIENT_FILE,
@@ -1004,11 +1221,11 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
1004
1221
  throw finalError;
1005
1222
  case 14:
1006
1223
  case "end":
1007
- return _context13.stop();
1224
+ return _context15.stop();
1008
1225
  }
1009
- }, _callee11, this, [[3, 11, 12, 13], [5, 8]]);
1226
+ }, _callee13, this, [[3, 11, 12, 13], [5, 8]]);
1010
1227
  }));
1011
- function getDevices(_x2) {
1228
+ function getDevices(_x3) {
1012
1229
  return _getDevices.apply(this, arguments);
1013
1230
  }
1014
1231
  return getDevices;
@@ -1048,6 +1265,19 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
1048
1265
  return connectCall;
1049
1266
  }
1050
1267
 
1268
+ /**
1269
+ * Indicates whether the Mobius WebSocket transport is currently connected.
1270
+ *
1271
+ * The `MOBIUS_SOCKET_CONNECTED` event is emitted during `init()`, so consumers that
1272
+ * subscribe afterwards may miss it; this lets them reconcile the current state. Returns
1273
+ * `false` when the WebSocket transport is not enabled.
1274
+ */
1275
+ }, {
1276
+ key: "isMobiusSocketConnected",
1277
+ value: function isMobiusSocketConnected() {
1278
+ return this.apiRequest.isSocketEnabled() && this.apiRequest.isSocketConnected();
1279
+ }
1280
+
1051
1281
  /**
1052
1282
  * Uploads logs to help troubleshoot SDK issues.
1053
1283
  *
@@ -1061,27 +1291,27 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
1061
1291
  }, {
1062
1292
  key: "uploadLogs",
1063
1293
  value: (function () {
1064
- var _uploadLogs2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12() {
1294
+ var _uploadLogs2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee14() {
1065
1295
  var result;
1066
- return _regenerator.default.wrap(function (_context14) {
1067
- while (1) switch (_context14.prev = _context14.next) {
1296
+ return _regenerator.default.wrap(function (_context16) {
1297
+ while (1) switch (_context16.prev = _context16.next) {
1068
1298
  case 0:
1069
- _context14.next = 1;
1299
+ _context16.next = 1;
1070
1300
  return (0, _Utils.uploadLogs)({}, true);
1071
1301
  case 1:
1072
- result = _context14.sent;
1302
+ result = _context16.sent;
1073
1303
  if (result) {
1074
- _context14.next = 2;
1304
+ _context16.next = 2;
1075
1305
  break;
1076
1306
  }
1077
1307
  throw new Error('Failed to upload logs: No response received.');
1078
1308
  case 2:
1079
- return _context14.abrupt("return", result);
1309
+ return _context16.abrupt("return", result);
1080
1310
  case 3:
1081
1311
  case "end":
1082
- return _context14.stop();
1312
+ return _context16.stop();
1083
1313
  }
1084
- }, _callee12);
1314
+ }, _callee14);
1085
1315
  }));
1086
1316
  function uploadLogs() {
1087
1317
  return _uploadLogs2.apply(this, arguments);
@@ -1096,24 +1326,24 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
1096
1326
  * @param config - Config to start the CallingClient with.
1097
1327
  */
1098
1328
  var createClient = exports.createClient = /*#__PURE__*/function () {
1099
- var _ref7 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13(webex, config) {
1329
+ var _ref8 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee15(webex, config) {
1100
1330
  var callingClientInstance;
1101
- return _regenerator.default.wrap(function (_context15) {
1102
- while (1) switch (_context15.prev = _context15.next) {
1331
+ return _regenerator.default.wrap(function (_context17) {
1332
+ while (1) switch (_context17.prev = _context17.next) {
1103
1333
  case 0:
1104
1334
  callingClientInstance = new CallingClient(webex, config);
1105
- _context15.next = 1;
1335
+ _context17.next = 1;
1106
1336
  return callingClientInstance.init();
1107
1337
  case 1:
1108
- return _context15.abrupt("return", callingClientInstance);
1338
+ return _context17.abrupt("return", callingClientInstance);
1109
1339
  case 2:
1110
1340
  case "end":
1111
- return _context15.stop();
1341
+ return _context17.stop();
1112
1342
  }
1113
- }, _callee13);
1343
+ }, _callee15);
1114
1344
  }));
1115
- return function createClient(_x3, _x4) {
1116
- return _ref7.apply(this, arguments);
1345
+ return function createClient(_x4, _x5) {
1346
+ return _ref8.apply(this, arguments);
1117
1347
  };
1118
1348
  }();
1119
1349
  //# sourceMappingURL=CallingClient.js.map