@webex/plugin-meetings 2.60.0 → 2.60.1-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 (535) hide show
  1. package/README.md +46 -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 +217 -97
  90. package/dist/constants.js +416 -441
  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 +591 -494
  159. package/dist/meeting/index.js +4732 -2990
  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 +297 -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 +102 -1
  176. package/dist/meeting/util.js +605 -435
  177. package/dist/meeting/util.js.map +1 -1
  178. package/dist/meeting-info/collection.js +3 -4
  179. package/dist/meeting-info/collection.js.map +1 -1
  180. package/dist/meeting-info/index.d.ts +13 -1
  181. package/dist/meeting-info/index.js +74 -7
  182. package/dist/meeting-info/index.js.map +1 -1
  183. package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
  184. package/dist/meeting-info/meeting-info-v2.js +200 -63
  185. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  186. package/dist/meeting-info/request.js +1 -2
  187. package/dist/meeting-info/request.js.map +1 -1
  188. package/dist/meeting-info/util.js +2 -3
  189. package/dist/meeting-info/util.js.map +1 -1
  190. package/dist/meeting-info/utilv2.js +39 -41
  191. package/dist/meeting-info/utilv2.js.map +1 -1
  192. package/dist/meetings/collection.d.ts +17 -0
  193. package/dist/meetings/collection.js +42 -4
  194. package/dist/meetings/collection.js.map +1 -1
  195. package/dist/meetings/index.d.ts +93 -21
  196. package/dist/meetings/index.js +490 -127
  197. package/dist/meetings/index.js.map +1 -1
  198. package/dist/meetings/meetings.types.d.ts +4 -0
  199. package/dist/meetings/meetings.types.js +7 -0
  200. package/dist/meetings/meetings.types.js.map +1 -0
  201. package/dist/meetings/request.js +4 -3
  202. package/dist/meetings/request.js.map +1 -1
  203. package/dist/meetings/util.js +107 -6
  204. package/dist/meetings/util.js.map +1 -1
  205. package/dist/member/index.d.ts +13 -1
  206. package/dist/member/index.js +45 -2
  207. package/dist/member/index.js.map +1 -1
  208. package/dist/member/member.types.js +3 -4
  209. package/dist/member/member.types.js.map +1 -1
  210. package/dist/member/types.d.ts +32 -0
  211. package/dist/member/types.js +23 -0
  212. package/dist/member/types.js.map +1 -0
  213. package/dist/member/util.js +120 -29
  214. package/dist/member/util.js.map +1 -1
  215. package/dist/members/collection.d.ts +5 -0
  216. package/dist/members/collection.js +11 -2
  217. package/dist/members/collection.js.map +1 -1
  218. package/dist/members/index.d.ts +56 -11
  219. package/dist/members/index.js +174 -47
  220. package/dist/members/index.js.map +1 -1
  221. package/dist/members/request.d.ts +67 -11
  222. package/dist/members/request.js +102 -54
  223. package/dist/members/request.js.map +1 -1
  224. package/dist/members/types.js +3 -4
  225. package/dist/members/types.js.map +1 -1
  226. package/dist/members/util.d.ts +214 -1
  227. package/dist/members/util.js +327 -284
  228. package/dist/members/util.js.map +1 -1
  229. package/dist/metrics/constants.d.ts +15 -6
  230. package/dist/metrics/constants.js +17 -9
  231. package/dist/metrics/constants.js.map +1 -1
  232. package/dist/metrics/index.d.ts +4 -111
  233. package/dist/metrics/index.js +4 -452
  234. package/dist/metrics/index.js.map +1 -1
  235. package/dist/multistream/mediaRequestManager.d.ts +118 -0
  236. package/dist/multistream/mediaRequestManager.js +344 -0
  237. package/dist/multistream/mediaRequestManager.js.map +1 -0
  238. package/dist/multistream/receiveSlot.d.ts +68 -0
  239. package/dist/multistream/receiveSlot.js +200 -0
  240. package/dist/multistream/receiveSlot.js.map +1 -0
  241. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  242. package/dist/multistream/receiveSlotManager.js +174 -0
  243. package/dist/multistream/receiveSlotManager.js.map +1 -0
  244. package/dist/multistream/remoteMedia.d.ts +72 -0
  245. package/dist/multistream/remoteMedia.js +268 -0
  246. package/dist/multistream/remoteMedia.js.map +1 -0
  247. package/dist/multistream/remoteMediaGroup.d.ts +47 -0
  248. package/dist/multistream/remoteMediaGroup.js +267 -0
  249. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  250. package/dist/multistream/remoteMediaManager.d.ts +285 -0
  251. package/dist/multistream/remoteMediaManager.js +1211 -0
  252. package/dist/multistream/remoteMediaManager.js.map +1 -0
  253. package/dist/multistream/sendSlotManager.d.ts +61 -0
  254. package/dist/multistream/sendSlotManager.js +236 -0
  255. package/dist/multistream/sendSlotManager.js.map +1 -0
  256. package/dist/networkQualityMonitor/index.js +5 -4
  257. package/dist/networkQualityMonitor/index.js.map +1 -1
  258. package/dist/personal-meeting-room/index.js +2 -3
  259. package/dist/personal-meeting-room/index.js.map +1 -1
  260. package/dist/personal-meeting-room/request.js +2 -3
  261. package/dist/personal-meeting-room/request.js.map +1 -1
  262. package/dist/personal-meeting-room/util.js +1 -2
  263. package/dist/personal-meeting-room/util.js.map +1 -1
  264. package/dist/reachability/clusterReachability.d.ts +109 -0
  265. package/dist/reachability/clusterReachability.js +357 -0
  266. package/dist/reachability/clusterReachability.js.map +1 -0
  267. package/dist/reachability/index.d.ts +61 -95
  268. package/dist/reachability/index.js +300 -393
  269. package/dist/reachability/index.js.map +1 -1
  270. package/dist/reachability/request.d.ts +7 -3
  271. package/dist/reachability/request.js +18 -10
  272. package/dist/reachability/request.js.map +1 -1
  273. package/dist/reachability/util.d.ts +8 -0
  274. package/dist/reachability/util.js +29 -0
  275. package/dist/reachability/util.js.map +1 -0
  276. package/dist/reactions/constants.d.ts +3 -0
  277. package/dist/reactions/constants.js +12 -0
  278. package/dist/reactions/constants.js.map +1 -0
  279. package/dist/reactions/reactions.d.ts +2 -2
  280. package/dist/reactions/reactions.js +4 -6
  281. package/dist/reactions/reactions.js.map +1 -1
  282. package/dist/reactions/reactions.type.d.ts +23 -3
  283. package/dist/reactions/reactions.type.js +21 -23
  284. package/dist/reactions/reactions.type.js.map +1 -1
  285. package/dist/reconnection-manager/index.d.ts +32 -8
  286. package/dist/reconnection-manager/index.js +282 -231
  287. package/dist/reconnection-manager/index.js.map +1 -1
  288. package/dist/recording-controller/enums.js +4 -5
  289. package/dist/recording-controller/enums.js.map +1 -1
  290. package/dist/recording-controller/index.d.ts +15 -1
  291. package/dist/recording-controller/index.js +57 -46
  292. package/dist/recording-controller/index.js.map +1 -1
  293. package/dist/recording-controller/util.d.ts +5 -4
  294. package/dist/recording-controller/util.js +10 -10
  295. package/dist/recording-controller/util.js.map +1 -1
  296. package/dist/roap/index.d.ts +9 -47
  297. package/dist/roap/index.js +101 -235
  298. package/dist/roap/index.js.map +1 -1
  299. package/dist/roap/request.d.ts +18 -12
  300. package/dist/roap/request.js +126 -180
  301. package/dist/roap/request.js.map +1 -1
  302. package/dist/roap/turnDiscovery.d.ts +27 -16
  303. package/dist/roap/turnDiscovery.js +115 -105
  304. package/dist/roap/turnDiscovery.js.map +1 -1
  305. package/dist/rtcMetrics/constants.d.ts +4 -0
  306. package/dist/rtcMetrics/constants.js +11 -0
  307. package/dist/rtcMetrics/constants.js.map +1 -0
  308. package/dist/rtcMetrics/index.d.ts +54 -0
  309. package/dist/rtcMetrics/index.js +140 -0
  310. package/dist/rtcMetrics/index.js.map +1 -0
  311. package/dist/statsAnalyzer/global.d.ts +1 -83
  312. package/dist/statsAnalyzer/global.js +2 -85
  313. package/dist/statsAnalyzer/global.js.map +1 -1
  314. package/dist/statsAnalyzer/index.d.ts +50 -30
  315. package/dist/statsAnalyzer/index.js +435 -510
  316. package/dist/statsAnalyzer/index.js.map +1 -1
  317. package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
  318. package/dist/statsAnalyzer/mqaUtil.js +120 -83
  319. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  320. package/dist/transcription/index.js +1 -2
  321. package/dist/transcription/index.js.map +1 -1
  322. package/dist/webinar/collection.d.ts +16 -0
  323. package/dist/webinar/collection.js +43 -0
  324. package/dist/webinar/collection.js.map +1 -0
  325. package/dist/webinar/index.d.ts +5 -0
  326. package/dist/webinar/index.js +68 -0
  327. package/dist/webinar/index.js.map +1 -0
  328. package/package.json +38 -26
  329. package/src/annotation/annotation.types.ts +50 -0
  330. package/src/annotation/constants.ts +36 -0
  331. package/src/annotation/index.ts +328 -0
  332. package/src/breakouts/README.md +220 -0
  333. package/src/breakouts/breakout.ts +188 -0
  334. package/src/breakouts/collection.ts +19 -0
  335. package/src/breakouts/edit-lock-error.ts +25 -0
  336. package/src/breakouts/events.ts +56 -0
  337. package/src/breakouts/index.ts +925 -0
  338. package/src/breakouts/request.ts +55 -0
  339. package/src/breakouts/utils.ts +57 -0
  340. package/src/common/errors/no-meeting-info.ts +24 -0
  341. package/src/common/errors/webex-errors.ts +36 -12
  342. package/src/common/logs/logger-proxy.ts +1 -1
  343. package/src/common/logs/request.ts +5 -1
  344. package/src/common/queue.ts +22 -8
  345. package/src/config.ts +6 -7
  346. package/src/constants.ts +244 -97
  347. package/src/controls-options-manager/enums.ts +12 -0
  348. package/src/controls-options-manager/index.ts +116 -21
  349. package/src/controls-options-manager/types.ts +59 -0
  350. package/src/controls-options-manager/util.ts +294 -14
  351. package/src/index.ts +44 -0
  352. package/src/interceptors/index.ts +3 -0
  353. package/src/interceptors/locusRetry.ts +67 -0
  354. package/src/interpretation/README.md +60 -0
  355. package/src/interpretation/collection.ts +19 -0
  356. package/src/interpretation/index.ts +332 -0
  357. package/src/interpretation/siLanguage.ts +18 -0
  358. package/src/locus-info/controlsUtils.ts +110 -0
  359. package/src/locus-info/index.ts +449 -61
  360. package/src/locus-info/infoUtils.ts +14 -2
  361. package/src/locus-info/mediaSharesUtils.ts +64 -0
  362. package/src/locus-info/parser.ts +258 -47
  363. package/src/locus-info/selfUtils.ts +85 -2
  364. package/src/media/index.ts +153 -370
  365. package/src/media/properties.ts +106 -136
  366. package/src/media/util.ts +0 -21
  367. package/src/mediaQualityMetrics/config.ts +244 -377
  368. package/src/meeting/in-meeting-actions.ts +176 -0
  369. package/src/meeting/index.ts +3944 -2489
  370. package/src/meeting/locusMediaRequest.ts +313 -0
  371. package/src/meeting/muteState.ts +224 -138
  372. package/src/meeting/request.ts +207 -127
  373. package/src/meeting/request.type.ts +13 -0
  374. package/src/meeting/util.ts +590 -423
  375. package/src/meeting-info/index.ts +81 -8
  376. package/src/meeting-info/meeting-info-v2.ts +163 -13
  377. package/src/meeting-info/util.ts +1 -1
  378. package/src/meeting-info/utilv2.ts +28 -28
  379. package/src/meetings/collection.ts +33 -0
  380. package/src/meetings/index.ts +487 -126
  381. package/src/meetings/meetings.types.ts +12 -0
  382. package/src/meetings/request.ts +2 -0
  383. package/src/meetings/util.ts +116 -5
  384. package/src/member/index.ts +43 -1
  385. package/src/member/types.ts +38 -0
  386. package/src/member/util.ts +125 -28
  387. package/src/members/collection.ts +8 -0
  388. package/src/members/index.ts +187 -52
  389. package/src/members/request.ts +87 -27
  390. package/src/members/util.ts +332 -291
  391. package/src/metrics/constants.ts +15 -6
  392. package/src/metrics/index.ts +1 -471
  393. package/src/multistream/mediaRequestManager.ts +440 -0
  394. package/src/multistream/receiveSlot.ts +184 -0
  395. package/src/multistream/receiveSlotManager.ts +166 -0
  396. package/src/multistream/remoteMedia.ts +254 -0
  397. package/src/multistream/remoteMediaGroup.ts +284 -0
  398. package/src/multistream/remoteMediaManager.ts +1145 -0
  399. package/src/multistream/sendSlotManager.ts +170 -0
  400. package/src/networkQualityMonitor/index.ts +6 -6
  401. package/src/reachability/clusterReachability.ts +320 -0
  402. package/src/reachability/index.ts +243 -347
  403. package/src/reachability/request.ts +17 -8
  404. package/src/reachability/util.ts +24 -0
  405. package/src/reactions/constants.ts +4 -0
  406. package/src/reactions/reactions.ts +4 -4
  407. package/src/reactions/reactions.type.ts +30 -4
  408. package/src/reconnection-manager/index.ts +168 -156
  409. package/src/recording-controller/index.ts +20 -3
  410. package/src/recording-controller/util.ts +26 -9
  411. package/src/roap/index.ts +98 -241
  412. package/src/roap/request.ts +74 -148
  413. package/src/roap/turnDiscovery.ts +62 -56
  414. package/src/rtcMetrics/constants.ts +3 -0
  415. package/src/rtcMetrics/index.ts +124 -0
  416. package/src/statsAnalyzer/global.ts +1 -84
  417. package/src/statsAnalyzer/index.ts +477 -643
  418. package/src/statsAnalyzer/mqaUtil.ts +115 -114
  419. package/src/webinar/collection.ts +31 -0
  420. package/src/webinar/index.ts +62 -0
  421. package/test/integration/spec/converged-space-meetings.js +233 -0
  422. package/test/integration/spec/journey.js +320 -264
  423. package/test/integration/spec/space-meeting.js +77 -4
  424. package/test/unit/spec/annotation/index.ts +418 -0
  425. package/test/unit/spec/breakouts/breakout.ts +237 -0
  426. package/test/unit/spec/breakouts/collection.ts +15 -0
  427. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  428. package/test/unit/spec/breakouts/events.ts +89 -0
  429. package/test/unit/spec/breakouts/index.ts +1790 -0
  430. package/test/unit/spec/breakouts/request.ts +104 -0
  431. package/test/unit/spec/breakouts/utils.js +72 -0
  432. package/test/unit/spec/common/queue.js +31 -2
  433. package/test/unit/spec/controls-options-manager/index.js +163 -0
  434. package/test/unit/spec/controls-options-manager/util.js +576 -60
  435. package/test/unit/spec/fixture/locus.js +1 -0
  436. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  437. package/test/unit/spec/interpretation/collection.ts +15 -0
  438. package/test/unit/spec/interpretation/index.ts +589 -0
  439. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  440. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  441. package/test/unit/spec/locus-info/index.js +1390 -16
  442. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  443. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  444. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  445. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  446. package/test/unit/spec/locus-info/parser.js +116 -35
  447. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  448. package/test/unit/spec/media/index.ts +290 -0
  449. package/test/unit/spec/media/properties.ts +75 -84
  450. package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
  451. package/test/unit/spec/meeting/index.js +8187 -2769
  452. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  453. package/test/unit/spec/meeting/muteState.js +409 -213
  454. package/test/unit/spec/meeting/request.js +512 -42
  455. package/test/unit/spec/meeting/utils.js +741 -24
  456. package/test/unit/spec/meeting-info/index.js +300 -0
  457. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  458. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  459. package/test/unit/spec/meetings/collection.js +26 -0
  460. package/test/unit/spec/meetings/index.js +1313 -243
  461. package/test/unit/spec/meetings/utils.js +202 -2
  462. package/test/unit/spec/member/index.js +32 -9
  463. package/test/unit/spec/member/util.js +499 -61
  464. package/test/unit/spec/members/index.js +394 -5
  465. package/test/unit/spec/members/request.js +206 -27
  466. package/test/unit/spec/members/utils.js +173 -38
  467. package/test/unit/spec/metrics/index.js +1 -50
  468. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  469. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  470. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  471. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  472. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  473. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  474. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  475. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  476. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  477. package/test/unit/spec/reachability/index.ts +531 -24
  478. package/test/unit/spec/reachability/request.js +68 -0
  479. package/test/unit/spec/reachability/util.ts +40 -0
  480. package/test/unit/spec/reconnection-manager/index.js +162 -24
  481. package/test/unit/spec/recording-controller/index.js +293 -218
  482. package/test/unit/spec/recording-controller/util.js +223 -96
  483. package/test/unit/spec/roap/index.ts +200 -76
  484. package/test/unit/spec/roap/request.ts +255 -0
  485. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  486. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  487. package/test/unit/spec/stats-analyzer/index.js +261 -167
  488. package/test/unit/spec/webinar/collection.ts +13 -0
  489. package/test/unit/spec/webinar/index.ts +60 -0
  490. package/test/utils/constants.js +9 -0
  491. package/test/utils/integrationTestUtils.js +46 -0
  492. package/test/utils/testUtils.js +0 -45
  493. package/test/utils/webex-config.js +4 -0
  494. package/test/utils/webex-test-users.js +7 -3
  495. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  496. package/dist/meeting/effectsState.d.ts +0 -42
  497. package/dist/meeting/effectsState.js +0 -260
  498. package/dist/meeting/effectsState.js.map +0 -1
  499. package/dist/metrics/config.d.ts +0 -169
  500. package/dist/metrics/config.js +0 -289
  501. package/dist/metrics/config.js.map +0 -1
  502. package/dist/peer-connection-manager/index.d.ts +0 -6
  503. package/dist/peer-connection-manager/index.js +0 -671
  504. package/dist/peer-connection-manager/index.js.map +0 -1
  505. package/dist/peer-connection-manager/util.d.ts +0 -6
  506. package/dist/peer-connection-manager/util.js +0 -110
  507. package/dist/peer-connection-manager/util.js.map +0 -1
  508. package/dist/roap/collection.d.ts +0 -10
  509. package/dist/roap/collection.js +0 -63
  510. package/dist/roap/collection.js.map +0 -1
  511. package/dist/roap/handler.d.ts +0 -47
  512. package/dist/roap/handler.js +0 -279
  513. package/dist/roap/handler.js.map +0 -1
  514. package/dist/roap/state.d.ts +0 -9
  515. package/dist/roap/state.js +0 -127
  516. package/dist/roap/state.js.map +0 -1
  517. package/dist/roap/util.d.ts +0 -2
  518. package/dist/roap/util.js +0 -76
  519. package/dist/roap/util.js.map +0 -1
  520. package/src/index.js +0 -15
  521. package/src/meeting/effectsState.ts +0 -209
  522. package/src/metrics/config.ts +0 -485
  523. package/src/peer-connection-manager/index.ts +0 -847
  524. package/src/peer-connection-manager/util.ts +0 -119
  525. package/src/roap/collection.ts +0 -62
  526. package/src/roap/handler.ts +0 -294
  527. package/src/roap/state.ts +0 -156
  528. package/src/roap/util.ts +0 -100
  529. package/test/unit/spec/meeting/effectsState.js +0 -281
  530. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  531. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  532. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  533. package/test/unit/spec/roap/util.js +0 -30
  534. /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
  535. /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,105 @@ 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;
