@webex/plugin-meetings 2.37.0 → 2.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/common/browser-detection.js +1 -20
  4. package/dist/common/browser-detection.js.map +1 -1
  5. package/dist/common/collection.js +5 -20
  6. package/dist/common/collection.js.map +1 -1
  7. package/dist/common/config.js +0 -7
  8. package/dist/common/config.js.map +1 -1
  9. package/dist/common/errors/captcha-error.js +5 -26
  10. package/dist/common/errors/captcha-error.js.map +1 -1
  11. package/dist/common/errors/intent-to-join.js +5 -26
  12. package/dist/common/errors/intent-to-join.js.map +1 -1
  13. package/dist/common/errors/join-meeting.js +6 -27
  14. package/dist/common/errors/join-meeting.js.map +1 -1
  15. package/dist/common/errors/media.js +5 -26
  16. package/dist/common/errors/media.js.map +1 -1
  17. package/dist/common/errors/parameter.js +5 -33
  18. package/dist/common/errors/parameter.js.map +1 -1
  19. package/dist/common/errors/password-error.js +5 -26
  20. package/dist/common/errors/password-error.js.map +1 -1
  21. package/dist/common/errors/permission.js +4 -25
  22. package/dist/common/errors/permission.js.map +1 -1
  23. package/dist/common/errors/reconnection-in-progress.js +0 -17
  24. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  25. package/dist/common/errors/reconnection.js +5 -26
  26. package/dist/common/errors/reconnection.js.map +1 -1
  27. package/dist/common/errors/stats.js +5 -26
  28. package/dist/common/errors/stats.js.map +1 -1
  29. package/dist/common/errors/webex-errors.js +7 -46
  30. package/dist/common/errors/webex-errors.js.map +1 -1
  31. package/dist/common/errors/webex-meetings-error.js +1 -24
  32. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  33. package/dist/common/events/events-scope.js +0 -22
  34. package/dist/common/events/events-scope.js.map +1 -1
  35. package/dist/common/events/events.js +0 -23
  36. package/dist/common/events/events.js.map +1 -1
  37. package/dist/common/events/trigger-proxy.js +0 -12
  38. package/dist/common/events/trigger-proxy.js.map +1 -1
  39. package/dist/common/events/util.js +0 -15
  40. package/dist/common/events/util.js.map +1 -1
  41. package/dist/common/logs/logger-config.js +0 -4
  42. package/dist/common/logs/logger-config.js.map +1 -1
  43. package/dist/common/logs/logger-proxy.js +1 -8
  44. package/dist/common/logs/logger-proxy.js.map +1 -1
  45. package/dist/common/logs/request.js +35 -61
  46. package/dist/common/logs/request.js.map +1 -1
  47. package/dist/common/queue.js +4 -14
  48. package/dist/common/queue.js.map +1 -1
  49. package/dist/config.js +1 -5
  50. package/dist/config.js.map +1 -1
  51. package/dist/constants.js +46 -42
  52. package/dist/constants.js.map +1 -1
  53. package/dist/index.js +1 -17
  54. package/dist/index.js.map +1 -1
  55. package/dist/locus-info/controlsUtils.js +10 -28
  56. package/dist/locus-info/controlsUtils.js.map +1 -1
  57. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  58. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  59. package/dist/locus-info/fullState.js +0 -15
  60. package/dist/locus-info/fullState.js.map +1 -1
  61. package/dist/locus-info/hostUtils.js +4 -12
  62. package/dist/locus-info/hostUtils.js.map +1 -1
  63. package/dist/locus-info/index.js +101 -193
  64. package/dist/locus-info/index.js.map +1 -1
  65. package/dist/locus-info/infoUtils.js +0 -37
  66. package/dist/locus-info/infoUtils.js.map +1 -1
  67. package/dist/locus-info/mediaSharesUtils.js +12 -38
  68. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  69. package/dist/locus-info/parser.js +87 -123
  70. package/dist/locus-info/parser.js.map +1 -1
  71. package/dist/locus-info/selfUtils.js +16 -81
  72. package/dist/locus-info/selfUtils.js.map +1 -1
  73. package/dist/media/index.js +74 -137
  74. package/dist/media/index.js.map +1 -1
  75. package/dist/media/properties.js +64 -110
  76. package/dist/media/properties.js.map +1 -1
  77. package/dist/media/util.js +3 -17
  78. package/dist/media/util.js.map +1 -1
  79. package/dist/mediaQualityMetrics/config.js +10 -12
  80. package/dist/mediaQualityMetrics/config.js.map +1 -1
  81. package/dist/meeting/effectsState.js +120 -192
  82. package/dist/meeting/effectsState.js.map +1 -1
  83. package/dist/meeting/in-meeting-actions.js +0 -13
  84. package/dist/meeting/in-meeting-actions.js.map +1 -1
  85. package/dist/meeting/index.js +812 -1487
  86. package/dist/meeting/index.js.map +1 -1
  87. package/dist/meeting/muteState.js +31 -78
  88. package/dist/meeting/muteState.js.map +1 -1
  89. package/dist/meeting/request.js +157 -227
  90. package/dist/meeting/request.js.map +1 -1
  91. package/dist/meeting/state.js +21 -31
  92. package/dist/meeting/state.js.map +1 -1
  93. package/dist/meeting/util.js +25 -169
  94. package/dist/meeting/util.js.map +1 -1
  95. package/dist/meeting-info/collection.js +3 -25
  96. package/dist/meeting-info/collection.js.map +1 -1
  97. package/dist/meeting-info/index.js +10 -33
  98. package/dist/meeting-info/index.js.map +1 -1
  99. package/dist/meeting-info/meeting-info-v2.js +179 -268
  100. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  101. package/dist/meeting-info/request.js +1 -16
  102. package/dist/meeting-info/request.js.map +1 -1
  103. package/dist/meeting-info/util.js +98 -183
  104. package/dist/meeting-info/util.js.map +1 -1
  105. package/dist/meeting-info/utilv2.js +137 -228
  106. package/dist/meeting-info/utilv2.js.map +1 -1
  107. package/dist/meetings/collection.js +3 -21
  108. package/dist/meetings/collection.js.map +1 -1
  109. package/dist/meetings/index.js +451 -570
  110. package/dist/meetings/index.js.map +1 -1
  111. package/dist/meetings/request.js +7 -30
  112. package/dist/meetings/request.js.map +1 -1
  113. package/dist/meetings/util.js +94 -148
  114. package/dist/meetings/util.js.map +1 -1
  115. package/dist/member/index.js +49 -89
  116. package/dist/member/index.js.map +1 -1
  117. package/dist/member/util.js +17 -68
  118. package/dist/member/util.js.map +1 -1
  119. package/dist/members/collection.js +2 -12
  120. package/dist/members/collection.js.map +1 -1
  121. package/dist/members/index.js +68 -184
  122. package/dist/members/index.js.map +1 -1
  123. package/dist/members/request.js +21 -56
  124. package/dist/members/request.js.map +1 -1
  125. package/dist/members/util.js +9 -38
  126. package/dist/members/util.js.map +1 -1
  127. package/dist/metrics/config.js +0 -2
  128. package/dist/metrics/config.js.map +1 -1
  129. package/dist/metrics/constants.js +1 -2
  130. package/dist/metrics/constants.js.map +1 -1
  131. package/dist/metrics/index.js +48 -136
  132. package/dist/metrics/index.js.map +1 -1
  133. package/dist/networkQualityMonitor/index.js +28 -57
  134. package/dist/networkQualityMonitor/index.js.map +1 -1
  135. package/dist/peer-connection-manager/index.js +60 -190
  136. package/dist/peer-connection-manager/index.js.map +1 -1
  137. package/dist/peer-connection-manager/util.js +10 -24
  138. package/dist/peer-connection-manager/util.js.map +1 -1
  139. package/dist/personal-meeting-room/index.js +10 -45
  140. package/dist/personal-meeting-room/index.js.map +1 -1
  141. package/dist/personal-meeting-room/request.js +2 -33
  142. package/dist/personal-meeting-room/request.js.map +1 -1
  143. package/dist/personal-meeting-room/util.js +0 -13
  144. package/dist/personal-meeting-room/util.js.map +1 -1
  145. package/dist/reachability/index.js +100 -166
  146. package/dist/reachability/index.js.map +1 -1
  147. package/dist/reachability/request.js +2 -18
  148. package/dist/reachability/request.js.map +1 -1
  149. package/dist/reactions/reactions.js +0 -2
  150. package/dist/reactions/reactions.js.map +1 -1
  151. package/dist/reactions/reactions.type.js +0 -5
  152. package/dist/reactions/reactions.type.js.map +1 -1
  153. package/dist/reconnection-manager/index.js +294 -468
  154. package/dist/reconnection-manager/index.js.map +1 -1
  155. package/dist/roap/collection.js +1 -12
  156. package/dist/roap/collection.js.map +1 -1
  157. package/dist/roap/handler.js +15 -85
  158. package/dist/roap/handler.js.map +1 -1
  159. package/dist/roap/index.js +42 -94
  160. package/dist/roap/index.js.map +1 -1
  161. package/dist/roap/request.js +81 -148
  162. package/dist/roap/request.js.map +1 -1
  163. package/dist/roap/state.js +2 -39
  164. package/dist/roap/state.js.map +1 -1
  165. package/dist/roap/turnDiscovery.js +8 -52
  166. package/dist/roap/turnDiscovery.js.map +1 -1
  167. package/dist/roap/util.js +0 -26
  168. package/dist/roap/util.js.map +1 -1
  169. package/dist/statsAnalyzer/global.js +0 -2
  170. package/dist/statsAnalyzer/global.js.map +1 -1
  171. package/dist/statsAnalyzer/index.js +68 -168
  172. package/dist/statsAnalyzer/index.js.map +1 -1
  173. package/dist/statsAnalyzer/mqaUtil.js +54 -53
  174. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  175. package/dist/transcription/index.js +13 -45
  176. package/dist/transcription/index.js.map +1 -1
  177. package/internal-README.md +7 -6
  178. package/package.json +17 -17
  179. package/src/common/browser-detection.ts +9 -6
  180. package/src/common/collection.ts +3 -1
  181. package/src/common/errors/captcha-error.ts +6 -6
  182. package/src/common/errors/intent-to-join.ts +6 -6
  183. package/src/common/errors/join-meeting.ts +12 -8
  184. package/src/common/errors/media.ts +6 -6
  185. package/src/common/errors/parameter.ts +9 -6
  186. package/src/common/errors/password-error.ts +6 -6
  187. package/src/common/errors/permission.ts +5 -5
  188. package/src/common/errors/reconnection.ts +6 -6
  189. package/src/common/errors/stats.ts +6 -6
  190. package/src/common/errors/webex-errors.ts +7 -5
  191. package/src/common/errors/webex-meetings-error.ts +1 -1
  192. package/src/common/events/events-scope.ts +5 -1
  193. package/src/common/events/events.ts +5 -1
  194. package/src/common/events/trigger-proxy.ts +8 -3
  195. package/src/common/events/util.ts +1 -2
  196. package/src/common/logs/logger-proxy.ts +21 -10
  197. package/src/common/logs/request.ts +11 -8
  198. package/src/config.ts +11 -11
  199. package/src/constants.ts +138 -119
  200. package/src/index.js +1 -1
  201. package/src/locus-info/controlsUtils.ts +34 -24
  202. package/src/locus-info/fullState.ts +15 -11
  203. package/src/locus-info/hostUtils.ts +4 -3
  204. package/src/locus-info/index.ts +25 -34
  205. package/src/locus-info/infoUtils.ts +12 -4
  206. package/src/locus-info/mediaSharesUtils.ts +4 -4
  207. package/src/locus-info/parser.ts +45 -68
  208. package/src/locus-info/selfUtils.ts +106 -57
  209. package/src/media/index.ts +118 -109
  210. package/src/media/properties.ts +26 -20
  211. package/src/media/util.ts +2 -2
  212. package/src/mediaQualityMetrics/config.ts +46 -46
  213. package/src/meeting/effectsState.ts +35 -35
  214. package/src/meeting/in-meeting-actions.ts +7 -3
  215. package/src/meeting/index.ts +1435 -1210
  216. package/src/meeting/muteState.ts +62 -31
  217. package/src/meeting/request.ts +160 -113
  218. package/src/meeting/state.ts +45 -30
  219. package/src/meeting/util.ts +131 -90
  220. package/src/meeting-info/collection.ts +2 -1
  221. package/src/meeting-info/index.ts +32 -30
  222. package/src/meeting-info/meeting-info-v2.ts +106 -108
  223. package/src/meeting-info/request.ts +9 -3
  224. package/src/meeting-info/util.ts +54 -46
  225. package/src/meeting-info/utilv2.ts +59 -53
  226. package/src/meetings/collection.ts +1 -1
  227. package/src/meetings/index.ts +513 -441
  228. package/src/meetings/request.ts +26 -24
  229. package/src/meetings/util.ts +26 -23
  230. package/src/member/index.ts +55 -49
  231. package/src/member/util.ts +26 -13
  232. package/src/members/collection.ts +0 -1
  233. package/src/members/index.ts +172 -121
  234. package/src/members/request.ts +46 -14
  235. package/src/members/util.ts +44 -42
  236. package/src/metrics/config.ts +254 -81
  237. package/src/metrics/constants.ts +0 -2
  238. package/src/metrics/index.ts +84 -71
  239. package/src/networkQualityMonitor/index.ts +20 -23
  240. package/src/peer-connection-manager/index.ts +321 -241
  241. package/src/peer-connection-manager/util.ts +4 -2
  242. package/src/personal-meeting-room/index.ts +12 -16
  243. package/src/personal-meeting-room/request.ts +10 -3
  244. package/src/personal-meeting-room/util.ts +3 -3
  245. package/src/reachability/index.ts +61 -59
  246. package/src/reachability/request.ts +36 -32
  247. package/src/reactions/reactions.ts +4 -4
  248. package/src/reactions/reactions.type.ts +2 -3
  249. package/src/reconnection-manager/index.ts +159 -98
  250. package/src/roap/collection.ts +2 -4
  251. package/src/roap/handler.ts +63 -32
  252. package/src/roap/index.ts +78 -58
  253. package/src/roap/request.ts +69 -54
  254. package/src/roap/state.ts +17 -11
  255. package/src/roap/turnDiscovery.ts +60 -31
  256. package/src/roap/util.ts +39 -31
  257. package/src/statsAnalyzer/global.ts +30 -33
  258. package/src/statsAnalyzer/index.ts +397 -169
  259. package/src/statsAnalyzer/mqaUtil.ts +178 -72
  260. package/src/transcription/index.ts +34 -32
  261. package/test/integration/spec/journey.js +666 -462
  262. package/test/integration/spec/space-meeting.js +318 -203
  263. package/test/integration/spec/transcription.js +6 -7
  264. package/test/unit/spec/common/browser-detection.js +9 -28
  265. package/test/unit/spec/fixture/locus.js +92 -90
  266. package/test/unit/spec/locus-info/controlsUtils.js +5 -5
  267. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  268. package/test/unit/spec/locus-info/index.js +1 -2
  269. package/test/unit/spec/locus-info/infoUtils.js +24 -31
  270. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  271. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  272. package/test/unit/spec/locus-info/parser.js +3 -9
  273. package/test/unit/spec/locus-info/selfConstant.js +72 -103
  274. package/test/unit/spec/locus-info/selfUtils.js +21 -12
  275. package/test/unit/spec/meeting/effectsState.js +33 -45
  276. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -3
  277. package/test/unit/spec/meeting/index.js +1141 -649
  278. package/test/unit/spec/meeting/muteState.js +42 -33
  279. package/test/unit/spec/meeting/request.js +56 -45
  280. package/test/unit/spec/meeting/utils.js +66 -49
  281. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  282. package/test/unit/spec/meeting-info/request.js +7 -9
  283. package/test/unit/spec/meeting-info/util.js +11 -12
  284. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  285. package/test/unit/spec/meetings/collection.js +1 -1
  286. package/test/unit/spec/meetings/index.js +438 -257
  287. package/test/unit/spec/meetings/utils.js +14 -12
  288. package/test/unit/spec/member/index.js +0 -1
  289. package/test/unit/spec/member/util.js +5 -6
  290. package/test/unit/spec/members/index.js +84 -35
  291. package/test/unit/spec/members/request.js +29 -20
  292. package/test/unit/spec/members/utils.js +8 -5
  293. package/test/unit/spec/metrics/index.js +16 -21
  294. package/test/unit/spec/networkQualityMonitor/index.js +21 -15
  295. package/test/unit/spec/peerconnection-manager/index.js +88 -58
  296. package/test/unit/spec/peerconnection-manager/utils.js +5 -4
  297. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +7 -8
  298. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  299. package/test/unit/spec/reachability/index.ts +9 -11
  300. package/test/unit/spec/reconnection-manager/index.js +14 -17
  301. package/test/unit/spec/roap/index.ts +18 -8
  302. package/test/unit/spec/roap/turnDiscovery.ts +22 -19
  303. package/test/unit/spec/roap/util.js +3 -3
  304. package/test/unit/spec/stats-analyzer/index.js +29 -24
  305. package/test/utils/cmr.js +44 -42
  306. package/test/utils/testUtils.js +83 -74
  307. package/test/utils/webex-config.js +18 -18
  308. package/test/utils/webex-test-users.js +53 -50
