@webex/plugin-meetings 2.59.8-next.2 → 2.60.0-next.1

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