485
+ _context3.next = 24;
407
486
  return this.webex.meetings.syncMeetings();
408
- case 20:
409
- _context2.next = 26;
487
+ case 24:
488
+ _context3.next = 30;
410
489
  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
490
  case 26:
491
+ _context3.prev = 26;
492
+ _context3.t1 = _context3["catch"](20);
493
+ _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Unable to sync meetings, reconnecting.', _context3.t1);
494
+ throw new NeedsRetryError(_context3.t1);
495
+ case 30:
417
496
  if (!(!this.meeting || !this.webex.meetings.getMeetingByType(_constants._ID_, this.meeting.id))) {
418
- _context2.next = 29;
497
+ _context3.next = 33;
419
498
  break;
420
499
  }
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:
500
+ _loggerProxy.default.logger.info('ReconnectionManager:index#executeReconnection --> Meeting got deleted due to inactivity or ended remotely.');
501
+ throw new Error('Unable to rejoin a meeting already ended or inactive.');
502
+ case 33:
424
503
  _loggerProxy.default.logger.info("ReconnectionManager:index#executeReconnection --> Current state of meeting is ".concat(this.meeting.state));
425
504
 
426
505
  // If the meeting state was left, no longer reconnect media
427
506
  if (!(this.meeting.state === _constants._LEFT_)) {
428
- _context2.next = 34;
507
+ _context3.next = 38;
429
508
  break;
430
509
  }
