@webex/plugin-meetings 3.0.0-beta.4 → 3.0.0-beta.400

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 (629) hide show
  1. package/README.md +58 -8
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +49 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +342 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +216 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +45 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +1048 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +10 -24
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +11 -24
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +12 -25
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +10 -24
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/no-meeting-info.js +51 -0
  39. package/dist/common/errors/no-meeting-info.js.map +1 -0
  40. package/dist/common/errors/parameter.js +5 -33
  41. package/dist/common/errors/parameter.js.map +1 -1
  42. package/dist/common/errors/password-error.js +10 -24
  43. package/dist/common/errors/password-error.js.map +1 -1
  44. package/dist/common/errors/permission.js +9 -23
  45. package/dist/common/errors/permission.js.map +1 -1
  46. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  47. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  48. package/dist/common/errors/reconnection-in-progress.js +0 -17
  49. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  50. package/dist/common/errors/reconnection.js +10 -24
  51. package/dist/common/errors/reconnection.js.map +1 -1
  52. package/dist/common/errors/stats.js +10 -24
  53. package/dist/common/errors/stats.js.map +1 -1
  54. package/dist/common/errors/webex-errors.js +54 -48
  55. package/dist/common/errors/webex-errors.js.map +1 -1
  56. package/dist/common/errors/webex-meetings-error.js +5 -25
  57. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  58. package/dist/common/events/events-scope.js +0 -22
  59. package/dist/common/events/events-scope.js.map +1 -1
  60. package/dist/common/events/events.js +0 -23
  61. package/dist/common/events/events.js.map +1 -1
  62. package/dist/common/events/trigger-proxy.js +0 -12
  63. package/dist/common/events/trigger-proxy.js.map +1 -1
  64. package/dist/common/events/util.js +0 -15
  65. package/dist/common/events/util.js.map +1 -1
  66. package/dist/common/logs/logger-config.js +0 -4
  67. package/dist/common/logs/logger-config.js.map +1 -1
  68. package/dist/common/logs/logger-proxy.js +1 -8
  69. package/dist/common/logs/logger-proxy.js.map +1 -1
  70. package/dist/common/logs/request.js +41 -60
  71. package/dist/common/logs/request.js.map +1 -1
  72. package/dist/common/queue.js +28 -23
  73. package/dist/common/queue.js.map +1 -1
  74. package/dist/config.js +11 -15
  75. package/dist/config.js.map +1 -1
  76. package/dist/constants.js +347 -74
  77. package/dist/constants.js.map +1 -1
  78. package/dist/controls-options-manager/constants.js +14 -0
  79. package/dist/controls-options-manager/constants.js.map +1 -0
  80. package/dist/controls-options-manager/enums.js +27 -0
  81. package/dist/controls-options-manager/enums.js.map +1 -0
  82. package/dist/controls-options-manager/index.js +297 -0
  83. package/dist/controls-options-manager/index.js.map +1 -0
  84. package/dist/controls-options-manager/types.js +7 -0
  85. package/dist/controls-options-manager/types.js.map +1 -0
  86. package/dist/controls-options-manager/util.js +319 -0
  87. package/dist/controls-options-manager/util.js.map +1 -0
  88. package/dist/index.js +125 -18
  89. package/dist/index.js.map +1 -1
  90. package/dist/interceptors/index.js +15 -0
  91. package/dist/interceptors/index.js.map +1 -0
  92. package/dist/interceptors/locusRetry.js +93 -0
  93. package/dist/interceptors/locusRetry.js.map +1 -0
  94. package/dist/interpretation/collection.js +23 -0
  95. package/dist/interpretation/collection.js.map +1 -0
  96. package/dist/interpretation/index.js +380 -0
  97. package/dist/interpretation/index.js.map +1 -0
  98. package/dist/interpretation/siLanguage.js +25 -0
  99. package/dist/interpretation/siLanguage.js.map +1 -0
  100. package/dist/locus-info/controlsUtils.js +101 -29
  101. package/dist/locus-info/controlsUtils.js.map +1 -1
  102. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  103. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  104. package/dist/locus-info/fullState.js +0 -15
  105. package/dist/locus-info/fullState.js.map +1 -1
  106. package/dist/locus-info/hostUtils.js +4 -12
  107. package/dist/locus-info/hostUtils.js.map +1 -1
  108. package/dist/locus-info/index.js +564 -246
  109. package/dist/locus-info/index.js.map +1 -1
  110. package/dist/locus-info/infoUtils.js +10 -38
  111. package/dist/locus-info/infoUtils.js.map +1 -1
  112. package/dist/locus-info/mediaSharesUtils.js +82 -38
  113. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  114. package/dist/locus-info/parser.js +314 -163
  115. package/dist/locus-info/parser.js.map +1 -1
  116. package/dist/locus-info/selfUtils.js +110 -92
  117. package/dist/locus-info/selfUtils.js.map +1 -1
  118. package/dist/media/index.js +107 -231
  119. package/dist/media/index.js.map +1 -1
  120. package/dist/media/properties.js +137 -222
  121. package/dist/media/properties.js.map +1 -1
  122. package/dist/media/util.js +2 -9
  123. package/dist/media/util.js.map +1 -1
  124. package/dist/mediaQualityMetrics/config.js +316 -501
  125. package/dist/mediaQualityMetrics/config.js.map +1 -1
  126. package/dist/meeting/in-meeting-actions.js +97 -14
  127. package/dist/meeting/in-meeting-actions.js.map +1 -1
  128. package/dist/meeting/index.js +5311 -3871
  129. package/dist/meeting/index.js.map +1 -1
  130. package/dist/meeting/locusMediaRequest.js +292 -0
  131. package/dist/meeting/locusMediaRequest.js.map +1 -0
  132. package/dist/meeting/muteState.js +260 -183
  133. package/dist/meeting/muteState.js.map +1 -1
  134. package/dist/meeting/request.js +421 -347
  135. package/dist/meeting/request.js.map +1 -1
  136. package/dist/meeting/request.type.js +7 -0
  137. package/dist/meeting/request.type.js.map +1 -0
  138. package/dist/meeting/state.js +21 -31
  139. package/dist/meeting/state.js.map +1 -1
  140. package/dist/meeting/util.js +672 -585
  141. package/dist/meeting/util.js.map +1 -1
  142. package/dist/meeting/voicea-meeting.js +172 -0
  143. package/dist/meeting/voicea-meeting.js.map +1 -0
  144. package/dist/meeting-info/collection.js +6 -25
  145. package/dist/meeting-info/collection.js.map +1 -1
  146. package/dist/meeting-info/index.js +87 -39
  147. package/dist/meeting-info/index.js.map +1 -1
  148. package/dist/meeting-info/meeting-info-v2.js +352 -283
  149. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  150. package/dist/meeting-info/request.js +3 -15
  151. package/dist/meeting-info/request.js.map +1 -1
  152. package/dist/meeting-info/util.js +99 -183
  153. package/dist/meeting-info/util.js.map +1 -1
  154. package/dist/meeting-info/utilv2.js +147 -234
  155. package/dist/meeting-info/utilv2.js.map +1 -1
  156. package/dist/meetings/collection.js +43 -19
  157. package/dist/meetings/collection.js.map +1 -1
  158. package/dist/meetings/index.js +895 -600
  159. package/dist/meetings/index.js.map +1 -1
  160. package/dist/meetings/meetings.types.js +7 -0
  161. package/dist/meetings/meetings.types.js.map +1 -0
  162. package/dist/meetings/request.js +26 -41
  163. package/dist/meetings/request.js.map +1 -1
  164. package/dist/meetings/util.js +184 -157
  165. package/dist/meetings/util.js.map +1 -1
  166. package/dist/member/index.js +134 -85
  167. package/dist/member/index.js.map +1 -1
  168. package/dist/member/types.js +25 -0
  169. package/dist/member/types.js.map +1 -0
  170. package/dist/member/util.js +158 -88
  171. package/dist/member/util.js.map +1 -1
  172. package/dist/members/collection.js +13 -12
  173. package/dist/members/collection.js.map +1 -1
  174. package/dist/members/index.js +194 -204
  175. package/dist/members/index.js.map +1 -1
  176. package/dist/members/request.js +113 -68
  177. package/dist/members/request.js.map +1 -1
  178. package/dist/members/types.js +15 -0
  179. package/dist/members/types.js.map +1 -0
  180. package/dist/members/util.js +324 -259
  181. package/dist/members/util.js.map +1 -1
  182. package/dist/metrics/constants.js +19 -7
  183. package/dist/metrics/constants.js.map +1 -1
  184. package/dist/metrics/index.js +11 -558
  185. package/dist/metrics/index.js.map +1 -1
  186. package/dist/multistream/mediaRequestManager.js +263 -50
  187. package/dist/multistream/mediaRequestManager.js.map +1 -1
  188. package/dist/multistream/receiveSlot.js +58 -65
  189. package/dist/multistream/receiveSlot.js.map +1 -1
  190. package/dist/multistream/receiveSlotManager.js +76 -95
  191. package/dist/multistream/receiveSlotManager.js.map +1 -1
  192. package/dist/multistream/remoteMedia.js +62 -76
  193. package/dist/multistream/remoteMedia.js.map +1 -1
  194. package/dist/multistream/remoteMediaGroup.js +82 -45
  195. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  196. package/dist/multistream/remoteMediaManager.js +657 -448
  197. package/dist/multistream/remoteMediaManager.js.map +1 -1
  198. package/dist/multistream/sendSlotManager.js +255 -0
  199. package/dist/multistream/sendSlotManager.js.map +1 -0
  200. package/dist/networkQualityMonitor/index.js +40 -59
  201. package/dist/networkQualityMonitor/index.js.map +1 -1
  202. package/dist/personal-meeting-room/index.js +21 -45
  203. package/dist/personal-meeting-room/index.js.map +1 -1
  204. package/dist/personal-meeting-room/request.js +1 -31
  205. package/dist/personal-meeting-room/request.js.map +1 -1
  206. package/dist/personal-meeting-room/util.js +0 -13
  207. package/dist/personal-meeting-room/util.js.map +1 -1
  208. package/dist/reachability/clusterReachability.js +356 -0
  209. package/dist/reachability/clusterReachability.js.map +1 -0
  210. package/dist/reachability/index.js +297 -460
  211. package/dist/reachability/index.js.map +1 -1
  212. package/dist/reachability/request.js +20 -26
  213. package/dist/reachability/request.js.map +1 -1
  214. package/dist/reachability/util.js +29 -0
  215. package/dist/reachability/util.js.map +1 -0
  216. package/dist/reactions/constants.js +13 -0
  217. package/dist/reactions/constants.js.map +1 -0
  218. package/dist/reactions/reactions.js +109 -0
  219. package/dist/reactions/reactions.js.map +1 -0
  220. package/dist/reactions/reactions.type.js +36 -0
  221. package/dist/reactions/reactions.type.js.map +1 -0
  222. package/dist/reconnection-manager/index.js +413 -483
  223. package/dist/reconnection-manager/index.js.map +1 -1
  224. package/dist/recording-controller/enums.js +17 -0
  225. package/dist/recording-controller/enums.js.map +1 -0
  226. package/dist/recording-controller/index.js +362 -0
  227. package/dist/recording-controller/index.js.map +1 -0
  228. package/dist/recording-controller/util.js +64 -0
  229. package/dist/recording-controller/util.js.map +1 -0
  230. package/dist/roap/index.js +102 -86
  231. package/dist/roap/index.js.map +1 -1
  232. package/dist/roap/request.js +131 -135
  233. package/dist/roap/request.js.map +1 -1
  234. package/dist/roap/turnDiscovery.js +437 -116
  235. package/dist/roap/turnDiscovery.js.map +1 -1
  236. package/dist/rtcMetrics/constants.js +12 -0
  237. package/dist/rtcMetrics/constants.js.map +1 -0
  238. package/dist/rtcMetrics/index.js +179 -0
  239. package/dist/rtcMetrics/index.js.map +1 -0
  240. package/dist/statsAnalyzer/global.js +1 -95
  241. package/dist/statsAnalyzer/global.js.map +1 -1
  242. package/dist/statsAnalyzer/index.js +557 -583
  243. package/dist/statsAnalyzer/index.js.map +1 -1
  244. package/dist/statsAnalyzer/mqaUtil.js +326 -130
  245. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  246. package/dist/transcription/index.js +22 -47
  247. package/dist/transcription/index.js.map +1 -1
  248. package/dist/types/annotation/annotation.types.d.ts +42 -0
  249. package/dist/types/annotation/constants.d.ts +31 -0
  250. package/dist/types/annotation/index.d.ts +117 -0
  251. package/dist/types/breakouts/breakout.d.ts +8 -0
  252. package/dist/types/breakouts/collection.d.ts +5 -0
  253. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  254. package/dist/types/breakouts/events.d.ts +8 -0
  255. package/dist/types/breakouts/index.d.ts +5 -0
  256. package/dist/types/breakouts/request.d.ts +22 -0
  257. package/dist/types/breakouts/utils.d.ts +15 -0
  258. package/dist/types/common/browser-detection.d.ts +9 -0
  259. package/dist/types/common/collection.d.ts +48 -0
  260. package/dist/types/common/config.d.ts +2 -0
  261. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  262. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  263. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  264. package/dist/types/common/errors/media.d.ts +15 -0
  265. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  266. package/dist/types/common/errors/parameter.d.ts +15 -0
  267. package/dist/types/common/errors/password-error.d.ts +15 -0
  268. package/dist/types/common/errors/permission.d.ts +14 -0
  269. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  270. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  271. package/dist/types/common/errors/reconnection.d.ts +15 -0
  272. package/dist/types/common/errors/stats.d.ts +15 -0
  273. package/dist/types/common/errors/webex-errors.d.ts +93 -0
  274. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  275. package/dist/types/common/events/events-scope.d.ts +17 -0
  276. package/dist/types/common/events/events.d.ts +12 -0
  277. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  278. package/dist/types/common/events/util.d.ts +2 -0
  279. package/dist/types/common/logs/logger-config.d.ts +2 -0
  280. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  281. package/dist/types/common/logs/request.d.ts +36 -0
  282. package/dist/types/common/queue.d.ts +34 -0
  283. package/dist/types/config.d.ts +72 -0
  284. package/dist/types/constants.d.ts +1088 -0
  285. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  286. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  287. package/dist/types/controls-options-manager/index.d.ts +136 -0
  288. package/dist/types/controls-options-manager/types.d.ts +43 -0
  289. package/dist/types/controls-options-manager/util.d.ts +1 -0
  290. package/dist/types/index.d.ts +7 -0
  291. package/dist/types/interceptors/index.d.ts +2 -0
  292. package/dist/types/interceptors/locusRetry.d.ts +27 -0
  293. package/dist/types/interpretation/collection.d.ts +5 -0
  294. package/dist/types/interpretation/index.d.ts +5 -0
  295. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  296. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  297. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  298. package/dist/types/locus-info/fullState.d.ts +2 -0
  299. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  300. package/dist/types/locus-info/index.d.ts +322 -0
  301. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  302. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  303. package/dist/types/locus-info/parser.d.ts +272 -0
  304. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  305. package/dist/types/media/index.d.ts +34 -0
  306. package/dist/types/media/properties.d.ts +93 -0
  307. package/dist/types/media/util.d.ts +2 -0
  308. package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
  309. package/dist/types/meeting/in-meeting-actions.d.ts +167 -0
  310. package/dist/types/meeting/index.d.ts +1824 -0
  311. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  312. package/dist/types/meeting/muteState.d.ts +178 -0
  313. package/dist/types/meeting/request.d.ts +293 -0
  314. package/dist/types/meeting/request.type.d.ts +11 -0
  315. package/dist/types/meeting/state.d.ts +9 -0
  316. package/dist/types/meeting/util.d.ts +118 -0
  317. package/dist/types/meeting/voicea-meeting.d.ts +16 -0
  318. package/dist/types/meeting-info/collection.d.ts +20 -0
  319. package/dist/types/meeting-info/index.d.ts +69 -0
  320. package/dist/types/meeting-info/meeting-info-v2.d.ts +123 -0
  321. package/dist/types/meeting-info/request.d.ts +22 -0
  322. package/dist/types/meeting-info/util.d.ts +2 -0
  323. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  324. package/dist/types/meetings/collection.d.ts +40 -0
  325. package/dist/types/meetings/index.d.ts +389 -0
  326. package/dist/types/meetings/meetings.types.d.ts +4 -0
  327. package/dist/types/meetings/request.d.ts +27 -0
  328. package/dist/types/meetings/util.d.ts +18 -0
  329. package/dist/types/member/index.d.ts +160 -0
  330. package/dist/types/member/types.d.ts +32 -0
  331. package/dist/types/member/util.d.ts +2 -0
  332. package/dist/types/members/collection.d.ts +29 -0
  333. package/dist/types/members/index.d.ts +353 -0
  334. package/dist/types/members/request.d.ts +114 -0
  335. package/dist/types/members/types.d.ts +25 -0
  336. package/dist/types/members/util.d.ts +215 -0
  337. package/dist/types/metrics/constants.d.ts +70 -0
  338. package/dist/types/metrics/index.d.ts +45 -0
  339. package/dist/types/multistream/mediaRequestManager.d.ts +120 -0
  340. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  341. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  342. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  343. package/dist/types/multistream/remoteMediaGroup.d.ts +49 -0
  344. package/dist/types/multistream/remoteMediaManager.d.ts +301 -0
  345. package/dist/types/multistream/sendSlotManager.d.ts +70 -0
  346. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  347. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  348. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  349. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  350. package/dist/types/reachability/clusterReachability.d.ts +109 -0
  351. package/dist/types/reachability/index.d.ts +105 -0
  352. package/dist/types/reachability/request.d.ts +39 -0
  353. package/dist/types/reachability/util.d.ts +8 -0
  354. package/dist/types/reactions/constants.d.ts +3 -0
  355. package/dist/types/reactions/reactions.d.ts +4 -0
  356. package/dist/types/reactions/reactions.type.d.ts +52 -0
  357. package/dist/types/reconnection-manager/index.d.ts +136 -0
  358. package/dist/types/recording-controller/enums.d.ts +7 -0
  359. package/dist/types/recording-controller/index.d.ts +207 -0
  360. package/dist/types/recording-controller/util.d.ts +14 -0
  361. package/dist/types/roap/index.d.ts +86 -0
  362. package/dist/types/roap/request.d.ts +39 -0
  363. package/dist/types/roap/turnDiscovery.d.ts +155 -0
  364. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  365. package/dist/types/rtcMetrics/index.d.ts +61 -0
  366. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  367. package/dist/types/statsAnalyzer/index.d.ts +217 -0
  368. package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
  369. package/dist/types/transcription/index.d.ts +64 -0
  370. package/dist/types/webinar/collection.d.ts +16 -0
  371. package/dist/types/webinar/index.d.ts +5 -0
  372. package/dist/webinar/collection.js +44 -0
  373. package/dist/webinar/collection.js.map +1 -0
  374. package/dist/webinar/index.js +69 -0
  375. package/dist/webinar/index.js.map +1 -0
  376. package/internal-README.md +7 -6
  377. package/package.json +30 -21
  378. package/src/annotation/annotation.types.ts +50 -0
  379. package/src/annotation/constants.ts +36 -0
  380. package/src/annotation/index.ts +328 -0
  381. package/src/breakouts/README.md +220 -0
  382. package/src/breakouts/breakout.ts +188 -0
  383. package/src/breakouts/collection.ts +19 -0
  384. package/src/breakouts/edit-lock-error.ts +25 -0
  385. package/src/breakouts/events.ts +56 -0
  386. package/src/breakouts/index.ts +925 -0
  387. package/src/breakouts/request.ts +55 -0
  388. package/src/breakouts/utils.ts +57 -0
  389. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  390. package/src/common/collection.ts +9 -7
  391. package/src/common/{config.js → config.ts} +1 -1
  392. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  393. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  394. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  395. package/src/common/errors/{media.js → media.ts} +11 -7
  396. package/src/common/errors/no-meeting-info.ts +24 -0
  397. package/src/common/errors/parameter.ts +11 -7
  398. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  399. package/src/common/errors/{permission.js → permission.ts} +10 -6
  400. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  401. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  402. package/src/common/errors/{stats.js → stats.ts} +11 -7
  403. package/src/common/errors/{webex-errors.js → webex-errors.ts} +51 -8
  404. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  405. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  406. package/src/common/events/{events.js → events.ts} +5 -1
  407. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  408. package/src/common/events/{util.js → util.ts} +2 -3
  409. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  410. package/src/common/logs/logger-proxy.ts +44 -0
  411. package/src/common/logs/{request.js → request.ts} +26 -9
  412. package/src/common/queue.ts +22 -9
  413. package/src/{config.js → config.ts} +19 -21
  414. package/src/constants.ts +296 -27
  415. package/src/controls-options-manager/constants.ts +5 -0
  416. package/src/controls-options-manager/enums.ts +18 -0
  417. package/src/controls-options-manager/index.ts +278 -0
  418. package/src/controls-options-manager/types.ts +59 -0
  419. package/src/controls-options-manager/util.ts +300 -0
  420. package/src/index.ts +45 -0
  421. package/src/interceptors/index.ts +3 -0
  422. package/src/interceptors/locusRetry.ts +67 -0
  423. package/src/interpretation/README.md +60 -0
  424. package/src/interpretation/collection.ts +19 -0
  425. package/src/interpretation/index.ts +349 -0
  426. package/src/interpretation/siLanguage.ts +18 -0
  427. package/src/locus-info/controlsUtils.ts +222 -0
  428. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  429. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  430. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  431. package/src/locus-info/{index.js → index.ts} +561 -119
  432. package/src/locus-info/{infoUtils.js → infoUtils.ts} +29 -10
  433. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +97 -17
  434. package/src/locus-info/{parser.js → parser.ts} +303 -104
  435. package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
  436. package/src/media/index.ts +460 -0
  437. package/src/media/properties.ts +283 -0
  438. package/src/media/{util.js → util.ts} +2 -2
  439. package/src/mediaQualityMetrics/config.ts +249 -0
  440. package/src/meeting/in-meeting-actions.ts +199 -3
  441. package/src/meeting/index.ts +8494 -0
  442. package/src/meeting/locusMediaRequest.ts +313 -0
  443. package/src/meeting/muteState.ts +465 -0
  444. package/src/meeting/request.ts +912 -0
  445. package/src/meeting/request.type.ts +13 -0
  446. package/src/meeting/{state.js → state.ts} +50 -35
  447. package/src/meeting/util.ts +799 -0
  448. package/src/meeting/voicea-meeting.ts +122 -0
  449. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  450. package/src/meeting-info/index.ts +210 -0
  451. package/src/meeting-info/meeting-info-v2.ts +423 -0
  452. package/src/meeting-info/{request.js → request.ts} +14 -4
  453. package/src/meeting-info/{util.js → util.ts} +70 -58
  454. package/src/meeting-info/{utilv2.js → utilv2.ts} +99 -82
  455. package/src/meetings/collection.ts +76 -0
  456. package/src/meetings/index.ts +1539 -0
  457. package/src/meetings/meetings.types.ts +12 -0
  458. package/src/meetings/{request.js → request.ts} +34 -25
  459. package/src/meetings/{util.js → util.ts} +133 -38
  460. package/src/member/{index.js → index.ts} +159 -56
  461. package/src/member/types.ts +38 -0
  462. package/src/member/util.ts +397 -0
  463. package/src/members/{collection.js → collection.ts} +10 -2
  464. package/src/members/{index.js → index.ts} +351 -146
  465. package/src/members/request.ts +255 -0
  466. package/src/members/types.ts +29 -0
  467. package/src/members/util.ts +353 -0
  468. package/src/metrics/{constants.js → constants.ts} +17 -6
  469. package/src/metrics/index.ts +73 -0
  470. package/src/multistream/mediaRequestManager.ts +341 -64
  471. package/src/multistream/receiveSlot.ts +69 -26
  472. package/src/multistream/receiveSlotManager.ts +66 -42
  473. package/src/multistream/remoteMedia.ts +40 -5
  474. package/src/multistream/remoteMediaGroup.ts +82 -3
  475. package/src/multistream/remoteMediaManager.ts +401 -81
  476. package/src/multistream/sendSlotManager.ts +199 -0
  477. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  478. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  479. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  480. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  481. package/src/reachability/clusterReachability.ts +320 -0
  482. package/src/reachability/index.ts +371 -0
  483. package/src/reachability/request.ts +50 -35
  484. package/src/reachability/util.ts +24 -0
  485. package/src/reactions/constants.ts +4 -0
  486. package/src/reactions/reactions.ts +104 -0
  487. package/src/reactions/reactions.type.ts +62 -0
  488. package/src/reconnection-manager/index.ts +643 -0
  489. package/src/recording-controller/enums.ts +8 -0
  490. package/src/recording-controller/index.ts +332 -0
  491. package/src/recording-controller/util.ts +75 -0
  492. package/src/roap/index.ts +288 -0
  493. package/src/roap/request.ts +153 -0
  494. package/src/roap/turnDiscovery.ts +374 -70
  495. package/src/rtcMetrics/constants.ts +3 -0
  496. package/src/rtcMetrics/index.ts +166 -0
  497. package/src/statsAnalyzer/global.ts +37 -0
  498. package/src/statsAnalyzer/index.ts +1275 -0
  499. package/src/statsAnalyzer/mqaUtil.ts +440 -0
  500. package/src/transcription/{index.js → index.ts} +46 -39
  501. package/src/webinar/collection.ts +31 -0
  502. package/src/webinar/index.ts +62 -0
  503. package/test/integration/spec/converged-space-meetings.js +233 -0
  504. package/test/integration/spec/journey.js +791 -531
  505. package/test/integration/spec/space-meeting.js +391 -204
  506. package/test/integration/spec/transcription.js +7 -8
  507. package/test/unit/spec/annotation/index.ts +418 -0
  508. package/test/unit/spec/breakouts/breakout.ts +238 -0
  509. package/test/unit/spec/breakouts/collection.ts +15 -0
  510. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  511. package/test/unit/spec/breakouts/events.ts +89 -0
  512. package/test/unit/spec/breakouts/index.ts +1793 -0
  513. package/test/unit/spec/breakouts/request.ts +104 -0
  514. package/test/unit/spec/breakouts/utils.js +72 -0
  515. package/test/unit/spec/common/browser-detection.js +9 -28
  516. package/test/unit/spec/common/queue.js +31 -2
  517. package/test/unit/spec/controls-options-manager/index.js +287 -0
  518. package/test/unit/spec/controls-options-manager/util.js +582 -0
  519. package/test/unit/spec/fixture/locus.js +93 -90
  520. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  521. package/test/unit/spec/interpretation/collection.ts +15 -0
  522. package/test/unit/spec/interpretation/index.ts +625 -0
  523. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  524. package/test/unit/spec/locus-info/controlsUtils.js +325 -32
  525. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  526. package/test/unit/spec/locus-info/index.js +1458 -21
  527. package/test/unit/spec/locus-info/infoUtils.js +71 -40
  528. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  529. package/test/unit/spec/locus-info/lib/SeqCmp.json +529 -685
  530. package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
  531. package/test/unit/spec/locus-info/parser.js +119 -44
  532. package/test/unit/spec/locus-info/selfConstant.js +120 -103
  533. package/test/unit/spec/locus-info/selfUtils.js +291 -12
  534. package/test/unit/spec/media/index.ts +194 -111
  535. package/test/unit/spec/media/properties.ts +11 -11
  536. package/test/unit/spec/meeting/in-meeting-actions.ts +96 -3
  537. package/test/unit/spec/meeting/index.js +8616 -1921
  538. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  539. package/test/unit/spec/meeting/muteState.js +568 -207
  540. package/test/unit/spec/meeting/request.js +602 -82
  541. package/test/unit/spec/meeting/utils.js +867 -179
  542. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  543. package/test/unit/spec/meeting-info/index.js +300 -0
  544. package/test/unit/spec/meeting-info/meetinginfov2.js +631 -78
  545. package/test/unit/spec/meeting-info/request.js +7 -9
  546. package/test/unit/spec/meeting-info/util.js +11 -12
  547. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  548. package/test/unit/spec/meetings/collection.js +27 -1
  549. package/test/unit/spec/meetings/index.js +1826 -374
  550. package/test/unit/spec/meetings/utils.js +243 -14
  551. package/test/unit/spec/member/index.js +61 -7
  552. package/test/unit/spec/member/util.js +526 -26
  553. package/test/unit/spec/members/index.js +536 -55
  554. package/test/unit/spec/members/request.js +228 -40
  555. package/test/unit/spec/members/utils.js +217 -4
  556. package/test/unit/spec/metrics/index.js +13 -68
  557. package/test/unit/spec/multistream/mediaRequestManager.ts +1032 -110
  558. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  559. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  560. package/test/unit/spec/multistream/remoteMedia.ts +40 -2
  561. package/test/unit/spec/multistream/remoteMediaGroup.ts +350 -5
  562. package/test/unit/spec/multistream/remoteMediaManager.ts +937 -65
  563. package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
  564. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  565. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  566. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  567. package/test/unit/spec/reachability/index.ts +606 -26
  568. package/test/unit/spec/reachability/request.js +68 -0
  569. package/test/unit/spec/reachability/util.ts +40 -0
  570. package/test/unit/spec/reconnection-manager/index.js +222 -34
  571. package/test/unit/spec/recording-controller/index.js +306 -0
  572. package/test/unit/spec/recording-controller/util.js +229 -0
  573. package/test/unit/spec/roap/index.ts +238 -82
  574. package/test/unit/spec/roap/request.ts +255 -0
  575. package/test/unit/spec/roap/turnDiscovery.ts +707 -110
  576. package/test/unit/spec/rtcMetrics/index.ts +122 -0
  577. package/test/unit/spec/stats-analyzer/index.js +1331 -62
  578. package/test/unit/spec/webinar/collection.ts +13 -0
  579. package/test/unit/spec/webinar/index.ts +60 -0
  580. package/test/utils/cmr.js +44 -42
  581. package/test/utils/constants.js +9 -0
  582. package/test/utils/integrationTestUtils.js +46 -0
  583. package/test/utils/testUtils.js +63 -99
  584. package/test/utils/webex-config.js +22 -18
  585. package/test/utils/webex-test-users.js +65 -50
  586. package/tsconfig.json +6 -0
  587. package/dist/media/internal-media-core-wrapper.js +0 -22
  588. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  589. package/dist/meeting/effectsState.js +0 -327
  590. package/dist/meeting/effectsState.js.map +0 -1
  591. package/dist/metrics/config.js +0 -301
  592. package/dist/metrics/config.js.map +0 -1
  593. package/dist/multistream/multistreamMedia.js +0 -116
  594. package/dist/multistream/multistreamMedia.js.map +0 -1
  595. package/dist/peer-connection-manager/util.js +0 -124
  596. package/dist/peer-connection-manager/util.js.map +0 -1
  597. package/src/common/logs/logger-proxy.js +0 -33
  598. package/src/index.js +0 -15
  599. package/src/locus-info/controlsUtils.js +0 -102
  600. package/src/media/index.js +0 -459
  601. package/src/media/internal-media-core-wrapper.ts +0 -9
  602. package/src/media/properties.js +0 -289
  603. package/src/mediaQualityMetrics/config.js +0 -382
  604. package/src/meeting/effectsState.js +0 -205
  605. package/src/meeting/index.js +0 -6284
  606. package/src/meeting/muteState.js +0 -318
  607. package/src/meeting/request.js +0 -684
  608. package/src/meeting/util.js +0 -506
  609. package/src/meeting-info/index.js +0 -131
  610. package/src/meeting-info/meeting-info-v2.js +0 -255
  611. package/src/meetings/collection.js +0 -40
  612. package/src/meetings/index.js +0 -1015
  613. package/src/member/util.js +0 -254
  614. package/src/members/request.js +0 -131
  615. package/src/members/util.js +0 -258
  616. package/src/metrics/config.js +0 -324
  617. package/src/metrics/index.js +0 -530
  618. package/src/multistream/multistreamMedia.ts +0 -92
  619. package/src/peer-connection-manager/util.ts +0 -117
  620. package/src/reachability/index.js +0 -464
  621. package/src/reconnection-manager/index.js +0 -519
  622. package/src/roap/index.js +0 -220
  623. package/src/roap/request.js +0 -127
  624. package/src/statsAnalyzer/global.js +0 -133
  625. package/src/statsAnalyzer/index.js +0 -1006
  626. package/src/statsAnalyzer/mqaUtil.js +0 -173
  627. package/test/unit/spec/meeting/effectsState.js +0 -291
  628. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  629. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -0,0 +1,74 @@