@@ -1,65 +1,36 @@
1
1
  "use strict";
2
2
 
3
3
  var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
-
5
4
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
6
-
7
5
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
8
-
9
6
  _Object$defineProperty(exports, "__esModule", {
10
7
  value: true
11
8
  });
12
-
13
9
  exports.default = void 0;
14
-
15
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
16
-
17
11
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
18
-
19
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
20
-
21
13
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
22
-
23
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
24
-
25
15
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
26
-
27
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
28
-
29
17
  var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
30
-
31
18
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
32
-
33
19
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
34
-
35
20
  var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/wrapNativeSuper"));
36
-
37
21
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
38
-
39
22
  var _triggerProxy = _interopRequireDefault(require("../common/events/trigger-proxy"));
40
-
41
23
  var _constants = require("../constants");
42
-
43
24
  var _constants2 = _interopRequireDefault(require("../metrics/constants"));
44
-
45
25
  var _reconnection = _interopRequireDefault(require("../common/errors/reconnection"));
46
-
47
26
  var _reconnectionInProgress = _interopRequireDefault(require("../common/errors/reconnection-in-progress"));
48
-
49
27
  var _peerConnectionManager = _interopRequireDefault(require("../peer-connection-manager"));
50
-
51
28
  var _config = require("../metrics/config");