431
510
  if (!(this.meeting.type === _constants._CALL_)) {
432
- _context2.next = 33;
511
+ _context3.next = 37;
433
512
  break;
434
513
  }
435
514
  throw new Error('Unable to rejoin a call in LEFT state.');
436
- case 33:
515
+ case 37:
437
516
  throw new NeedsRejoinError({
438
517
  wasSharing: wasSharing
439
518
  });
440
- case 34:
441
- _context2.prev = 34;
442
- _context2.next = 37;
519
+ case 38:
520
+ _context3.prev = 38;
521
+ _context3.next = 41;
443
522
  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');
523
+ case 41:
524
+ media = _context3.sent;
525
+ _loggerProxy.default.logger.log('ReconnectionManager:index#executeReconnection --> webRTC media connection renewed and local sdp offer sent');
526
+ return _context3.abrupt("return", media);
527
+ case 46:
528
+ _context3.prev = 46;
529
+ _context3.t2 = _context3["catch"](38);
530
+ _loggerProxy.default.logger.error('ReconnectionManager:index#executeReconnection --> failed to renew webRTC media connection or initiate offer');
453
531
  this.status = _constants.RECONNECTION.STATE.FAILURE;
454
- throw _context2.t2;
455
- case 48:
532
+ throw _context3.t2;
533
+ case 51:
456
534
  case "end":
