@webex/plugin-meetings 3.0.0-beta.7 → 3.0.0-beta.71

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