@webex/plugin-meetings 3.0.0-beta.16 → 3.0.0-beta.161

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 (424) 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 +212 -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/errors/webex-errors.js +3 -2
  23. package/dist/common/errors/webex-errors.js.map +1 -1
  24. package/dist/common/logs/logger-proxy.js +1 -1
  25. package/dist/common/logs/logger-proxy.js.map +1 -1
  26. package/dist/config.js +6 -8
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +175 -26
  29. package/dist/constants.js.map +1 -1
  30. package/dist/controls-options-manager/constants.js +14 -0
  31. package/dist/controls-options-manager/constants.js.map +1 -0
  32. package/dist/controls-options-manager/enums.js +27 -0
  33. package/dist/controls-options-manager/enums.js.map +1 -0
  34. package/dist/controls-options-manager/index.js +297 -0
  35. package/dist/controls-options-manager/index.js.map +1 -0
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +300 -0
  39. package/dist/controls-options-manager/util.js.map +1 -0
  40. package/dist/index.js +77 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/interpretation/collection.js +23 -0
  43. package/dist/interpretation/collection.js.map +1 -0
  44. package/dist/interpretation/index.js +214 -0
  45. package/dist/interpretation/index.js.map +1 -0
  46. package/dist/interpretation/siLanguage.js +25 -0
  47. package/dist/interpretation/siLanguage.js.map +1 -0
  48. package/dist/locus-info/controlsUtils.js +92 -2
  49. package/dist/locus-info/controlsUtils.js.map +1 -1
  50. package/dist/locus-info/index.js +317 -24
  51. package/dist/locus-info/index.js.map +1 -1
  52. package/dist/locus-info/mediaSharesUtils.js +43 -1
  53. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  54. package/dist/locus-info/parser.js +2 -1
  55. package/dist/locus-info/parser.js.map +1 -1
  56. package/dist/locus-info/selfUtils.js +97 -14
  57. package/dist/locus-info/selfUtils.js.map +1 -1
  58. package/dist/media/index.js +39 -134
  59. package/dist/media/index.js.map +1 -1
  60. package/dist/media/properties.js +19 -97
  61. package/dist/media/properties.js.map +1 -1
  62. package/dist/mediaQualityMetrics/config.js +505 -493
  63. package/dist/mediaQualityMetrics/config.js.map +1 -1
  64. package/dist/meeting/in-meeting-actions.js +79 -1
  65. package/dist/meeting/in-meeting-actions.js.map +1 -1
  66. package/dist/meeting/index.js +2349 -2178
  67. package/dist/meeting/index.js.map +1 -1
  68. package/dist/meeting/locusMediaRequest.js +291 -0
  69. package/dist/meeting/locusMediaRequest.js.map +1 -0
  70. package/dist/meeting/muteState.js +229 -124
  71. package/dist/meeting/muteState.js.map +1 -1
  72. package/dist/meeting/request.js +191 -167
  73. package/dist/meeting/request.js.map +1 -1
  74. package/dist/meeting/request.type.js.map +1 -1
  75. package/dist/meeting/util.js +444 -443
  76. package/dist/meeting/util.js.map +1 -1
  77. package/dist/meeting-info/meeting-info-v2.js +157 -49
  78. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  79. package/dist/meeting-info/utilv2.js +20 -5
  80. package/dist/meeting-info/utilv2.js.map +1 -1
  81. package/dist/meetings/collection.js +22 -0
  82. package/dist/meetings/collection.js.map +1 -1
  83. package/dist/meetings/index.js +365 -73
  84. package/dist/meetings/index.js.map +1 -1
  85. package/dist/meetings/meetings.types.js +7 -0
  86. package/dist/meetings/meetings.types.js.map +1 -0
  87. package/dist/meetings/request.js +16 -12
  88. package/dist/meetings/request.js.map +1 -1
  89. package/dist/meetings/util.js +88 -1
  90. package/dist/meetings/util.js.map +1 -1
  91. package/dist/member/index.js +43 -0
  92. package/dist/member/index.js.map +1 -1
  93. package/dist/member/types.js +15 -0
  94. package/dist/member/types.js.map +1 -0
  95. package/dist/member/util.js +97 -3
  96. package/dist/member/util.js.map +1 -1
  97. package/dist/members/collection.js +10 -0
  98. package/dist/members/collection.js.map +1 -1
  99. package/dist/members/index.js +94 -11
  100. package/dist/members/index.js.map +1 -1
  101. package/dist/members/request.js +109 -39
  102. package/dist/members/request.js.map +1 -1
  103. package/dist/members/types.js +15 -0
  104. package/dist/members/types.js.map +1 -0
  105. package/dist/members/util.js +316 -233
  106. package/dist/members/util.js.map +1 -1
  107. package/dist/metrics/config.js +50 -14
  108. package/dist/metrics/config.js.map +1 -1
  109. package/dist/metrics/constants.js +3 -5
  110. package/dist/metrics/constants.js.map +1 -1
  111. package/dist/metrics/index.js +48 -29
  112. package/dist/metrics/index.js.map +1 -1
  113. package/dist/multistream/mediaRequestManager.js +265 -36
  114. package/dist/multistream/mediaRequestManager.js.map +1 -1
  115. package/dist/multistream/receiveSlot.js +52 -19
  116. package/dist/multistream/receiveSlot.js.map +1 -1
  117. package/dist/multistream/receiveSlotManager.js +53 -33
  118. package/dist/multistream/receiveSlotManager.js.map +1 -1
  119. package/dist/multistream/remoteMedia.js +44 -18
  120. package/dist/multistream/remoteMedia.js.map +1 -1
  121. package/dist/multistream/remoteMediaGroup.js +60 -3
  122. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  123. package/dist/multistream/remoteMediaManager.js +322 -103
  124. package/dist/multistream/remoteMediaManager.js.map +1 -1
  125. package/dist/networkQualityMonitor/index.js +4 -2
  126. package/dist/networkQualityMonitor/index.js.map +1 -1
  127. package/dist/reachability/index.js +117 -60
  128. package/dist/reachability/index.js.map +1 -1
  129. package/dist/reachability/request.js +12 -5
  130. package/dist/reachability/request.js.map +1 -1
  131. package/dist/reactions/constants.js +13 -0
  132. package/dist/reactions/constants.js.map +1 -0
  133. package/dist/reactions/reactions.js +2 -2
  134. package/dist/reactions/reactions.js.map +1 -1
  135. package/dist/reactions/reactions.type.js +18 -18
  136. package/dist/reactions/reactions.type.js.map +1 -1
  137. package/dist/reconnection-manager/index.js +190 -145
  138. package/dist/reconnection-manager/index.js.map +1 -1
  139. package/dist/recording-controller/enums.js +17 -0
  140. package/dist/recording-controller/enums.js.map +1 -0
  141. package/dist/recording-controller/index.js +343 -0
  142. package/dist/recording-controller/index.js.map +1 -0
  143. package/dist/recording-controller/util.js +63 -0
  144. package/dist/recording-controller/util.js.map +1 -0
  145. package/dist/roap/index.js +21 -29
  146. package/dist/roap/index.js.map +1 -1
  147. package/dist/roap/request.js +127 -92
  148. package/dist/roap/request.js.map +1 -1
  149. package/dist/roap/turnDiscovery.js +135 -53
  150. package/dist/roap/turnDiscovery.js.map +1 -1
  151. package/dist/statsAnalyzer/global.js +1 -93
  152. package/dist/statsAnalyzer/global.js.map +1 -1
  153. package/dist/statsAnalyzer/index.js +329 -314
  154. package/dist/statsAnalyzer/index.js.map +1 -1
  155. package/dist/statsAnalyzer/mqaUtil.js +103 -54
  156. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  157. package/dist/types/annotation/annotation.types.d.ts +43 -0
  158. package/dist/types/annotation/constants.d.ts +31 -0
  159. package/dist/types/annotation/index.d.ts +124 -0
  160. package/dist/types/breakouts/breakout.d.ts +8 -0
  161. package/dist/types/breakouts/collection.d.ts +5 -0
  162. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  163. package/dist/types/breakouts/events.d.ts +2 -0
  164. package/dist/types/breakouts/index.d.ts +5 -0
  165. package/dist/types/breakouts/request.d.ts +22 -0
  166. package/dist/types/breakouts/utils.d.ts +15 -0
  167. package/dist/types/common/browser-detection.d.ts +9 -0
  168. package/dist/types/common/collection.d.ts +48 -0
  169. package/dist/types/common/config.d.ts +2 -0
  170. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  171. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  172. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  173. package/dist/types/common/errors/media.d.ts +15 -0
  174. package/dist/types/common/errors/parameter.d.ts +15 -0
  175. package/dist/types/common/errors/password-error.d.ts +15 -0
  176. package/dist/types/common/errors/permission.d.ts +14 -0
  177. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  178. package/dist/types/common/errors/reconnection.d.ts +15 -0
  179. package/dist/types/common/errors/stats.d.ts +15 -0
  180. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  181. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  182. package/dist/types/common/events/events-scope.d.ts +17 -0
  183. package/dist/types/common/events/events.d.ts +12 -0
  184. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  185. package/dist/types/common/events/util.d.ts +2 -0
  186. package/dist/types/common/logs/logger-config.d.ts +2 -0
  187. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  188. package/dist/types/common/logs/request.d.ts +34 -0
  189. package/dist/types/common/queue.d.ts +32 -0
  190. package/dist/types/config.d.ts +72 -0
  191. package/dist/types/constants.d.ts +987 -0
  192. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  193. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  194. package/dist/types/controls-options-manager/index.d.ts +136 -0
  195. package/dist/types/controls-options-manager/types.d.ts +43 -0
  196. package/dist/types/controls-options-manager/util.d.ts +1 -0
  197. package/dist/types/index.d.ts +7 -0
  198. package/dist/types/interpretation/collection.d.ts +5 -0
  199. package/dist/types/interpretation/index.d.ts +5 -0
  200. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  201. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  202. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  203. package/dist/types/locus-info/fullState.d.ts +2 -0
  204. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  205. package/dist/types/locus-info/index.d.ts +315 -0
  206. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  207. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  208. package/dist/types/locus-info/parser.d.ts +212 -0
  209. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  210. package/dist/types/media/index.d.ts +34 -0
  211. package/dist/types/media/properties.d.ts +86 -0
  212. package/dist/types/media/util.d.ts +2 -0
  213. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  214. package/dist/types/meeting/in-meeting-actions.d.ts +149 -0
  215. package/dist/types/meeting/index.d.ts +1524 -0
  216. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  217. package/dist/types/meeting/muteState.d.ts +184 -0
  218. package/dist/types/meeting/request.d.ts +270 -0
  219. package/dist/types/meeting/request.type.d.ts +11 -0
  220. package/dist/types/meeting/state.d.ts +9 -0
  221. package/dist/types/meeting/util.d.ts +75 -0
  222. package/dist/types/meeting-info/collection.d.ts +20 -0
  223. package/dist/types/meeting-info/index.d.ts +57 -0
  224. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  225. package/dist/types/meeting-info/request.d.ts +22 -0
  226. package/dist/types/meeting-info/util.d.ts +2 -0
  227. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  228. package/dist/types/meetings/collection.d.ts +31 -0
  229. package/dist/types/meetings/index.d.ts +364 -0
  230. package/dist/types/meetings/meetings.types.d.ts +4 -0
  231. package/dist/types/meetings/request.d.ts +27 -0
  232. package/dist/types/meetings/util.d.ts +18 -0
  233. package/dist/types/member/index.d.ts +158 -0
  234. package/dist/types/member/types.d.ts +21 -0
  235. package/dist/types/member/util.d.ts +2 -0
  236. package/dist/types/members/collection.d.ts +29 -0
  237. package/dist/types/members/index.d.ts +353 -0
  238. package/dist/types/members/request.d.ts +114 -0
  239. package/dist/types/members/types.d.ts +24 -0
  240. package/dist/types/members/util.d.ts +210 -0
  241. package/dist/types/metrics/config.d.ts +195 -0
  242. package/dist/types/metrics/constants.d.ts +55 -0
  243. package/dist/types/metrics/index.d.ts +169 -0
  244. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  245. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  246. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  247. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  248. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  249. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  250. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  251. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  252. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  253. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  254. package/dist/types/reachability/index.d.ts +152 -0
  255. package/dist/types/reachability/request.d.ts +37 -0
  256. package/dist/types/reactions/constants.d.ts +3 -0
  257. package/dist/types/reactions/reactions.d.ts +4 -0
  258. package/dist/types/reactions/reactions.type.d.ts +52 -0
  259. package/dist/types/reconnection-manager/index.d.ts +126 -0
  260. package/dist/types/recording-controller/enums.d.ts +7 -0
  261. package/dist/types/recording-controller/index.d.ts +193 -0
  262. package/dist/types/recording-controller/util.d.ts +13 -0
  263. package/dist/types/roap/index.d.ts +77 -0
  264. package/dist/types/roap/request.d.ts +36 -0
  265. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  266. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  267. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  268. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  269. package/dist/types/transcription/index.d.ts +64 -0
  270. package/package.json +28 -21
  271. package/src/annotation/annotation.types.ts +52 -0
  272. package/src/annotation/constants.ts +36 -0
  273. package/src/annotation/index.ts +343 -0
  274. package/src/breakouts/README.md +220 -0
  275. package/src/breakouts/breakout.ts +180 -0
  276. package/src/breakouts/collection.ts +19 -0
  277. package/src/breakouts/edit-lock-error.ts +25 -0
  278. package/src/breakouts/events.ts +37 -0
  279. package/src/breakouts/index.ts +921 -0
  280. package/src/breakouts/request.ts +55 -0
  281. package/src/breakouts/utils.ts +57 -0
  282. package/src/common/errors/webex-errors.ts +6 -2
  283. package/src/common/logs/logger-proxy.ts +1 -1
  284. package/src/config.ts +5 -7
  285. package/src/constants.ts +165 -20
  286. package/src/controls-options-manager/constants.ts +5 -0
  287. package/src/controls-options-manager/enums.ts +18 -0
  288. package/src/controls-options-manager/index.ts +278 -0
  289. package/src/controls-options-manager/types.ts +59 -0
  290. package/src/controls-options-manager/util.ts +286 -0
  291. package/src/index.ts +34 -0
  292. package/src/interpretation/README.md +51 -0
  293. package/src/interpretation/collection.ts +19 -0
  294. package/src/interpretation/index.ts +182 -0
  295. package/src/interpretation/siLanguage.ts +18 -0
  296. package/src/locus-info/controlsUtils.ts +110 -0
  297. package/src/locus-info/index.ts +339 -21
  298. package/src/locus-info/mediaSharesUtils.ts +48 -0
  299. package/src/locus-info/parser.ts +2 -1
  300. package/src/locus-info/selfUtils.ts +86 -2
  301. package/src/media/index.ts +70 -142
  302. package/src/media/properties.ts +41 -104
  303. package/src/mediaQualityMetrics/config.ts +379 -377
  304. package/src/meeting/in-meeting-actions.ts +156 -0
  305. package/src/meeting/index.ts +1779 -1741
  306. package/src/meeting/locusMediaRequest.ts +309 -0
  307. package/src/meeting/muteState.ts +228 -132
  308. package/src/meeting/request.ts +100 -91
  309. package/src/meeting/request.type.ts +2 -0
  310. package/src/meeting/util.ts +422 -421
  311. package/src/meeting-info/meeting-info-v2.ts +134 -13
  312. package/src/meeting-info/utilv2.ts +13 -3
  313. package/src/meetings/collection.ts +20 -0
  314. package/src/meetings/index.ts +385 -83
  315. package/src/meetings/meetings.types.ts +12 -0
  316. package/src/meetings/request.ts +3 -1
  317. package/src/meetings/util.ts +103 -4
  318. package/src/member/index.ts +42 -0
  319. package/src/member/types.ts +24 -0
  320. package/src/member/util.ts +95 -1
  321. package/src/members/collection.ts +8 -0
  322. package/src/members/index.ts +108 -6
  323. package/src/members/request.ts +98 -17
  324. package/src/members/types.ts +28 -0
  325. package/src/members/util.ts +319 -240
  326. package/src/metrics/config.ts +49 -10
  327. package/src/metrics/constants.ts +2 -4
  328. package/src/metrics/index.ts +43 -27
  329. package/src/multistream/mediaRequestManager.ts +337 -63
  330. package/src/multistream/receiveSlot.ts +68 -26
  331. package/src/multistream/receiveSlotManager.ts +61 -38
  332. package/src/multistream/remoteMedia.ts +29 -3
  333. package/src/multistream/remoteMediaGroup.ts +61 -2
  334. package/src/multistream/remoteMediaManager.ts +260 -66
  335. package/src/networkQualityMonitor/index.ts +6 -6
  336. package/src/reachability/index.ts +75 -25
  337. package/src/reachability/request.ts +10 -5
  338. package/src/reactions/constants.ts +4 -0
  339. package/src/reactions/reactions.ts +4 -4
  340. package/src/reactions/reactions.type.ts +28 -3
  341. package/src/reconnection-manager/index.ts +53 -32
  342. package/src/recording-controller/enums.ts +8 -0
  343. package/src/recording-controller/index.ts +315 -0
  344. package/src/recording-controller/util.ts +58 -0
  345. package/src/roap/index.ts +21 -30
  346. package/src/roap/request.ts +51 -52
  347. package/src/roap/turnDiscovery.ts +51 -27
  348. package/src/statsAnalyzer/global.ts +1 -94
  349. package/src/statsAnalyzer/index.ts +380 -390
  350. package/src/statsAnalyzer/mqaUtil.ts +106 -99
  351. package/test/integration/spec/converged-space-meetings.js +233 -0
  352. package/test/integration/spec/journey.js +331 -254
  353. package/test/integration/spec/space-meeting.js +77 -4
  354. package/test/unit/spec/annotation/index.ts +436 -0
  355. package/test/unit/spec/breakouts/breakout.ts +233 -0
  356. package/test/unit/spec/breakouts/collection.ts +15 -0
  357. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  358. package/test/unit/spec/breakouts/events.ts +77 -0
  359. package/test/unit/spec/breakouts/index.ts +1790 -0
  360. package/test/unit/spec/breakouts/request.ts +104 -0
  361. package/test/unit/spec/breakouts/utils.js +72 -0
  362. package/test/unit/spec/controls-options-manager/index.js +287 -0
  363. package/test/unit/spec/controls-options-manager/util.js +518 -0
  364. package/test/unit/spec/fixture/locus.js +1 -0
  365. package/test/unit/spec/interpretation/collection.ts +15 -0
  366. package/test/unit/spec/interpretation/index.ts +329 -0
  367. package/test/unit/spec/interpretation/siLanguage.ts +26 -0
  368. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  369. package/test/unit/spec/locus-info/index.js +680 -4
  370. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  371. package/test/unit/spec/locus-info/selfConstant.js +48 -0
  372. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  373. package/test/unit/spec/media/index.ts +118 -22
  374. package/test/unit/spec/media/properties.ts +9 -9
  375. package/test/unit/spec/meeting/in-meeting-actions.ts +76 -0
  376. package/test/unit/spec/meeting/index.js +2695 -1513
  377. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  378. package/test/unit/spec/meeting/muteState.js +370 -208
  379. package/test/unit/spec/meeting/request.js +354 -42
  380. package/test/unit/spec/meeting/utils.js +270 -156
  381. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  382. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  383. package/test/unit/spec/meetings/collection.js +14 -0
  384. package/test/unit/spec/meetings/index.js +866 -120
  385. package/test/unit/spec/meetings/utils.js +206 -2
  386. package/test/unit/spec/member/index.js +31 -0
  387. package/test/unit/spec/member/util.js +408 -32
  388. package/test/unit/spec/members/index.js +320 -1
  389. package/test/unit/spec/members/request.js +206 -27
  390. package/test/unit/spec/members/utils.js +184 -0
  391. package/test/unit/spec/metrics/index.js +98 -0
  392. package/test/unit/spec/multistream/mediaRequestManager.ts +1012 -109
  393. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  394. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  395. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  396. package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
  397. package/test/unit/spec/multistream/remoteMediaManager.ts +672 -65
  398. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  399. package/test/unit/spec/reachability/index.ts +176 -25
  400. package/test/unit/spec/reachability/request.js +66 -0
  401. package/test/unit/spec/reconnection-manager/index.js +46 -13
  402. package/test/unit/spec/recording-controller/index.js +231 -0
  403. package/test/unit/spec/recording-controller/util.js +102 -0
  404. package/test/unit/spec/roap/index.ts +21 -51
  405. package/test/unit/spec/roap/request.ts +187 -0
  406. package/test/unit/spec/roap/turnDiscovery.ts +73 -34
  407. package/test/unit/spec/stats-analyzer/index.js +94 -43
  408. package/test/utils/constants.js +9 -0
  409. package/test/utils/integrationTestUtils.js +46 -0
  410. package/test/utils/testUtils.js +0 -45
  411. package/test/utils/webex-config.js +4 -0
  412. package/test/utils/webex-test-users.js +7 -3
  413. package/tsconfig.json +6 -0
  414. package/dist/media/internal-media-core-wrapper.js +0 -18
  415. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  416. package/dist/meeting/effectsState.js +0 -262
  417. package/dist/meeting/effectsState.js.map +0 -1
  418. package/dist/multistream/multistreamMedia.js +0 -106
  419. package/dist/multistream/multistreamMedia.js.map +0 -1
  420. package/src/index.js +0 -15
  421. package/src/media/internal-media-core-wrapper.ts +0 -9
  422. package/src/meeting/effectsState.ts +0 -211
  423. package/src/multistream/multistreamMedia.ts +0 -93
  424. package/test/unit/spec/meeting/effectsState.js +0 -281
