@webex/plugin-meetings 2.60.0 → 2.60.1-next.10

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