457
- return _context2.stop();
535
+ return _context3.stop();
458
536
  }
459
- }, _callee2, this, [[4, 10], [16, 22], [34, 43]]);
537
+ }, _callee3, this, [[8, 14], [20, 26], [38, 46]]);
460
538
  }));
461
- function executeReconnection(_x) {
539
+ function executeReconnection(_x2) {
462
540
  return _executeReconnection.apply(this, arguments);
463
541
  }
464
542
  return executeReconnection;
@@ -470,82 +548,72 @@ var ReconnectionManager = /*#__PURE__*/function () {
470
548
  * @param {boolean} wasSharing
471
549
  * @returns {Promise}
472
550
  */
551
+ )
473
552
  }, {
474
553
  key: "rejoinMeeting",
475
- value: function () {
476
- var _rejoinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
554
+ value: (function () {
555
+ var _rejoinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
477
556
  var wasSharing,
478
- previousCorrelationId,
479
- _args3 = arguments;
480
- return _regenerator.default.wrap(function _callee3$(_context3) {
481
- while (1) switch (_context3.prev = _context3.next) {
557
+ _args4 = arguments;
558
+ return _regenerator.default.wrap(function _callee4$(_context4) {
559
+ while (1) switch (_context4.prev = _context4.next) {
482
560
  case 0:
483
- wasSharing = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;
484
- _context3.prev = 1;
561
+ wasSharing = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : false;
562
+ _context4.prev = 1;
485
563
  _loggerProxy.default.logger.info('ReconnectionManager:index#rejoinMeeting --> attemping meeting rejoin');
486
- previousCorrelationId = this.meeting.correlationId;
487
- _context3.next = 6;
564
+ _context4.next = 5;
488
565
  return this.meeting.join({
489
566
  rejoin: true
490
567
  });
491
- case 6:
568
+ case 5:
492
569
  _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
- });
570
+ if (!wasSharing) {
571
+ _context4.next = 9;
572
+ break;
508
573
  }
509
- _context3.next = 23;
574
+ _context4.next = 9;
575
+ return this.stopLocalShareStream(_constants.SHARE_STOPPED_REASON.MEETING_REJOIN);
576
+ case 9:
577
+ _context4.next = 23;
510
578
  break;
511
579
  case 11:
512
- _context3.prev = 11;
513
- _context3.t0 = _context3["catch"](1);
580
+ _context4.prev = 11;
581
+ _context4.t0 = _context4["catch"](1);
514
582
  this.rejoinAttempts += 1;
515
583
  if (!(this.rejoinAttempts <= this.maxRejoinAttempts)) {
516
- _context3.next = 19;
584
+ _context4.next = 19;
517
585
  break;
518
586
  }
519
- _loggerProxy.default.logger.info("ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #".concat(this.rejoinAttempts, ", retrying."), _context3.t0);
587
+ _loggerProxy.default.logger.info("ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting, attempt #".concat(this.rejoinAttempts, ", retrying."), _context4.t0);
520
588
  this.rejoinMeeting();
521
- _context3.next = 23;
589
+ _context4.next = 23;
522
590
  break;
523
591
  case 19:
524
- _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.', _context3.t0);
592
+ _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to rejoin meeting after max attempts.', _context4.t0);
525
593
  _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_MAX_REJOIN_FAILURE, {
526
594
  locus_id: this.meeting.locusUrl.split('/').pop(),
527
- reason: _context3.t0.message,
528
- stack: _context3.t0.stack
595
+ reason: _context4.t0.message,
596
+ stack: _context4.t0.stack
529
597
  });
530
598
  this.status = _constants.RECONNECTION.STATE.FAILURE;
531
- throw _context3.t0;
599
+ throw _context4.t0;
532
600
  case 23:
533
- _context3.prev = 23;
534
- _context3.next = 26;
601
+ _context4.prev = 23;
602
+ _context4.next = 26;
535
603
  return this.reconnectMedia();
536
604
  case 26:
537
- _context3.next = 32;
605
+ _context4.next = 32;
538
606
  break;
539
607
  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;
608
+ _context4.prev = 28;
609
+ _context4.t1 = _context4["catch"](23);
610
+ _loggerProxy.default.logger.error('ReconnectionManager:index#rejoinMeeting --> Unable to reestablish media after rejoining.', _context4.t1);
611
+ throw _context4.t1;
544
612
  case 32:
545
613
  case "end":
546
- return _context3.stop();
614
+ return _context4.stop();
547
615
  }
548
- }, _callee3, this, [[1, 11], [23, 28]]);
616
+ }, _callee4, this, [[1, 11], [23, 28]]);
549
617
  }));
