@webex/plugin-meetings 3.0.0-beta.39 → 3.0.0-beta.391

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