1
+ import { WebexPlugin } from '@webex/webex-core';
2
+ import { IP_VERSION } from '../constants';
3
+ export type MediaRequestType = 'RoapMessage' | 'LocalMute';
4
+ export type RequestResult = any;
5
+ export type RoapRequest = {
6
+ type: 'RoapMessage';
7
+ selfUrl: string;
8
+ mediaId: string;
9
+ roapMessage: any;
10
+ reachability: any;
11
+ sequence?: any;
12
+ joinCookie: any;
13
+ ipVersion?: IP_VERSION;
14
+ };
15
+ export type LocalMuteRequest = {
16
+ type: 'LocalMute';
17
+ selfUrl: string;
18
+ mediaId: string;
19
+ sequence?: any;
20
+ muteOptions: {
21
+ audioMuted?: boolean;
22
+ videoMuted?: boolean;
23
+ };
24
+ };
25
+ export type Request = RoapRequest | LocalMuteRequest;
26
+ export type Config = {
27
+ device: {
28
+ url: string;
29
+ deviceType: string;
30
+ countryCode?: string;
31
+ regionCode?: string;
32
+ };
33
+ correlationId: string;
34
+ preferTranscoding: boolean;
35
+ };
36
+ /**
37
+ * This class manages all /media API requests to Locus. Every call to that
38
+ * Locus API has to go through this class.
39
+ */
40
+ export declare class LocusMediaRequest extends WebexPlugin {
41
+ private config;
42
+ private latestAudioMuted?;
43
+ private latestVideoMuted?;
44
+ private isRequestInProgress;
45
+ private queuedRequests;
46
+ private confluenceState;
47
+ /**
48
+ * Constructor
49
+ */
50
+ constructor(config: Config, options: any);
51
+ /**
52
+ * Add a request to the internal queue.
53
+ */
54
+ private addToQueue;
55
+ /**
56
+ * Takes the next request from the queue and executes it. Once that
57
+ * request is completed, the next one will be taken from the queue
58
+ * and executed and this is repeated until the queue is empty.
59
+ */
60
+ private executeNextQueuedRequest;
61
+ /**
62
+ * Returns latest requested audio and video mute values. If they have never been
63
+ * requested, we assume audio/video to be muted.
64
+ */
65
+ private getLatestMuteState;
66
+ /**
67
+ * Prepares the uri and body for the media request to be sent to Locus
68
+ */
69
+ private sendHttpRequest;
70
+ /**
71
+ * Sends a media request to Locus
72
+ */
73
+ send(request: Request): Promise<RequestResult>;
74
+ }
@@ -0,0 +1,178 @@
1
+ import { ServerMuteReason } from '@webex/media-helpers';
2
+ export declare const createMuteState: (type: any, meeting: any, enabled: boolean) => MuteState;
3
+ /** The purpose of this class is to manage the local and remote mute state and make sure that the server state always matches
4
+ the last requested state by the client.
5
+
6
+ More info about Locus muting API: https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html#
7
+
8
+ This class is exported only for unit tests. It should never be instantiated directly with new MuteState(), instead createMuteState() should be called
9
+ */
10
+ export declare class MuteState {
11
+ state: {
12
+ client: {
13
+ enabled: boolean;
14
+ localMute: boolean;
15
+ };
16
+ server: {
17
+ localMute: boolean;
18
+ remoteMute: boolean;
19
+ unmuteAllowed: boolean;
20
+ };
21
+ syncToServerInProgress: boolean;
22
+ };
23
+ type: any;
24
+ ignoreMuteStateChange: boolean;
25
+ /**
26
+ * Constructor
27
+ *
28
+ * @param {String} type - audio or video
29
+ * @param {Object} meeting - the meeting object (used for reading current remote mute status)
30
+ * @param {boolean} enabled - whether the client audio/video is enabled at all
31
+ */
32
+ constructor(type: string, meeting: any, enabled: boolean);
33
+ /**
34
+ * Starts the mute state machine. Needs to be called after a new MuteState instance is created.
35
+ *
36
+ * @param {Object} meeting - the meeting object
37
+ * @returns {void}
38
+ */
39
+ init(meeting: any): void;
40
+ /**
41
+ * This method needs to be called whenever the local audio/video stream has changed.
42
+ * It reapplies the remote mute state onto the new stream and also reads the current
43
+ * local mute state from the stream and updates the internal state machine and sends
44
+ * any required requests to the server.
45
+ *
46
+ * @param {Object} meeting - the meeting object
47
+ * @returns {void}
48
+ */
49
+ handleLocalStreamChange(meeting: any): void;
50
+ /**
51
+ * Enables/disables audio/video
52
+ *
53
+ * @param {Object} meeting - the meeting object
54
+ * @param {boolean} enable
55
+ * @returns {void}
56
+ */
57
+ enable(meeting: any, enable: boolean): void;
58
+ /**
59
+ * Mutes/unmutes local stream
60
+ *
61
+ * @param {Object} meeting - the meeting object
62
+ * @param {Boolean} mute - true to mute the stream, false to unmute it
63
+ * @param {ServerMuteReason} reason - reason for muting/unmuting
64
+ * @returns {void}
65
+ */
66
+ private muteLocalStream;
67
+ /**
68
+ * This method should be called when the local stream mute state is changed
69
+ * @public
70
+ * @memberof MuteState
71
+ * @param {Object} [meeting] the meeting object
72
+ * @param {Boolean} [mute] true for muting, false for unmuting request
73
+ * @returns {void}
74
+ */
75
+ handleLocalStreamMuteStateChange(meeting?: any): void;
76
+ /**
77
+ * Applies the current mute state to the local stream (by enabling or disabling it accordingly)
78
+ *
79
+ * @public
80
+ * @param {Object} [meeting] the meeting object
81
+ * @param {ServerMuteReason} reason - reason why we're applying our client state to the local stream
82
+ * @memberof MuteState
83
+ * @returns {void}
84
+ */
85
+ applyClientStateLocally(meeting?: any, reason?: ServerMuteReason): void;
86
+ /** Returns true if client is locally muted - it takes into account not just the client local mute state,
87
+ * but also whether audio/video is enabled at all
88
+ *
89
+ * @returns {boolean}
90
+ */
91
+ private getClientLocalMuteState;
92
+ /**
93
+ * Updates the server local and remote mute values so that they match the current client desired state.
94
+ *
95
+ * @private
96
+ * @param {Object} [meeting] the meeting object
97
+ * @memberof MuteState
98
+ * @returns {void}
99
+ */
100
+ private applyClientStateToServer;
101
+ /**
102
+ * Sets the local mute value in the server
103
+ *
104
+ * @private
105
+ * @param {Object} [meeting] the meeting object
106
+ * @memberof MuteState
107
+ * @returns {Promise}
108
+ */
109
+ private sendLocalMuteRequestToServer;
110
+ /**
111
+ * Sets the remote mute value in the server
112
+ *
113
+ * @private
114
+ * @param {Object} [meeting] the meeting object
115
+ * @memberof MuteState
116
+ * @returns {Promise}
117
+ */
118
+ private sendRemoteMuteRequestToServer;
119
+ /** Applies the current value for unmute allowed to the underlying stream
120
+ *
121
+ * @param {Meeting} meeting
122
+ * @returns {void}
123
+ */
124
+ private applyUnmuteAllowedToStream;
125
+ /**
126
+ * This method should be called whenever the server remote mute state is changed
127
+ *
128
+ * @public
129
+ * @memberof MuteState
130
+ * @param {Meeting} meeting
131
+ * @param {Boolean} [muted] true if user is remotely muted, false otherwise
132
+ * @param {Boolean} [unmuteAllowed] indicates if user is allowed to unmute self (false when "hard mute" feature is used)
133
+ * @returns {undefined}
134
+ */
135
+ handleServerRemoteMuteUpdate(meeting: any, muted?: boolean, unmuteAllowed?: boolean): void;
136
+ /**
137
+ * This method should be called whenever we receive from the server a requirement to locally unmute
138
+ *
139
+ * @public
140
+ * @memberof MuteState
141
+ * @param {Object} [meeting] the meeting object
142
+ * @returns {undefined}
143
+ */
144
+ handleServerLocalUnmuteRequired(meeting?: any): void;
145
+ /**
146
+ * Returns true if the user is locally or remotely muted.
147
+ * It only checks the mute status, ignoring the fact whether audio/video is enabled.
148
+ *
149
+ * @public
150
+ * @memberof MuteState
151
+ * @returns {Boolean}
152
+ */
153
+ isMuted(): boolean;
154
+ /**
155
+ * Returns true if the user is remotely muted
156
+ *
157
+ * @public
158
+ * @memberof MuteState
159
+ * @returns {Boolean}
160
+ */
161
+ isRemotelyMuted(): boolean;
162
+ /**
163
+ * Returns true if unmute is allowed
164
+ *
165
+ * @public
166
+ * @memberof MuteState
167
+ * @returns {Boolean}
168
+ */
169
+ isUnmuteAllowed(): boolean;
170
+ /**
171
+ * Returns true if the user is locally muted or audio/video is disabled
172
+ *
173
+ * @public
174
+ * @memberof MuteState
175
+ * @returns {Boolean}
176
+ */
177
+ isLocallyMuted(): boolean;
178
+ }
@@ -0,0 +1,293 @@
1
+ import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ import { IP_VERSION } from '../constants';
3
+ import { SendReactionOptions, ToggleReactionsOptions } from './request.type';
4
+ import { AnnotationInfo } from '../annotation/annotation.types';
5
+ /**
6
+ * @class MeetingRequest
7
+ */
8
+ export default class MeetingRequest extends StatelessWebexPlugin {
9
+ changeVideoLayoutDebounced: any;
10
+ meetingRef: WeakRef<any>;
11
+ locusDeltaRequest: (options: object) => Promise<any>;
12
+ buildLocusDeltaRequestOptions: (options: object) => Promise<any>;
13
+ /**
14
+ * Constructor
15
+ * @param {Object} attrs
16
+ * @param {Object} options
17
+ */
18
+ constructor(attrs: any, options: any);
19
+ /**
20
+ * Returns joinCookie from boundedStorage if present.
21
+ * @returns {Object} joinCookie
22
+ */
23
+ private getJoinCookie;
24
+ /**
25
+ * Make a network request to join a meeting
26
+ * @param {Object} options
27
+ * @param {String} options.sipUri
28
+ * @param {String} options.deviceUrl
29
+ * @param {String} options.locusUrl
30
+ * @param {String} options.resourceId,
31
+ * @param {String} options.correlationId
32
+ * @param {boolean} options.ensureConversation
33
+ * @param {boolean} options.moderator
34
+ * @param {boolean} options.pin
35
+ * @param {boolean} options.moveToResource
36
+ * @param {Object} options.roapMessage
37
+ * @param {boolean} options.breakoutsSupported
38
+ * @param {String} options.locale,
39
+ * @param {Array} options.deviceCapabilities
40
+ * @param {boolean} options.liveAnnotationSupported
41
+ * @returns {Promise}
42
+ */
43
+ joinMeeting(options: {
44
+ sipUri: string;
45
+ deviceUrl: string;
46
+ locusUrl: string;
47
+ locusClusterUrl: string;
48
+ resourceId: string;
49
+ correlationId: string;
50
+ ensureConversation: boolean;
51
+ moderator: boolean;
52
+ pin: boolean;
53
+ moveToResource: boolean;
54
+ roapMessage: any;
55
+ asResourceOccupant: any;
56
+ inviteeAddress: any;
57
+ meetingNumber: any;
58
+ permissionToken: any;
59
+ preferTranscoding: any;
60
+ reachability: any;
61
+ breakoutsSupported: boolean;
62
+ locale?: string;
63
+ deviceCapabilities?: Array<string>;
64
+ liveAnnotationSupported: boolean;
65
+ ipVersion?: IP_VERSION;
66
+ }): Promise<any>;
67
+ /**
68
+ * Send a request to refresh the captcha
69
+ * @param {Object} options
70
+ * @param {String} options.captchaRefreshUrl
71
+ * @param {String} options.captchaId
72
+ * @returns {Promise}
73
+ * @private
74
+ */
75
+ private refreshCaptcha;
76
+ /**
77
+ * Make a network request to add a dial in device
78
+ * @param {Object} options
79
+ * @param {String} options.correlationId
80
+ * @param {String} options.locusUrl url for the meeting
81
+ * @param {String} options.dialInUrl identifier for the to-be provisioned device
82
+ * @param {String} options.clientUrl identifier for the web device
83
+ * @returns {Promise}
84
+ * @private
85
+ */
86
+ private dialIn;
87
+ /**
88
+ * Make a network request to add a dial out device
89
+ * @param {Object} options
90
+ * @param {String} options.correlationId
91
+ * @param {String} options.locusUrl url for the meeting
92
+ * @param {String} options.dialOutUrl identifier for the to-be provisioned device
93
+ * @param {String} options.phoneNumber phone number to dial out to
94
+ * @param {String} options.clientUrl identifier for the web device
95
+ * @returns {Promise}
96
+ * @private
97
+ */
98
+ private dialOut;
99
+ /**
100
+ * Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
101
+ * @param {Object} options
102
+ * @param {String} options.locusUrl sync url to get ht elatest locus delta
103
+ * @returns {Promise}
104
+ */
105
+ getLocusDTO(options: {
106
+ url: string;
107
+ }): any;
108
+ /**
109
+ * Make a network request to make a provisioned phone leave the meeting
110
+ * @param {Object} options
111
+ * @param {String} options.locusUrl
112
+ * @param {String} options.phoneUrl
113
+ * @param {String} options.correlationId
114
+ * @param {String} options.selfId
115
+ * @returns {Promise}
116
+ * @private
117
+ */
118
+ private disconnectPhoneAudio;
119
+ /**
120
+ * Prepares request options to to leave a meeting
121
+ * @param {Object} options
122
+ * @param {Url} options.locusUrl
123
+ * @param {String} options.selfId
124
+ * @param {Url} options.deviceUrl
125
+ * @param {String} options.resourceId,
126
+ * @param {String} options.correlationId
127
+ * @returns {Object} request options
128
+ */
129
+ prepareLeaveMeetingRequestOptions({ locusUrl, selfId, deviceUrl: url, resourceId, correlationId, }: {
130
+ locusUrl: string;
131
+ selfId: string;
132
+ deviceUrl: string;
133
+ resourceId: string;
134
+ correlationId: string;
135
+ }): {
136
+ method: string;
137
+ uri: string;
138
+ body: {
139
+ device: {
140
+ deviceType: any;
141
+ url: string;
142
+ };
143
+ usingResource: string;
144
+ correlationId: string;
145
+ };
146
+ };
147
+ /**
148
+ * Make a network request to leave a meeting
149
+ * @param {Object} options
150
+ * @returns {Promise}
151
+ */
152
+ leaveMeeting({ locusUrl, selfId, deviceUrl: url, resourceId, correlationId, }: {
153
+ locusUrl: string;
154
+ selfId: string;
155
+ deviceUrl: string;
156
+ resourceId: string;
157
+ correlationId: string;
158
+ }): Promise<any>;
159
+ /**
160
+ * Builds request options to leave a meeting
161
+ * @param {Object} options
162
+ * @returns {Object} request options
163
+ */
164
+ buildLeaveMeetingRequestOptions(options: any): Promise<any>;
165
+ /**
166
+ * Make a network request to acknowledge a meeting
167
+ * @param {Object} options
168
+ * @param {String} options.locusUrl
169
+ * @param {String} options.deviceUrl
170
+ * @param {String} options.correlationId
171
+ * @returns {Promise}
172
+ */
173
+ acknowledgeMeeting(options: {
174
+ locusUrl: string;
175
+ deviceUrl: string;
176
+ correlationId: string;
177
+ }): Promise<any>;
178
+ /**
179
+ * Makes a network request to lock the meeting
180
+ * @param {Object} options
181
+ * @param {Boolean} options.lock Whether it is locked or not
182
+ * @returns {Promise}
183
+ */
184
+ lockMeeting(options: any): Promise<any>;
185
+ /**
186
+ * Make a network request to decline a meeting
187
+ * @param {Object} options
188
+ * @param {String} options.locusUrl
189
+ * @param {String} options.deviceUrl
190
+ * @param {String} options.reason
191
+ * @returns {Promise}
192
+ */
193
+ declineMeeting(options: {
194
+ locusUrl: string;
195
+ deviceUrl: string;
196
+ reason: string;
197
+ }): Promise<any>;
198
+ /**
199
+ * change the content floor grant
200
+ * @param {Object} options options for floor grant
201
+ * @param {String} options.disposition floor action (granted/released)
202
+ * @param {String} options.personUrl personUrl who is requesting floor
203
+ * @param {String} options.deviceUrl Url of a device
204
+ * @param {String} options.resourceId Populated if you are paired to a device
205
+ * @param {String} options.uri floor grant uri
206
+ * @param {String} options.shareInstanceId id for current share
207
+ * @returns {Promise}
208
+ */
209
+ changeMeetingFloor(options: {
210
+ disposition: string;
211
+ personUrl: string;
212
+ deviceUrl: string;
213
+ resourceId: string;
214
+ uri: string;
215
+ annotationInfo: AnnotationInfo;
216
+ shareInstanceId: string;
217
+ } | any): any;
218
+ /**
219
+ * Sends a request to the DTMF endpoint to send tones
220
+ * @param {Object} options
221
+ * @param {String} options.locusUrl
222
+ * @param {String} options.deviceUrl
223
+ * @param {String} options.tones a string of one or more DTMF tones to send
224
+ * @returns {Promise}
225
+ */
226
+ sendDTMF({ locusUrl, deviceUrl, tones }: {
227
+ locusUrl: string;
228
+ deviceUrl: string;
229
+ tones: string;
230
+ }): Promise<any>;
231
+ /**
232
+ * Sends a request to the controls endpoint to set the video layout
233
+ * @param {Object} options
234
+ * @param {String} options.locusUrl
235
+ * @param {String} options.deviceUrl
236
+ * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}
237
+ * @param {Object} options.main preferred dimensions for the remote main video stream
238
+ * @param {Number} options.main.width preferred width of main video stream
239
+ * @param {Number} options.main.height preferred height of main video stream
240
+ * @param {Object} options.content preferred dimensions for the remote content share stream
241
+ * @param {Number} options.content.width preferred width of content share stream
242
+ * @param {Number} options.content.height preferred height of content share stream
243
+ * @returns {Promise}
244
+ */
245
+ changeVideoLayout({ locusUrl, deviceUrl, layoutType, main, content, }: {
246
+ locusUrl: string;
247
+ deviceUrl: string;
248
+ layoutType: string;
249
+ main: {
250
+ width: number;
251
+ height: number;
252
+ };
253
+ content: {
254
+ width: number;
255
+ height: number;
256
+ };
257
+ }): Promise<any>;
258
+ /**
259
+ * Make a network request to end meeting for all
260
+ * @param {Object} options
261
+ * @param {Url} options.locusUrl
262
+ * @returns {Promise}
263
+ */
264
+ endMeetingForAll({ locusUrl }: {
265
+ locusUrl: string;
266
+ }): Promise<any>;
267
+ /**
268
+ * Send a locus keepAlive (used in lobby)
269
+ * @param {Object} options
270
+ * @param {Url} options.keepAliveUrl
271
+ * @returns {Promise}
272
+ */
273
+ keepAlive({ keepAliveUrl }: {
274
+ keepAliveUrl: string;
275
+ }): any;
276
+ /**
277
+ * Make a network request to send a reaction.
278
+ * @param {Object} options
279
+ * @param {Url} options.reactionChannelUrl
280
+ * @param {Reaction} options.reaction
281
+ * @param {string} options.senderID
282
+ * @returns {Promise}
283
+ */
284
+ sendReaction({ reactionChannelUrl, reaction, participantId }: SendReactionOptions): any;
285
+ /**
286
+ * Make a network request to enable or disable reactions.
287
+ * @param {boolean} options.enable - determines if we need to enable or disable.
288
+ * @param {locusUrl} options.locusUrl
289
+ * @returns {Promise}
290
+ */
291
+ toggleReactions({ enable, locusUrl, requestingParticipantId }: ToggleReactionsOptions): Promise<any>;
292
+ getLocusStatusByUrl(locusUrl: string): any;
293
+ }
@@ -0,0 +1,11 @@
1
+ import { Reaction } from '../reactions/reactions.type';
2
+ export type SendReactionOptions = {
3
+ reactionChannelUrl: string;
4
+ reaction: Reaction;
5
+ participantId: string;
6
+ };
7
+ export type ToggleReactionsOptions = {
8
+ enable: boolean;
9
+ locusUrl: string;
10
+ requestingParticipantId: string;
11
+ };
@@ -0,0 +1,9 @@
1
+ declare const MeetingStateMachine: {
2
+ /**
3
+ * Initializes the StateMachine for the meeting
4
+ * @param {Meeting} meetingRef A reference to a meeting instance
5
+ * @returns {StateMachine}
6
+ */
7
+ create(meetingRef: any): any;
8
+ };
9
+ export default MeetingStateMachine;
@@ -0,0 +1,118 @@
1
+ import { SELF_POLICY, IP_VERSION } from '../constants';
2
+ declare const MeetingUtil: {
3
+ parseLocusJoin: (response: any) => any;
4
+ remoteUpdateAudioVideo: (meeting: any, audioMuted?: boolean, videoMuted?: boolean) => any;
5
+ hasOwner: (info: any) => any;
6
+ isOwnerSelf: (owner: any, selfId: any) => boolean;
7
+ isPinOrGuest: (err: any) => boolean;
8
+ /**
9
+ * Returns the current state of knowledge about whether we are on an ipv4-only or ipv6-only or mixed (ipv4 and ipv6) network.
10
+ * The return value matches the possible values of "ipver" parameter used by the backend APIs.
11
+ *
12
+ * @param {Object} webex webex instance
13
+ * @returns {IP_VERSION|undefined} ipver value to be passed to the backend APIs or undefined if we should not pass any value to the backend
14
+ */
15
+ getIpVersion(webex: any): IP_VERSION | undefined;
16
+ joinMeeting: (meeting: any, options: any) => any;
17
+ cleanUp: (meeting: any) => any;
18
+ disconnectPhoneAudio: (meeting: any, phoneUrl: any) => any;
19
+ /**
20
+ * Returns options for leaving a meeting.
21
+ * @param {any} meeting
22
+ * @param {any} options
23
+ * @returns {any} leave options
24
+ */
25
+ prepareLeaveMeetingOptions: (meeting: any, options?: any) => any;
26
+ leaveMeeting: (meeting: any, options?: any) => any;
27
+ declineMeeting: (meeting: any, reason: any) => any;
28
+ isUserInLeftState: (locusInfo: any) => boolean;
29
+ isUserInIdleState: (locusInfo: any) => boolean;
30
+ isUserInJoinedState: (locusInfo: any) => boolean;
31
+ isMediaEstablished: (currentMediaStatus: any) => any;
32
+ joinMeetingOptions: (meeting: any, options?: any) => any;
33
+ /**
34
+ * Returns request options for leaving a meeting.
35
+ * @param {any} meeting
36
+ * @param {any} options
37
+ * @returns {any} request options
38
+ */
39
+ buildLeaveFetchRequestOptions: (meeting: any, options?: any) => any;
40
+ getTrack: (stream: any) => {
41
+ audioTrack: any;
42
+ videoTrack: any;
43
+ };
44
+ getModeratorFromLocusInfo: (locusInfo: any) => any;
45
+ getPolicyFromLocusInfo: (locusInfo: any) => any;
46
+ getUserDisplayHintsFromLocusInfo: (locusInfo: any) => any;
47
+ canInviteNewParticipants: (displayHints: any) => any;
48
+ canAdmitParticipant: (displayHints: any) => any;
49
+ canUserLock: (displayHints: any) => any;
50
+ canUserUnlock: (displayHints: any) => any;
51
+ canUserRaiseHand: (displayHints: any) => any;
52
+ canUserLowerAllHands: (displayHints: any) => any;
53
+ canUserLowerSomeoneElsesHand: (displayHints: any) => any;
54
+ bothLeaveAndEndMeetingAvailable: (displayHints: any) => any;
55
+ canManageBreakout: (displayHints: any) => any;
56
+ canBroadcastMessageToBreakout: (displayHints: any, policies?: {}) => boolean;
57
+ isSuppressBreakoutSupport: (displayHints: any) => any;
58
+ canAdmitLobbyToBreakout: (displayHints: any) => boolean;
59
+ isBreakoutPreassignmentsEnabled: (displayHints: any) => boolean;
60
+ canUserAskForHelp: (displayHints: any) => boolean;
61
+ lockMeeting: (actions: any, request: any, locusUrl: any) => any;
62
+ unlockMeeting: (actions: any, request: any, locusUrl: any) => any;
63
+ handleAudioLogging: (audioStream?: LocalMicrophoneStream) => void;
64
+ handleVideoLogging: (videoStream?: LocalCameraStream) => void;
65
+ handleDeviceLogging: (devices?: any[]) => void;
66
+ endMeetingForAll: (meeting: any) => any;
67
+ canEnableClosedCaption: (displayHints: any) => any;
68
+ isSaveTranscriptsEnabled: (displayHints: any) => any;
69
+ canStartTranscribing: (displayHints: any) => any;
70
+ canStopTranscribing: (displayHints: any) => any;
71
+ isClosedCaptionActive: (displayHints: any) => any;
72
+ isWebexAssistantActive: (displayHints: any) => any;
73
+ canViewCaptionPanel: (displayHints: any) => any;
74
+ isRealTimeTranslationEnabled: (displayHints: any) => any;
75
+ canSelectSpokenLanguages: (displayHints: any) => any;
76
+ waitingForOthersToJoin: (displayHints: any) => any;
77
+ canSendReactions: (originalValue: any, displayHints: any) => any;
78
+ canUserRenameSelfAndObserved: (displayHints: any) => any;
79
+ canUserRenameOthers: (displayHints: any) => any;
80
+ canShareWhiteBoard: (displayHints: any) => any;
81
+ /**
82
+ * Adds the current locus sequence information to a request body
83
+ * @param {Object} meeting The meeting object
84
+ * @param {Object} requestBody The body of a request to locus
85
+ * @returns {void}
86
+ */
87
+ addSequence: (meeting: any, requestBody: any) => void;
88
+ /**
89
+ * Updates the locus info for the meeting with the delta locus
90
+ * returned from requests that include the sequence information
91
+ * Returns the original response object
92
+ * @param {Object} meeting The meeting object
93
+ * @param {Object} response The response of the http request
94
+ * @returns {Object}
95
+ */
96
+ updateLocusWithDelta: (meeting: any, response: any) => any;
97
+ generateBuildLocusDeltaRequestOptions: (originalMeeting: any) => (originalOptions: any) => any;
98
+ generateLocusDeltaRequest: (originalMeeting: any) => (originalOptions: any) => any;
99
+ selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => boolean;
100
+ parseInterpretationInfo: (meeting: any, meetingInfo: any) => void;
101
+ /**
102
+ * Returns a CA-recognized error payload for the specified raw error message/reason.
103
+ *
104
+ * New errors can be added to this function for handling in the future
105
+ *
106
+ * @param {String} reason the raw error message
107
+ * @returns {Array<object>} an array of payload objects
108
+ */
109
+ getChangeMeetingFloorErrorPayload: (reason: string) => {
110
+ fatal: boolean;
111
+ category: string;
112
+ errorCode: number;
113
+ errorDescription: string;
114
+ name: string;
115
+ shownToUser: boolean;
116
+ }[];
117
+ };
118
+ export default MeetingUtil;