550
618
  function rejoinMeeting() {
551
619
  return _rejoinMeeting.apply(this, arguments);
@@ -557,129 +625,112 @@ var ReconnectionManager = /*#__PURE__*/function () {
557
625
  * @private
558
626
  * @memberof ReconnectionManager
559
627
  */
628
+ )
560
629
  }, {
561
630
  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
- }
631
+ value: (function () {
632
+ var _reconnectMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
633
+ var turnServerResult, iceServers;
634
+ return _regenerator.default.wrap(function _callee5$(_context5) {
635
+ while (1) switch (_context5.prev = _context5.next) {
636
+ case 0:
637
+ _loggerProxy.default.logger.log('ReconnectionManager:index#reconnectMedia --> do turn discovery');
584
638
 
639
+ // do the TURN server discovery again and ignore reachability results since the TURN server might change
640
+ _context5.next = 3;
641
+ return this.meeting.roap.doTurnDiscovery(this.meeting, true, true);
642
+ case 3:
643
+ turnServerResult = _context5.sent;
644
+ iceServers = [];
645
+ if (turnServerResult.turnServerInfo) {
646
+ iceServers.push({
647
+ urls: turnServerResult.turnServerInfo.url,
648
+ username: turnServerResult.turnServerInfo.username || '',
649
+ credential: turnServerResult.turnServerInfo.password || ''
650
+ });
651
+ }
652
+ _loggerProxy.default.logger.log('ReconnectionManager:index#reconnectMedia --> renew webRTC media connection and send local sdp offer');
653
+ _context5.next = 9;
654
+ return this.meeting.mediaProperties.webrtcMediaConnection.reconnect(iceServers);
655
+ case 9:
656
+ // resend media requests
657
+ if (this.meeting.isMultistream) {
658
+ (0, _values.default)(this.meeting.mediaRequestManagers).forEach(function (mediaRequestManager) {
659
+ mediaRequestManager.clearPreviousRequests();
660
+ mediaRequestManager.commit();
661
+ });
662
+ }
663
+ case 10:
664
+ case "end":
665
+ return _context5.stop();
666
+ }
667
+ }, _callee5, this);
668
+ }));
669
+ function reconnectMedia() {
670
+ return _reconnectMedia.apply(this, arguments);
671
+ }
672
+ return reconnectMedia;
673
+ }()
585
674
  /**
586
675
  * Attempt to Reconnect Mercury Websocket
587
676
  * @returns {Promise}
588
677
  * @private
589
678
  * @memberof ReconnectionManager
590
679
  */
