@webex/plugin-meetings 3.0.0-beta.17 → 3.0.0-beta.170

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 (427) 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 +216 -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 +45 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1048 -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 +194 -28
  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 +95 -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 +350 -41
  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 +76 -2
  65. package/dist/meeting/in-meeting-actions.js.map +1 -1
  66. package/dist/meeting/index.js +2640 -2436
  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 +477 -466
  76. package/dist/meeting/util.js.map +1 -1
  77. package/dist/meeting-info/index.js +48 -7
  78. package/dist/meeting-info/index.js.map +1 -1
  79. package/dist/meeting-info/meeting-info-v2.js +172 -50
  80. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  81. package/dist/meeting-info/utilv2.js +20 -5
  82. package/dist/meeting-info/utilv2.js.map +1 -1
  83. package/dist/meetings/collection.js +22 -0
  84. package/dist/meetings/collection.js.map +1 -1
  85. package/dist/meetings/index.js +377 -82
  86. package/dist/meetings/index.js.map +1 -1
  87. package/dist/meetings/meetings.types.js +7 -0
  88. package/dist/meetings/meetings.types.js.map +1 -0
  89. package/dist/meetings/request.js +16 -12
  90. package/dist/meetings/request.js.map +1 -1
  91. package/dist/meetings/util.js +88 -1
  92. package/dist/meetings/util.js.map +1 -1
  93. package/dist/member/index.js +43 -0
  94. package/dist/member/index.js.map +1 -1
  95. package/dist/member/types.js +15 -0
  96. package/dist/member/types.js.map +1 -0
  97. package/dist/member/util.js +97 -3
  98. package/dist/member/util.js.map +1 -1
  99. package/dist/members/collection.js +10 -0
  100. package/dist/members/collection.js.map +1 -1
  101. package/dist/members/index.js +94 -11
  102. package/dist/members/index.js.map +1 -1
  103. package/dist/members/request.js +109 -39
  104. package/dist/members/request.js.map +1 -1
  105. package/dist/members/types.js +15 -0
  106. package/dist/members/types.js.map +1 -0
  107. package/dist/members/util.js +316 -233
  108. package/dist/members/util.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 +1 -468
  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 +217 -162
  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 +363 -0
  142. package/dist/recording-controller/index.js.map +1 -0
  143. package/dist/recording-controller/util.js +64 -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 +135 -94
  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 +8 -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 +1007 -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 +1430 -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 +77 -0
  222. package/dist/types/meeting-info/collection.d.ts +20 -0
  223. package/dist/types/meeting-info/index.d.ts +62 -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 +365 -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/constants.d.ts +55 -0
  242. package/dist/types/metrics/index.d.ts +45 -0
  243. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  244. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  245. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  246. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  247. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  248. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  249. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  250. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  251. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  252. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  253. package/dist/types/reachability/index.d.ts +152 -0
  254. package/dist/types/reachability/request.d.ts +37 -0
  255. package/dist/types/reactions/constants.d.ts +3 -0
  256. package/dist/types/reactions/reactions.d.ts +4 -0
  257. package/dist/types/reactions/reactions.type.d.ts +52 -0
  258. package/dist/types/reconnection-manager/index.d.ts +126 -0
  259. package/dist/types/recording-controller/enums.d.ts +7 -0
  260. package/dist/types/recording-controller/index.d.ts +208 -0
  261. package/dist/types/recording-controller/util.d.ts +14 -0
  262. package/dist/types/roap/index.d.ts +77 -0
  263. package/dist/types/roap/request.d.ts +36 -0
  264. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  265. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  266. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  267. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  268. package/dist/types/transcription/index.d.ts +64 -0
  269. package/package.json +29 -21
  270. package/src/annotation/annotation.types.ts +52 -0
  271. package/src/annotation/constants.ts +36 -0
  272. package/src/annotation/index.ts +343 -0
  273. package/src/breakouts/README.md +220 -0
  274. package/src/breakouts/breakout.ts +188 -0
  275. package/src/breakouts/collection.ts +19 -0
  276. package/src/breakouts/edit-lock-error.ts +25 -0
  277. package/src/breakouts/events.ts +56 -0
  278. package/src/breakouts/index.ts +925 -0
  279. package/src/breakouts/request.ts +55 -0
  280. package/src/breakouts/utils.ts +57 -0
  281. package/src/common/errors/webex-errors.ts +6 -2
  282. package/src/common/logs/logger-proxy.ts +1 -1
  283. package/src/config.ts +5 -7
  284. package/src/constants.ts +183 -22
  285. package/src/controls-options-manager/constants.ts +5 -0
  286. package/src/controls-options-manager/enums.ts +18 -0
  287. package/src/controls-options-manager/index.ts +278 -0
  288. package/src/controls-options-manager/types.ts +59 -0
  289. package/src/controls-options-manager/util.ts +286 -0
  290. package/src/index.ts +37 -0
  291. package/src/interpretation/README.md +51 -0
  292. package/src/interpretation/collection.ts +19 -0
  293. package/src/interpretation/index.ts +182 -0
  294. package/src/interpretation/siLanguage.ts +18 -0
  295. package/src/locus-info/controlsUtils.ts +110 -0
  296. package/src/locus-info/index.ts +374 -38
  297. package/src/locus-info/mediaSharesUtils.ts +48 -0
  298. package/src/locus-info/parser.ts +2 -1
  299. package/src/locus-info/selfUtils.ts +86 -2
  300. package/src/media/index.ts +70 -142
  301. package/src/media/properties.ts +41 -104
  302. package/src/mediaQualityMetrics/config.ts +379 -377
  303. package/src/meeting/in-meeting-actions.ts +151 -3
  304. package/src/meeting/index.ts +2029 -2033
  305. package/src/meeting/locusMediaRequest.ts +309 -0
  306. package/src/meeting/muteState.ts +228 -132
  307. package/src/meeting/request.ts +100 -91
  308. package/src/meeting/request.type.ts +2 -0
  309. package/src/meeting/util.ts +450 -439
  310. package/src/meeting-info/index.ts +54 -8
  311. package/src/meeting-info/meeting-info-v2.ts +150 -14
  312. package/src/meeting-info/utilv2.ts +13 -3
  313. package/src/meetings/collection.ts +20 -0
  314. package/src/meetings/index.ts +396 -89
  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/constants.ts +2 -4
  327. package/src/metrics/index.ts +1 -490
  328. package/src/multistream/mediaRequestManager.ts +337 -63
  329. package/src/multistream/receiveSlot.ts +68 -26
  330. package/src/multistream/receiveSlotManager.ts +61 -38
  331. package/src/multistream/remoteMedia.ts +29 -3
  332. package/src/multistream/remoteMediaGroup.ts +61 -2
  333. package/src/multistream/remoteMediaManager.ts +260 -66
  334. package/src/networkQualityMonitor/index.ts +6 -6
  335. package/src/reachability/index.ts +75 -25
  336. package/src/reachability/request.ts +10 -5
  337. package/src/reactions/constants.ts +4 -0
  338. package/src/reactions/reactions.ts +4 -4
  339. package/src/reactions/reactions.type.ts +28 -3
  340. package/src/reconnection-manager/index.ts +80 -49
  341. package/src/recording-controller/enums.ts +8 -0
  342. package/src/recording-controller/index.ts +333 -0
  343. package/src/recording-controller/util.ts +75 -0
  344. package/src/roap/index.ts +21 -30
  345. package/src/roap/request.ts +72 -61
  346. package/src/roap/turnDiscovery.ts +51 -27
  347. package/src/statsAnalyzer/global.ts +1 -94
  348. package/src/statsAnalyzer/index.ts +380 -390
  349. package/src/statsAnalyzer/mqaUtil.ts +106 -99
  350. package/test/integration/spec/converged-space-meetings.js +233 -0
  351. package/test/integration/spec/journey.js +331 -254
  352. package/test/integration/spec/space-meeting.js +77 -4
  353. package/test/unit/spec/annotation/index.ts +436 -0
  354. package/test/unit/spec/breakouts/breakout.ts +237 -0
  355. package/test/unit/spec/breakouts/collection.ts +15 -0
  356. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  357. package/test/unit/spec/breakouts/events.ts +89 -0
  358. package/test/unit/spec/breakouts/index.ts +1790 -0
  359. package/test/unit/spec/breakouts/request.ts +104 -0
  360. package/test/unit/spec/breakouts/utils.js +72 -0
  361. package/test/unit/spec/controls-options-manager/index.js +287 -0
  362. package/test/unit/spec/controls-options-manager/util.js +518 -0
  363. package/test/unit/spec/fixture/locus.js +1 -0
  364. package/test/unit/spec/interpretation/collection.ts +15 -0
  365. package/test/unit/spec/interpretation/index.ts +329 -0
  366. package/test/unit/spec/interpretation/siLanguage.ts +26 -0
  367. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  368. package/test/unit/spec/locus-info/index.js +792 -4
  369. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  370. package/test/unit/spec/locus-info/selfConstant.js +48 -0
  371. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  372. package/test/unit/spec/media/index.ts +118 -22
  373. package/test/unit/spec/media/properties.ts +9 -9
  374. package/test/unit/spec/meeting/in-meeting-actions.ts +75 -3
  375. package/test/unit/spec/meeting/index.js +2742 -1441
  376. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  377. package/test/unit/spec/meeting/muteState.js +370 -208
  378. package/test/unit/spec/meeting/request.js +354 -42
  379. package/test/unit/spec/meeting/utils.js +384 -170
  380. package/test/unit/spec/meeting-info/index.js +181 -0
  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 +847 -121
  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 +1 -50
  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 +95 -13
  402. package/test/unit/spec/recording-controller/index.js +307 -0
  403. package/test/unit/spec/recording-controller/util.js +229 -0
  404. package/test/unit/spec/roap/index.ts +28 -52
  405. package/test/unit/spec/roap/request.ts +225 -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/metrics/config.js +0 -299
  419. package/dist/metrics/config.js.map +0 -1
  420. package/dist/multistream/multistreamMedia.js +0 -106
  421. package/dist/multistream/multistreamMedia.js.map +0 -1
  422. package/src/index.js +0 -15
  423. package/src/media/internal-media-core-wrapper.ts +0 -9
  424. package/src/meeting/effectsState.ts +0 -211
  425. package/src/metrics/config.ts +0 -495
  426. package/src/multistream/multistreamMedia.ts +0 -93
  427. 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"));
