@webex/plugin-meetings 3.0.0-beta.15 → 3.0.0-beta.151

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