680
+ )
591
681
  }, {
592
682
  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) {
683
+ value: (function () {
684
+ var _reconnectMercuryWebSocket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
685
+ return _regenerator.default.wrap(function _callee6$(_context6) {
686
+ while (1) switch (_context6.prev = _context6.next) {
597
687
  case 0:
598
688
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Reconnecting websocket.');
599
689
  // First, attempt to disconnect if we think we are already connected.
600
690
  if (!this.webex.internal.mercury.connected) {
601
- _context4.next = 13;
691
+ _context6.next = 13;
602
692
  break;
603
693
  }
604
694
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Disconnecting existing websocket.');
605
- _context4.prev = 3;
606
- _context4.next = 6;
695
+ _context6.prev = 3;
696
+ _context6.next = 6;
607
697
  return this.webex.internal.mercury.disconnect();
608
698
  case 6:
609
699
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket disconnected successfully.');
610
- _context4.next = 13;
700
+ _context6.next = 13;
611
701
  break;
612
702
  case 9:
613
- _context4.prev = 9;
614
- _context4.t0 = _context4["catch"](3);
703
+ _context6.prev = 9;
704
+ _context6.t0 = _context6["catch"](3);
615
705
  // 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;
706
+ _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to disconnect from websocket, giving up.', _context6.t0);
707
+ throw _context6.t0;
618
708
  case 13:
619
- _context4.prev = 13;
709
+ _context6.prev = 13;
620
710
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Connecting websocket.');
621
- _context4.next = 17;
711
+ _context6.next = 17;
622
712
  return this.webex.internal.mercury.connect();
623
713
  case 17:
624
714
  _loggerProxy.default.logger.info('ReconnectionManager:index#reconnectMercuryWebSocket --> Websocket connected successfully.');
625
- _context4.next = 24;
715
+ _context6.next = 24;
626
716
  break;
627
717
  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;
718
+ _context6.prev = 20;
719
+ _context6.t1 = _context6["catch"](13);
720
+ _loggerProxy.default.logger.error('ReconnectionManager:index#reconnectMercuryWebSocket --> Unable to connect to websocket, giving up.', _context6.t1);
721
+ throw _context6.t1;
632
722
  case 24:
633
723
  case "end":
634
- return _context4.stop();
724
+ return _context6.stop();
635
725
  }
636
- }, _callee4, this, [[3, 9], [13, 20]]);
726
+ }, _callee6, this, [[3, 9], [13, 20]]);
637
727
  }));
638
728
  function reconnectMercuryWebSocket() {
639
729
  return _reconnectMercuryWebSocket.apply(this, arguments);
640
730
  }
641
731
  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
- }()
732
+ }())
681
733
  }]);
682
734
  return ReconnectionManager;
683
735
  }();
684
- exports.default = ReconnectionManager;
685
736
  //# sourceMappingURL=index.js.map