@webex/plugin-meetings 3.0.0-beta.13 → 3.0.0-beta.131

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 (519) hide show
  1. package/README.md +45 -1
  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 +48 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +355 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +193 -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 +43 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +994 -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 +5 -26
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +5 -26
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +6 -27
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +5 -26
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/parameter.js +5 -33
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +5 -26
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +4 -25
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reconnection-in-progress.js +0 -17
  45. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  46. package/dist/common/errors/reconnection.js +5 -26
  47. package/dist/common/errors/reconnection.js.map +1 -1
  48. package/dist/common/errors/stats.js +5 -26
  49. package/dist/common/errors/stats.js.map +1 -1
  50. package/dist/common/errors/webex-errors.js +6 -41
  51. package/dist/common/errors/webex-errors.js.map +1 -1
  52. package/dist/common/errors/webex-meetings-error.js +1 -24
  53. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  54. package/dist/common/events/events-scope.js +0 -22
  55. package/dist/common/events/events-scope.js.map +1 -1
  56. package/dist/common/events/events.js +0 -23
  57. package/dist/common/events/events.js.map +1 -1
  58. package/dist/common/events/trigger-proxy.js +0 -12
  59. package/dist/common/events/trigger-proxy.js.map +1 -1
  60. package/dist/common/events/util.js +0 -15
  61. package/dist/common/events/util.js.map +1 -1
  62. package/dist/common/logs/logger-config.js +0 -4
  63. package/dist/common/logs/logger-config.js.map +1 -1
  64. package/dist/common/logs/logger-proxy.js +1 -8
  65. package/dist/common/logs/logger-proxy.js.map +1 -1
  66. package/dist/common/logs/request.js +35 -61
  67. package/dist/common/logs/request.js.map +1 -1
  68. package/dist/common/queue.js +4 -14
  69. package/dist/common/queue.js.map +1 -1
  70. package/dist/config.js +6 -6
  71. package/dist/config.js.map +1 -1
  72. package/dist/constants.js +203 -53
  73. package/dist/constants.js.map +1 -1
  74. package/dist/controls-options-manager/constants.js +14 -0
  75. package/dist/controls-options-manager/constants.js.map +1 -0
  76. package/dist/controls-options-manager/enums.js +27 -0
  77. package/dist/controls-options-manager/enums.js.map +1 -0
  78. package/dist/controls-options-manager/index.js +297 -0
  79. package/dist/controls-options-manager/index.js.map +1 -0
  80. package/dist/controls-options-manager/types.js +7 -0
  81. package/dist/controls-options-manager/types.js.map +1 -0
  82. package/dist/controls-options-manager/util.js +294 -0
  83. package/dist/controls-options-manager/util.js.map +1 -0
  84. package/dist/index.js +72 -17
  85. package/dist/index.js.map +1 -1
  86. package/dist/locus-info/controlsUtils.js +100 -29
  87. package/dist/locus-info/controlsUtils.js.map +1 -1
  88. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  89. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  90. package/dist/locus-info/fullState.js +0 -15
  91. package/dist/locus-info/fullState.js.map +1 -1
  92. package/dist/locus-info/hostUtils.js +4 -12
  93. package/dist/locus-info/hostUtils.js.map +1 -1
  94. package/dist/locus-info/index.js +406 -216
  95. package/dist/locus-info/index.js.map +1 -1
  96. package/dist/locus-info/infoUtils.js +0 -38
  97. package/dist/locus-info/infoUtils.js.map +1 -1
  98. package/dist/locus-info/mediaSharesUtils.js +54 -38
  99. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  100. package/dist/locus-info/parser.js +88 -123
  101. package/dist/locus-info/parser.js.map +1 -1
  102. package/dist/locus-info/selfUtils.js +105 -91
  103. package/dist/locus-info/selfUtils.js.map +1 -1
  104. package/dist/media/index.js +55 -165
  105. package/dist/media/index.js.map +1 -1
  106. package/dist/media/properties.js +71 -117
  107. package/dist/media/properties.js.map +1 -1
  108. package/dist/media/util.js +2 -9
  109. package/dist/media/util.js.map +1 -1
  110. package/dist/mediaQualityMetrics/config.js +505 -495
  111. package/dist/mediaQualityMetrics/config.js.map +1 -1
  112. package/dist/meeting/in-meeting-actions.js +77 -14
  113. package/dist/meeting/in-meeting-actions.js.map +1 -1
  114. package/dist/meeting/index.js +2603 -2462
  115. package/dist/meeting/index.js.map +1 -1
  116. package/dist/meeting/locusMediaRequest.js +291 -0
  117. package/dist/meeting/locusMediaRequest.js.map +1 -0
  118. package/dist/meeting/muteState.js +292 -138
  119. package/dist/meeting/muteState.js.map +1 -1
  120. package/dist/meeting/request.js +315 -336
  121. package/dist/meeting/request.js.map +1 -1
  122. package/dist/meeting/request.type.js +7 -0
  123. package/dist/meeting/request.type.js.map +1 -0
  124. package/dist/meeting/state.js +21 -31
  125. package/dist/meeting/state.js.map +1 -1
  126. package/dist/meeting/util.js +463 -583
  127. package/dist/meeting/util.js.map +1 -1
  128. package/dist/meeting-info/collection.js +3 -25
  129. package/dist/meeting-info/collection.js.map +1 -1
  130. package/dist/meeting-info/index.js +10 -33
  131. package/dist/meeting-info/index.js.map +1 -1
  132. package/dist/meeting-info/meeting-info-v2.js +305 -286
  133. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  134. package/dist/meeting-info/request.js +1 -16
  135. package/dist/meeting-info/request.js.map +1 -1
  136. package/dist/meeting-info/util.js +98 -183
  137. package/dist/meeting-info/util.js.map +1 -1
  138. package/dist/meeting-info/utilv2.js +156 -232
  139. package/dist/meeting-info/utilv2.js.map +1 -1
  140. package/dist/meetings/collection.js +24 -20
  141. package/dist/meetings/collection.js.map +1 -1
  142. package/dist/meetings/index.js +692 -593
  143. package/dist/meetings/index.js.map +1 -1
  144. package/dist/meetings/request.js +23 -42
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +186 -155
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.js +89 -88
  149. package/dist/member/index.js.map +1 -1
  150. package/dist/member/types.js +15 -0
  151. package/dist/member/types.js.map +1 -0
  152. package/dist/member/util.js +101 -69
  153. package/dist/member/util.js.map +1 -1
  154. package/dist/members/collection.js +12 -12
  155. package/dist/members/collection.js.map +1 -1
  156. package/dist/members/index.js +166 -205
  157. package/dist/members/index.js.map +1 -1
  158. package/dist/members/request.js +120 -85
  159. package/dist/members/request.js.map +1 -1
  160. package/dist/members/types.js +15 -0
  161. package/dist/members/types.js.map +1 -0
  162. package/dist/members/util.js +314 -260
  163. package/dist/members/util.js.map +1 -1
  164. package/dist/metrics/config.js +50 -16
  165. package/dist/metrics/config.js.map +1 -1
  166. package/dist/metrics/constants.js +4 -7
  167. package/dist/metrics/constants.js.map +1 -1
  168. package/dist/metrics/index.js +93 -162
  169. package/dist/metrics/index.js.map +1 -1
  170. package/dist/multistream/mediaRequestManager.js +167 -50
  171. package/dist/multistream/mediaRequestManager.js.map +1 -1
  172. package/dist/multistream/receiveSlot.js +58 -65
  173. package/dist/multistream/receiveSlot.js.map +1 -1
  174. package/dist/multistream/receiveSlotManager.js +74 -93
  175. package/dist/multistream/receiveSlotManager.js.map +1 -1
  176. package/dist/multistream/remoteMedia.js +55 -74
  177. package/dist/multistream/remoteMedia.js.map +1 -1
  178. package/dist/multistream/remoteMediaGroup.js +6 -40
  179. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  180. package/dist/multistream/remoteMediaManager.js +466 -442
  181. package/dist/multistream/remoteMediaManager.js.map +1 -1
  182. package/dist/networkQualityMonitor/index.js +32 -59
  183. package/dist/networkQualityMonitor/index.js.map +1 -1
  184. package/dist/personal-meeting-room/index.js +10 -45
  185. package/dist/personal-meeting-room/index.js.map +1 -1
  186. package/dist/personal-meeting-room/request.js +2 -33
  187. package/dist/personal-meeting-room/request.js.map +1 -1
  188. package/dist/personal-meeting-room/util.js +0 -13
  189. package/dist/personal-meeting-room/util.js.map +1 -1
  190. package/dist/reachability/index.js +190 -199
  191. package/dist/reachability/index.js.map +1 -1
  192. package/dist/reachability/request.js +14 -23
  193. package/dist/reachability/request.js.map +1 -1
  194. package/dist/reactions/constants.js +13 -0
  195. package/dist/reactions/constants.js.map +1 -0
  196. package/dist/reactions/reactions.js +2 -4
  197. package/dist/reactions/reactions.js.map +1 -1
  198. package/dist/reactions/reactions.type.js +19 -23
  199. package/dist/reactions/reactions.type.js.map +1 -1
  200. package/dist/reconnection-manager/index.js +326 -465
  201. package/dist/reconnection-manager/index.js.map +1 -1
  202. package/dist/recording-controller/enums.js +17 -0
  203. package/dist/recording-controller/enums.js.map +1 -0
  204. package/dist/recording-controller/index.js +343 -0
  205. package/dist/recording-controller/index.js.map +1 -0
  206. package/dist/recording-controller/util.js +63 -0
  207. package/dist/recording-controller/util.js.map +1 -0
  208. package/dist/roap/index.js +31 -75
  209. package/dist/roap/index.js.map +1 -1
  210. package/dist/roap/request.js +129 -136
  211. package/dist/roap/request.js.map +1 -1
  212. package/dist/roap/turnDiscovery.js +143 -103
  213. package/dist/roap/turnDiscovery.js.map +1 -1
  214. package/dist/statsAnalyzer/global.js +1 -95
  215. package/dist/statsAnalyzer/global.js.map +1 -1
  216. package/dist/statsAnalyzer/index.js +369 -461
  217. package/dist/statsAnalyzer/index.js.map +1 -1
  218. package/dist/statsAnalyzer/mqaUtil.js +144 -94
  219. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  220. package/dist/transcription/index.js +13 -45
  221. package/dist/transcription/index.js.map +1 -1
  222. package/dist/types/annotation/annotation.types.d.ts +35 -0
  223. package/dist/types/annotation/constants.d.ts +31 -0
  224. package/dist/types/annotation/index.d.ts +124 -0
  225. package/dist/types/breakouts/breakout.d.ts +8 -0
  226. package/dist/types/breakouts/collection.d.ts +5 -0
  227. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  228. package/dist/types/breakouts/events.d.ts +2 -0
  229. package/dist/types/breakouts/index.d.ts +5 -0
  230. package/dist/types/breakouts/request.d.ts +22 -0
  231. package/dist/types/breakouts/utils.d.ts +15 -0
  232. package/dist/types/common/browser-detection.d.ts +9 -0
  233. package/dist/types/common/collection.d.ts +48 -0
  234. package/dist/types/common/config.d.ts +2 -0
  235. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  236. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  237. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  238. package/dist/types/common/errors/media.d.ts +15 -0
  239. package/dist/types/common/errors/parameter.d.ts +15 -0
  240. package/dist/types/common/errors/password-error.d.ts +15 -0
  241. package/dist/types/common/errors/permission.d.ts +14 -0
  242. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  243. package/dist/types/common/errors/reconnection.d.ts +15 -0
  244. package/dist/types/common/errors/stats.d.ts +15 -0
  245. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  246. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  247. package/dist/types/common/events/events-scope.d.ts +17 -0
  248. package/dist/types/common/events/events.d.ts +12 -0
  249. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  250. package/dist/types/common/events/util.d.ts +2 -0
  251. package/dist/types/common/logs/logger-config.d.ts +2 -0
  252. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  253. package/dist/types/common/logs/request.d.ts +34 -0
  254. package/dist/types/common/queue.d.ts +32 -0
  255. package/dist/types/config.d.ts +78 -0
  256. package/dist/types/constants.d.ts +993 -0
  257. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  258. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  259. package/dist/types/controls-options-manager/index.d.ts +136 -0
  260. package/dist/types/controls-options-manager/types.d.ts +43 -0
  261. package/dist/types/controls-options-manager/util.d.ts +1 -0
  262. package/dist/types/index.d.ts +7 -0
  263. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  264. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  265. package/dist/types/locus-info/fullState.d.ts +2 -0
  266. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  267. package/dist/types/locus-info/index.d.ts +315 -0
  268. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  269. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  270. package/dist/types/locus-info/parser.d.ts +212 -0
  271. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  272. package/dist/types/media/index.d.ts +34 -0
  273. package/dist/types/media/properties.d.ts +108 -0
  274. package/dist/types/media/util.d.ts +2 -0
  275. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  276. package/dist/types/meeting/in-meeting-actions.d.ts +147 -0
  277. package/dist/types/meeting/index.d.ts +1762 -0
  278. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  279. package/dist/types/meeting/muteState.d.ts +186 -0
  280. package/dist/types/meeting/request.d.ts +269 -0
  281. package/dist/types/meeting/request.type.d.ts +11 -0
  282. package/dist/types/meeting/state.d.ts +9 -0
  283. package/dist/types/meeting/util.d.ts +76 -0
  284. package/dist/types/meeting-info/collection.d.ts +20 -0
  285. package/dist/types/meeting-info/index.d.ts +57 -0
  286. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  287. package/dist/types/meeting-info/request.d.ts +22 -0
  288. package/dist/types/meeting-info/util.d.ts +2 -0
  289. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  290. package/dist/types/meetings/collection.d.ts +31 -0
  291. package/dist/types/meetings/index.d.ts +345 -0
  292. package/dist/types/meetings/request.d.ts +27 -0
  293. package/dist/types/meetings/util.d.ts +18 -0
  294. package/dist/types/member/index.d.ts +157 -0
  295. package/dist/types/member/types.d.ts +21 -0
  296. package/dist/types/member/util.d.ts +2 -0
  297. package/dist/types/members/collection.d.ts +29 -0
  298. package/dist/types/members/index.d.ts +353 -0
  299. package/dist/types/members/request.d.ts +114 -0
  300. package/dist/types/members/types.d.ts +24 -0
  301. package/dist/types/members/util.d.ts +210 -0
  302. package/dist/types/metrics/config.d.ts +195 -0
  303. package/dist/types/metrics/constants.d.ts +55 -0
  304. package/dist/types/metrics/index.d.ts +169 -0
  305. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  306. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  307. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  308. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  309. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  310. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  311. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  312. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  313. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  314. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  315. package/dist/types/reachability/index.d.ts +152 -0
  316. package/dist/types/reachability/request.d.ts +37 -0
  317. package/dist/types/reactions/constants.d.ts +3 -0
  318. package/dist/types/reactions/reactions.d.ts +4 -0
  319. package/dist/types/reactions/reactions.type.d.ts +52 -0
  320. package/dist/types/reconnection-manager/index.d.ts +126 -0
  321. package/dist/types/recording-controller/enums.d.ts +7 -0
  322. package/dist/types/recording-controller/index.d.ts +193 -0
  323. package/dist/types/recording-controller/util.d.ts +13 -0
  324. package/dist/types/roap/index.d.ts +77 -0
  325. package/dist/types/roap/request.d.ts +36 -0
  326. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  327. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  328. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  329. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  330. package/dist/types/transcription/index.d.ts +64 -0
  331. package/internal-README.md +7 -6
  332. package/package.json +28 -21
  333. package/src/annotation/annotation.types.ts +42 -0
  334. package/src/annotation/constants.ts +36 -0
  335. package/src/annotation/index.ts +339 -0
  336. package/src/breakouts/README.md +220 -0
  337. package/src/breakouts/breakout.ts +163 -0
  338. package/src/breakouts/collection.ts +19 -0
  339. package/src/breakouts/edit-lock-error.ts +25 -0
  340. package/src/breakouts/events.ts +37 -0
  341. package/src/breakouts/index.ts +860 -0
  342. package/src/breakouts/request.ts +55 -0
  343. package/src/breakouts/utils.ts +57 -0
  344. package/src/common/browser-detection.ts +9 -6
  345. package/src/common/collection.ts +3 -1
  346. package/src/common/errors/captcha-error.ts +6 -6
  347. package/src/common/errors/intent-to-join.ts +6 -6
  348. package/src/common/errors/join-meeting.ts +12 -8
  349. package/src/common/errors/media.ts +6 -6
  350. package/src/common/errors/parameter.ts +9 -6
  351. package/src/common/errors/password-error.ts +6 -6
  352. package/src/common/errors/permission.ts +5 -5
  353. package/src/common/errors/reconnection.ts +6 -6
  354. package/src/common/errors/stats.ts +6 -6
  355. package/src/common/errors/webex-errors.ts +7 -5
  356. package/src/common/errors/webex-meetings-error.ts +1 -1
  357. package/src/common/events/events-scope.ts +5 -1
  358. package/src/common/events/events.ts +5 -1
  359. package/src/common/events/trigger-proxy.ts +8 -3
  360. package/src/common/events/util.ts +1 -2
  361. package/src/common/logs/logger-proxy.ts +21 -10
  362. package/src/common/logs/request.ts +11 -8
  363. package/src/config.ts +16 -12
  364. package/src/constants.ts +153 -7
  365. package/src/controls-options-manager/constants.ts +5 -0
  366. package/src/controls-options-manager/enums.ts +18 -0
  367. package/src/controls-options-manager/index.ts +278 -0
  368. package/src/controls-options-manager/types.ts +59 -0
  369. package/src/controls-options-manager/util.ts +281 -0
  370. package/src/index.ts +33 -0
  371. package/src/locus-info/controlsUtils.ts +142 -24
  372. package/src/locus-info/fullState.ts +15 -11
  373. package/src/locus-info/hostUtils.ts +4 -3
  374. package/src/locus-info/index.ts +346 -55
  375. package/src/locus-info/infoUtils.ts +12 -4
  376. package/src/locus-info/mediaSharesUtils.ts +52 -4
  377. package/src/locus-info/parser.ts +46 -68
  378. package/src/locus-info/selfUtils.ts +195 -56
  379. package/src/media/index.ts +139 -196
  380. package/src/media/properties.ts +43 -36
  381. package/src/media/util.ts +1 -1
  382. package/src/mediaQualityMetrics/config.ts +380 -378
  383. package/src/meeting/in-meeting-actions.ts +159 -3
  384. package/src/meeting/index.ts +2803 -1584
  385. package/src/meeting/locusMediaRequest.ts +309 -0
  386. package/src/meeting/muteState.ts +290 -72
  387. package/src/meeting/request.ts +247 -178
  388. package/src/meeting/request.type.ts +13 -0
  389. package/src/meeting/state.ts +45 -30
  390. package/src/meeting/util.ts +445 -395
  391. package/src/meeting-info/collection.ts +2 -1
  392. package/src/meeting-info/index.ts +32 -30
  393. package/src/meeting-info/meeting-info-v2.ts +235 -116
  394. package/src/meeting-info/request.ts +9 -3
  395. package/src/meeting-info/util.ts +54 -46
  396. package/src/meeting-info/utilv2.ts +71 -55
  397. package/src/meetings/collection.ts +21 -1
  398. package/src/meetings/index.ts +772 -437
  399. package/src/meetings/request.ts +29 -25
  400. package/src/meetings/util.ts +132 -33
  401. package/src/member/index.ts +95 -49
  402. package/src/member/types.ts +24 -0
  403. package/src/member/util.ts +106 -13
  404. package/src/members/collection.ts +8 -1
  405. package/src/members/index.ts +288 -130
  406. package/src/members/request.ts +144 -31
  407. package/src/members/types.ts +28 -0
  408. package/src/members/util.ts +316 -235
  409. package/src/metrics/config.ts +302 -90
  410. package/src/metrics/constants.ts +2 -6
  411. package/src/metrics/index.ts +124 -95
  412. package/src/multistream/mediaRequestManager.ts +203 -45
  413. package/src/multistream/receiveSlot.ts +69 -26
  414. package/src/multistream/receiveSlotManager.ts +62 -38
  415. package/src/multistream/remoteMedia.ts +30 -4
  416. package/src/multistream/remoteMediaGroup.ts +4 -3
  417. package/src/multistream/remoteMediaManager.ts +230 -66
  418. package/src/networkQualityMonitor/index.ts +24 -27
  419. package/src/personal-meeting-room/index.ts +12 -16
  420. package/src/personal-meeting-room/request.ts +10 -3
  421. package/src/personal-meeting-room/util.ts +3 -3
  422. package/src/reachability/index.ts +131 -79
  423. package/src/reachability/request.ts +43 -34
  424. package/src/reactions/constants.ts +4 -0
  425. package/src/reactions/reactions.ts +8 -8
  426. package/src/reactions/reactions.type.ts +31 -5
  427. package/src/reconnection-manager/index.ts +193 -111
  428. package/src/recording-controller/enums.ts +8 -0
  429. package/src/recording-controller/index.ts +315 -0
  430. package/src/recording-controller/util.ts +58 -0
  431. package/src/roap/index.ts +53 -53
  432. package/src/roap/request.ts +77 -64
  433. package/src/roap/turnDiscovery.ts +101 -48
  434. package/src/statsAnalyzer/global.ts +8 -104
  435. package/src/statsAnalyzer/index.ts +624 -376
  436. package/src/statsAnalyzer/mqaUtil.ts +203 -90
  437. package/src/transcription/index.ts +34 -32
  438. package/test/integration/spec/converged-space-meetings.js +177 -0
  439. package/test/integration/spec/journey.js +670 -466
  440. package/test/integration/spec/space-meeting.js +320 -204
  441. package/test/integration/spec/transcription.js +7 -8
  442. package/test/unit/spec/annotation/index.ts +433 -0
  443. package/test/unit/spec/breakouts/breakout.ts +203 -0
  444. package/test/unit/spec/breakouts/collection.ts +15 -0
  445. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  446. package/test/unit/spec/breakouts/events.ts +77 -0
  447. package/test/unit/spec/breakouts/index.ts +1609 -0
  448. package/test/unit/spec/breakouts/request.ts +104 -0
  449. package/test/unit/spec/breakouts/utils.js +72 -0
  450. package/test/unit/spec/common/browser-detection.js +9 -28
  451. package/test/unit/spec/controls-options-manager/index.js +287 -0
  452. package/test/unit/spec/controls-options-manager/util.js +504 -0
  453. package/test/unit/spec/fixture/locus.js +93 -90
  454. package/test/unit/spec/locus-info/controlsUtils.js +305 -32
  455. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  456. package/test/unit/spec/locus-info/index.js +636 -5
  457. package/test/unit/spec/locus-info/infoUtils.js +26 -33
  458. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  459. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  460. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  461. package/test/unit/spec/locus-info/parser.js +3 -9
  462. package/test/unit/spec/locus-info/selfConstant.js +110 -103
  463. package/test/unit/spec/locus-info/selfUtils.js +252 -12
  464. package/test/unit/spec/media/index.ts +104 -8
  465. package/test/unit/spec/media/properties.ts +9 -9
  466. package/test/unit/spec/meeting/in-meeting-actions.ts +76 -3
  467. package/test/unit/spec/meeting/index.js +3112 -921
  468. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  469. package/test/unit/spec/meeting/muteState.js +421 -94
  470. package/test/unit/spec/meeting/request.js +421 -79
  471. package/test/unit/spec/meeting/utils.js +326 -189
  472. package/test/unit/spec/meeting-info/meetinginfov2.js +481 -76
  473. package/test/unit/spec/meeting-info/request.js +7 -9
  474. package/test/unit/spec/meeting-info/util.js +11 -12
  475. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  476. package/test/unit/spec/meetings/collection.js +15 -1
  477. package/test/unit/spec/meetings/index.js +1126 -328
  478. package/test/unit/spec/meetings/utils.js +220 -14
  479. package/test/unit/spec/member/index.js +24 -1
  480. package/test/unit/spec/member/util.js +383 -32
  481. package/test/unit/spec/members/index.js +424 -55
  482. package/test/unit/spec/members/request.js +228 -40
  483. package/test/unit/spec/members/utils.js +191 -4
  484. package/test/unit/spec/metrics/index.js +113 -20
  485. package/test/unit/spec/multistream/mediaRequestManager.ts +650 -105
  486. package/test/unit/spec/multistream/receiveSlot.ts +76 -17
  487. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  488. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  489. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  490. package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
  491. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  492. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  493. package/test/unit/spec/reachability/index.ts +176 -27
  494. package/test/unit/spec/reachability/request.js +66 -0
  495. package/test/unit/spec/reconnection-manager/index.js +62 -31
  496. package/test/unit/spec/recording-controller/index.js +231 -0
  497. package/test/unit/spec/recording-controller/util.js +102 -0
  498. package/test/unit/spec/roap/index.ts +19 -49
  499. package/test/unit/spec/roap/request.ts +187 -0
  500. package/test/unit/spec/roap/turnDiscovery.ts +92 -50
  501. package/test/unit/spec/stats-analyzer/index.js +116 -60
  502. package/test/utils/cmr.js +44 -42
  503. package/test/utils/constants.js +9 -0
  504. package/test/utils/integrationTestUtils.js +64 -0
  505. package/test/utils/testUtils.js +63 -99
  506. package/test/utils/webex-config.js +22 -18
  507. package/test/utils/webex-test-users.js +57 -50
  508. package/tsconfig.json +6 -0
  509. package/dist/media/internal-media-core-wrapper.js +0 -22
  510. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  511. package/dist/meeting/effectsState.js +0 -334
  512. package/dist/meeting/effectsState.js.map +0 -1
  513. package/dist/multistream/multistreamMedia.js +0 -116
  514. package/dist/multistream/multistreamMedia.js.map +0 -1
  515. package/src/index.js +0 -15
  516. package/src/media/internal-media-core-wrapper.ts +0 -9
  517. package/src/meeting/effectsState.ts +0 -211
  518. package/src/multistream/multistreamMedia.ts +0 -92
  519. package/test/unit/spec/meeting/effectsState.js +0 -291
