@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.21

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