@@ -9,6 +9,7 @@ _Object$defineProperty(exports, "__esModule", {
9
9
  exports.default = void 0;
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
11
11
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
12
+ var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
12
13
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
13
14
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
14
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
@@ -25,7 +26,6 @@ var _constants2 = _interopRequireDefault(require("../metrics/constants"));
25
26
  var _reconnection = _interopRequireDefault(require("../common/errors/reconnection"));
26
27
  var _reconnectionInProgress = _interopRequireDefault(require("../common/errors/reconnection-in-progress"));
27
28
  var _config = require("../metrics/config");
28
- var _media = _interopRequireDefault(require("../media"));
29
29
  var _metrics = _interopRequireDefault(require("../metrics"));
30
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); }; }
31
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; } }
@@ -246,6 +246,42 @@ var ReconnectionManager = /*#__PURE__*/function () {
246
246
  this.meeting = null;
247
247
  }
248
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
+ }()
249
285
  /**
250
286
  * @public
251
287
  * @memberof ReconnectionManager
@@ -289,29 +325,29 @@ var ReconnectionManager = /*#__PURE__*/function () {
289
325
  }, {
290
326
  key: "reconnect",
291
327
  value: function () {
292
- var _reconnect = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
328
+ var _reconnect = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
293
329
  var _this3 = this;
294
330
  var _ref2,
295
331
  _ref2$networkDisconne,
296
332
  networkDisconnect,
297
333
  _ref2$networkRetry,
298
334
  networkRetry,
299
- _args = arguments;
300
- return _regenerator.default.wrap(function _callee$(_context) {
301
- while (1) switch (_context.prev = _context.next) {
335
+ _args2 = arguments;
336
+ return _regenerator.default.wrap(function _callee2$(_context2) {
337
+ while (1) switch (_context2.prev = _context2.next) {
302
338
  case 0:
303
- _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;
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;
304
340
  _loggerProxy.default.logger.info("ReconnectionManager:index#reconnect --> Reconnection start for meeting ".concat(this.meeting.id, "."));
305
341
  // First, validate that we can reconnect, if not, it will throw an error
306
- _context.prev = 2;
342
+ _context2.prev = 2;
307
343
  this.validate();
308
- _context.next = 10;
344
+ _context2.next = 10;
309
345
  break;
310
346
  case 6:
311
- _context.prev = 6;
312
- _context.t0 = _context["catch"](2);
313
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection unable to begin.', _context.t0);
314
- throw _context.t0;
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;
315
351
  case 10:
316
352
  if (!networkRetry) {
317
353
  // Only log START metrics on the initial reconnect
@@ -321,7 +357,7 @@ var ReconnectionManager = /*#__PURE__*/function () {
321
357
  meeting: this.meeting
322
358
  });
323
359
  }
324
- return _context.abrupt("return", this.executeReconnection({
360
+ return _context2.abrupt("return", this.executeReconnection({
325
361
  networkDisconnect: networkDisconnect
326
362
  }).then(function () {
327
363
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection successful.');
@@ -374,9 +410,9 @@ var ReconnectionManager = /*#__PURE__*/function () {
374
410
  }));
375
411
  case 12:
376
412
  case "end":
377
- return _context.stop();
413
+ return _context2.stop();
378
414
  }
379
- }, _callee, this, [[2, 6]]);
415
+ }, _callee2, this, [[2, 6]]);
380
416
  }));
381
417
  function reconnect() {
382
418
  return _reconnect.apply(this, arguments);
@@ -394,91 +430,98 @@ var ReconnectionManager = /*#__PURE__*/function () {
394
430
  }, {
395
431
  key: "executeReconnection",
396
432
  value: function () {
397
- 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) {
398
434
  var _ref3$networkDisconne, networkDisconnect, wasSharing, media;
399
- return _regenerator.default.wrap(function _callee2$(_context2) {
400
- while (1) switch (_context2.prev = _context2.next) {
435
+ return _regenerator.default.wrap(function _callee3$(_context3) {
436
+ while (1) switch (_context3.prev = _context3.next) {
401
437
  case 0:
402
438
  _ref3$networkDisconne = _ref3.networkDisconnect, networkDisconnect = _ref3$networkDisconne === void 0 ? false : _ref3$networkDisconne;
403
439
  this.status = _constants.RECONNECTION.STATE.IN_PROGRESS;
404
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;
444
+ break;
445
+ }
446
+ _context3.next = 7;
447
+ return this.stopLocalShareTrack(_constants.SHARE_STOPPED_REASON.MEDIA_RECONNECTION);
448
+ case 7:
405
449
  if (!networkDisconnect) {
406
- _context2.next = 15;
450
+ _context3.next = 19;
407
451
  break;
408
452
  }
409
- _context2.prev = 4;
410
- _context2.next = 7;
453
+ _context3.prev = 8;
454
+ _context3.next = 11;
411
455
  return this.reconnectMercuryWebSocket();
412
- case 7:
456
+ case 11:
413
457
  _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Websocket reconnected.', this.webex.internal.device.url);
414
- _context2.next = 15;
458
+ _context3.next = 19;
415
459
  break;
416
- case 10:
417
- _context2.prev = 10;
418
- _context2.t0 = _context2["catch"](4);
460
+ case 14:
461
+ _context3.prev = 14;
462
+ _context3.t0 = _context3["catch"](8);
419
463
  _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Unable to reconnect to websocket, giving up.');
420
464
  this.status = _constants.RECONNECTION.STATE.FAILURE;
421
- throw _context2.t0;
422
- case 15:
423
- wasSharing = this.meeting.shareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE;
424
- _context2.prev = 16;
465
+ throw _context3.t0;
466
+ case 19:
467
+ _context3.prev = 19;
425
468
  _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Updating meeting data from server.');
426
- _context2.next = 20;
469
+ _context3.next = 23;
427
470
  return this.webex.meetings.syncMeetings();
428
- case 20:
429
- _context2.next = 26;
471
+ case 23:
472
+ _context3.next = 29;
430
473
  break;
431
- case 22:
432
- _context2.prev = 22;
433
- _context2.t1 = _context2["catch"](16);
434
- _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.', _context2.t1);
435
- throw new NeedsRetryError(_context2.t1);
436
- case 26:
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:
437
480
  if (!(!this.meeting || !this.webex.meetings.getMeetingByType(_constants._ID_, this.meeting.id))) {
438
- _context2.next = 29;
481
+ _context3.next = 32;
439
482
  break;
440
483
  }
441
- _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely ');
442
- throw new Error('Unable to rejoin a meeting already ended or inactive .');
443
- case 29:
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:
444
487
  _loggerProxy.default.logger.info("ReconnectionManager:index#executeReconnection --> Current state of meeting is ".concat(this.meeting.state));
445
488
 
446
489
  // If the meeting state was left, no longer reconnect media
447
490
  if (!(this.meeting.state === _constants._LEFT_)) {
448
- _context2.next = 34;
491
+ _context3.next = 37;
449
492
  break;
450
493
  }
451
494
  if (!(this.meeting.type === _constants._CALL_)) {
452
- _context2.next = 33;
495
+ _context3.next = 36;
453
496
  break;
454
497
  }
455
498
  throw new Error('Unable to rejoin a call in LEFT state.');
456
- case 33:
499
+ case 36:
457
500
  throw new NeedsRejoinError({
458
501
  wasSharing: wasSharing
459
502
  });
460
- case 34:
461
- _context2.prev = 34;
462
- _context2.next = 37;
463
- return this.reconnectMedia();
464
503
  case 37:
465
- media = _context2.sent;
504
+ _context3.prev = 37;
505
+ _context3.next = 40;
506
+ return this.reconnectMedia();
507
+ case 40:
508
+ media = _context3.sent;
466
509
  _loggerProxy.default.logger.log('ReconnectionManager:index#executeReconnection --> Media reestablished');
467
510
  this.status = _constants.RECONNECTION.STATE.COMPLETE;
468
- return _context2.abrupt("return", media);
469
- case 43:
470
- _context2.prev = 43;
471
- _context2.t2 = _context2["catch"](34);
511
+ return _context3.abrupt("return", media);
512
+ case 46:
513
+ _context3.prev = 46;
514
+ _context3.t2 = _context3["catch"](37);
472
515
  _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Media reestablishment failed');
473
516
  this.status = _constants.RECONNECTION.STATE.FAILURE;
474
- throw _context2.t2;
475
- case 48:
517
+ throw _context3.t2;
518
+ case 51:
476
519
  case "end":
477
- return _context2.stop();
520
+ return _context3.stop();
478
521
  }
479
- }, _callee2, this, [[4, 10], [16, 22], [34, 43]]);
522
+ }, _callee3, this, [[8, 14], [19, 25], [37, 46]]);
480
523
  }));
481
- function executeReconnection(_x) {
524
+ function executeReconnection(_x2) {
482
525
  return _executeReconnection.apply(this, arguments);
483
526
  }
484
527
  return executeReconnection;
@@ -493,76 +536,68 @@ var ReconnectionManager = /*#__PURE__*/function () {
493
536
  }, {
494
537
  key: "rejoinMeeting",
495
538
  value: function () {
496
- var _rejoinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
539
+ var _rejoinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
497
540
  var wasSharing,
498
- _args3 = arguments;
499
- return _regenerator.default.wrap(function _callee3$(_context3) {
500
- while (1) switch (_context3.prev = _context3.next) {
541
+ _args4 = arguments;
542
+ return _regenerator.default.wrap(function _callee4$(_context4) {
543
+ while (1) switch (_context4.prev = _context4.next) {
501
544
  case 0:
502
- wasSharing = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;
503
- _context3.prev = 1;
545
+ wasSharing = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : false;
546
+ _context4.prev = 1;
504
547
  _loggerProxy.default.logger.info('ReconnectionManager:index#rejoinMeeting --> attemping meeting rejoin');
505
- _context3.next = 5;
548
+ _context4.next = 5;
506
549
  return this.meeting.join({
507
550
  rejoin: true
508
551
  });
509
552
  case 5:
510
553
  _loggerProxy.default.logger.info('ReconnectionManager:index#rejoinMeeting --> meeting rejoined');
511
- if (wasSharing) {
512
- // Stop the share streams if user tried to rejoin
513
- _media.default.stopTracks(this.meeting.mediaProperties.shareTrack);
514
- this.meeting.isSharing = false;
515
- if (this.shareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE) {
516
- this.meeting.shareStatus = _constants.SHARE_STATUS.NO_SHARE;
517
- }
518
- this.meeting.mediaProperties.mediaDirection.sendShare = false;
519
- _triggerProxy.default.trigger(this.meeting, {
520
- file: 'reconnection-manager/index',
521
- function: 'rejoinMeeting'
522
- }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
523
- reason: _constants.SHARE_STOPPED_REASON.MEETING_REJOIN
524
- });
554
+ if (!wasSharing) {
555
+ _context4.next = 9;
556
+ break;
525
557
  }
526
- _context3.next = 21;
527
- break;
558
+ _context4.next = 9;
559
+ return this.stopLocalShareTrack(_constants.SHARE_STOPPED_REASON.MEETING_REJOIN);
528
560
  case 9:
529
- _context3.prev = 9;
530
- _context3.t0 = _context3["catch"](1);
561
+ _context4.next = 23;
562
+ break;
563
+ case 11:
564
+ _context4.prev = 11;
565
+ _context4.t0 = _context4["catch"](1);
531
566
  this.rejoinAttempts += 1;
532
567
  if (!(this.rejoinAttempts <= this.maxRejoinAttempts)) {
533
- _context3.next = 17;
568
+ _context4.next = 19;
534
569
  break;
535
570
  }
536
- _loggerProxy.default.logger.info("ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #".concat(this.rejoinAttempts, ", retrying."), _context3.t0);
571
+ _loggerProxy.default.logger.info("ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #".concat(this.rejoinAttempts, ", retrying."), _context4.t0);
537
572
  this.rejoinMeeting();
538
- _context3.next = 21;
573
+ _context4.next = 23;
539
574
  break;
540
- case 17:
541
- _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.', _context3.t0);
575
+ case 19:
576
+ _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.', _context4.t0);
542
577
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_MAX_REJOIN_FAILURE, {
543
578
  locus_id: this.meeting.locusUrl.split('/').pop(),
544
- reason: _context3.t0.message,
545
- stack: _context3.t0.stack
579
+ reason: _context4.t0.message,
580
+ stack: _context4.t0.stack
546
581
  });
547
582
  this.status = _constants.RECONNECTION.STATE.FAILURE;
548
- throw _context3.t0;
549
- case 21:
550
- _context3.prev = 21;
551
- _context3.next = 24;
583
+ throw _context4.t0;
584
+ case 23:
585
+ _context4.prev = 23;
586
+ _context4.next = 26;
552
587
  return this.reconnectMedia();
553
- case 24:
554
- _context3.next = 30;
555
- break;
556
588
  case 26:
557
- _context3.prev = 26;
558
- _context3.t1 = _context3["catch"](21);
559
- _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to reestablish media after rejoining.', _context3.t1);
560
- throw _context3.t1;
561
- case 30:
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:
562
597
  case "end":
563
- return _context3.stop();
598
+ return _context4.stop();
564
599
  }
565
- }, _callee3, this, [[1, 9], [21, 26]]);
600
+ }, _callee4, this, [[1, 11], [23, 28]]);
566
601
  }));
567
602
  function rejoinMeeting() {
568
603
  return _rejoinMeeting.apply(this, arguments);
@@ -577,31 +612,41 @@ var ReconnectionManager = /*#__PURE__*/function () {
577
612
  }, {
578
613
  key: "reconnectMedia",
579
614
  value: function () {
580
- var _reconnectMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
581
- var turnServerResult, mc;
582
- return _regenerator.default.wrap(function _callee4$(_context4) {
583
- while (1) switch (_context4.prev = _context4.next) {
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) {
584
619
  case 0:
585
620
  _loggerProxy.default.logger.log('ReconnectionManager:index#reconnectMedia --> Begin reestablishment of media');
586
621
 
587
- // we are not simply calling this.meeting.mediaProperties.webrtcMediaConnection.reconnect(),
588
- // but instead manually closing and creating new media connection, because we need to do the TURN discovery again
589
- _context4.next = 3;
590
- return this.meeting.closePeerConnections();
591
- case 3:
592
- this.meeting.mediaProperties.unsetPeerConnection();
593
- _context4.next = 6;
622
+ // do the TURN server discovery again since the TURN server might change
623
+ _context5.next = 3;
594
624
  return this.meeting.roap.doTurnDiscovery(this.meeting, true);
595
- case 6:
596
- turnServerResult = _context4.sent;
597
- mc = this.meeting.createMediaConnection(turnServerResult.turnServerInfo);
598
- this.meeting.statsAnalyzer.updateMediaConnection(mc);
599
- return _context4.abrupt("return", mc.initiateOffer());
600
- case 10:
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:
601
646
  case "end":
602
- return _context4.stop();
647
+ return _context5.stop();
603
648
  }
604
- }, _callee4, this);
649
+ }, _callee5, this);
605
650
  }));
606
651
  function reconnectMedia() {
607
652
  return _reconnectMedia.apply(this, arguments);
@@ -617,49 +662,49 @@ var ReconnectionManager = /*#__PURE__*/function () {
617
662
  }, {
618
663
  key: "reconnectMercuryWebSocket",
619
664
  value: function () {
620
- var _reconnectMercuryWebSocket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
621
- return _regenerator.default.wrap(function _callee5$(_context5) {
622
- while (1) switch (_context5.prev = _context5.next) {
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) {
623
668
  case 0:
624
669
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Reconnecting websocket.');
625
670
  // First, attempt to disconnect if we think we are already connected.
626
671
  if (!this.webex.internal.mercury.connected) {
627
- _context5.next = 13;
672
+ _context6.next = 13;
628
673
  break;
629
674
  }
630
675
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Disconnecting existing websocket.');
631
- _context5.prev = 3;
632
- _context5.next = 6;
676
+ _context6.prev = 3;
677
+ _context6.next = 6;
633
678
  return this.webex.internal.mercury.disconnect();
634
679
  case 6:
635
680
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket disconnected successfully.');
636
- _context5.next = 13;
681
+ _context6.next = 13;
637
682
  break;
638
683
  case 9:
639
- _context5.prev = 9;
640
- _context5.t0 = _context5["catch"](3);
684
+ _context6.prev = 9;
685
+ _context6.t0 = _context6["catch"](3);
641
686
  // If we can't disconnect, the sdk is in such a bad state that reconnecting is not going to happen.
642
- _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.', _context5.t0);
643
- throw _context5.t0;
687
+ _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.', _context6.t0);
688
+ throw _context6.t0;
644
689
  case 13:
645
- _context5.prev = 13;
690
+ _context6.prev = 13;
646
691
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Connecting websocket.');
647
- _context5.next = 17;
692
+ _context6.next = 17;
648
693
  return this.webex.internal.mercury.connect();
649
694
  case 17:
650
695
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket connected successfully.');
651
- _context5.next = 24;
696
+ _context6.next = 24;
652
697
  break;
653
698
  case 20:
654
- _context5.prev = 20;
655
- _context5.t1 = _context5["catch"](13);
656
- _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.', _context5.t1);
657
- throw _context5.t1;
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;
658
703
  case 24:
659
704
  case "end":
660
- return _context5.stop();
705
+ return _context6.stop();
661
706
  }
662
- }, _callee5, this, [[3, 9], [13, 20]]);
707
+ }, _callee6, this, [[3, 9], [13, 20]]);
663
708
  }));
664
709
  function reconnectMercuryWebSocket() {
665
710
  return _reconnectMercuryWebSocket.apply(this, arguments);