@@ -0,0 +1,70 @@
1
+ import { WebexPlugin } from '@webex/webex-core';
2
+ export type MediaRequestType = 'RoapMessage' | 'LocalMute';
3
+ export type RequestResult = any;
4
+ export type RoapRequest = {
5
+ type: 'RoapMessage';
6
+ selfUrl: string;
7
+ mediaId: string;
8
+ roapMessage: any;
9
+ reachability: any;
10
+ sequence?: any;
11
+ joinCookie: any;
12
+ };
13
+ export type LocalMuteRequest = {
14
+ type: 'LocalMute';
15
+ selfUrl: string;
16
+ mediaId: string;
17
+ sequence?: any;
18
+ muteOptions: {
19
+ audioMuted?: boolean;
20
+ videoMuted?: boolean;
21
+ };
22
+ };
23
+ export type Request = RoapRequest | LocalMuteRequest;
24
+ export type Config = {
25
+ device: {
26
+ url: string;
27
+ deviceType: string;
28
+ };
29
+ correlationId: string;
30
+ preferTranscoding: boolean;
31
+ };
32
+ /**
33
+ * This class manages all /media API requests to Locus. Every call to that
34
+ * Locus API has to go through this class.
35
+ */
36
+ export declare class LocusMediaRequest extends WebexPlugin {
37
+ private config;
38
+ private latestAudioMuted?;
39
+ private latestVideoMuted?;
40
+ private isRequestInProgress;
41
+ private queuedRequests;
42
+ private confluenceState;
43
+ /**
44
+ * Constructor
45
+ */
46
+ constructor(config: Config, options: any);
47
+ /**
48
+ * Add a request to the internal queue.
49
+ */
50
+ private addToQueue;
51
+ /**
52
+ * Takes the next request from the queue and executes it. Once that
53
+ * request is completed, the next one will be taken from the queue
54
+ * and executed and this is repeated until the queue is empty.
55
+ */
56
+ private executeNextQueuedRequest;
57
+ /**
58
+ * Returns latest requested audio and video mute values. If they have never been
59
+ * requested, we assume audio/video to be muted.
60
+ */
61
+ private getLatestMuteState;
62
+ /**
63
+ * Prepares the uri and body for the media request to be sent to Locus
64
+ */
65
+ private sendHttpRequest;
66
+ /**
67
+ * Sends a media request to Locus
68
+ */
69
+ send(request: Request): Promise<RequestResult>;
70
+ }
@@ -0,0 +1,186 @@
1
+ import { ServerMuteReason } from '@webex/media-helpers';
2
+ export declare const createMuteState: (type: any, meeting: any, mediaDirection: any, sdkOwnsLocalTrack: 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
+ pendingPromiseReject: any;
12
+ pendingPromiseResolve: any;
13
+ state: any;
14
+ type: any;
15
+ sdkOwnsLocalTrack: boolean;
16
+ ignoreMuteStateChange: boolean;
17
+ /**
18
+ * Constructor
19
+ *
20
+ * @param {String} type - audio or video
21
+ * @param {Object} meeting - the meeting object (used for reading current remote mute status)
22
+ * @param {boolean} sdkOwnsLocalTrack - if false, then client app owns the local track (for now that's the case only for multistream meetings)
23
+ */
24
+ constructor(type: string, meeting: any, sdkOwnsLocalTrack: boolean);
25
+ /**
26
+ * Starts the mute state machine. Needs to be called after a new MuteState instance is created.
27
+ *
28
+ * @param {Object} meeting - the meeting object
29
+ * @returns {void}
30
+ */
31
+ init(meeting: any): void;
32
+ /**
33
+ * This method needs to be called whenever the local audio/video track has changed.
34
+ * It reapplies the remote mute state onto the new track and also reads the current
35
+ * local mute state from the track and updates the internal state machine and sends
36
+ * any required requests to the server.
37
+ *
38
+ * @param {Object} meeting - the meeting object
39
+ * @returns {void}
40
+ */
41
+ handleLocalTrackChange(meeting: any): void;
42
+ /**
43
+ * Mutes/unmutes local track
44
+ *
45
+ * @param {Object} meeting - the meeting object
46
+ * @param {Boolean} mute - true to mute the track, false to unmute it
47
+ * @param {ServerMuteReason} reason - reason for muting/unmuting
48
+ * @returns {void}
49
+ */
50
+ private muteLocalTrack;
51
+ /**
52
+ * Handles mute/unmute request from the client/user. Returns a promise that's resolved once the server update is completed or
53
+ * at the point that this request becomese superseded by another client request.
54
+ *
55
+ * The client doesn't have to wait for the returned promise to resolve before calling handleClientRequest() again. If
56
+ * handleClientRequest() is called again before the previous one resolved, the MuteState class will make sure that eventually
57
+ * the server state will match the last requested state from the client.
58
+ *
59
+ * @public
60
+ * @memberof MuteState
61
+ * @param {Object} [meeting] the meeting object
62
+ * @param {Boolean} [mute] true for muting, false for unmuting request
63
+ * @returns {Promise}
64
+ */
65
+ handleClientRequest(meeting: object, mute?: boolean): Promise<unknown>;
66
+ /**
67
+ * This method should be called when the local track mute state is changed
68
+ * @public
69
+ * @memberof MuteState
70
+ * @param {Object} [meeting] the meeting object
71
+ * @param {Boolean} [mute] true for muting, false for unmuting request
72
+ * @returns {void}
73
+ */
74
+ handleLocalTrackMuteStateChange(meeting?: object, mute?: boolean): void;
75
+ /**
76
+ * Applies the current mute state to the local track (by enabling or disabling it accordingly)
77
+ *
78
+ * @public
79
+ * @param {Object} [meeting] the meeting object
80
+ * @param {ServerMuteReason} reason - reason why we're applying our client state to the local track
81
+ * @memberof MuteState
82
+ * @returns {void}
83
+ */
84
+ applyClientStateLocally(meeting?: any, reason?: ServerMuteReason): void;
85
+ /**
86
+ * Updates the server local and remote mute values so that they match the current client desired state.
87
+ *
88
+ * @private
89
+ * @param {Object} [meeting] the meeting object
90
+ * @memberof MuteState
91
+ * @returns {void}
92
+ */
93
+ private applyClientStateToServer;
94
+ /**
95
+ * Sets the local mute value in the server
96
+ *
97
+ * @private
98
+ * @param {Object} [meeting] the meeting object
99
+ * @memberof MuteState
100
+ * @returns {Promise}
101
+ */
102
+ private sendLocalMuteRequestToServer;
103
+ /**
104
+ * Sets the remote mute value in the server
105
+ *
106
+ * @private
107
+ * @param {Object} [meeting] the meeting object
108
+ * @memberof MuteState
109
+ * @returns {Promise}
110
+ */
111
+ private sendRemoteMuteRequestToServer;
112
+ /** Sets the mute state of the local track according to what server thinks is our state
113
+ * @param {Object} meeting - the meeting object
114
+ * @param {ServerMuteReason} serverMuteReason - reason why we're applying server mute to the local track
115
+ * @returns {void}
116
+ */
117
+ private applyServerMuteToLocalTrack;
118
+ /** Applies the current value for unmute allowed to the underlying track
119
+ *
120
+ * @param {Meeting} meeting
121
+ * @returns {void}
122
+ */
123
+ private applyUnmuteAllowedToTrack;
124
+ /**
125
+ * This method should be called whenever the server remote mute state is changed
126
+ *
127
+ * @public
128
+ * @memberof MuteState
129
+ * @param {Meeting} meeting
130
+ * @param {Boolean} [muted] true if user is remotely muted, false otherwise
131
+ * @param {Boolean} [unmuteAllowed] indicates if user is allowed to unmute self (false when "hard mute" feature is used)
132
+ * @returns {undefined}
133
+ */
134
+ handleServerRemoteMuteUpdate(meeting: any, muted?: boolean, unmuteAllowed?: boolean): void;
135
+ /**
136
+ * This method should be called whenever we receive from the server a requirement to locally unmute
137
+ *
138
+ * @public
139
+ * @memberof MuteState
140
+ * @param {Object} [meeting] the meeting object
141
+ * @returns {undefined}
142
+ */
143
+ handleServerLocalUnmuteRequired(meeting?: object): void;
144
+ /**
145
+ * Returns true if the user is locally or remotely muted
146
+ *
147
+ * @public
148
+ * @memberof MuteState
149
+ * @returns {Boolean}
150
+ */
151
+ isMuted(): any;
152
+ /**
153
+ * Returns true if the user is remotely muted
154
+ *
155
+ * @public
156
+ * @memberof MuteState
157
+ * @returns {Boolean}
158
+ */
159
+ isRemotelyMuted(): any;
160
+ /**
161
+ * Returns true if unmute is allowed
162
+ *
163
+ * @public
164
+ * @memberof MuteState
165
+ * @returns {Boolean}
166
+ */
167
+ isUnmuteAllowed(): any;
168
+ /**
169
+ * Returns true if the user is locally muted
170
+ *
171
+ * @public
172
+ * @memberof MuteState
173
+ * @returns {Boolean}
174
+ */
175
+ isLocallyMuted(): any;
176
+ /**
177
+ * Returns true if the user is muted as a result of the client request (and not remotely muted)
178
+ *
179
+ * @public
180
+ * @memberof MuteState
181
+ * @returns {Boolean}
182
+ */
183
+ isSelf(): boolean;
184
+ get muted(): any;
185
+ get self(): boolean;
186
+ }
@@ -0,0 +1,269 @@
1
+ import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ import { SendReactionOptions, ToggleReactionsOptions } from './request.type';
3
+ /**
4
+ * @class MeetingRequest
5
+ */
6
+ export default class MeetingRequest extends StatelessWebexPlugin {
7
+ changeVideoLayoutDebounced: any;
8
+ meetingRef: WeakRef<any>;
9
+ locusDeltaRequest: (options: object) => Promise<any>;
10
+ /**
11
+ * Constructor
12
+ * @param {Object} attrs
13
+ * @param {Object} options
14
+ */
15
+ constructor(attrs: any, options: any);
16
+ /**
17
+ * Returns joinCookie from boundedStorage if present.
18
+ * @returns {Object} joinCookie
19
+ */
20
+ private getJoinCookie;
21
+ /**
22
+ * Make a network request to join a meeting
23
+ * @param {Object} options
24
+ * @param {String} options.sipUri
25
+ * @param {String} options.deviceUrl
26
+ * @param {String} options.locusUrl
27
+ * @param {String} options.resourceId,
28
+ * @param {String} options.correlationId
29
+ * @param {boolean} options.ensureConversation
30
+ * @param {boolean} options.moderator
31
+ * @param {boolean} options.pin
32
+ * @param {boolean} options.moveToResource
33
+ * @param {Object} options.roapMessage
34
+ * @param {boolean} options.breakoutsSupported
35
+ * @param {String} options.locale,
36
+ * @param {Array} options.deviceCapabilities
37
+ * @param {boolean} options.liveAnnotationSupported
38
+ * @returns {Promise}
39
+ */
40
+ joinMeeting(options: {
41
+ sipUri: string;
42
+ deviceUrl: string;
43
+ locusUrl: string;
44
+ resourceId: string;
45
+ correlationId: string;
46
+ ensureConversation: boolean;
47
+ moderator: boolean;
48
+ pin: boolean;
49
+ moveToResource: boolean;
50
+ roapMessage: any;
51
+ asResourceOccupant: any;
52
+ inviteeAddress: any;
53
+ meetingNumber: any;
54
+ permissionToken: any;
55
+ preferTranscoding: any;
56
+ breakoutsSupported: boolean;
57
+ locale?: string;
58
+ deviceCapabilities?: Array<string>;
59
+ liveAnnotationSupported: boolean;
60
+ }): Promise<any>;
61
+ /**
62
+ * Send a request to refresh the captcha
63
+ * @param {Object} options
64
+ * @param {String} options.captchaRefreshUrl
65
+ * @param {String} options.captchaId
66
+ * @returns {Promise}
67
+ * @private
68
+ */
69
+ private refreshCaptcha;
70
+ /**
71
+ * Make a network request to add a dial in device
72
+ * @param {Object} options
73
+ * @param {String} options.correlationId
74
+ * @param {String} options.locusUrl url for the meeting
75
+ * @param {String} options.dialInUrl identifier for the to-be provisioned device
76
+ * @param {String} options.clientUrl identifier for the web device
77
+ * @returns {Promise}
78
+ * @private
79
+ */
80
+ private dialIn;
81
+ /**
82
+ * Make a network request to add a dial out device
83
+ * @param {Object} options
84
+ * @param {String} options.correlationId
85
+ * @param {String} options.locusUrl url for the meeting
86
+ * @param {String} options.dialOutUrl identifier for the to-be provisioned device
87
+ * @param {String} options.phoneNumber phone number to dial out to
88
+ * @param {String} options.clientUrl identifier for the web device
89
+ * @returns {Promise}
90
+ * @private
91
+ */
92
+ private dialOut;
93
+ /**
94
+ * Syns the missed delta event
95
+ * @param {Object} options
96
+ * @param {boolean} options.desync flag to get partial or whole locus object
97
+ * @param {String} options.syncUrl sync url to get ht elatest locus delta
98
+ * @returns {Promise}
99
+ */
100
+ syncMeeting(options: {
101
+ desync: boolean;
102
+ syncUrl: string;
103
+ }): any;
104
+ /**
105
+ * Request to get the complete locus object
106
+ * @param {Object} options
107
+ * @param {boolean} options.desync flag to get partial or whole locus object
108
+ * @param {String} options.locusUrl sync url to get ht elatest locus delta
109
+ * @returns {Promise}
110
+ */
111
+ getFullLocus(options: {
112
+ desync: boolean;
113
+ locusUrl: string;
114
+ }): any;
115
+ /**
116
+ * Make a network request to make a provisioned phone leave the meeting
117
+ * @param {Object} options
118
+ * @param {String} options.locusUrl
119
+ * @param {String} options.phoneUrl
120
+ * @param {String} options.correlationId
121
+ * @param {String} options.selfId
122
+ * @returns {Promise}
123
+ * @private
124
+ */
125
+ private disconnectPhoneAudio;
126
+ /**
127
+ * Make a network request to leave a meeting
128
+ * @param {Object} options
129
+ * @param {Url} options.locusUrl
130
+ * @param {String} options.selfId
131
+ * @param {Url} options.deviceUrl
132
+ * @param {String} options.resourceId,
133
+ * @param {String} options.correlationId
134
+ * @returns {Promise}
135
+ */
136
+ leaveMeeting({ locusUrl, selfId, deviceUrl: url, resourceId, correlationId, }: {
137
+ locusUrl: string;
138
+ selfId: string;
139
+ deviceUrl: string;
140
+ resourceId: string;
141
+ correlationId: string;
142
+ }): Promise<any>;
143
+ /**
144
+ * Make a network request to acknowledge a meeting
145
+ * @param {Object} options
146
+ * @param {String} options.locusUrl
147
+ * @param {String} options.deviceUrl
148
+ * @param {String} options.correlationId
149
+ * @returns {Promise}
150
+ */
151
+ acknowledgeMeeting(options: {
152
+ locusUrl: string;
153
+ deviceUrl: string;
154
+ correlationId: string;
155
+ }): Promise<any>;
156
+ /**
157
+ * Makes a network request to lock the meeting
158
+ * @param {Object} options
159
+ * @param {Boolean} options.lock Whether it is locked or not
160
+ * @returns {Promise}
161
+ */
162
+ lockMeeting(options: any): Promise<any>;
163
+ /**
164
+ * Make a network request to decline a meeting
165
+ * @param {Object} options
166
+ * @param {String} options.locusUrl
167
+ * @param {String} options.deviceUrl
168
+ * @param {String} options.reason
169
+ * @returns {Promise}
170
+ */
171
+ declineMeeting(options: {
172
+ locusUrl: string;
173
+ deviceUrl: string;
174
+ reason: string;
175
+ }): Promise<any>;
176
+ /**
177
+ * change the content floor grant
178
+ * @param {Object} options options for floor grant
179
+ * @param {String} options.disposition floor action (granted/released)
180
+ * @param {String} options.personUrl personUrl who is requesting floor
181
+ * @param {String} options.deviceUrl Url of a device
182
+ * @param {String} options.resourceId Populated if you are paired to a device
183
+ * @param {String} options.uri floor grant uri
184
+ * @returns {Promise}
185
+ */
186
+ changeMeetingFloor(options: {
187
+ disposition: string;
188
+ personUrl: string;
189
+ deviceUrl: string;
190
+ resourceId: string;
191
+ uri: string;
192
+ annotation: any;
193
+ } | any): any;
194
+ /**
195
+ * Sends a request to the DTMF endpoint to send tones
196
+ * @param {Object} options
197
+ * @param {String} options.locusUrl
198
+ * @param {String} options.deviceUrl
199
+ * @param {String} options.tones a string of one or more DTMF tones to send
200
+ * @returns {Promise}
201
+ */
202
+ sendDTMF({ locusUrl, deviceUrl, tones }: {
203
+ locusUrl: string;
204
+ deviceUrl: string;
205
+ tones: string;
206
+ }): Promise<any>;
207
+ /**
208
+ * Sends a request to the controls endpoint to set the video layout
209
+ * @param {Object} options
210
+ * @param {String} options.locusUrl
211
+ * @param {String} options.deviceUrl
212
+ * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}
213
+ * @param {Object} options.main preferred dimensions for the remote main video stream
214
+ * @param {Number} options.main.width preferred width of main video stream
215
+ * @param {Number} options.main.height preferred height of main video stream
216
+ * @param {Object} options.content preferred dimensions for the remote content share stream
217
+ * @param {Number} options.content.width preferred width of content share stream
218
+ * @param {Number} options.content.height preferred height of content share stream
219
+ * @returns {Promise}
220
+ */
221
+ changeVideoLayout({ locusUrl, deviceUrl, layoutType, main, content, }: {
222
+ locusUrl: string;
223
+ deviceUrl: string;
224
+ layoutType: string;
225
+ main: {
226
+ width: number;
227
+ height: number;
228
+ };
229
+ content: {
230
+ width: number;
231
+ height: number;
232
+ };
233
+ }): Promise<any>;
234
+ /**
235
+ * Make a network request to end meeting for all
236
+ * @param {Object} options
237
+ * @param {Url} options.locusUrl
238
+ * @returns {Promise}
239
+ */
240
+ endMeetingForAll({ locusUrl }: {
241
+ locusUrl: string;
242
+ }): Promise<any>;
243
+ /**
244
+ * Send a locus keepAlive (used in lobby)
245
+ * @param {Object} options
246
+ * @param {Url} options.keepAliveUrl
247
+ * @returns {Promise}
248
+ */
249
+ keepAlive({ keepAliveUrl }: {
250
+ keepAliveUrl: string;
251
+ }): any;
252
+ /**
253
+ * Make a network request to send a reaction.
254
+ * @param {Object} options
255
+ * @param {Url} options.reactionChannelUrl
256
+ * @param {Reaction} options.reaction
257
+ * @param {string} options.senderID
258
+ * @returns {Promise}
259
+ */
260
+ sendReaction({ reactionChannelUrl, reaction, participantId }: SendReactionOptions): any;
261
+ /**
262
+ * Make a network request to enable or disable reactions.
263
+ * @param {boolean} options.enable - determines if we need to enable or disable.
264
+ * @param {locusUrl} options.locusUrl
265
+ * @returns {Promise}
266
+ */
267
+ toggleReactions({ enable, locusUrl, requestingParticipantId }: ToggleReactionsOptions): Promise<any>;
268
+ getLocusStatusByUrl(locusUrl: string): any;
269
+ }
@@ -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,76 @@
1
+ import { LocalCameraTrack, LocalMicrophoneTrack } from '@webex/media-helpers';
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
+ joinMeeting: (meeting: any, options: any) => any;
9
+ cleanUp: (meeting: any) => any;
10
+ disconnectPhoneAudio: (meeting: any, phoneUrl: any) => any;
11
+ leaveMeeting: (meeting: any, options?: any) => any;
12
+ declineMeeting: (meeting: any, reason: any) => any;
13
+ isUserInLeftState: (locusInfo: any) => boolean;
14
+ isUserInIdleState: (locusInfo: any) => boolean;
15
+ isUserInJoinedState: (locusInfo: any) => boolean;
16
+ isMediaEstablished: (currentMediaStatus: any) => any;
17
+ joinMeetingOptions: (meeting: any, options?: any) => any;
18
+ validateOptions: (options: any) => Promise<void>;
19
+ getTrack: (stream: any) => {
20
+ audioTrack: any;
21
+ videoTrack: any;
22
+ };
23
+ getModeratorFromLocusInfo: (locusInfo: any) => any;
24
+ getPolicyFromLocusInfo: (locusInfo: any) => any;
25
+ getUserDisplayHintsFromLocusInfo: (locusInfo: any) => any;
26
+ canInviteNewParticipants: (displayHints: any) => any;
27
+ canAdmitParticipant: (displayHints: any) => any;
28
+ canUserLock: (displayHints: any) => any;
29
+ canUserUnlock: (displayHints: any) => any;
30
+ canUserRaiseHand: (displayHints: any) => any;
31
+ canUserLowerAllHands: (displayHints: any) => any;
32
+ canUserLowerSomeoneElsesHand: (displayHints: any) => any;
33
+ bothLeaveAndEndMeetingAvailable: (displayHints: any) => any;
34
+ canManageBreakout: (displayHints: any) => any;
35
+ isSuppressBreakoutSupport: (displayHints: any) => any;
36
+ canAdmitLobbyToBreakout: (displayHints: any) => boolean;
37
+ isBreakoutPreassignmentsEnabled: (displayHints: any) => boolean;
38
+ canUserAskForHelp: (displayHints: any) => boolean;
39
+ lockMeeting: (actions: any, request: any, locusUrl: any) => any;
40
+ unlockMeeting: (actions: any, request: any, locusUrl: any) => any;
41
+ handleAudioLogging: (audioTrack: LocalMicrophoneTrack | null) => void;
42
+ handleVideoLogging: (videoTrack: LocalCameraTrack | null) => void;
43
+ handleDeviceLogging: (devices?: any[]) => void;
44
+ endMeetingForAll: (meeting: any) => any;
45
+ canEnableClosedCaption: (displayHints: any) => any;
46
+ isSaveTranscriptsEnabled: (displayHints: any) => any;
47
+ canStartTranscribing: (displayHints: any) => any;
48
+ canStopTranscribing: (displayHints: any) => any;
49
+ isClosedCaptionActive: (displayHints: any) => any;
50
+ isWebexAssistantActive: (displayHints: any) => any;
51
+ canViewCaptionPanel: (displayHints: any) => any;
52
+ isRealTimeTranslationEnabled: (displayHints: any) => any;
53
+ canSelectSpokenLanguages: (displayHints: any) => any;
54
+ waitingForOthersToJoin: (displayHints: any) => any;
55
+ canSendReactions: (originalValue: any, displayHints: any) => any;
56
+ canUserRenameSelfAndObserved: (displayHints: any) => any;
57
+ canUserRenameOthers: (displayHints: any) => any;
58
+ /**
59
+ * Adds the current locus sequence information to a request body
60
+ * @param {Object} meeting The meeting object
61
+ * @param {Object} requestBody The body of a request to locus
62
+ * @returns {void}
63
+ */
64
+ addSequence: (meeting: any, requestBody: any) => void;
65
+ /**
66
+ * Updates the locus info for the meeting with the delta locus
67
+ * returned from requests that include the sequence information
68
+ * Returns the original response object
69
+ * @param {Object} meeting The meeting object
70
+ * @param {Object} response The response of the http request
71
+ * @returns {Object}
72
+ */
73
+ updateLocusWithDelta: (meeting: any, response: any) => any;
74
+ generateLocusDeltaRequest: (originalMeeting: any) => (originalOptions: any) => any;
75
+ };
76
+ export default MeetingUtil;
@@ -0,0 +1,20 @@
1
+ import Collection from '../common/collection';
2
+ /**
3
+ * @class MeetingInfoCollection
4
+ */
5
+ export default class MeetingInfoCollection extends Collection {
6
+ namespace: string;
7
+ /**
8
+ * @memberof MeetingInfoCollection
9
+ * @constructor
10
+ * @public
11
+ */
12
+ constructor();
13
+ /**
14
+ * @param {String} id ID of the meeting info you wish to retreive
15
+ * @returns {MeetingInfo} returns a meeting info instance
16
+ * @public
17
+ * @memberof MeetingInfoCollection
18
+ */
19
+ get(id: string): any;
20
+ }