@@ -24,8 +25,6 @@ var _constants = require("../constants");
24
25
  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
- var _config = require("../metrics/config");
28
- var _media = _interopRequireDefault(require("../media"));
29
28
  var _metrics = _interopRequireDefault(require("../metrics"));
30
29
  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
30
  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 +245,42 @@ var ReconnectionManager = /*#__PURE__*/function () {
246
245
  this.meeting = null;
247
246
  }
248
247
 
248
+ /**
249
+ * Stop the local share track.
250
+ *
251
+ * @param {string} reason a {@link SHARE_STOPPED_REASON}
252
+ * @returns {undefined}
253
+ * @private
254
+ * @memberof ReconnectionManager
255
+ */
256
+ }, {
257
+ key: "stopLocalShareTrack",
258
+ value: function () {
259
+ var _stopLocalShareTrack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(reason) {
260
+ return _regenerator.default.wrap(function _callee$(_context) {
261
+ while (1) switch (_context.prev = _context.next) {
262
+ case 0:
263
+ _context.next = 2;
264
+ return this.meeting.unpublishTracks([this.meeting.mediaProperties.shareTrack]);
265
+ case 2:
266
+ // todo screen share audio SPARK-399690
267
+ _triggerProxy.default.trigger(this.meeting, {
268
+ file: 'reconnection-manager/index',
269
+ function: 'stopLocalShareTrack'
270
+ }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
271
+ reason: reason
272
+ });
273
+ case 3:
274
+ case "end":
275
+ return _context.stop();
276
+ }
277
+ }, _callee, this);
278
+ }));
279
+ function stopLocalShareTrack(_x) {
280
+ return _stopLocalShareTrack.apply(this, arguments);
281
+ }
282
+ return stopLocalShareTrack;
283
+ }()
249
284
  /**
250
285
  * @public
251
286
  * @memberof ReconnectionManager
@@ -289,48 +324,56 @@ var ReconnectionManager = /*#__PURE__*/function () {
289
324
  }, {
290
325
  key: "reconnect",
291
326
  value: function () {
292
- var _reconnect = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
327
+ var _reconnect = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
293
328
  var _this3 = this;
294
329
  var _ref2,
295
330
  _ref2$networkDisconne,
296
331
  networkDisconnect,
297
332
  _ref2$networkRetry,
298
333
  networkRetry,
299
- _args = arguments;
300
- return _regenerator.default.wrap(function _callee$(_context) {
301
- while (1) switch (_context.prev = _context.next) {
334
+ _args2 = arguments;
335
+ return _regenerator.default.wrap(function _callee2$(_context2) {
336
+ while (1) switch (_context2.prev = _context2.next) {
302
337
  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;
338
+ _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
339
  _loggerProxy.default.logger.info("ReconnectionManager:index#reconnect --> Reconnection start for meeting ".concat(this.meeting.id, "."));
305
340
  // First, validate that we can reconnect, if not, it will throw an error
306
- _context.prev = 2;
341
+ _context2.prev = 2;
307
342
  this.validate();
308
- _context.next = 10;
343
+ _context2.next = 10;
309
344
  break;
310
345
  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;
346
+ _context2.prev = 6;
347
+ _context2.t0 = _context2["catch"](2);
348
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection unable to begin.', _context2.t0);
349
+ throw _context2.t0;
315
350
  case 10:
316
351
  if (!networkRetry) {
317
352
  // Only log START metrics on the initial reconnect
318
353
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect start metric.');
319
- _metrics.default.postEvent({
320
- event: _config.eventType.MEDIA_RECONNECTING,
321
- meeting: this.meeting
354
+
355
+ // @ts-ignore
356
+ this.webex.internal.newMetrics.submitClientEvent({
357
+ name: 'client.media.reconnecting',
358
+ options: {
359
+ meetingId: this.meeting.id
360
+ }
322
361
  });
323
362
  }
324
- return _context.abrupt("return", this.executeReconnection({
363
+ return _context2.abrupt("return", this.executeReconnection({
325
364
  networkDisconnect: networkDisconnect
326
365
  }).then(function () {
327
366
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection successful.');
328
367
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect success metric.');
329
- _metrics.default.postEvent({
330
- event: _config.eventType.MEDIA_RECOVERED,
331
- meeting: _this3.meeting,
332
- data: {
333
- recoveredBy: _config.reconnection.RECOVERED_BY_NEW
368
+
369
+ // @ts-ignore
370
+ _this3.webex.internal.newMetrics.submitClientEvent({
371
+ name: 'client.media.recovered',
372
+ payload: {
373
+ recoveredBy: 'new'
374
+ },
375
+ options: {
376
+ meetingId: _this3.meeting.id
334
377
  }
335
378
  });
336
379
  }).catch(function (reconnectError) {
@@ -349,20 +392,23 @@ var ReconnectionManager = /*#__PURE__*/function () {
349
392
  // Reconnect has failed
350
393
  _loggerProxy.default.logger.error('ReconnectionManager:index#reconnect --> Reconnection failed.', reconnectError.message);
351
394
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect abort metric.');
352
- var reconnectMetric = {
353
- event: _config.eventType.CALL_ABORTED,
354
- meeting: _this3.meeting,
355
- data: {
395
+
396
+ // @ts-ignore
397
+ _this3.webex.internal.newMetrics.submitClientEvent({
398
+ name: 'client.call.aborted',
399
+ payload: {
356
400
  errors: [{
357
- category: _config.errorObjects.category.expected,
401
+ category: 'expected',
358
402
  errorCode: 2008,
359
403
  fatal: true,
360
- name: _config.errorObjects.name.mediaEngine,
404
+ name: 'media-engine',
361
405
  shownToUser: false
362
406
  }]
407
+ },
408
+ options: {
409
+ meetingId: _this3.meeting.id
363
410
  }
364
- };
365
- _metrics.default.postEvent(reconnectMetric);
411
+ });
366
412
  if (reconnectError instanceof NeedsRejoinError) {
367
413
  // send call aborded event with catogery as expected as we are trying to rejoin
368
414
 
@@ -374,9 +420,9 @@ var ReconnectionManager = /*#__PURE__*/function () {
374
420
  }));
375
421
  case 12:
376
422
  case "end":
377
- return _context.stop();
423
+ return _context2.stop();
378
424
  }
379
- }, _callee, this, [[2, 6]]);
425
+ }, _callee2, this, [[2, 6]]);
380
426
  }));
381
427
  function reconnect() {
382
428
  return _reconnect.apply(this, arguments);
@@ -394,91 +440,98 @@ var ReconnectionManager = /*#__PURE__*/function () {
394
440
  }, {
395
441
  key: "executeReconnection",
396
442
  value: function () {
397
- var _executeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(_ref3) {
443
+ var _executeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(_ref3) {
398
444
  var _ref3$networkDisconne, networkDisconnect, wasSharing, media;
399
- return _regenerator.default.wrap(function _callee2$(_context2) {
400
- while (1) switch (_context2.prev = _context2.next) {
445
+ return _regenerator.default.wrap(function _callee3$(_context3) {
446
+ while (1) switch (_context3.prev = _context3.next) {
401
447
  case 0:
402
448
  _ref3$networkDisconne = _ref3.networkDisconnect, networkDisconnect = _ref3$networkDisconne === void 0 ? false : _ref3$networkDisconne;
403
449
  this.status = _constants.RECONNECTION.STATE.IN_PROGRESS;
404
450
  _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Attempting to reconnect to meeting.');
451
+ wasSharing = this.meeting.shareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE;
452
+ if (!wasSharing) {
453
+ _context3.next = 7;
454
+ break;
455
+ }
456
+ _context3.next = 7;
457
+ return this.stopLocalShareTrack(_constants.SHARE_STOPPED_REASON.MEDIA_RECONNECTION);
458
+ case 7:
405
459
  if (!networkDisconnect) {
406
- _context2.next = 15;
460
+ _context3.next = 19;
407
461
  break;
408
462
  }
409
- _context2.prev = 4;
410
- _context2.next = 7;
463
+ _context3.prev = 8;
464
+ _context3.next = 11;
411
465
  return this.reconnectMercuryWebSocket();
412
- case 7:
466
+ case 11:
413
467
  _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Websocket reconnected.', this.webex.internal.device.url);
414
- _context2.next = 15;
468
+ _context3.next = 19;
415
469
  break;
416
- case 10:
417
- _context2.prev = 10;
418
- _context2.t0 = _context2["catch"](4);
470
+ case 14:
471
+ _context3.prev = 14;
472
+ _context3.t0 = _context3["catch"](8);
419
473
  _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Unable to reconnect to websocket, giving up.');
420
474
  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;
475
+ throw _context3.t0;
476
+ case 19:
477
+ _context3.prev = 19;
425
478
  _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Updating meeting data from server.');
426
- _context2.next = 20;
479
+ _context3.next = 23;
427
480
  return this.webex.meetings.syncMeetings();
428
- case 20:
429
- _context2.next = 26;
481
+ case 23:
482
+ _context3.next = 29;
430
483
  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:
484
+ case 25:
485
+ _context3.prev = 25;
486
+ _context3.t1 = _context3["catch"](19);
487
+ _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.', _context3.t1);
488
+ throw new NeedsRetryError(_context3.t1);
489
+ case 29:
437
490
  if (!(!this.meeting || !this.webex.meetings.getMeetingByType(_constants._ID_, this.meeting.id))) {
438
- _context2.next = 29;
491
+ _context3.next = 32;
439
492
  break;
440
493
  }
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:
494
+ _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely.');
495
+ throw new Error('Unable to rejoin a meeting already ended or inactive.');
496
+ case 32:
444
497
  _loggerProxy.default.logger.info("ReconnectionManager:index#executeReconnection --> Current state of meeting is ".concat(this.meeting.state));
445
498
 
446
499
  // If the meeting state was left, no longer reconnect media
447
500
  if (!(this.meeting.state === _constants._LEFT_)) {
448
- _context2.next = 34;
501
+ _context3.next = 37;
449
502
  break;
450
503
  }
451
504
  if (!(this.meeting.type === _constants._CALL_)) {
452
- _context2.next = 33;
505
+ _context3.next = 36;
453
506
  break;
454
507
  }
455
508
  throw new Error('Unable to rejoin a call in LEFT state.');
456
- case 33:
509
+ case 36:
457
510
  throw new NeedsRejoinError({
458
511
  wasSharing: wasSharing
459
512
  });
460
- case 34:
461
- _context2.prev = 34;
462
- _context2.next = 37;
463
- return this.reconnectMedia();
464
513
  case 37:
465
- media = _context2.sent;
514
+ _context3.prev = 37;
515
+ _context3.next = 40;
516
+ return this.reconnectMedia();
517
+ case 40:
518
+ media = _context3.sent;
466
519
  _loggerProxy.default.logger.log('ReconnectionManager:index#executeReconnection --> Media reestablished');
467
520
  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);
521
+ return _context3.abrupt("return", media);
522
+ case 46:
523
+ _context3.prev = 46;
524
+ _context3.t2 = _context3["catch"](37);
472
525
  _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Media reestablishment failed');
473
526
  this.status = _constants.RECONNECTION.STATE.FAILURE;
474
- throw _context2.t2;
475
- case 48:
527
+ throw _context3.t2;
528
+ case 51:
476
529
  case "end":
477
- return _context2.stop();
530
+ return _context3.stop();
478
531
  }
479
- }, _callee2, this, [[4, 10], [16, 22], [34, 43]]);
532
+ }, _callee3, this, [[8, 14], [19, 25], [37, 46]]);
480
533
  }));
481
- function executeReconnection(_x) {
534
+ function executeReconnection(_x2) {
482
535
  return _executeReconnection.apply(this, arguments);
483
536
  }
484
537
  return executeReconnection;
@@ -493,76 +546,68 @@ var ReconnectionManager = /*#__PURE__*/function () {
493
546
  }, {
494
547
  key: "rejoinMeeting",
495
548
  value: function () {
496
- var _rejoinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
549
+ var _rejoinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
497
550
  var wasSharing,
498
- _args3 = arguments;
499
- return _regenerator.default.wrap(function _callee3$(_context3) {
500
- while (1) switch (_context3.prev = _context3.next) {
551
+ _args4 = arguments;
552
+ return _regenerator.default.wrap(function _callee4$(_context4) {
553
+ while (1) switch (_context4.prev = _context4.next) {
501
554
  case 0:
502
- wasSharing = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;
503
- _context3.prev = 1;
555
+ wasSharing = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : false;
556
+ _context4.prev = 1;
504
557
  _loggerProxy.default.logger.info('ReconnectionManager:index#rejoinMeeting --> attemping meeting rejoin');
505
- _context3.next = 5;
558
+ _context4.next = 5;
506
559
  return this.meeting.join({
507
560
  rejoin: true
508
561
  });
509
562
  case 5:
510
563
  _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
- });
564
+ if (!wasSharing) {
565
+ _context4.next = 9;
566
+ break;
525
567
  }
526
- _context3.next = 21;
527
- break;
568
+ _context4.next = 9;
569
+ return this.stopLocalShareTrack(_constants.SHARE_STOPPED_REASON.MEETING_REJOIN);
528
570
  case 9:
529
- _context3.prev = 9;
530
- _context3.t0 = _context3["catch"](1);
571
+ _context4.next = 23;
572
+ break;
573
+ case 11:
574
+ _context4.prev = 11;
575
+ _context4.t0 = _context4["catch"](1);
531
576
  this.rejoinAttempts += 1;
532
577
  if (!(this.rejoinAttempts <= this.maxRejoinAttempts)) {
533
- _context3.next = 17;
578
+ _context4.next = 19;
534
579
  break;
535
580
  }
536
- _loggerProxy.default.logger.info("ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #".concat(this.rejoinAttempts, ", retrying."), _context3.t0);
581
+ _loggerProxy.default.logger.info("ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #".concat(this.rejoinAttempts, ", retrying."), _context4.t0);
537
582
  this.rejoinMeeting();
538
- _context3.next = 21;
583
+ _context4.next = 23;
539
584
  break;
540
- case 17:
541
- _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.', _context3.t0);
585
+ case 19:
586
+ _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.', _context4.t0);
542
587
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_MAX_REJOIN_FAILURE, {
543
588
  locus_id: this.meeting.locusUrl.split('/').pop(),
544
- reason: _context3.t0.message,
545
- stack: _context3.t0.stack
589
+ reason: _context4.t0.message,
590
+ stack: _context4.t0.stack
546
591
  });
547
592
  this.status = _constants.RECONNECTION.STATE.FAILURE;
548
- throw _context3.t0;
549
- case 21:
550
- _context3.prev = 21;
551
- _context3.next = 24;
593
+ throw _context4.t0;
594
+ case 23:
595
+ _context4.prev = 23;
596
+ _context4.next = 26;
552
597
  return this.reconnectMedia();
553
- case 24:
554
- _context3.next = 30;
555
- break;
556
598
  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:
599
+ _context4.next = 32;
600
+ break;
601
+ case 28:
602
+ _context4.prev = 28;
603
+ _context4.t1 = _context4["catch"](23);
604
+ _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to reestablish media after rejoining.', _context4.t1);
605
+ throw _context4.t1;
606
+ case 32:
562
607
  case "end":
563
- return _context3.stop();
608
+ return _context4.stop();
564
609
  }
565
- }, _callee3, this, [[1, 9], [21, 26]]);
610
+ }, _callee4, this, [[1, 11], [23, 28]]);
566
611
  }));
567
612
  function rejoinMeeting() {
568
613
  return _rejoinMeeting.apply(this, arguments);
@@ -577,31 +622,41 @@ var ReconnectionManager = /*#__PURE__*/function () {
577
622
  }, {
578
623
  key: "reconnectMedia",
579
624
  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) {
625
+ var _reconnectMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
626
+ var turnServerResult, iceServers;
627
+ return _regenerator.default.wrap(function _callee5$(_context5) {
628
+ while (1) switch (_context5.prev = _context5.next) {
584
629
  case 0:
585
630
  _loggerProxy.default.logger.log('ReconnectionManager:index#reconnectMedia --> Begin reestablishment of media');
586
631
 
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;
632
+ // do the TURN server discovery again since the TURN server might change
633
+ _context5.next = 3;
594
634
  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:
635
+ case 3:
636
+ turnServerResult = _context5.sent;
637
+ iceServers = [];
638
+ if (turnServerResult.turnServerInfo) {
639
+ iceServers.push({
640
+ urls: turnServerResult.turnServerInfo.url,
641
+ username: turnServerResult.turnServerInfo.username || '',
642
+ credential: turnServerResult.turnServerInfo.password || ''
643
+ });
644
+ }
645
+ _context5.next = 8;
646
+ return this.meeting.mediaProperties.webrtcMediaConnection.reconnect(iceServers);
647
+ case 8:
648
+ // resend media requests
649
+ if (this.meeting.isMultistream) {
650
+ (0, _values.default)(this.meeting.mediaRequestManagers).forEach(function (mediaRequestManager) {
651
+ mediaRequestManager.clearPreviousRequests();
652
+ mediaRequestManager.commit();
653
+ });
654
+ }
655
+ case 9:
601
656
  case "end":
602
- return _context4.stop();
657
+ return _context5.stop();
603
658
  }
604
- }, _callee4, this);
659
+ }, _callee5, this);
605
660
  }));
606
661
  function reconnectMedia() {
607
662
  return _reconnectMedia.apply(this, arguments);
@@ -617,49 +672,49 @@ var ReconnectionManager = /*#__PURE__*/function () {
617
672
  }, {
618
673
  key: "reconnectMercuryWebSocket",
619
674
  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) {
675
+ var _reconnectMercuryWebSocket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
676
+ return _regenerator.default.wrap(function _callee6$(_context6) {
677
+ while (1) switch (_context6.prev = _context6.next) {
623
678
  case 0:
624
679
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Reconnecting websocket.');
625
680
  // First, attempt to disconnect if we think we are already connected.
626
681
  if (!this.webex.internal.mercury.connected) {
627
- _context5.next = 13;
682
+ _context6.next = 13;
628
683
  break;
629
684
  }
630
685
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Disconnecting existing websocket.');
631
- _context5.prev = 3;
632
- _context5.next = 6;
686
+ _context6.prev = 3;
687
+ _context6.next = 6;
633
688
  return this.webex.internal.mercury.disconnect();
634
689
  case 6:
635
690
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket disconnected successfully.');
636
- _context5.next = 13;
691
+ _context6.next = 13;
637
692
  break;
638
693
  case 9:
639
- _context5.prev = 9;
640
- _context5.t0 = _context5["catch"](3);
694
+ _context6.prev = 9;
695
+ _context6.t0 = _context6["catch"](3);
641
696
  // 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;
697
+ _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.', _context6.t0);
698
+ throw _context6.t0;
644
699
  case 13:
645
- _context5.prev = 13;
700
+ _context6.prev = 13;
646
701
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Connecting websocket.');
647
- _context5.next = 17;
702
+ _context6.next = 17;
648
703
  return this.webex.internal.mercury.connect();
649
704
  case 17:
650
705
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket connected successfully.');
651
- _context5.next = 24;
706
+ _context6.next = 24;
652
707
  break;
653
708
  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;
709
+ _context6.prev = 20;
710
+ _context6.t1 = _context6["catch"](13);
711
+ _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.', _context6.t1);
712
+ throw _context6.t1;
658
713
  case 24:
659
714
  case "end":
660
- return _context5.stop();
715
+ return _context6.stop();
661
716
  }
662
- }, _callee5, this, [[3, 9], [13, 20]]);
717
+ }, _callee6, this, [[3, 9], [13, 20]]);
663
718
  }));
664
719
  function reconnectMercuryWebSocket() {
665
720
  return _reconnectMercuryWebSocket.apply(this, arguments);