52
-
53
29
  var _media = _interopRequireDefault(require("../media"));
54
-
55
30
  var _metrics = _interopRequireDefault(require("../metrics"));
56
-
57
31
  var _collection = _interopRequireDefault(require("../roap/collection"));
58
-
59
32
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
60
-
61
33
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
62
-
63
34
  /**
64
35
  * Used to indicate that the reconnect logic needs to be retried.
65
36
  *
@@ -68,14 +39,11 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
68
39
  */
69
40
  var NeedsRetryError = /*#__PURE__*/function (_Error) {
70
41
  (0, _inherits2.default)(NeedsRetryError, _Error);
71
-
72
42
  var _super = _createSuper(NeedsRetryError);
73
-
74
43
  function NeedsRetryError() {
75
44
  (0, _classCallCheck2.default)(this, NeedsRetryError);
76
45
  return _super.apply(this, arguments);
77
46
  }
78
-
79
47
  return (0, _createClass2.default)(NeedsRetryError);
80
48
  }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
81
49
  /**
@@ -84,13 +52,9 @@ var NeedsRetryError = /*#__PURE__*/function (_Error) {
84
52
  * @class NeedsRejoinError
85
53
  * @extends {Error}
86
54
  */
87
-
88
-
89
55
  var NeedsRejoinError = /*#__PURE__*/function (_Error2) {
90
56
  (0, _inherits2.default)(NeedsRejoinError, _Error2);
91
-
92
57
  var _super2 = _createSuper(NeedsRejoinError);
93
-
94
58
  /**
95
59
  * Creates an instance of NeedsRejoinError.
96
60
  * @param {Object} params
@@ -100,10 +64,9 @@ var NeedsRejoinError = /*#__PURE__*/function (_Error2) {
100
64
  */
101
65
  function NeedsRejoinError(_ref) {
102
66
  var _this;
103
-
104
67
  var wasSharing = _ref.wasSharing,
105
- _ref$error = _ref.error,
106
- error = _ref$error === void 0 ? new Error('Meeting needs to be rejoined') : _ref$error;
68
+ _ref$error = _ref.error,
69
+ error = _ref$error === void 0 ? new Error('Meeting needs to be rejoined') : _ref$error;
107
70
  (0, _classCallCheck2.default)(this, NeedsRejoinError);
108
71
  // @ts-ignore
109
72
  _this = _super2.call(this, error);
@@ -111,15 +74,12 @@ var NeedsRejoinError = /*#__PURE__*/function (_Error2) {
111
74
  _this.wasSharing = wasSharing;
112
75
  return _this;
113
76
  }
114
-
115
77
  return (0, _createClass2.default)(NeedsRejoinError);
116
78
  }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
117
79
  /**
118
80
  * @export
119
81
  * @class ReconnectionManager
120
- */
121
-
122
-
82
+ */
123
83
  var ReconnectionManager = /*#__PURE__*/function () {
124
84
  /**
125
85
  * @param {Meeting} meeting
@@ -135,7 +95,6 @@ var ReconnectionManager = /*#__PURE__*/function () {
135
95
  (0, _defineProperty2.default)(this, "status", void 0);
136
96
  (0, _defineProperty2.default)(this, "tryCount", void 0);
137
97
  (0, _defineProperty2.default)(this, "webex", void 0);
138
-
139
98
  /**
140
99
  * Stores ICE reconnection state data.
141
100
  *
@@ -151,32 +110,30 @@ var ReconnectionManager = /*#__PURE__*/function () {
151
110
  // @ts-ignore
152
111
  timeoutDuration: meeting.config.reconnection.iceReconnectionTimeout
153
112
  };
113
+
154
114
  /**
155
115
  * @instance
156
116
  * @type {String}
157
117
  * @private
158
118
  * @memberof ReconnectionManager
159
- */
160
-
119
+ */
161
120
  this.status = _constants.RECONNECTION.STATE.DEFAULT_STATUS;
162
121
  /**
163
122
  * @instance
164
123
  * @type {Number}
165
124
  * @private
166
125
  * @memberof ReconnectionManager
167
- */
168
-
126
+ */
169
127
  this.tryCount = _constants.RECONNECTION.STATE.DEFAULT_TRY_COUNT;
170
128
  /**
171
129
  * @instance
172
130
  * @type {Object}
173
131
  * @private
174
132
  * @memberof ReconnectionManager
175
- */
133
+ */
176
134
  // TODO : change this logic to not save the meeting instance
177
135
  // It gets complicated when meeting ends on remote side , We have a old meeting instance which is not up to date
178
136
  // @ts-ignore
179
-
180
137
  this.webex = meeting.webex;
181
138
  /**
182
139
  * @instance
@@ -186,16 +143,18 @@ var ReconnectionManager = /*#__PURE__*/function () {
186
143
  */
187
144
  // TODO: try removing the circular dependency for meeting and reconnection manager
188
145
  // try moving this to meetings collection
146
+ this.meeting = meeting;
189
147
 
190
- this.meeting = meeting; // @ts-ignore
191
-
148
+ // @ts-ignore
192
149
  this.maxRejoinAttempts = meeting.config.reconnection.maxRejoinAttempts;
193
- this.rejoinAttempts = _constants.RECONNECTION.STATE.DEFAULT_TRY_COUNT; // @ts-ignore
194
-
195
- this.autoRejoinEnabled = meeting.config.reconnection.autoRejoin; // Make sure reconnection state is in default
150
+ this.rejoinAttempts = _constants.RECONNECTION.STATE.DEFAULT_TRY_COUNT;
151
+ // @ts-ignore
152
+ this.autoRejoinEnabled = meeting.config.reconnection.autoRejoin;
196
153
 
154
+ // Make sure reconnection state is in default
197
155
  this.reset();
198
156
  }
157
+
199
158
  /**
200
159
  * Sets the iceState to connected and clears any disconnect timeouts and
201
160
  * related timeout data within the iceState.
@@ -204,26 +163,21 @@ var ReconnectionManager = /*#__PURE__*/function () {
204
163
  * @public
205
164
  * @memberof ReconnectionManager
206
165
  */
207
-
208
-
209
166
  (0, _createClass2.default)(ReconnectionManager, [{
210
167
  key: "iceReconnected",
211
168
  value: function iceReconnected() {
212
169
  if (this.iceState.disconnected) {
213
170
  _loggerProxy.default.logger.log('ReconnectionManager:index#iceReconnected --> ice has reconnected');
214
-
215
171
  this.iceState.resolve();
216
-
217
172
  this.iceState.resolve = function () {};
218
-
219
173
  if (this.iceState.timer) {
220
174
  clearTimeout(this.iceState.timer);
221
175
  delete this.iceState.timer;
222
176
  }
223
-
224
177
  this.iceState.disconnected = false;
225
178
  }
226
179
  }
180
+
227
181
  /**
228
182
  * Set the iceState to disconnected and generates a timeout that waits for the
229
183
  * iceState to reconnect and then resolves. If the ice state is already
@@ -234,15 +188,12 @@ var ReconnectionManager = /*#__PURE__*/function () {
234
188
  * @public
235
189
  * @memberof ReconnectionManager
236
190
  */
237
-
238
191
  }, {
239
192
  key: "waitForIceReconnect",
240
193
  value: function waitForIceReconnect() {
241
194
  var _this2 = this;
242
-
243
195
  if (!this.iceState.disconnected) {
244
196
  _loggerProxy.default.logger.log('ReconnectionManager:index#waitForIceReconnect --> waiting for ice reconnect');
245
-
246
197
  this.iceState.disconnected = true;
247
198
  return new _promise.default(function (resolve, reject) {
248
199
  _this2.iceState.timer = setTimeout(function () {
@@ -255,17 +206,17 @@ var ReconnectionManager = /*#__PURE__*/function () {
255
206
  }, _this2.iceState.timeoutDuration);
256
207
  _this2.iceState.resolve = resolve;
257
208
  });
258
- } // return a resolved promise to prevent multiple catch executions of reconnect
259
-
209
+ }
260
210
 
211
+ // return a resolved promise to prevent multiple catch executions of reconnect
261
212
  return _promise.default.resolve();
262
213
  }
214
+
263
215
  /**
264
216
  * @returns {undefined}
265
217
  * @public
266
218
  * @memberof ReconnectionManager
267
219
  */
268
-
269
220
  }, {
270
221
  key: "reset",
271
222
  value: function reset() {
@@ -273,25 +224,25 @@ var ReconnectionManager = /*#__PURE__*/function () {
273
224
  this.tryCount = _constants.RECONNECTION.STATE.DEFAULT_TRY_COUNT;
274
225
  this.rejoinAttempts = _constants.RECONNECTION.STATE.DEFAULT_TRY_COUNT;
275
226
  }
227
+
276
228
  /**
277
229
  * @returns {undefined}
278
230
  * @public
279
231
  * @memberof ReconnectionManager
280
232
  */
281
-
282
233
  }, {
283
234
  key: "cleanUp",
284
235
  value: function cleanUp() {
285
236
  this.reset();
286
237
  this.meeting = null;
287
238
  }
239
+
288
240
  /**
289
241
  * @returns {Boolean}
290
242
  * @throws {ReconnectionError}
291
243
  * @private
292
244
  * @memberof ReconnectionManager
293
245
  */
294
-
295
246
  }, {
296
247
  key: "validate",
297
248
  value: function validate() {
@@ -299,16 +250,13 @@ var ReconnectionManager = /*#__PURE__*/function () {
299
250
  if (this.status === _constants.RECONNECTION.STATE.DEFAULT_STATUS || this.status === _constants.RECONNECTION.STATE.COMPLETE) {
300
251
  return true;
301
252
  }
302
-
303
253
  _loggerProxy.default.logger.info('ReconnectionManager:index#validate --> Reconnection already in progress.');
304
-
305
254
  throw new _reconnectionInProgress.default('Reconnection already in progress.');
306
255
  }
307
-
308
256
  _loggerProxy.default.logger.info('ReconnectionManager:index#validate --> Reconnection is not enabled.');
309
-
310
257
  throw new _reconnection.default('Reconnection is not enabled.');
311
258
  }
259
+
312
260
  /**
313
261
  * Initiates a media reconnect for the active meeting
314
262
  * @param {Object} reconnectOptions
@@ -318,123 +266,101 @@ var ReconnectionManager = /*#__PURE__*/function () {
318
266
  * @public
319
267
  * @memberof ReconnectionManager
320
268
  */
321
-
322
269
  }, {
323
270
  key: "reconnect",
324
271
  value: function () {
325
272
  var _reconnect = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
326
273
  var _this3 = this;
327
-
328
274
  var _ref2,
329
- _ref2$networkDisconne,
330
- networkDisconnect,
331
- _ref2$networkRetry,
332
- networkRetry,
333
- _args = arguments;
334
-
275
+ _ref2$networkDisconne,
276
+ networkDisconnect,
277
+ _ref2$networkRetry,
278
+ networkRetry,
279
+ _args = arguments;
335
280
  return _regenerator.default.wrap(function _callee$(_context) {
336
- while (1) {
337
- switch (_context.prev = _context.next) {
338
- case 0:
339
- _ref2 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, _ref2$networkDisconne = _ref2.networkDisconnect, networkDisconnect = _ref2$networkDisconne === void 0 ? false : _ref2$networkDisconne, _ref2$networkRetry = _ref2.networkRetry, networkRetry = _ref2$networkRetry === void 0 ? false : _ref2$networkRetry;
340
-
341
- _loggerProxy.default.logger.info("ReconnectionManager:index#reconnect --> Reconnection start for meeting ".concat(this.meeting.id, ".")); // First, validate that we can reconnect, if not, it will throw an error
342
-
343
-
344
- _context.prev = 2;
345
- this.validate();
346
- _context.next = 10;
347
- break;
348
-
349
- case 6:
350
- _context.prev = 6;
351
- _context.t0 = _context["catch"](2);
352
-
353
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection unable to begin.', _context.t0);
354
-
355
- throw _context.t0;
356
-
357
- case 10:
358
- if (!networkRetry) {
359
- // Only log START metrics on the initial reconnect
360
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect start metric.');
361
-
362
- _metrics.default.postEvent({
363
- event: _config.eventType.MEDIA_RECONNECTING,
364
- meeting: this.meeting
281
+ while (1) switch (_context.prev = _context.next) {
282
+ case 0:
283
+ _ref2 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, _ref2$networkDisconne = _ref2.networkDisconnect, networkDisconnect = _ref2$networkDisconne === void 0 ? false : _ref2$networkDisconne, _ref2$networkRetry = _ref2.networkRetry, networkRetry = _ref2$networkRetry === void 0 ? false : _ref2$networkRetry;
284
+ _loggerProxy.default.logger.info("ReconnectionManager:index#reconnect --> Reconnection start for meeting ".concat(this.meeting.id, "."));
285
+ // First, validate that we can reconnect, if not, it will throw an error
286
+ _context.prev = 2;
287
+ this.validate();
288
+ _context.next = 10;
289
+ break;
290
+ case 6:
291
+ _context.prev = 6;
292
+ _context.t0 = _context["catch"](2);
293
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection unable to begin.', _context.t0);
294
+ throw _context.t0;
295
+ case 10:
296
+ if (!networkRetry) {
297
+ // Only log START metrics on the initial reconnect
298
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect start metric.');
299
+ _metrics.default.postEvent({
300
+ event: _config.eventType.MEDIA_RECONNECTING,
301
+ meeting: this.meeting
302
+ });
303
+ }
304
+ return _context.abrupt("return", this.executeReconnection({
305
+ networkDisconnect: networkDisconnect
306
+ }).then(function () {
307
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection successful.');
308
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect success metric.');
309
+ _metrics.default.postEvent({
310
+ event: _config.eventType.MEDIA_RECOVERED,
311
+ meeting: _this3.meeting,
312
+ data: {
313
+ recoveredBy: _config.reconnection.RECOVERED_BY_NEW
314
+ }
315
+ });
316
+ }).catch(function (reconnectError) {
317
+ if (reconnectError instanceof NeedsRetryError) {
318
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection not successful, retrying.');
319
+ // Reset our reconnect status since we are looping back to the beginning
320
+ _this3.status = _constants.RECONNECTION.STATE.DEFAULT_STATUS;
321
+
322
+ // This is a network retry, so we should not log START metrics again
323
+ return _this3.reconnect({
324
+ networkDisconnect: true,
325
+ networkRetry: true
365
326
  });
366
327
  }
367
328
 
368
- return _context.abrupt("return", this.executeReconnection({
369
- networkDisconnect: networkDisconnect
370
- }).then(function () {
371
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection successful.');
372
-
373
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect success metric.');
374
-
375
- _metrics.default.postEvent({
376
- event: _config.eventType.MEDIA_RECOVERED,
377
- meeting: _this3.meeting,
378
- data: {
379
- recoveredBy: _config.reconnection.RECOVERED_BY_NEW
380
- }
381
- });
382
- }).catch(function (reconnectError) {
383
- if (reconnectError instanceof NeedsRetryError) {
384
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection not successful, retrying.'); // Reset our reconnect status since we are looping back to the beginning
385
-
386
-
387
- _this3.status = _constants.RECONNECTION.STATE.DEFAULT_STATUS; // This is a network retry, so we should not log START metrics again
388
-
389
- return _this3.reconnect({
390
- networkDisconnect: true,
391
- networkRetry: true
392
- });
393
- } // Reconnect has failed
394
-
395
-
396
- _loggerProxy.default.logger.error('ReconnectionManager:index#reconnect --> Reconnection failed.', reconnectError.message);
397
-
398
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect abort metric.');
399
-
400
- var reconnectMetric = {
401
- event: _config.eventType.CALL_ABORTED,
402
- meeting: _this3.meeting,
403
- data: {
404
- errors: [{
405
- category: _config.errorObjects.category.expected,
406
- errorCode: 2008,
407
- fatal: true,
408
- name: _config.errorObjects.name.mediaEngine,
409
- shownToUser: false
410
- }]
411
- }
412
- };
413
-
414
- _metrics.default.postEvent(reconnectMetric);
415
-
416
- if (reconnectError instanceof NeedsRejoinError) {
417
- // send call aborded event with catogery as expected as we are trying to rejoin
418
- if (_this3.autoRejoinEnabled) {
419
- return _this3.rejoinMeeting(reconnectError.wasSharing);
420
- }
329
+ // Reconnect has failed
330
+ _loggerProxy.default.logger.error('ReconnectionManager:index#reconnect --> Reconnection failed.', reconnectError.message);
331
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect abort metric.');
332
+ var reconnectMetric = {
333
+ event: _config.eventType.CALL_ABORTED,
334
+ meeting: _this3.meeting,
335
+ data: {
336
+ errors: [{
337
+ category: _config.errorObjects.category.expected,
338
+ errorCode: 2008,
339
+ fatal: true,
340
+ name: _config.errorObjects.name.mediaEngine,
341
+ shownToUser: false
342
+ }]
421
343
  }
344
+ };
345
+ _metrics.default.postEvent(reconnectMetric);
346
+ if (reconnectError instanceof NeedsRejoinError) {
347
+ // send call aborded event with catogery as expected as we are trying to rejoin
422
348
 
423
- throw reconnectError;
424
- }));
425
-
426
- case 12:
427
- case "end":
428
- return _context.stop();
429
- }
349
+ if (_this3.autoRejoinEnabled) {
350
+ return _this3.rejoinMeeting(reconnectError.wasSharing);
351
+ }
352
+ }
353
+ throw reconnectError;
354
+ }));
355
+ case 12:
356
+ case "end":
357
+ return _context.stop();
430
358
  }
431
359
  }, _callee, this, [[2, 6]]);
432
360
  }));
433
-
434
361
  function reconnect() {
435
362
  return _reconnect.apply(this, arguments);
436
363
  }
437
-
438
364
  return reconnect;
439
365
  }()
440
366
  /**
@@ -445,132 +371,96 @@ var ReconnectionManager = /*#__PURE__*/function () {
445
371
  * @private
446
372
  * @memberof ReconnectionManager
447
373
  */
448
-
449
374
  }, {
450
375
  key: "executeReconnection",
451
376
  value: function () {
452
377
  var _executeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(_ref3) {
453
378
  var _ref3$networkDisconne, networkDisconnect, wasSharing, media;
454
-
455
379
  return _regenerator.default.wrap(function _callee2$(_context2) {
456
- while (1) {
457
- switch (_context2.prev = _context2.next) {
458
- case 0:
459
- _ref3$networkDisconne = _ref3.networkDisconnect, networkDisconnect = _ref3$networkDisconne === void 0 ? false : _ref3$networkDisconne;
460
- this.status = _constants.RECONNECTION.STATE.IN_PROGRESS;
461
-
462
- _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Attempting to reconnect to meeting.');
463
-
464
- if (!networkDisconnect) {
465
- _context2.next = 15;
466
- break;
467
- }
468
-
469
- _context2.prev = 4;
470
- _context2.next = 7;
471
- return this.reconnectMercuryWebSocket();
472
-
473
- case 7:
474
- _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Websocket reconnected.', this.webex.internal.device.url);
475
-
380
+ while (1) switch (_context2.prev = _context2.next) {
381
+ case 0:
382
+ _ref3$networkDisconne = _ref3.networkDisconnect, networkDisconnect = _ref3$networkDisconne === void 0 ? false : _ref3$networkDisconne;
383
+ this.status = _constants.RECONNECTION.STATE.IN_PROGRESS;
384
+ _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Attempting to reconnect to meeting.');
385
+ if (!networkDisconnect) {
476
386
  _context2.next = 15;
477
387
  break;
478
-
479
- case 10:
480
- _context2.prev = 10;
481
- _context2.t0 = _context2["catch"](4);
482
-
483
- _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Unable to reconnect to websocket, giving up.');
484
-
485
- this.status = _constants.RECONNECTION.STATE.FAILURE;
486
- throw _context2.t0;
487
-
488
- case 15:
489
- wasSharing = this.meeting.shareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE;
490
- _context2.prev = 16;
491
-
492
- _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Updating meeting data from server.');
493
-
494
- _context2.next = 20;
495
- return this.webex.meetings.syncMeetings();
496
-
497
- case 20:
498
- _context2.next = 26;
388
+ }
389
+ _context2.prev = 4;
390
+ _context2.next = 7;
391
+ return this.reconnectMercuryWebSocket();
392
+ case 7:
393
+ _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Websocket reconnected.', this.webex.internal.device.url);
394
+ _context2.next = 15;
395
+ break;
396
+ case 10:
397
+ _context2.prev = 10;
398
+ _context2.t0 = _context2["catch"](4);
399
+ _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Unable to reconnect to websocket, giving up.');
400
+ this.status = _constants.RECONNECTION.STATE.FAILURE;
401
+ throw _context2.t0;
402
+ case 15:
403
+ wasSharing = this.meeting.shareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE;
404
+ _context2.prev = 16;
405
+ _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Updating meeting data from server.');
406
+ _context2.next = 20;
407
+ return this.webex.meetings.syncMeetings();
408
+ case 20:
409
+ _context2.next = 26;
410
+ break;
411
+ case 22:
412
+ _context2.prev = 22;
413
+ _context2.t1 = _context2["catch"](16);
414
+ _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.', _context2.t1);
415
+ throw new NeedsRetryError(_context2.t1);
416
+ case 26:
417
+ if (!(!this.meeting || !this.webex.meetings.getMeetingByType(_constants._ID_, this.meeting.id))) {
418
+ _context2.next = 29;
499
419
  break;
500
-
501
- case 22:
502
- _context2.prev = 22;
503
- _context2.t1 = _context2["catch"](16);
504
-
505
- _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.', _context2.t1);
506
-
507
- throw new NeedsRetryError(_context2.t1);
508
-
509
- case 26:
510
- if (!(!this.meeting || !this.webex.meetings.getMeetingByType(_constants._ID_, this.meeting.id))) {
511
- _context2.next = 29;
512
- break;
513
- }
514
-
515
- _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely ');
516
-
517
- throw new Error('Unable to rejoin a meeting already ended or inactive .');
518
-
519
- case 29:
520
- _loggerProxy.default.logger.info("ReconnectionManager:index#executeReconnection --> Current state of meeting is ".concat(this.meeting.state)); // If the meeting state was left, no longer reconnect media
521
-
522
-
523
- if (!(this.meeting.state === _constants._LEFT_)) {
524
- _context2.next = 34;
525
- break;
526
- }
527
-
528
- if (!(this.meeting.type === _constants._CALL_)) {
529
- _context2.next = 33;
530
- break;
531
- }
532
-
533
- throw new Error('Unable to rejoin a call in LEFT state.');
534
-
535
- case 33:
536
- throw new NeedsRejoinError({
537
- wasSharing: wasSharing
538
- });
539
-
540
- case 34:
541
- _context2.prev = 34;
542
- _context2.next = 37;
543
- return this.reconnectMedia();
544
-
545
- case 37:
546
- media = _context2.sent;
547
-
548
- _loggerProxy.default.logger.log('ReconnectionManager:index#executeReconnection --> Media reestablished');
549
-
550
- this.status = _constants.RECONNECTION.STATE.COMPLETE;
551
- return _context2.abrupt("return", media);
552
-
553
- case 43:
554
- _context2.prev = 43;
555
- _context2.t2 = _context2["catch"](34);
556
-
557
- _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Media reestablishment failed');
558
-
559
- this.status = _constants.RECONNECTION.STATE.FAILURE;
560
- throw _context2.t2;
561
-
562
- case 48:
563
- case "end":
564
- return _context2.stop();
565
- }
420
+ }
421
+ _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely ');
422
+ throw new Error('Unable to rejoin a meeting already ended or inactive .');
423
+ case 29:
424
+ _loggerProxy.default.logger.info("ReconnectionManager:index#executeReconnection --> Current state of meeting is ".concat(this.meeting.state));
425
+
426
+ // If the meeting state was left, no longer reconnect media
427
+ if (!(this.meeting.state === _constants._LEFT_)) {
428
+ _context2.next = 34;
429
+ break;
430
+ }
431
+ if (!(this.meeting.type === _constants._CALL_)) {
432
+ _context2.next = 33;
433
+ break;
434
+ }
435
+ throw new Error('Unable to rejoin a call in LEFT state.');
436
+ case 33:
437
+ throw new NeedsRejoinError({
438
+ wasSharing: wasSharing
439
+ });
440
+ case 34:
441
+ _context2.prev = 34;
442
+ _context2.next = 37;
443
+ return this.reconnectMedia();
444
+ case 37:
445
+ media = _context2.sent;
446
+ _loggerProxy.default.logger.log('ReconnectionManager:index#executeReconnection --> Media reestablished');
447
+ this.status = _constants.RECONNECTION.STATE.COMPLETE;
448
+ return _context2.abrupt("return", media);
449
+ case 43:
450
+ _context2.prev = 43;
451
+ _context2.t2 = _context2["catch"](34);
452
+ _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Media reestablishment failed');
453
+ this.status = _constants.RECONNECTION.STATE.FAILURE;
454
+ throw _context2.t2;
455
+ case 48:
456
+ case "end":
457
+ return _context2.stop();
566
458
  }
567
459
  }, _callee2, this, [[4, 10], [16, 22], [34, 43]]);
568
460
  }));
569
-
570
461
  function executeReconnection(_x) {
571
462
  return _executeReconnection.apply(this, arguments);
572
463
  }
573
-
574
464
  return executeReconnection;
575
465
  }()
576
466
  /**
@@ -580,114 +470,86 @@ var ReconnectionManager = /*#__PURE__*/function () {
580
470
  * @param {boolean} wasSharing
581
471
  * @returns {Promise}
582
472
  */
583
-
584
473
  }, {
585
474
  key: "rejoinMeeting",
586
475
  value: function () {
587
476
  var _rejoinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
588
477
  var wasSharing,
589
- previousCorrelationId,
590
- _args3 = arguments;
478
+ previousCorrelationId,
479
+ _args3 = arguments;
591
480
  return _regenerator.default.wrap(function _callee3$(_context3) {
592
- while (1) {
593
- switch (_context3.prev = _context3.next) {
594
- case 0:
595
- wasSharing = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;
596
- _context3.prev = 1;
597
-
598
- _loggerProxy.default.logger.info('ReconnectionManager:index#rejoinMeeting --> attemping meeting rejoin');
599
-
600
- previousCorrelationId = this.meeting.correlationId;
601
- _context3.next = 6;
602
- return this.meeting.join({
603
- rejoin: true
604
- });
605
-
606
- case 6:
607
- _loggerProxy.default.logger.info('ReconnectionManager:index#rejoinMeeting --> meeting rejoined');
608
-
609
- _collection.default.deleteSession(previousCorrelationId);
610
-
611
- if (wasSharing) {
612
- // Stop the share streams if user tried to rejoin
613
- _media.default.stopTracks(this.meeting.mediaProperties.shareTrack);
614
-
615
- this.meeting.isSharing = false;
616
-
617
- if (this.shareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE) {
618
- this.meeting.shareStatus = _constants.SHARE_STATUS.NO_SHARE;
619
- }
620
-
621
- this.meeting.mediaProperties.mediaDirection.sendShare = false;
622
-
623
- _triggerProxy.default.trigger(this.meeting, {
624
- file: 'reconnection-manager/index',
625
- function: 'rejoinMeeting'
626
- }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
627
- reason: _constants.SHARE_STOPPED_REASON.MEETING_REJOIN
628
- });
629
- }
630
-
631
- _context3.next = 23;
632
- break;
633
-
634
- case 11:
635
- _context3.prev = 11;
636
- _context3.t0 = _context3["catch"](1);
637
- this.rejoinAttempts += 1;
638
-
639
- if (!(this.rejoinAttempts <= this.maxRejoinAttempts)) {
640
- _context3.next = 19;
641
- break;
481
+ while (1) switch (_context3.prev = _context3.next) {
482
+ case 0:
483
+ wasSharing = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;
484
+ _context3.prev = 1;
485
+ _loggerProxy.default.logger.info('ReconnectionManager:index#rejoinMeeting --> attemping meeting rejoin');
486
+ previousCorrelationId = this.meeting.correlationId;
487
+ _context3.next = 6;
488
+ return this.meeting.join({
489
+ rejoin: true
490
+ });
491
+ case 6:
492
+ _loggerProxy.default.logger.info('ReconnectionManager:index#rejoinMeeting --> meeting rejoined');
493
+ _collection.default.deleteSession(previousCorrelationId);
494
+ if (wasSharing) {
495
+ // Stop the share streams if user tried to rejoin
496
+ _media.default.stopTracks(this.meeting.mediaProperties.shareTrack);
497
+ this.meeting.isSharing = false;
498
+ if (this.shareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE) {
499
+ this.meeting.shareStatus = _constants.SHARE_STATUS.NO_SHARE;
642
500
  }
643
-
644
- _loggerProxy.default.logger.info("ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #".concat(this.rejoinAttempts, ", retrying."), _context3.t0);
645
-
646
- this.rejoinMeeting();
647
- _context3.next = 23;
648
- break;
649
-
650
- case 19:
651
- _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.', _context3.t0);
652
-
653
- _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_MAX_REJOIN_FAILURE, {
654
- locus_id: this.meeting.locusUrl.split('/').pop(),
655
- reason: _context3.t0.message,
656
- stack: _context3.t0.stack
501
+ this.meeting.mediaProperties.mediaDirection.sendShare = false;
502
+ _triggerProxy.default.trigger(this.meeting, {
503
+ file: 'reconnection-manager/index',
504
+ function: 'rejoinMeeting'
505
+ }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
506
+ reason: _constants.SHARE_STOPPED_REASON.MEETING_REJOIN
657
507
  });
658
-
659
- this.status = _constants.RECONNECTION.STATE.FAILURE;
660
- throw _context3.t0;
661
-
662
- case 23:
663
- _context3.prev = 23;
664
- _context3.next = 26;
665
- return this.reconnectMedia();
666
-
667
- case 26:
668
- _context3.next = 32;
508
+ }
509
+ _context3.next = 23;
510
+ break;
511
+ case 11:
512
+ _context3.prev = 11;
513
+ _context3.t0 = _context3["catch"](1);
514
+ this.rejoinAttempts += 1;
515
+ if (!(this.rejoinAttempts <= this.maxRejoinAttempts)) {
516
+ _context3.next = 19;
669
517
  break;
670
-
671
- case 28:
672
- _context3.prev = 28;
673
- _context3.t1 = _context3["catch"](23);
674
-
675
- _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to reestablish media after rejoining.', _context3.t1);
676
-
677
- throw _context3.t1;
678
-
679
- case 32:
680
- case "end":
681
- return _context3.stop();
682
- }
518
+ }
519
+ _loggerProxy.default.logger.info("ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #".concat(this.rejoinAttempts, ", retrying."), _context3.t0);
520
+ this.rejoinMeeting();
521
+ _context3.next = 23;
522
+ break;
523
+ case 19:
524
+ _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.', _context3.t0);
525
+ _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_MAX_REJOIN_FAILURE, {
526
+ locus_id: this.meeting.locusUrl.split('/').pop(),
527
+ reason: _context3.t0.message,
528
+ stack: _context3.t0.stack
529
+ });
530
+ this.status = _constants.RECONNECTION.STATE.FAILURE;
531
+ throw _context3.t0;
532
+ case 23:
533
+ _context3.prev = 23;
534
+ _context3.next = 26;
535
+ return this.reconnectMedia();
536
+ case 26:
537
+ _context3.next = 32;
538
+ break;
539
+ case 28:
540
+ _context3.prev = 28;
541
+ _context3.t1 = _context3["catch"](23);
542
+ _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to reestablish media after rejoining.', _context3.t1);
543
+ throw _context3.t1;
544
+ case 32:
545
+ case "end":
546
+ return _context3.stop();
683
547
  }
684
548
  }, _callee3, this, [[1, 11], [23, 28]]);
685
549
  }));
686
-
687
550
  function rejoinMeeting() {
688
551
  return _rejoinMeeting.apply(this, arguments);
689
552
  }
690
-
691
553
  return rejoinMeeting;
692
554
  }()
693
555
  /**
@@ -695,14 +557,11 @@ var ReconnectionManager = /*#__PURE__*/function () {
695
557
  * @private
696
558
  * @memberof ReconnectionManager
697
559
  */
698
-
699
560
  }, {
700
561
  key: "reconnectMedia",
701
562
  value: function reconnectMedia() {
702
563
  var _this4 = this;
703
-
704
564
  _loggerProxy.default.logger.log('ReconnectionManager:index#reconnectMedia --> Begin reestablishment of media');
705
-
706
565
  return ReconnectionManager.setupPeerConnection(this.meeting).then(function () {
707
566
  return _media.default.attachMedia(_this4.meeting.mediaProperties, {
708
567
  meetingId: _this4.meeting.id,
@@ -714,7 +573,6 @@ var ReconnectionManager = /*#__PURE__*/function () {
714
573
  return _this4.meeting.setRemoteStream(peerConnection);
715
574
  }).then(function () {
716
575
  _loggerProxy.default.logger.log('ReconnectionManager:index#reconnectMedia --> Sending ROAP media request');
717
-
718
576
  return _this4.meeting.roap.sendRoapMediaRequest({
719
577
  sdp: _this4.meeting.mediaProperties.peerConnection.sdp,
720
578
  roapSeq: _this4.meeting.roapSeq,
@@ -723,84 +581,63 @@ var ReconnectionManager = /*#__PURE__*/function () {
723
581
  });
724
582
  });
725
583
  }
584
+
726
585
  /**
727
586
  * Attempt to Reconnect Mercury Websocket
728
587
  * @returns {Promise}
729
588
  * @private
730
589
  * @memberof ReconnectionManager
731
590
  */
732
-
733
591
  }, {
734
592
  key: "reconnectMercuryWebSocket",
735
593
  value: function () {
736
594
  var _reconnectMercuryWebSocket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
737
595
  return _regenerator.default.wrap(function _callee4$(_context4) {
738
- while (1) {
739
- switch (_context4.prev = _context4.next) {
740
- case 0:
741
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Reconnecting websocket.'); // First, attempt to disconnect if we think we are already connected.
742
-
743
-
744
- if (!this.webex.internal.mercury.connected) {
745
- _context4.next = 13;
746
- break;
747
- }
748
-
749
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Disconnecting existing websocket.');
750
-
751
- _context4.prev = 3;
752
- _context4.next = 6;
753
- return this.webex.internal.mercury.disconnect();
754
-
755
- case 6:
756
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket disconnected successfully.');
757
-
596
+ while (1) switch (_context4.prev = _context4.next) {
597
+ case 0:
598
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Reconnecting websocket.');
599
+ // First, attempt to disconnect if we think we are already connected.
600
+ if (!this.webex.internal.mercury.connected) {
758
601
  _context4.next = 13;
759
602
  break;
760
-
761
- case 9:
762
- _context4.prev = 9;
763
- _context4.t0 = _context4["catch"](3);
764
-
765
- // If we can't disconnect, the sdk is in such a bad state that reconnecting is not going to happen.
766
- _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.', _context4.t0);
767
-
768
- throw _context4.t0;
769
-
770
- case 13:
771
- _context4.prev = 13;
772
-
773
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Connecting websocket.');
774
-
775
- _context4.next = 17;
776
- return this.webex.internal.mercury.connect();
777
-
778
- case 17:
779
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket connected successfully.');
780
-
781
- _context4.next = 24;
782
- break;
783
-
784
- case 20:
785
- _context4.prev = 20;
786
- _context4.t1 = _context4["catch"](13);
787
-
788
- _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.', _context4.t1);
789
-
790
- throw _context4.t1;
791
-
792
- case 24:
793
- case "end":
794
- return _context4.stop();
795
- }
603
+ }
604
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Disconnecting existing websocket.');
605
+ _context4.prev = 3;
606
+ _context4.next = 6;
607
+ return this.webex.internal.mercury.disconnect();
608
+ case 6:
609
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket disconnected successfully.');
610
+ _context4.next = 13;
611
+ break;
612
+ case 9:
613
+ _context4.prev = 9;
614
+ _context4.t0 = _context4["catch"](3);
615
+ // If we can't disconnect, the sdk is in such a bad state that reconnecting is not going to happen.
616
+ _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.', _context4.t0);
617
+ throw _context4.t0;
618
+ case 13:
619
+ _context4.prev = 13;
620
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Connecting websocket.');
621
+ _context4.next = 17;
622
+ return this.webex.internal.mercury.connect();
623
+ case 17:
624
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket connected successfully.');
625
+ _context4.next = 24;
626
+ break;
627
+ case 20:
628
+ _context4.prev = 20;
629
+ _context4.t1 = _context4["catch"](13);
630
+ _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.', _context4.t1);
631
+ throw _context4.t1;
632
+ case 24:
633
+ case "end":
634
+ return _context4.stop();
796
635
  }
797
636
  }, _callee4, this, [[3, 9], [13, 20]]);
798
637
  }));
799
-
800
638
  function reconnectMercuryWebSocket() {
801
639
  return _reconnectMercuryWebSocket.apply(this, arguments);
802
640
  }
803
-
804
641
  return reconnectMercuryWebSocket;
805
642
  }()
806
643
  /**
@@ -809,51 +646,40 @@ var ReconnectionManager = /*#__PURE__*/function () {
809
646
  * @private
810
647
  * @memberof ReconnectionManager
811
648
  */
812
-
813
649
  }], [{
814
650
  key: "setupPeerConnection",
815
651
  value: function () {
816
652
  var _setupPeerConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(meeting) {
817
653
  var turnServerResult;
818
654
  return _regenerator.default.wrap(function _callee5$(_context5) {
819
- while (1) {
820
- switch (_context5.prev = _context5.next) {
821
- case 0:
822
- _loggerProxy.default.logger.log('ReconnectionManager:index#setupPeerConnection --> Begin resetting peer connection'); // close pcs, unset to null and create a new one with out closing any streams
823
-
824
-
825
- _peerConnectionManager.default.close(meeting.mediaProperties.peerConnection);
826
-
827
- meeting.mediaProperties.unsetPeerConnection();
828
- _context5.next = 5;
829
- return meeting.roap.doTurnDiscovery(meeting, true);
830
-
831
- case 5:
832
- turnServerResult = _context5.sent;
833
- meeting.mediaProperties.reInitiatePeerconnection(turnServerResult.turnServerInfo);
834
-
835
- _peerConnectionManager.default.setPeerConnectionEvents(meeting); // update the peerconnection in the stats manager when ever we reconnect
836
-
837
-
838
- meeting.statsAnalyzer.updatePeerconnection(meeting.mediaProperties.peerConnection);
839
-
840
- case 9:
841
- case "end":
842
- return _context5.stop();
843
- }
655
+ while (1) switch (_context5.prev = _context5.next) {
656
+ case 0:
657
+ _loggerProxy.default.logger.log('ReconnectionManager:index#setupPeerConnection --> Begin resetting peer connection');
658
+ // close pcs, unset to null and create a new one with out closing any streams
659
+ _peerConnectionManager.default.close(meeting.mediaProperties.peerConnection);
660
+ meeting.mediaProperties.unsetPeerConnection();
661
+ _context5.next = 5;
662
+ return meeting.roap.doTurnDiscovery(meeting, true);
663
+ case 5:
664
+ turnServerResult = _context5.sent;
665
+ meeting.mediaProperties.reInitiatePeerconnection(turnServerResult.turnServerInfo);
666
+ _peerConnectionManager.default.setPeerConnectionEvents(meeting);
667
+
668
+ // update the peerconnection in the stats manager when ever we reconnect
669
+ meeting.statsAnalyzer.updatePeerconnection(meeting.mediaProperties.peerConnection);
670
+ case 9:
671
+ case "end":
672
+ return _context5.stop();
844
673
  }
845
674
  }, _callee5);
846
675
  }));
847
-
848
676
  function setupPeerConnection(_x2) {
849
677
  return _setupPeerConnection.apply(this, arguments);
850
678
  }
851
-
852
679
  return setupPeerConnection;
853
680
  }()
854
681
  }]);
855
682
  return ReconnectionManager;
856
683
  }();
857
-
858
684
  exports.default = ReconnectionManager;
859
685
  //# sourceMappingURL=index.js.map