@webex/plugin-meetings 3.0.0-beta.31 → 3.0.0-beta.310

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 (378) hide show
  1. package/README.md +46 -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/edit-lock-error.js +52 -0
  11. package/dist/breakouts/edit-lock-error.js.map +1 -0
  12. package/dist/breakouts/events.js +45 -0
  13. package/dist/breakouts/events.js.map +1 -0
  14. package/dist/breakouts/index.js +709 -35
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/utils.js +45 -1
  17. package/dist/breakouts/utils.js.map +1 -1
  18. package/dist/common/errors/no-meeting-info.js +51 -0
  19. package/dist/common/errors/no-meeting-info.js.map +1 -0
  20. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  21. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  22. package/dist/common/errors/webex-errors.js +48 -7
  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/common/logs/request.js +5 -1
  27. package/dist/common/logs/request.js.map +1 -1
  28. package/dist/common/queue.js +24 -9
  29. package/dist/common/queue.js.map +1 -1
  30. package/dist/config.js +5 -11
  31. package/dist/config.js.map +1 -1
  32. package/dist/constants.js +233 -29
  33. package/dist/constants.js.map +1 -1
  34. package/dist/controls-options-manager/enums.js +14 -2
  35. package/dist/controls-options-manager/enums.js.map +1 -1
  36. package/dist/controls-options-manager/index.js +109 -15
  37. package/dist/controls-options-manager/index.js.map +1 -1
  38. package/dist/controls-options-manager/types.js +7 -0
  39. package/dist/controls-options-manager/types.js.map +1 -0
  40. package/dist/controls-options-manager/util.js +309 -18
  41. package/dist/controls-options-manager/util.js.map +1 -1
  42. package/dist/index.js +112 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/interpretation/collection.js +23 -0
  45. package/dist/interpretation/collection.js.map +1 -0
  46. package/dist/interpretation/index.js +366 -0
  47. package/dist/interpretation/index.js.map +1 -0
  48. package/dist/interpretation/siLanguage.js +25 -0
  49. package/dist/interpretation/siLanguage.js.map +1 -0
  50. package/dist/locus-info/controlsUtils.js +91 -2
  51. package/dist/locus-info/controlsUtils.js.map +1 -1
  52. package/dist/locus-info/index.js +383 -62
  53. package/dist/locus-info/index.js.map +1 -1
  54. package/dist/locus-info/infoUtils.js +7 -1
  55. package/dist/locus-info/infoUtils.js.map +1 -1
  56. package/dist/locus-info/mediaSharesUtils.js +57 -1
  57. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  58. package/dist/locus-info/parser.js +249 -72
  59. package/dist/locus-info/parser.js.map +1 -1
  60. package/dist/locus-info/selfUtils.js +89 -14
  61. package/dist/locus-info/selfUtils.js.map +1 -1
  62. package/dist/media/index.js +61 -116
  63. package/dist/media/index.js.map +1 -1
  64. package/dist/media/properties.js +73 -124
  65. package/dist/media/properties.js.map +1 -1
  66. package/dist/meeting/in-meeting-actions.js +82 -2
  67. package/dist/meeting/in-meeting-actions.js.map +1 -1
  68. package/dist/meeting/index.js +3777 -2929
  69. package/dist/meeting/index.js.map +1 -1
  70. package/dist/meeting/locusMediaRequest.js +292 -0
  71. package/dist/meeting/locusMediaRequest.js.map +1 -0
  72. package/dist/meeting/muteState.js +230 -124
  73. package/dist/meeting/muteState.js.map +1 -1
  74. package/dist/meeting/request.js +260 -196
  75. package/dist/meeting/request.js.map +1 -1
  76. package/dist/meeting/util.js +601 -417
  77. package/dist/meeting/util.js.map +1 -1
  78. package/dist/meeting-info/index.js +73 -7
  79. package/dist/meeting-info/index.js.map +1 -1
  80. package/dist/meeting-info/meeting-info-v2.js +192 -51
  81. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  82. package/dist/meeting-info/util.js +1 -1
  83. package/dist/meeting-info/util.js.map +1 -1
  84. package/dist/meeting-info/utilv2.js +36 -36
  85. package/dist/meeting-info/utilv2.js.map +1 -1
  86. package/dist/meetings/collection.js +39 -0
  87. package/dist/meetings/collection.js.map +1 -1
  88. package/dist/meetings/index.js +415 -115
  89. package/dist/meetings/index.js.map +1 -1
  90. package/dist/meetings/meetings.types.js +7 -0
  91. package/dist/meetings/meetings.types.js.map +1 -0
  92. package/dist/meetings/request.js +2 -0
  93. package/dist/meetings/request.js.map +1 -1
  94. package/dist/meetings/util.js +72 -6
  95. package/dist/meetings/util.js.map +1 -1
  96. package/dist/member/index.js +58 -0
  97. package/dist/member/index.js.map +1 -1
  98. package/dist/member/types.js +25 -0
  99. package/dist/member/types.js.map +1 -0
  100. package/dist/member/util.js +132 -25
  101. package/dist/member/util.js.map +1 -1
  102. package/dist/members/collection.js +10 -0
  103. package/dist/members/collection.js.map +1 -1
  104. package/dist/members/index.js +102 -6
  105. package/dist/members/index.js.map +1 -1
  106. package/dist/members/request.js +106 -38
  107. package/dist/members/request.js.map +1 -1
  108. package/dist/members/types.js +15 -0
  109. package/dist/members/types.js.map +1 -0
  110. package/dist/members/util.js +326 -232
  111. package/dist/members/util.js.map +1 -1
  112. package/dist/metrics/constants.js +13 -5
  113. package/dist/metrics/constants.js.map +1 -1
  114. package/dist/metrics/index.js +1 -468
  115. package/dist/metrics/index.js.map +1 -1
  116. package/dist/multistream/mediaRequestManager.js +238 -49
  117. package/dist/multistream/mediaRequestManager.js.map +1 -1
  118. package/dist/multistream/receiveSlot.js +29 -16
  119. package/dist/multistream/receiveSlot.js.map +1 -1
  120. package/dist/multistream/receiveSlotManager.js +39 -36
  121. package/dist/multistream/receiveSlotManager.js.map +1 -1
  122. package/dist/multistream/remoteMedia.js +44 -18
  123. package/dist/multistream/remoteMedia.js.map +1 -1
  124. package/dist/multistream/remoteMediaGroup.js +60 -3
  125. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  126. package/dist/multistream/remoteMediaManager.js +209 -59
  127. package/dist/multistream/remoteMediaManager.js.map +1 -1
  128. package/dist/multistream/sendSlotManager.js +233 -0
  129. package/dist/multistream/sendSlotManager.js.map +1 -0
  130. package/dist/reachability/index.js +225 -59
  131. package/dist/reachability/index.js.map +1 -1
  132. package/dist/reachability/request.js +17 -8
  133. package/dist/reachability/request.js.map +1 -1
  134. package/dist/reconnection-manager/index.js +201 -156
  135. package/dist/reconnection-manager/index.js.map +1 -1
  136. package/dist/recording-controller/index.js +21 -2
  137. package/dist/recording-controller/index.js.map +1 -1
  138. package/dist/recording-controller/util.js +9 -8
  139. package/dist/recording-controller/util.js.map +1 -1
  140. package/dist/roap/index.js +62 -32
  141. package/dist/roap/index.js.map +1 -1
  142. package/dist/roap/request.js +112 -97
  143. package/dist/roap/request.js.map +1 -1
  144. package/dist/roap/turnDiscovery.js +95 -36
  145. package/dist/roap/turnDiscovery.js.map +1 -1
  146. package/dist/rtcMetrics/constants.js +12 -0
  147. package/dist/rtcMetrics/constants.js.map +1 -0
  148. package/dist/rtcMetrics/index.js +117 -0
  149. package/dist/rtcMetrics/index.js.map +1 -0
  150. package/dist/statsAnalyzer/index.js +86 -78
  151. package/dist/statsAnalyzer/index.js.map +1 -1
  152. package/dist/statsAnalyzer/mqaUtil.js +11 -10
  153. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  154. package/dist/types/annotation/annotation.types.d.ts +42 -0
  155. package/dist/types/annotation/constants.d.ts +31 -0
  156. package/dist/types/annotation/index.d.ts +117 -0
  157. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  158. package/dist/types/breakouts/events.d.ts +8 -0
  159. package/dist/types/breakouts/utils.d.ts +14 -0
  160. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  161. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  162. package/dist/types/common/errors/webex-errors.d.ts +25 -1
  163. package/dist/types/common/logs/request.d.ts +2 -0
  164. package/dist/types/common/queue.d.ts +9 -7
  165. package/dist/types/config.d.ts +1 -7
  166. package/dist/types/constants.d.ts +194 -24
  167. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  168. package/dist/types/controls-options-manager/index.d.ts +17 -1
  169. package/dist/types/controls-options-manager/types.d.ts +43 -0
  170. package/dist/types/controls-options-manager/util.d.ts +1 -7
  171. package/dist/types/index.d.ts +6 -4
  172. package/dist/types/interpretation/collection.d.ts +5 -0
  173. package/dist/types/interpretation/index.d.ts +5 -0
  174. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  175. package/dist/types/locus-info/index.d.ts +57 -4
  176. package/dist/types/locus-info/parser.d.ts +67 -6
  177. package/dist/types/media/index.d.ts +2 -0
  178. package/dist/types/media/properties.d.ts +34 -48
  179. package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
  180. package/dist/types/meeting/index.d.ts +463 -510
  181. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  182. package/dist/types/meeting/muteState.d.ts +99 -23
  183. package/dist/types/meeting/request.d.ts +72 -43
  184. package/dist/types/meeting/util.d.ts +101 -1
  185. package/dist/types/meeting-info/index.d.ts +13 -1
  186. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  187. package/dist/types/meetings/collection.d.ts +17 -0
  188. package/dist/types/meetings/index.d.ts +98 -20
  189. package/dist/types/meetings/meetings.types.d.ts +4 -0
  190. package/dist/types/member/index.d.ts +14 -0
  191. package/dist/types/member/types.d.ts +32 -0
  192. package/dist/types/members/collection.d.ts +5 -0
  193. package/dist/types/members/index.d.ts +35 -2
  194. package/dist/types/members/request.d.ts +73 -9
  195. package/dist/types/members/types.d.ts +25 -0
  196. package/dist/types/members/util.d.ts +214 -1
  197. package/dist/types/metrics/constants.d.ts +12 -4
  198. package/dist/types/metrics/index.d.ts +4 -119
  199. package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
  200. package/dist/types/multistream/receiveSlot.d.ts +13 -11
  201. package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
  202. package/dist/types/multistream/remoteMedia.d.ts +8 -29
  203. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  204. package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
  205. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  206. package/dist/types/reachability/index.d.ts +61 -7
  207. package/dist/types/reachability/request.d.ts +7 -3
  208. package/dist/types/reconnection-manager/index.d.ts +9 -0
  209. package/dist/types/recording-controller/index.d.ts +15 -1
  210. package/dist/types/recording-controller/util.d.ts +5 -4
  211. package/dist/types/roap/index.d.ts +2 -1
  212. package/dist/types/roap/request.d.ts +15 -11
  213. package/dist/types/roap/turnDiscovery.d.ts +21 -3
  214. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  215. package/dist/types/rtcMetrics/index.d.ts +47 -0
  216. package/dist/types/statsAnalyzer/index.d.ts +7 -1
  217. package/dist/types/webinar/collection.d.ts +16 -0
  218. package/dist/types/webinar/index.d.ts +5 -0
  219. package/dist/webinar/collection.js +44 -0
  220. package/dist/webinar/collection.js.map +1 -0
  221. package/dist/webinar/index.js +69 -0
  222. package/dist/webinar/index.js.map +1 -0
  223. package/package.json +23 -20
  224. package/src/annotation/annotation.types.ts +50 -0
  225. package/src/annotation/constants.ts +36 -0
  226. package/src/annotation/index.ts +328 -0
  227. package/src/breakouts/README.md +42 -12
  228. package/src/breakouts/breakout.ts +67 -9
  229. package/src/breakouts/edit-lock-error.ts +25 -0
  230. package/src/breakouts/events.ts +56 -0
  231. package/src/breakouts/index.ts +592 -20
  232. package/src/breakouts/utils.ts +42 -0
  233. package/src/common/errors/no-meeting-info.ts +24 -0
  234. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  235. package/src/common/errors/webex-errors.ts +44 -2
  236. package/src/common/logs/logger-proxy.ts +1 -1
  237. package/src/common/logs/request.ts +5 -1
  238. package/src/common/queue.ts +22 -8
  239. package/src/config.ts +4 -10
  240. package/src/constants.ts +221 -19
  241. package/src/controls-options-manager/enums.ts +12 -0
  242. package/src/controls-options-manager/index.ts +116 -21
  243. package/src/controls-options-manager/types.ts +59 -0
  244. package/src/controls-options-manager/util.ts +294 -14
  245. package/src/index.ts +40 -0
  246. package/src/interpretation/README.md +60 -0
  247. package/src/interpretation/collection.ts +19 -0
  248. package/src/interpretation/index.ts +332 -0
  249. package/src/interpretation/siLanguage.ts +18 -0
  250. package/src/locus-info/controlsUtils.ts +108 -0
  251. package/src/locus-info/index.ts +413 -59
  252. package/src/locus-info/infoUtils.ts +10 -2
  253. package/src/locus-info/mediaSharesUtils.ts +64 -0
  254. package/src/locus-info/parser.ts +258 -47
  255. package/src/locus-info/selfUtils.ts +81 -5
  256. package/src/media/index.ts +102 -122
  257. package/src/media/properties.ts +87 -110
  258. package/src/meeting/in-meeting-actions.ts +163 -3
  259. package/src/meeting/index.ts +3132 -2541
  260. package/src/meeting/locusMediaRequest.ts +313 -0
  261. package/src/meeting/muteState.ts +229 -131
  262. package/src/meeting/request.ts +177 -121
  263. package/src/meeting/util.ts +588 -394
  264. package/src/meeting-info/index.ts +81 -8
  265. package/src/meeting-info/meeting-info-v2.ts +170 -14
  266. package/src/meeting-info/util.ts +1 -1
  267. package/src/meeting-info/utilv2.ts +23 -23
  268. package/src/meetings/collection.ts +33 -0
  269. package/src/meetings/index.ts +445 -123
  270. package/src/meetings/meetings.types.ts +12 -0
  271. package/src/meetings/request.ts +2 -0
  272. package/src/meetings/util.ts +80 -11
  273. package/src/member/index.ts +58 -0
  274. package/src/member/types.ts +38 -0
  275. package/src/member/util.ts +141 -25
  276. package/src/members/collection.ts +8 -0
  277. package/src/members/index.ts +134 -8
  278. package/src/members/request.ts +97 -17
  279. package/src/members/types.ts +29 -0
  280. package/src/members/util.ts +333 -240
  281. package/src/metrics/constants.ts +12 -4
  282. package/src/metrics/index.ts +1 -490
  283. package/src/multistream/mediaRequestManager.ts +289 -79
  284. package/src/multistream/receiveSlot.ts +31 -17
  285. package/src/multistream/receiveSlotManager.ts +34 -24
  286. package/src/multistream/remoteMedia.ts +27 -2
  287. package/src/multistream/remoteMediaGroup.ts +59 -0
  288. package/src/multistream/remoteMediaManager.ts +148 -30
  289. package/src/multistream/sendSlotManager.ts +170 -0
  290. package/src/reachability/index.ts +228 -37
  291. package/src/reachability/request.ts +17 -8
  292. package/src/reconnection-manager/index.ts +83 -56
  293. package/src/recording-controller/index.ts +20 -3
  294. package/src/recording-controller/util.ts +26 -9
  295. package/src/roap/index.ts +63 -32
  296. package/src/roap/request.ts +100 -104
  297. package/src/roap/turnDiscovery.ts +48 -26
  298. package/src/rtcMetrics/constants.ts +3 -0
  299. package/src/rtcMetrics/index.ts +100 -0
  300. package/src/statsAnalyzer/index.ts +105 -91
  301. package/src/statsAnalyzer/mqaUtil.ts +13 -14
  302. package/src/webinar/collection.ts +31 -0
  303. package/src/webinar/index.ts +62 -0
  304. package/test/integration/spec/converged-space-meetings.js +60 -3
  305. package/test/integration/spec/journey.js +320 -261
  306. package/test/integration/spec/space-meeting.js +76 -3
  307. package/test/unit/spec/annotation/index.ts +418 -0
  308. package/test/unit/spec/breakouts/breakout.ts +118 -28
  309. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  310. package/test/unit/spec/breakouts/events.ts +89 -0
  311. package/test/unit/spec/breakouts/index.ts +1395 -69
  312. package/test/unit/spec/breakouts/utils.js +52 -1
  313. package/test/unit/spec/common/queue.js +31 -2
  314. package/test/unit/spec/controls-options-manager/index.js +163 -0
  315. package/test/unit/spec/controls-options-manager/util.js +576 -60
  316. package/test/unit/spec/fixture/locus.js +1 -0
  317. package/test/unit/spec/interpretation/collection.ts +15 -0
  318. package/test/unit/spec/interpretation/index.ts +589 -0
  319. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  320. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  321. package/test/unit/spec/locus-info/index.js +1304 -33
  322. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  323. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  324. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  325. package/test/unit/spec/locus-info/parser.js +116 -35
  326. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  327. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  328. package/test/unit/spec/media/index.ts +104 -37
  329. package/test/unit/spec/media/properties.ts +2 -2
  330. package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
  331. package/test/unit/spec/meeting/index.js +5216 -1956
  332. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  333. package/test/unit/spec/meeting/muteState.js +408 -208
  334. package/test/unit/spec/meeting/request.js +483 -49
  335. package/test/unit/spec/meeting/utils.js +679 -64
  336. package/test/unit/spec/meeting-info/index.js +300 -0
  337. package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
  338. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  339. package/test/unit/spec/meetings/collection.js +26 -0
  340. package/test/unit/spec/meetings/index.js +1011 -205
  341. package/test/unit/spec/meetings/utils.js +202 -2
  342. package/test/unit/spec/member/index.js +61 -6
  343. package/test/unit/spec/member/util.js +510 -34
  344. package/test/unit/spec/members/index.js +432 -1
  345. package/test/unit/spec/members/request.js +206 -27
  346. package/test/unit/spec/members/utils.js +210 -0
  347. package/test/unit/spec/metrics/index.js +1 -50
  348. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  349. package/test/unit/spec/multistream/receiveSlot.ts +28 -20
  350. package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
  351. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  352. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  353. package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
  354. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  355. package/test/unit/spec/reachability/index.ts +549 -9
  356. package/test/unit/spec/reachability/request.js +68 -0
  357. package/test/unit/spec/reconnection-manager/index.js +85 -9
  358. package/test/unit/spec/recording-controller/index.js +294 -218
  359. package/test/unit/spec/recording-controller/util.js +223 -96
  360. package/test/unit/spec/roap/index.ts +178 -64
  361. package/test/unit/spec/roap/request.ts +203 -85
  362. package/test/unit/spec/roap/turnDiscovery.ts +82 -36
  363. package/test/unit/spec/rtcMetrics/index.ts +73 -0
  364. package/test/unit/spec/stats-analyzer/index.js +136 -2
  365. package/test/unit/spec/webinar/collection.ts +13 -0
  366. package/test/unit/spec/webinar/index.ts +60 -0
  367. package/test/utils/integrationTestUtils.js +46 -0
  368. package/test/utils/testUtils.js +0 -52
  369. package/dist/meeting/effectsState.js +0 -262
  370. package/dist/meeting/effectsState.js.map +0 -1
  371. package/dist/metrics/config.js +0 -299
  372. package/dist/metrics/config.js.map +0 -1
  373. package/dist/types/meeting/effectsState.d.ts +0 -42
  374. package/dist/types/metrics/config.d.ts +0 -178
  375. package/src/index.js +0 -16
  376. package/src/meeting/effectsState.ts +0 -211
  377. package/src/metrics/config.ts +0 -495
  378. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -26,20 +26,29 @@ function ReachabilityRequest(webex) {
26
26
  var _this = this;
27
27
  (0, _classCallCheck2.default)(this, ReachabilityRequest);
28
28
  (0, _defineProperty2.default)(this, "webex", void 0);
29
- (0, _defineProperty2.default)(this, "getClusters", function () {
29
+ (0, _defineProperty2.default)(this, "getClusters", function (ipVersion) {
30
30
  return _this.webex.request({
31
31
  method: _constants.HTTP_VERBS.GET,
32
32
  shouldRefreshAccessToken: false,
33
33
  api: _constants.API.CALLIOPEDISCOVERY,
34
- resource: _constants.RESOURCE.CLUSTERS
34
+ resource: _constants.RESOURCE.CLUSTERS,
35
+ qs: {
36
+ JCSupport: 1,
37
+ ipver: ipVersion
38
+ }
35
39
  }).then(function (res) {
36
- var clusters = res.body.clusters;
40
+ var _res$body = res.body,
41
+ clusters = _res$body.clusters,
42
+ joinCookie = _res$body.joinCookie;
37
43
  (0, _keys.default)(clusters).forEach(function (key) {
38
44
  var _res$body$clusterClas, _res$body$clusterClas2;
39
- clusters[key].isVideoMesh = (_res$body$clusterClas = res.body.clusterClasses) === null || _res$body$clusterClas === void 0 ? void 0 : (_res$body$clusterClas2 = _res$body$clusterClas.hybridMedia) === null || _res$body$clusterClas2 === void 0 ? void 0 : _res$body$clusterClas2.includes(key);
45
+ clusters[key].isVideoMesh = !!((_res$body$clusterClas = res.body.clusterClasses) !== null && _res$body$clusterClas !== void 0 && (_res$body$clusterClas2 = _res$body$clusterClas.hybridMedia) !== null && _res$body$clusterClas2 !== void 0 && _res$body$clusterClas2.includes(key));
40
46
  });
41
- _loggerProxy.default.logger.log("Reachability:request#getClusters --> get clusters successful:".concat((0, _stringify.default)(clusters)));
42
- return clusters;
47
+ _loggerProxy.default.logger.log("Reachability:request#getClusters --> get clusters (ipver=".concat(ipVersion, ") successful:").concat((0, _stringify.default)(clusters)));
48
+ return {
49
+ clusters: clusters,
50
+ joinCookie: joinCookie
51
+ };
43
52
  });
44
53
  });
45
54
  (0, _defineProperty2.default)(this, "remoteSDPForClusters", function (localSDPList) {
@@ -60,9 +69,9 @@ function ReachabilityRequest(webex) {
60
69
  }
61
70
 
62
71
  /**
63
- * gets the cluster information
72
+ * Gets the cluster information
64
73
  *
65
- * @param {boolean} includeVideoMesh whether to include the video mesh clusters in the result or not
74
+ * @param {IP_VERSION} ipVersion information about current ip network we're on
66
75
  * @returns {Promise}
67
76
  */);
68
77
  var _default = ReachabilityRequest;
@@ -1 +1 @@
1
- {"version":3,"names":["ReachabilityRequest","webex","request","method","HTTP_VERBS","GET","shouldRefreshAccessToken","api","API","CALLIOPEDISCOVERY","resource","RESOURCE","CLUSTERS","then","res","clusters","body","forEach","key","isVideoMesh","clusterClasses","hybridMedia","includes","LoggerProxy","logger","log","localSDPList","POST","REACHABILITY","offers"],"sources":["request.ts"],"sourcesContent":["import LoggerProxy from '../common/logs/logger-proxy';\nimport {HTTP_VERBS, RESOURCE, API} from '../constants';\n\nexport interface ClusterNode {\n isVideoMesh: boolean;\n udp: Array<string>;\n tcp: Array<string>;\n xtls: Array<string>;\n}\n\nexport type ClusterList = {\n [key: string]: ClusterNode;\n};\n\n/**\n * @class ReachabilityRequest\n */\nclass ReachabilityRequest {\n webex: any;\n\n /**\n * Creates an instance of ReachabilityRequest.\n * @param {object} webex\n * @memberof ReachabilityRequest\n */\n constructor(webex: object) {\n this.webex = webex;\n }\n\n /**\n * gets the cluster information\n *\n * @param {boolean} includeVideoMesh whether to include the video mesh clusters in the result or not\n * @returns {Promise}\n */\n getClusters = (): Promise<ClusterList> =>\n this.webex\n .request({\n method: HTTP_VERBS.GET,\n shouldRefreshAccessToken: false,\n api: API.CALLIOPEDISCOVERY,\n resource: RESOURCE.CLUSTERS,\n })\n .then((res) => {\n const {clusters} = res.body;\n\n Object.keys(clusters).forEach((key) => {\n clusters[key].isVideoMesh = res.body.clusterClasses?.hybridMedia?.includes(key);\n });\n\n LoggerProxy.logger.log(\n `Reachability:request#getClusters --> get clusters successful:${JSON.stringify(clusters)}`\n );\n\n return clusters;\n });\n\n /**\n * gets remote SDP For Clusters\n * @param {Object} localSDPList localSDPs for the cluster\n * @returns {Object}\n */\n remoteSDPForClusters = (localSDPList: object) =>\n this.webex\n .request({\n method: HTTP_VERBS.POST,\n shouldRefreshAccessToken: false,\n api: API.CALLIOPEDISCOVERY,\n resource: RESOURCE.REACHABILITY,\n body: {offers: localSDPList},\n })\n .then((res) => {\n LoggerProxy.logger.log(\n 'Reachability:request#remoteSDPForClusters --> Remote SDPs got succcessfully'\n );\n\n return res.body;\n });\n}\n\nexport default ReachabilityRequest;\n"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AAaA;AACA;AACA;AAFA,IAGMA,mBAAmB;AAGvB;AACF;AACA;AACA;AACA;AACE,6BAAYC,KAAa,EAAE;EAAA;EAAA;EAAA;EAAA,mDAUb;IAAA,OACZ,KAAI,CAACA,KAAK,CACPC,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAACC,GAAG;MACtBC,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAACC;IACrB,CAAC,CAAC,CACDC,IAAI,CAAC,UAACC,GAAG,EAAK;MACb,IAAOC,QAAQ,GAAID,GAAG,CAACE,IAAI,CAApBD,QAAQ;MAEf,mBAAYA,QAAQ,CAAC,CAACE,OAAO,CAAC,UAACC,GAAG,EAAK;QAAA;QACrCH,QAAQ,CAACG,GAAG,CAAC,CAACC,WAAW,4BAAGL,GAAG,CAACE,IAAI,CAACI,cAAc,oFAAvB,sBAAyBC,WAAW,2DAApC,uBAAsCC,QAAQ,CAACJ,GAAG,CAAC;MACjF,CAAC,CAAC;MAEFK,oBAAW,CAACC,MAAM,CAACC,GAAG,wEAC4C,wBAAeV,QAAQ,CAAC,EACzF;MAED,OAAOA,QAAQ;IACjB,CAAC,CAAC;EAAA;EAAA,4DAOiB,UAACW,YAAoB;IAAA,OAC1C,KAAI,CAACzB,KAAK,CACPC,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAACuB,IAAI;MACvBrB,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAACiB,YAAY;MAC/BZ,IAAI,EAAE;QAACa,MAAM,EAAEH;MAAY;IAC7B,CAAC,CAAC,CACDb,IAAI,CAAC,UAACC,GAAG,EAAK;MACbS,oBAAW,CAACC,MAAM,CAACC,GAAG,CACpB,6EAA6E,CAC9E;MAED,OAAOX,GAAG,CAACE,IAAI;IACjB,CAAC,CAAC;EAAA;EAnDJ,IAAI,CAACf,KAAK,GAAGA,KAAK;AACpB;;AAEA;AACF;AACA;AACA;AACA;AACA,GALE;AAAA,eAmDaD,mBAAmB;AAAA"}
1
+ {"version":3,"names":["ReachabilityRequest","webex","ipVersion","request","method","HTTP_VERBS","GET","shouldRefreshAccessToken","api","API","CALLIOPEDISCOVERY","resource","RESOURCE","CLUSTERS","qs","JCSupport","ipver","then","res","body","clusters","joinCookie","forEach","key","isVideoMesh","clusterClasses","hybridMedia","includes","LoggerProxy","logger","log","localSDPList","POST","REACHABILITY","offers"],"sources":["request.ts"],"sourcesContent":["import LoggerProxy from '../common/logs/logger-proxy';\nimport {HTTP_VERBS, RESOURCE, API, IP_VERSION} from '../constants';\n\nexport interface ClusterNode {\n isVideoMesh: boolean;\n udp: Array<string>;\n tcp: Array<string>;\n xtls: Array<string>;\n}\n\nexport type ClusterList = {\n [key: string]: ClusterNode;\n};\n\n/**\n * @class ReachabilityRequest\n */\nclass ReachabilityRequest {\n webex: any;\n\n /**\n * Creates an instance of ReachabilityRequest.\n * @param {object} webex\n * @memberof ReachabilityRequest\n */\n constructor(webex: object) {\n this.webex = webex;\n }\n\n /**\n * Gets the cluster information\n *\n * @param {IP_VERSION} ipVersion information about current ip network we're on\n * @returns {Promise}\n */\n getClusters = (ipVersion?: IP_VERSION): Promise<{clusters: ClusterList; joinCookie: any}> =>\n this.webex\n .request({\n method: HTTP_VERBS.GET,\n shouldRefreshAccessToken: false,\n api: API.CALLIOPEDISCOVERY,\n resource: RESOURCE.CLUSTERS,\n qs: {\n JCSupport: 1,\n ipver: ipVersion,\n },\n })\n .then((res) => {\n const {clusters, joinCookie} = res.body;\n\n Object.keys(clusters).forEach((key) => {\n clusters[key].isVideoMesh = !!res.body.clusterClasses?.hybridMedia?.includes(key);\n });\n\n LoggerProxy.logger.log(\n `Reachability:request#getClusters --> get clusters (ipver=${ipVersion}) successful:${JSON.stringify(\n clusters\n )}`\n );\n\n return {\n clusters,\n joinCookie,\n };\n });\n\n /**\n * gets remote SDP For Clusters\n * @param {Object} localSDPList localSDPs for the cluster\n * @returns {Object}\n */\n remoteSDPForClusters = (localSDPList: object) =>\n this.webex\n .request({\n method: HTTP_VERBS.POST,\n shouldRefreshAccessToken: false,\n api: API.CALLIOPEDISCOVERY,\n resource: RESOURCE.REACHABILITY,\n body: {offers: localSDPList},\n })\n .then((res) => {\n LoggerProxy.logger.log(\n 'Reachability:request#remoteSDPForClusters --> Remote SDPs got succcessfully'\n );\n\n return res.body;\n });\n}\n\nexport default ReachabilityRequest;\n"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AAaA;AACA;AACA;AAFA,IAGMA,mBAAmB;AAGvB;AACF;AACA;AACA;AACA;AACE,6BAAYC,KAAa,EAAE;EAAA;EAAA;EAAA;EAAA,mDAUb,UAACC,SAAsB;IAAA,OACnC,KAAI,CAACD,KAAK,CACPE,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAACC,GAAG;MACtBC,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAACC,QAAQ;MAC3BC,EAAE,EAAE;QACFC,SAAS,EAAE,CAAC;QACZC,KAAK,EAAEd;MACT;IACF,CAAC,CAAC,CACDe,IAAI,CAAC,UAACC,GAAG,EAAK;MACb,gBAA+BA,GAAG,CAACC,IAAI;QAAhCC,QAAQ,aAARA,QAAQ;QAAEC,UAAU,aAAVA,UAAU;MAE3B,mBAAYD,QAAQ,CAAC,CAACE,OAAO,CAAC,UAACC,GAAG,EAAK;QAAA;QACrCH,QAAQ,CAACG,GAAG,CAAC,CAACC,WAAW,GAAG,CAAC,2BAACN,GAAG,CAACC,IAAI,CAACM,cAAc,4EAAvB,sBAAyBC,WAAW,mDAApC,uBAAsCC,QAAQ,CAACJ,GAAG,CAAC;MACnF,CAAC,CAAC;MAEFK,oBAAW,CAACC,MAAM,CAACC,GAAG,oEACwC5B,SAAS,0BAAgB,wBACnFkB,QAAQ,CACT,EACF;MAED,OAAO;QACLA,QAAQ,EAARA,QAAQ;QACRC,UAAU,EAAVA;MACF,CAAC;IACH,CAAC,CAAC;EAAA;EAAA,4DAOiB,UAACU,YAAoB;IAAA,OAC1C,KAAI,CAAC9B,KAAK,CACPE,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAAC2B,IAAI;MACvBzB,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAACqB,YAAY;MAC/Bd,IAAI,EAAE;QAACe,MAAM,EAAEH;MAAY;IAC7B,CAAC,CAAC,CACDd,IAAI,CAAC,UAACC,GAAG,EAAK;MACbU,oBAAW,CAACC,MAAM,CAACC,GAAG,CACpB,6EAA6E,CAC9E;MAED,OAAOZ,GAAG,CAACC,IAAI;IACjB,CAAC,CAAC;EAAA;EA5DJ,IAAI,CAAClB,KAAK,GAAGA,KAAK;AACpB;;AAEA;AACF;AACA;AACA;AACA;AACA,GALE;AAAA,eA4DaD,mBAAmB;AAAA"}
@@ -25,8 +25,6 @@ var _constants = require("../constants");
25
25
  var _constants2 = _interopRequireDefault(require("../metrics/constants"));
26
26
  var _reconnection = _interopRequireDefault(require("../common/errors/reconnection"));
27
27
  var _reconnectionInProgress = _interopRequireDefault(require("../common/errors/reconnection-in-progress"));
28
- var _config = require("../metrics/config");
29
- var _media = _interopRequireDefault(require("../media"));
30
28
  var _metrics = _interopRequireDefault(require("../metrics"));
31
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); }; }
32
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; } }
@@ -247,6 +245,41 @@ var ReconnectionManager = /*#__PURE__*/function () {
247
245
  this.meeting = null;
248
246
  }
249
247
 
248
+ /**
249
+ * Stop the local share stream.
250
+ *
251
+ * @param {string} reason a {@link SHARE_STOPPED_REASON}
252
+ * @returns {undefined}
253
+ * @private
254
+ * @memberof ReconnectionManager
255
+ */
256
+ }, {
257
+ key: "stopLocalShareStream",
258
+ value: function () {
259
+ var _stopLocalShareStream = (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.unpublishStreams([this.meeting.mediaProperties.shareVideoStream, this.meeting.mediaProperties.shareAudioStream]);
265
+ case 2:
266
+ _triggerProxy.default.trigger(this.meeting, {
267
+ file: 'reconnection-manager/index',
268
+ function: 'stopLocalShareStream'
269
+ }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
270
+ reason: reason
271
+ });
272
+ case 3:
273
+ case "end":
274
+ return _context.stop();
275
+ }
276
+ }, _callee, this);
277
+ }));
278
+ function stopLocalShareStream(_x) {
279
+ return _stopLocalShareStream.apply(this, arguments);
280
+ }
281
+ return stopLocalShareStream;
282
+ }()
250
283
  /**
251
284
  * @public
252
285
  * @memberof ReconnectionManager
@@ -290,48 +323,56 @@ var ReconnectionManager = /*#__PURE__*/function () {
290
323
  }, {
291
324
  key: "reconnect",
292
325
  value: function () {
293
- var _reconnect = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
326
+ var _reconnect = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
294
327
  var _this3 = this;
295
328
  var _ref2,
296
329
  _ref2$networkDisconne,
297
330
  networkDisconnect,
298
331
  _ref2$networkRetry,
299
332
  networkRetry,
300
- _args = arguments;
301
- return _regenerator.default.wrap(function _callee$(_context) {
302
- while (1) switch (_context.prev = _context.next) {
333
+ _args2 = arguments;
334
+ return _regenerator.default.wrap(function _callee2$(_context2) {
335
+ while (1) switch (_context2.prev = _context2.next) {
303
336
  case 0:
304
- _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;
337
+ _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;
305
338
  _loggerProxy.default.logger.info("ReconnectionManager:index#reconnect --> Reconnection start for meeting ".concat(this.meeting.id, "."));
306
339
  // First, validate that we can reconnect, if not, it will throw an error
307
- _context.prev = 2;
340
+ _context2.prev = 2;
308
341
  this.validate();
309
- _context.next = 10;
342
+ _context2.next = 10;
310
343
  break;
311
344
  case 6:
312
- _context.prev = 6;
313
- _context.t0 = _context["catch"](2);
314
- _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection unable to begin.', _context.t0);
315
- throw _context.t0;
345
+ _context2.prev = 6;
346
+ _context2.t0 = _context2["catch"](2);
347
+ _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection unable to begin.', _context2.t0);
348
+ throw _context2.t0;
316
349
  case 10:
317
350
  if (!networkRetry) {
318
351
  // Only log START metrics on the initial reconnect
319
352
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect start metric.');
320
- _metrics.default.postEvent({
321
- event: _config.eventType.MEDIA_RECONNECTING,
322
- meeting: this.meeting
353
+
354
+ // @ts-ignore
355
+ this.webex.internal.newMetrics.submitClientEvent({
356
+ name: 'client.media.reconnecting',
357
+ options: {
358
+ meetingId: this.meeting.id
359
+ }
323
360
  });
324
361
  }
325
- return _context.abrupt("return", this.executeReconnection({
362
+ return _context2.abrupt("return", this.executeReconnection({
326
363
  networkDisconnect: networkDisconnect
327
364
  }).then(function () {
328
365
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Reconnection successful.');
329
366
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect success metric.');
330
- _metrics.default.postEvent({
331
- event: _config.eventType.MEDIA_RECOVERED,
332
- meeting: _this3.meeting,
333
- data: {
334
- recoveredBy: _config.reconnection.RECOVERED_BY_NEW
367
+
368
+ // @ts-ignore
369
+ _this3.webex.internal.newMetrics.submitClientEvent({
370
+ name: 'client.media.recovered',
371
+ payload: {
372
+ recoveredBy: 'new'
373
+ },
374
+ options: {
375
+ meetingId: _this3.meeting.id
335
376
  }
336
377
  });
337
378
  }).catch(function (reconnectError) {
@@ -350,20 +391,23 @@ var ReconnectionManager = /*#__PURE__*/function () {
350
391
  // Reconnect has failed
351
392
  _loggerProxy.default.logger.error('ReconnectionManager:index#reconnect --> Reconnection failed.', reconnectError.message);
352
393
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnect --> Sending reconnect abort metric.');
353
- var reconnectMetric = {
354
- event: _config.eventType.CALL_ABORTED,
355
- meeting: _this3.meeting,
356
- data: {
394
+
395
+ // @ts-ignore
396
+ _this3.webex.internal.newMetrics.submitClientEvent({
397
+ name: 'client.call.aborted',
398
+ payload: {
357
399
  errors: [{
358
- category: _config.errorObjects.category.expected,
400
+ category: 'expected',
359
401
  errorCode: 2008,
360
402
  fatal: true,
361
- name: _config.errorObjects.name.mediaEngine,
403
+ name: 'media-engine',
362
404
  shownToUser: false
363
405
  }]
406
+ },
407
+ options: {
408
+ meetingId: _this3.meeting.id
364
409
  }
365
- };
366
- _metrics.default.postEvent(reconnectMetric);
410
+ });
367
411
  if (reconnectError instanceof NeedsRejoinError) {
368
412
  // send call aborded event with catogery as expected as we are trying to rejoin
369
413
 
@@ -375,9 +419,9 @@ var ReconnectionManager = /*#__PURE__*/function () {
375
419
  }));
376
420
  case 12:
377
421
  case "end":
378
- return _context.stop();
422
+ return _context2.stop();
379
423
  }
380
- }, _callee, this, [[2, 6]]);
424
+ }, _callee2, this, [[2, 6]]);
381
425
  }));
382
426
  function reconnect() {
383
427
  return _reconnect.apply(this, arguments);
@@ -395,91 +439,102 @@ var ReconnectionManager = /*#__PURE__*/function () {
395
439
  }, {
396
440
  key: "executeReconnection",
397
441
  value: function () {
398
- var _executeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(_ref3) {
442
+ var _executeReconnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(_ref3) {
399
443
  var _ref3$networkDisconne, networkDisconnect, wasSharing, media;
400
- return _regenerator.default.wrap(function _callee2$(_context2) {
401
- while (1) switch (_context2.prev = _context2.next) {
444
+ return _regenerator.default.wrap(function _callee3$(_context3) {
445
+ while (1) switch (_context3.prev = _context3.next) {
402
446
  case 0:
403
447
  _ref3$networkDisconne = _ref3.networkDisconnect, networkDisconnect = _ref3$networkDisconne === void 0 ? false : _ref3$networkDisconne;
404
448
  this.status = _constants.RECONNECTION.STATE.IN_PROGRESS;
405
449
  _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Attempting to reconnect to meeting.');
450
+ wasSharing = this.meeting.shareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE;
451
+ if (!wasSharing) {
452
+ _context3.next = 7;
453
+ break;
454
+ }
455
+ _context3.next = 7;
456
+ return this.stopLocalShareStream(_constants.SHARE_STOPPED_REASON.MEDIA_RECONNECTION);
457
+ case 7:
406
458
  if (!networkDisconnect) {
407
- _context2.next = 15;
459
+ _context3.next = 19;
408
460
  break;
409
461
  }
410
- _context2.prev = 4;
411
- _context2.next = 7;
462
+ _context3.prev = 8;
463
+ _context3.next = 11;
412
464
  return this.reconnectMercuryWebSocket();
413
- case 7:
465
+ case 11:
414
466
  _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Websocket reconnected.', this.webex.internal.device.url);
415
- _context2.next = 15;
467
+ _context3.next = 19;
416
468
  break;
417
- case 10:
418
- _context2.prev = 10;
419
- _context2.t0 = _context2["catch"](4);
469
+ case 14:
470
+ _context3.prev = 14;
471
+ _context3.t0 = _context3["catch"](8);
420
472
  _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Unable to reconnect to websocket, giving up.');
421
473
  this.status = _constants.RECONNECTION.STATE.FAILURE;
422
- throw _context2.t0;
423
- case 15:
424
- wasSharing = this.meeting.shareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE;
425
- _context2.prev = 16;
474
+ throw _context3.t0;
475
+ case 19:
476
+ if (this.webex.credentials.isUnverifiedGuest) {
477
+ _context3.next = 30;
478
+ break;
479
+ }
480
+ _context3.prev = 20;
426
481
  _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Updating meeting data from server.');
427
- _context2.next = 20;
482
+ _context3.next = 24;
428
483
  return this.webex.meetings.syncMeetings();
429
- case 20:
430
- _context2.next = 26;
484
+ case 24:
485
+ _context3.next = 30;
431
486
  break;
432
- case 22:
433
- _context2.prev = 22;
434
- _context2.t1 = _context2["catch"](16);
435
- _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.', _context2.t1);
436
- throw new NeedsRetryError(_context2.t1);
437
487
  case 26:
488
+ _context3.prev = 26;
489
+ _context3.t1 = _context3["catch"](20);
490
+ _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.', _context3.t1);
491
+ throw new NeedsRetryError(_context3.t1);
492
+ case 30:
438
493
  if (!(!this.meeting || !this.webex.meetings.getMeetingByType(_constants._ID_, this.meeting.id))) {
439
- _context2.next = 29;
494
+ _context3.next = 33;
440
495
  break;
441
496
  }
442
- _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely ');
443
- throw new Error('Unable to rejoin a meeting already ended or inactive .');
444
- case 29:
497
+ _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely.');
498
+ throw new Error('Unable to rejoin a meeting already ended or inactive.');
499
+ case 33:
445
500
  _loggerProxy.default.logger.info("ReconnectionManager:index#executeReconnection --> Current state of meeting is ".concat(this.meeting.state));
446
501
 
447
502
  // If the meeting state was left, no longer reconnect media
448
503
  if (!(this.meeting.state === _constants._LEFT_)) {
449
- _context2.next = 34;
504
+ _context3.next = 38;
450
505
  break;
451
506
  }
452
507
  if (!(this.meeting.type === _constants._CALL_)) {
453
- _context2.next = 33;
508
+ _context3.next = 37;
454
509
  break;
455
510
  }
456
511
  throw new Error('Unable to rejoin a call in LEFT state.');
457
- case 33:
512
+ case 37:
458
513
  throw new NeedsRejoinError({
459
514
  wasSharing: wasSharing
460
515
  });
461
- case 34:
462
- _context2.prev = 34;
463
- _context2.next = 37;
516
+ case 38:
517
+ _context3.prev = 38;
518
+ _context3.next = 41;
464
519
  return this.reconnectMedia();
465
- case 37:
466
- media = _context2.sent;
520
+ case 41:
521
+ media = _context3.sent;
467
522
  _loggerProxy.default.logger.log('ReconnectionManager:index#executeReconnection --> Media reestablished');
468
523
  this.status = _constants.RECONNECTION.STATE.COMPLETE;
469
- return _context2.abrupt("return", media);
470
- case 43:
471
- _context2.prev = 43;
472
- _context2.t2 = _context2["catch"](34);
524
+ return _context3.abrupt("return", media);
525
+ case 47:
526
+ _context3.prev = 47;
527
+ _context3.t2 = _context3["catch"](38);
473
528
  _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> Media reestablishment failed');
474
529
  this.status = _constants.RECONNECTION.STATE.FAILURE;
475
- throw _context2.t2;
476
- case 48:
530
+ throw _context3.t2;
531
+ case 52:
477
532
  case "end":
478
- return _context2.stop();
533
+ return _context3.stop();
479
534
  }
480
- }, _callee2, this, [[4, 10], [16, 22], [34, 43]]);
535
+ }, _callee3, this, [[8, 14], [20, 26], [38, 47]]);
481
536
  }));
482
- function executeReconnection(_x) {
537
+ function executeReconnection(_x2) {
483
538
  return _executeReconnection.apply(this, arguments);
484
539
  }
485
540
  return executeReconnection;
@@ -494,76 +549,68 @@ var ReconnectionManager = /*#__PURE__*/function () {
494
549
  }, {
495
550
  key: "rejoinMeeting",
496
551
  value: function () {
497
- var _rejoinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
552
+ var _rejoinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
498
553
  var wasSharing,
499
- _args3 = arguments;
500
- return _regenerator.default.wrap(function _callee3$(_context3) {
501
- while (1) switch (_context3.prev = _context3.next) {
554
+ _args4 = arguments;
555
+ return _regenerator.default.wrap(function _callee4$(_context4) {
556
+ while (1) switch (_context4.prev = _context4.next) {
502
557
  case 0:
503
- wasSharing = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;
504
- _context3.prev = 1;
558
+ wasSharing = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : false;
559
+ _context4.prev = 1;
505
560
  _loggerProxy.default.logger.info('ReconnectionManager:index#rejoinMeeting --> attemping meeting rejoin');
506
- _context3.next = 5;
561
+ _context4.next = 5;
507
562
  return this.meeting.join({
508
563
  rejoin: true
509
564
  });
510
565
  case 5:
511
566
  _loggerProxy.default.logger.info('ReconnectionManager:index#rejoinMeeting --> meeting rejoined');
512
- if (wasSharing) {
513
- // Stop the share streams if user tried to rejoin
514
- _media.default.stopTracks(this.meeting.mediaProperties.shareTrack);
515
- this.meeting.isSharing = false;
516
- if (this.shareStatus === _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE) {
517
- this.meeting.shareStatus = _constants.SHARE_STATUS.NO_SHARE;
518
- }
519
- this.meeting.mediaProperties.mediaDirection.sendShare = false;
520
- _triggerProxy.default.trigger(this.meeting, {
521
- file: 'reconnection-manager/index',
522
- function: 'rejoinMeeting'
523
- }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_LOCAL, {
524
- reason: _constants.SHARE_STOPPED_REASON.MEETING_REJOIN
525
- });
567
+ if (!wasSharing) {
568
+ _context4.next = 9;
569
+ break;
526
570
  }
527
- _context3.next = 21;
528
- break;
571
+ _context4.next = 9;
572
+ return this.stopLocalShareStream(_constants.SHARE_STOPPED_REASON.MEETING_REJOIN);
529
573
  case 9:
530
- _context3.prev = 9;
531
- _context3.t0 = _context3["catch"](1);
574
+ _context4.next = 23;
575
+ break;
576
+ case 11:
577
+ _context4.prev = 11;
578
+ _context4.t0 = _context4["catch"](1);
532
579
  this.rejoinAttempts += 1;
533
580
  if (!(this.rejoinAttempts <= this.maxRejoinAttempts)) {
534
- _context3.next = 17;
581
+ _context4.next = 19;
535
582
  break;
536
583
  }
537
- _loggerProxy.default.logger.info("ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #".concat(this.rejoinAttempts, ", retrying."), _context3.t0);
584
+ _loggerProxy.default.logger.info("ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #".concat(this.rejoinAttempts, ", retrying."), _context4.t0);
538
585
  this.rejoinMeeting();
539
- _context3.next = 21;
586
+ _context4.next = 23;
540
587
  break;
541
- case 17:
542
- _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.', _context3.t0);
588
+ case 19:
589
+ _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.', _context4.t0);
543
590
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_MAX_REJOIN_FAILURE, {
544
591
  locus_id: this.meeting.locusUrl.split('/').pop(),
545
- reason: _context3.t0.message,
546
- stack: _context3.t0.stack
592
+ reason: _context4.t0.message,
593
+ stack: _context4.t0.stack
547
594
  });
548
595
  this.status = _constants.RECONNECTION.STATE.FAILURE;
549
- throw _context3.t0;
550
- case 21:
551
- _context3.prev = 21;
552
- _context3.next = 24;
596
+ throw _context4.t0;
597
+ case 23:
598
+ _context4.prev = 23;
599
+ _context4.next = 26;
553
600
  return this.reconnectMedia();
554
- case 24:
555
- _context3.next = 30;
556
- break;
557
601
  case 26:
558
- _context3.prev = 26;
559
- _context3.t1 = _context3["catch"](21);
560
- _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to reestablish media after rejoining.', _context3.t1);
561
- throw _context3.t1;
562
- case 30:
602
+ _context4.next = 32;
603
+ break;
604
+ case 28:
605
+ _context4.prev = 28;
606
+ _context4.t1 = _context4["catch"](23);
607
+ _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to reestablish media after rejoining.', _context4.t1);
608
+ throw _context4.t1;
609
+ case 32:
563
610
  case "end":
564
- return _context3.stop();
611
+ return _context4.stop();
565
612
  }
566
- }, _callee3, this, [[1, 9], [21, 26]]);
613
+ }, _callee4, this, [[1, 11], [23, 28]]);
567
614
  }));
568
615
  function rejoinMeeting() {
569
616
  return _rejoinMeeting.apply(this, arguments);
@@ -578,18 +625,18 @@ var ReconnectionManager = /*#__PURE__*/function () {
578
625
  }, {
579
626
  key: "reconnectMedia",
580
627
  value: function () {
581
- var _reconnectMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
628
+ var _reconnectMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
582
629
  var turnServerResult, iceServers;
583
- return _regenerator.default.wrap(function _callee4$(_context4) {
584
- while (1) switch (_context4.prev = _context4.next) {
630
+ return _regenerator.default.wrap(function _callee5$(_context5) {
631
+ while (1) switch (_context5.prev = _context5.next) {
585
632
  case 0:
586
633
  _loggerProxy.default.logger.log('ReconnectionManager:index#reconnectMedia --> Begin reestablishment of media');
587
634
 
588
- // do the TURN server discovery again since the TURN server might change
589
- _context4.next = 3;
590
- return this.meeting.roap.doTurnDiscovery(this.meeting, true);
635
+ // do the TURN server discovery again and ignore reachability results since the TURN server might change
636
+ _context5.next = 3;
637
+ return this.meeting.roap.doTurnDiscovery(this.meeting, true, true);
591
638
  case 3:
592
- turnServerResult = _context4.sent;
639
+ turnServerResult = _context5.sent;
593
640
  iceServers = [];
594
641
  if (turnServerResult.turnServerInfo) {
595
642
  iceServers.push({
@@ -598,23 +645,21 @@ var ReconnectionManager = /*#__PURE__*/function () {
598
645
  credential: turnServerResult.turnServerInfo.password || ''
599
646
  });
600
647
  }
601
- _context4.next = 8;
648
+ _context5.next = 8;
602
649
  return this.meeting.mediaProperties.webrtcMediaConnection.reconnect(iceServers);
603
650
  case 8:
604
651
  // resend media requests
605
652
  if (this.meeting.isMultistream) {
606
653
  (0, _values.default)(this.meeting.mediaRequestManagers).forEach(function (mediaRequestManager) {
607
- return (
608
- // @ts-ignore - Fix type
609
- mediaRequestManager.commit()
610
- );
654
+ mediaRequestManager.clearPreviousRequests();
655
+ mediaRequestManager.commit();
611
656
  });
612
657
  }
613
658
  case 9:
614
659
  case "end":
615
- return _context4.stop();
660
+ return _context5.stop();
616
661
  }
617
- }, _callee4, this);
662
+ }, _callee5, this);
618
663
  }));
619
664
  function reconnectMedia() {
620
665
  return _reconnectMedia.apply(this, arguments);
@@ -630,49 +675,49 @@ var ReconnectionManager = /*#__PURE__*/function () {
630
675
  }, {
631
676
  key: "reconnectMercuryWebSocket",
632
677
  value: function () {
633
- var _reconnectMercuryWebSocket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
634
- return _regenerator.default.wrap(function _callee5$(_context5) {
635
- while (1) switch (_context5.prev = _context5.next) {
678
+ var _reconnectMercuryWebSocket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
679
+ return _regenerator.default.wrap(function _callee6$(_context6) {
680
+ while (1) switch (_context6.prev = _context6.next) {
636
681
  case 0:
637
682
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Reconnecting websocket.');
638
683
  // First, attempt to disconnect if we think we are already connected.
639
684
  if (!this.webex.internal.mercury.connected) {
640
- _context5.next = 13;
685
+ _context6.next = 13;
641
686
  break;
642
687
  }
643
688
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Disconnecting existing websocket.');
644
- _context5.prev = 3;
645
- _context5.next = 6;
689
+ _context6.prev = 3;
690
+ _context6.next = 6;
646
691
  return this.webex.internal.mercury.disconnect();
647
692
  case 6:
648
693
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket disconnected successfully.');
649
- _context5.next = 13;
694
+ _context6.next = 13;
650
695
  break;
651
696
  case 9:
652
- _context5.prev = 9;
653
- _context5.t0 = _context5["catch"](3);
697
+ _context6.prev = 9;
698
+ _context6.t0 = _context6["catch"](3);
654
699
  // If we can't disconnect, the sdk is in such a bad state that reconnecting is not going to happen.
655
- _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.', _context5.t0);
656
- throw _context5.t0;
700
+ _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.', _context6.t0);
701
+ throw _context6.t0;
657
702
  case 13:
658
- _context5.prev = 13;
703
+ _context6.prev = 13;
659
704
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Connecting websocket.');
660
- _context5.next = 17;
705
+ _context6.next = 17;
661
706
  return this.webex.internal.mercury.connect();
662
707
  case 17:
663
708
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket connected successfully.');
664
- _context5.next = 24;
709
+ _context6.next = 24;
665
710
  break;
666
711
  case 20:
667
- _context5.prev = 20;
668
- _context5.t1 = _context5["catch"](13);
669
- _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.', _context5.t1);
670
- throw _context5.t1;
712
+ _context6.prev = 20;
713
+ _context6.t1 = _context6["catch"](13);
714
+ _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.', _context6.t1);
715
+ throw _context6.t1;
671
716
  case 24:
672
717
  case "end":
673
- return _context5.stop();
718
+ return _context6.stop();
674
719
  }
675
- }, _callee5, this, [[3, 9], [13, 20]]);
720
+ }, _callee6, this, [[3, 9], [13, 20]]);
676
721
  }));
677
722
  function reconnectMercuryWebSocket() {
678
723
  return _reconnectMercuryWebSocket.apply(this, arguments);