@webex/plugin-meetings 3.0.0-beta.20 → 3.0.0-beta.201

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 (424) hide show
  1. package/README.md +45 -7
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +114 -14
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/edit-lock-error.js +52 -0
  11. package/dist/breakouts/edit-lock-error.js.map +1 -0
  12. package/dist/breakouts/events.js +45 -0
  13. package/dist/breakouts/events.js.map +1 -0
  14. package/dist/breakouts/index.js +841 -19
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/request.js +78 -0
  17. package/dist/breakouts/request.js.map +1 -0
  18. package/dist/breakouts/utils.js +67 -0
  19. package/dist/breakouts/utils.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +3 -2
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/queue.js +24 -9
  25. package/dist/common/queue.js.map +1 -1
  26. package/dist/config.js +3 -8
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +172 -30
  29. package/dist/constants.js.map +1 -1
  30. package/dist/controls-options-manager/constants.js +14 -0
  31. package/dist/controls-options-manager/constants.js.map +1 -0
  32. package/dist/controls-options-manager/enums.js +27 -0
  33. package/dist/controls-options-manager/enums.js.map +1 -0
  34. package/dist/controls-options-manager/index.js +297 -0
  35. package/dist/controls-options-manager/index.js.map +1 -0
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +319 -0
  39. package/dist/controls-options-manager/util.js.map +1 -0
  40. package/dist/index.js +107 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/interpretation/collection.js +23 -0
  43. package/dist/interpretation/collection.js.map +1 -0
  44. package/dist/interpretation/index.js +366 -0
  45. package/dist/interpretation/index.js.map +1 -0
  46. package/dist/interpretation/siLanguage.js +25 -0
  47. package/dist/interpretation/siLanguage.js.map +1 -0
  48. package/dist/locus-info/controlsUtils.js +91 -2
  49. package/dist/locus-info/controlsUtils.js.map +1 -1
  50. package/dist/locus-info/index.js +355 -57
  51. package/dist/locus-info/index.js.map +1 -1
  52. package/dist/locus-info/mediaSharesUtils.js +43 -1
  53. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  54. package/dist/locus-info/parser.js +219 -63
  55. package/dist/locus-info/parser.js.map +1 -1
  56. package/dist/locus-info/selfUtils.js +89 -14
  57. package/dist/locus-info/selfUtils.js.map +1 -1
  58. package/dist/media/index.js +48 -135
  59. package/dist/media/index.js.map +1 -1
  60. package/dist/media/properties.js +29 -90
  61. package/dist/media/properties.js.map +1 -1
  62. package/dist/mediaQualityMetrics/config.js +505 -493
  63. package/dist/mediaQualityMetrics/config.js.map +1 -1
  64. package/dist/meeting/in-meeting-actions.js +80 -2
  65. package/dist/meeting/in-meeting-actions.js.map +1 -1
  66. package/dist/meeting/index.js +2692 -2544
  67. package/dist/meeting/index.js.map +1 -1
  68. package/dist/meeting/locusMediaRequest.js +291 -0
  69. package/dist/meeting/locusMediaRequest.js.map +1 -0
  70. package/dist/meeting/muteState.js +229 -124
  71. package/dist/meeting/muteState.js.map +1 -1
  72. package/dist/meeting/request.js +196 -190
  73. package/dist/meeting/request.js.map +1 -1
  74. package/dist/meeting/util.js +529 -414
  75. package/dist/meeting/util.js.map +1 -1
  76. package/dist/meeting-info/index.js +48 -7
  77. package/dist/meeting-info/index.js.map +1 -1
  78. package/dist/meeting-info/meeting-info-v2.js +171 -51
  79. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  80. package/dist/meeting-info/utilv2.js +20 -5
  81. package/dist/meeting-info/utilv2.js.map +1 -1
  82. package/dist/meetings/collection.js +22 -0
  83. package/dist/meetings/collection.js.map +1 -1
  84. package/dist/meetings/index.js +357 -66
  85. package/dist/meetings/index.js.map +1 -1
  86. package/dist/meetings/meetings.types.js +7 -0
  87. package/dist/meetings/meetings.types.js.map +1 -0
  88. package/dist/meetings/request.js +2 -0
  89. package/dist/meetings/request.js.map +1 -1
  90. package/dist/meetings/util.js +88 -1
  91. package/dist/meetings/util.js.map +1 -1
  92. package/dist/member/index.js +49 -0
  93. package/dist/member/index.js.map +1 -1
  94. package/dist/member/types.js +25 -0
  95. package/dist/member/types.js.map +1 -0
  96. package/dist/member/util.js +121 -25
  97. package/dist/member/util.js.map +1 -1
  98. package/dist/members/collection.js +10 -0
  99. package/dist/members/collection.js.map +1 -1
  100. package/dist/members/index.js +86 -5
  101. package/dist/members/index.js.map +1 -1
  102. package/dist/members/request.js +106 -38
  103. package/dist/members/request.js.map +1 -1
  104. package/dist/members/types.js +15 -0
  105. package/dist/members/types.js.map +1 -0
  106. package/dist/members/util.js +316 -233
  107. package/dist/members/util.js.map +1 -1
  108. package/dist/metrics/constants.js +3 -5
  109. package/dist/metrics/constants.js.map +1 -1
  110. package/dist/metrics/index.js +1 -468
  111. package/dist/metrics/index.js.map +1 -1
  112. package/dist/multistream/mediaRequestManager.js +238 -49
  113. package/dist/multistream/mediaRequestManager.js.map +1 -1
  114. package/dist/multistream/receiveSlot.js +49 -16
  115. package/dist/multistream/receiveSlot.js.map +1 -1
  116. package/dist/multistream/receiveSlotManager.js +52 -34
  117. package/dist/multistream/receiveSlotManager.js.map +1 -1
  118. package/dist/multistream/remoteMedia.js +44 -18
  119. package/dist/multistream/remoteMedia.js.map +1 -1
  120. package/dist/multistream/remoteMediaGroup.js +60 -3
  121. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  122. package/dist/multistream/remoteMediaManager.js +173 -59
  123. package/dist/multistream/remoteMediaManager.js.map +1 -1
  124. package/dist/networkQualityMonitor/index.js +4 -2
  125. package/dist/networkQualityMonitor/index.js.map +1 -1
  126. package/dist/reachability/index.js +72 -27
  127. package/dist/reachability/index.js.map +1 -1
  128. package/dist/reachability/request.js +12 -5
  129. package/dist/reachability/request.js.map +1 -1
  130. package/dist/reactions/reactions.js +2 -2
  131. package/dist/reactions/reactions.js.map +1 -1
  132. package/dist/reactions/reactions.type.js +18 -18
  133. package/dist/reactions/reactions.type.js.map +1 -1
  134. package/dist/reconnection-manager/index.js +196 -155
  135. package/dist/reconnection-manager/index.js.map +1 -1
  136. package/dist/recording-controller/index.js +21 -1
  137. package/dist/recording-controller/index.js.map +1 -1
  138. package/dist/recording-controller/util.js +9 -8
  139. package/dist/recording-controller/util.js.map +1 -1
  140. package/dist/roap/index.js +21 -29
  141. package/dist/roap/index.js.map +1 -1
  142. package/dist/roap/request.js +110 -89
  143. package/dist/roap/request.js.map +1 -1
  144. package/dist/roap/turnDiscovery.js +93 -36
  145. package/dist/roap/turnDiscovery.js.map +1 -1
  146. package/dist/rtcMetrics/constants.js +12 -0
  147. package/dist/rtcMetrics/constants.js.map +1 -0
  148. package/dist/rtcMetrics/index.js +115 -0
  149. package/dist/rtcMetrics/index.js.map +1 -0
  150. package/dist/statsAnalyzer/global.js +1 -93
  151. package/dist/statsAnalyzer/global.js.map +1 -1
  152. package/dist/statsAnalyzer/index.js +326 -311
  153. package/dist/statsAnalyzer/index.js.map +1 -1
  154. package/dist/statsAnalyzer/mqaUtil.js +90 -53
  155. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  156. package/dist/types/annotation/annotation.types.d.ts +42 -0
  157. package/dist/types/annotation/constants.d.ts +31 -0
  158. package/dist/types/annotation/index.d.ts +117 -0
  159. package/dist/types/breakouts/breakout.d.ts +8 -0
  160. package/dist/types/breakouts/collection.d.ts +5 -0
  161. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  162. package/dist/types/breakouts/events.d.ts +8 -0
  163. package/dist/types/breakouts/index.d.ts +5 -0
  164. package/dist/types/breakouts/request.d.ts +22 -0
  165. package/dist/types/breakouts/utils.d.ts +15 -0
  166. package/dist/types/common/browser-detection.d.ts +9 -0
  167. package/dist/types/common/collection.d.ts +48 -0
  168. package/dist/types/common/config.d.ts +2 -0
  169. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  170. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  171. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  172. package/dist/types/common/errors/media.d.ts +15 -0
  173. package/dist/types/common/errors/parameter.d.ts +15 -0
  174. package/dist/types/common/errors/password-error.d.ts +15 -0
  175. package/dist/types/common/errors/permission.d.ts +14 -0
  176. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  177. package/dist/types/common/errors/reconnection.d.ts +15 -0
  178. package/dist/types/common/errors/stats.d.ts +15 -0
  179. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  180. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  181. package/dist/types/common/events/events-scope.d.ts +17 -0
  182. package/dist/types/common/events/events.d.ts +12 -0
  183. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  184. package/dist/types/common/events/util.d.ts +2 -0
  185. package/dist/types/common/logs/logger-config.d.ts +2 -0
  186. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  187. package/dist/types/common/logs/request.d.ts +34 -0
  188. package/dist/types/common/queue.d.ts +34 -0
  189. package/dist/types/config.d.ts +72 -0
  190. package/dist/types/constants.d.ts +1016 -0
  191. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  192. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  193. package/dist/types/controls-options-manager/index.d.ts +136 -0
  194. package/dist/types/controls-options-manager/types.d.ts +43 -0
  195. package/dist/types/controls-options-manager/util.d.ts +1 -0
  196. package/dist/types/index.d.ts +7 -0
  197. package/dist/types/interpretation/collection.d.ts +5 -0
  198. package/dist/types/interpretation/index.d.ts +5 -0
  199. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  200. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  201. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  202. package/dist/types/locus-info/fullState.d.ts +2 -0
  203. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  204. package/dist/types/locus-info/index.d.ts +322 -0
  205. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  206. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  207. package/dist/types/locus-info/parser.d.ts +271 -0
  208. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  209. package/dist/types/media/index.d.ts +34 -0
  210. package/dist/types/media/properties.d.ts +93 -0
  211. package/dist/types/media/util.d.ts +2 -0
  212. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  213. package/dist/types/meeting/in-meeting-actions.d.ts +153 -0
  214. package/dist/types/meeting/index.d.ts +1471 -0
  215. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  216. package/dist/types/meeting/muteState.d.ts +184 -0
  217. package/dist/types/meeting/request.d.ts +257 -0
  218. package/dist/types/meeting/request.type.d.ts +11 -0
  219. package/dist/types/meeting/state.d.ts +9 -0
  220. package/dist/types/meeting/util.d.ts +78 -0
  221. package/dist/types/meeting-info/collection.d.ts +20 -0
  222. package/dist/types/meeting-info/index.d.ts +62 -0
  223. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  224. package/dist/types/meeting-info/request.d.ts +22 -0
  225. package/dist/types/meeting-info/util.d.ts +2 -0
  226. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  227. package/dist/types/meetings/collection.d.ts +31 -0
  228. package/dist/types/meetings/index.d.ts +367 -0
  229. package/dist/types/meetings/meetings.types.d.ts +4 -0
  230. package/dist/types/meetings/request.d.ts +27 -0
  231. package/dist/types/meetings/util.d.ts +18 -0
  232. package/dist/types/member/index.d.ts +159 -0
  233. package/dist/types/member/types.d.ts +32 -0
  234. package/dist/types/member/util.d.ts +2 -0
  235. package/dist/types/members/collection.d.ts +29 -0
  236. package/dist/types/members/index.d.ts +353 -0
  237. package/dist/types/members/request.d.ts +114 -0
  238. package/dist/types/members/types.d.ts +24 -0
  239. package/dist/types/members/util.d.ts +210 -0
  240. package/dist/types/metrics/constants.d.ts +55 -0
  241. package/dist/types/metrics/index.d.ts +45 -0
  242. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  243. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  244. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  245. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  246. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  247. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  248. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  249. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  250. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  251. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  252. package/dist/types/reachability/index.d.ts +152 -0
  253. package/dist/types/reachability/request.d.ts +37 -0
  254. package/dist/types/reactions/constants.d.ts +3 -0
  255. package/dist/types/reactions/reactions.d.ts +4 -0
  256. package/dist/types/reactions/reactions.type.d.ts +52 -0
  257. package/dist/types/reconnection-manager/index.d.ts +126 -0
  258. package/dist/types/recording-controller/enums.d.ts +7 -0
  259. package/dist/types/recording-controller/index.d.ts +208 -0
  260. package/dist/types/recording-controller/util.d.ts +14 -0
  261. package/dist/types/roap/index.d.ts +77 -0
  262. package/dist/types/roap/request.d.ts +36 -0
  263. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  264. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  265. package/dist/types/rtcMetrics/index.d.ts +46 -0
  266. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  267. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  268. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  269. package/dist/types/transcription/index.d.ts +64 -0
  270. package/package.json +25 -22
  271. package/src/annotation/annotation.types.ts +50 -0
  272. package/src/annotation/constants.ts +36 -0
  273. package/src/annotation/index.ts +328 -0
  274. package/src/breakouts/README.md +44 -14
  275. package/src/breakouts/breakout.ts +87 -9
  276. package/src/breakouts/edit-lock-error.ts +25 -0
  277. package/src/breakouts/events.ts +56 -0
  278. package/src/breakouts/index.ts +710 -10
  279. package/src/breakouts/request.ts +55 -0
  280. package/src/breakouts/utils.ts +57 -0
  281. package/src/common/errors/webex-errors.ts +6 -2
  282. package/src/common/logs/logger-proxy.ts +1 -1
  283. package/src/common/queue.ts +22 -8
  284. package/src/config.ts +2 -7
  285. package/src/constants.ts +157 -21
  286. package/src/controls-options-manager/constants.ts +5 -0
  287. package/src/controls-options-manager/enums.ts +18 -0
  288. package/src/controls-options-manager/index.ts +278 -0
  289. package/src/controls-options-manager/types.ts +59 -0
  290. package/src/controls-options-manager/util.ts +300 -0
  291. package/src/index.ts +39 -0
  292. package/src/interpretation/README.md +60 -0
  293. package/src/interpretation/collection.ts +19 -0
  294. package/src/interpretation/index.ts +332 -0
  295. package/src/interpretation/siLanguage.ts +18 -0
  296. package/src/locus-info/controlsUtils.ts +108 -0
  297. package/src/locus-info/index.ts +375 -52
  298. package/src/locus-info/mediaSharesUtils.ts +48 -0
  299. package/src/locus-info/parser.ts +224 -39
  300. package/src/locus-info/selfUtils.ts +81 -5
  301. package/src/media/index.ts +87 -140
  302. package/src/media/properties.ts +49 -90
  303. package/src/mediaQualityMetrics/config.ts +379 -377
  304. package/src/meeting/in-meeting-actions.ts +159 -3
  305. package/src/meeting/index.ts +1980 -2030
  306. package/src/meeting/locusMediaRequest.ts +309 -0
  307. package/src/meeting/muteState.ts +228 -132
  308. package/src/meeting/request.ts +102 -112
  309. package/src/meeting/util.ts +509 -397
  310. package/src/meeting-info/index.ts +54 -8
  311. package/src/meeting-info/meeting-info-v2.ts +148 -14
  312. package/src/meeting-info/utilv2.ts +13 -3
  313. package/src/meetings/collection.ts +20 -0
  314. package/src/meetings/index.ts +392 -84
  315. package/src/meetings/meetings.types.ts +12 -0
  316. package/src/meetings/request.ts +2 -0
  317. package/src/meetings/util.ts +103 -4
  318. package/src/member/index.ts +49 -0
  319. package/src/member/types.ts +38 -0
  320. package/src/member/util.ts +127 -25
  321. package/src/members/collection.ts +8 -0
  322. package/src/members/index.ts +107 -6
  323. package/src/members/request.ts +97 -17
  324. package/src/members/types.ts +28 -0
  325. package/src/members/util.ts +319 -240
  326. package/src/metrics/constants.ts +2 -4
  327. package/src/metrics/index.ts +1 -490
  328. package/src/multistream/mediaRequestManager.ts +289 -79
  329. package/src/multistream/receiveSlot.ts +55 -18
  330. package/src/multistream/receiveSlotManager.ts +46 -24
  331. package/src/multistream/remoteMedia.ts +27 -2
  332. package/src/multistream/remoteMediaGroup.ts +59 -0
  333. package/src/multistream/remoteMediaManager.ts +113 -32
  334. package/src/networkQualityMonitor/index.ts +6 -6
  335. package/src/reachability/index.ts +62 -15
  336. package/src/reachability/request.ts +10 -5
  337. package/src/reactions/reactions.ts +4 -4
  338. package/src/reactions/reactions.type.ts +3 -3
  339. package/src/reconnection-manager/index.ts +68 -43
  340. package/src/recording-controller/index.ts +20 -2
  341. package/src/recording-controller/util.ts +26 -9
  342. package/src/roap/index.ts +21 -30
  343. package/src/roap/request.ts +101 -95
  344. package/src/roap/turnDiscovery.ts +47 -25
  345. package/src/rtcMetrics/constants.ts +3 -0
  346. package/src/rtcMetrics/index.ts +96 -0
  347. package/src/statsAnalyzer/global.ts +1 -94
  348. package/src/statsAnalyzer/index.ts +376 -386
  349. package/src/statsAnalyzer/mqaUtil.ts +100 -99
  350. package/test/integration/spec/converged-space-meetings.js +233 -0
  351. package/test/integration/spec/journey.js +336 -259
  352. package/test/integration/spec/space-meeting.js +77 -4
  353. package/test/unit/spec/annotation/index.ts +418 -0
  354. package/test/unit/spec/breakouts/breakout.ts +142 -24
  355. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  356. package/test/unit/spec/breakouts/events.ts +89 -0
  357. package/test/unit/spec/breakouts/index.ts +1545 -48
  358. package/test/unit/spec/breakouts/request.ts +104 -0
  359. package/test/unit/spec/breakouts/utils.js +72 -0
  360. package/test/unit/spec/common/queue.js +31 -2
  361. package/test/unit/spec/controls-options-manager/index.js +287 -0
  362. package/test/unit/spec/controls-options-manager/util.js +582 -0
  363. package/test/unit/spec/fixture/locus.js +1 -0
  364. package/test/unit/spec/interpretation/collection.ts +15 -0
  365. package/test/unit/spec/interpretation/index.ts +589 -0
  366. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  367. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  368. package/test/unit/spec/locus-info/index.js +1094 -38
  369. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  370. package/test/unit/spec/locus-info/parser.js +62 -22
  371. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  372. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  373. package/test/unit/spec/media/index.ts +138 -28
  374. package/test/unit/spec/meeting/in-meeting-actions.ts +79 -3
  375. package/test/unit/spec/meeting/index.js +3092 -1571
  376. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  377. package/test/unit/spec/meeting/muteState.js +370 -208
  378. package/test/unit/spec/meeting/request.js +338 -43
  379. package/test/unit/spec/meeting/utils.js +449 -53
  380. package/test/unit/spec/meeting-info/index.js +181 -0
  381. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  382. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  383. package/test/unit/spec/meetings/collection.js +14 -0
  384. package/test/unit/spec/meetings/index.js +866 -124
  385. package/test/unit/spec/meetings/utils.js +206 -2
  386. package/test/unit/spec/member/index.js +58 -4
  387. package/test/unit/spec/member/util.js +479 -35
  388. package/test/unit/spec/members/index.js +319 -1
  389. package/test/unit/spec/members/request.js +206 -27
  390. package/test/unit/spec/members/utils.js +184 -0
  391. package/test/unit/spec/metrics/index.js +1 -50
  392. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  393. package/test/unit/spec/multistream/receiveSlot.ts +72 -13
  394. package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
  395. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  396. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  397. package/test/unit/spec/multistream/remoteMediaManager.ts +318 -0
  398. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  399. package/test/unit/spec/reachability/index.ts +125 -8
  400. package/test/unit/spec/reachability/request.js +66 -0
  401. package/test/unit/spec/reconnection-manager/index.js +59 -6
  402. package/test/unit/spec/recording-controller/index.js +294 -218
  403. package/test/unit/spec/recording-controller/util.js +223 -96
  404. package/test/unit/spec/roap/index.ts +26 -51
  405. package/test/unit/spec/roap/request.ts +196 -85
  406. package/test/unit/spec/roap/turnDiscovery.ts +30 -7
  407. package/test/unit/spec/rtcMetrics/index.ts +60 -0
  408. package/test/unit/spec/stats-analyzer/index.js +92 -41
  409. package/test/utils/constants.js +9 -0
  410. package/test/utils/integrationTestUtils.js +46 -0
  411. package/test/utils/testUtils.js +0 -45
  412. package/test/utils/webex-config.js +4 -0
  413. package/test/utils/webex-test-users.js +6 -3
  414. package/dist/meeting/effectsState.js +0 -262
  415. package/dist/meeting/effectsState.js.map +0 -1
  416. package/dist/metrics/config.js +0 -299
  417. package/dist/metrics/config.js.map +0 -1
  418. package/dist/multistream/multistreamMedia.js +0 -110
  419. package/dist/multistream/multistreamMedia.js.map +0 -1
  420. package/src/index.js +0 -15
  421. package/src/meeting/effectsState.ts +0 -211
  422. package/src/metrics/config.ts +0 -495
  423. package/src/multistream/multistreamMedia.ts +0 -97
  424. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -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,184 @@
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 track has changed.
42
+ * It reapplies the remote mute state onto the new track and also reads the current
43
+ * local mute state from the track 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
+ handleLocalTrackChange(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 track
60
+ *
61
+ * @param {Object} meeting - the meeting object
62
+ * @param {Boolean} mute - true to mute the track, false to unmute it
63
+ * @param {ServerMuteReason} reason - reason for muting/unmuting
64
+ * @returns {void}
65
+ */
66
+ private muteLocalTrack;
67
+ /**
68
+ * This method should be called when the local track 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
+ handleLocalTrackMuteStateChange(meeting?: object, mute?: boolean): void;
76
+ /**
77
+ * Applies the current mute state to the local track (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 track
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
+ /** Sets the mute state of the local track according to what server thinks is our state
120
+ * @param {Object} meeting - the meeting object
121
+ * @param {ServerMuteReason} serverMuteReason - reason why we're applying server mute to the local track
122
+ * @returns {void}
123
+ */
124
+ private applyServerMuteToLocalTrack;
125
+ /** Applies the current value for unmute allowed to the underlying track
126
+ *
127
+ * @param {Meeting} meeting
128
+ * @returns {void}
129
+ */
130
+ private applyUnmuteAllowedToTrack;
131
+ /**
132
+ * This method should be called whenever the server remote mute state is changed
133
+ *
134
+ * @public
135
+ * @memberof MuteState
136
+ * @param {Meeting} meeting
137
+ * @param {Boolean} [muted] true if user is remotely muted, false otherwise
138
+ * @param {Boolean} [unmuteAllowed] indicates if user is allowed to unmute self (false when "hard mute" feature is used)
139
+ * @returns {undefined}
140
+ */
141
+ handleServerRemoteMuteUpdate(meeting: any, muted?: boolean, unmuteAllowed?: boolean): void;
142
+ /**
143
+ * This method should be called whenever we receive from the server a requirement to locally unmute
144
+ *
145
+ * @public
146
+ * @memberof MuteState
147
+ * @param {Object} [meeting] the meeting object
148
+ * @returns {undefined}
149
+ */
150
+ handleServerLocalUnmuteRequired(meeting?: object): void;
151
+ /**
152
+ * Returns true if the user is locally or remotely muted.
153
+ * It only checks the mute status, ignoring the fact whether audio/video is enabled.
154
+ *
155
+ * @public
156
+ * @memberof MuteState
157
+ * @returns {Boolean}
158
+ */
159
+ isMuted(): boolean;
160
+ /**
161
+ * Returns true if the user is remotely muted
162
+ *
163
+ * @public
164
+ * @memberof MuteState
165
+ * @returns {Boolean}
166
+ */
167
+ isRemotelyMuted(): boolean;
168
+ /**
169
+ * Returns true if unmute is allowed
170
+ *
171
+ * @public
172
+ * @memberof MuteState
173
+ * @returns {Boolean}
174
+ */
175
+ isUnmuteAllowed(): boolean;
176
+ /**
177
+ * Returns true if the user is locally muted or audio/video is disabled
178
+ *
179
+ * @public
180
+ * @memberof MuteState
181
+ * @returns {Boolean}
182
+ */
183
+ isLocallyMuted(): boolean;
184
+ }
@@ -0,0 +1,257 @@
1
+ import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ import { SendReactionOptions, ToggleReactionsOptions } from './request.type';
3
+ import { AnnotationInfo } from '../annotation/annotation.types';
4
+ /**
5
+ * @class MeetingRequest
6
+ */
7
+ export default class MeetingRequest extends StatelessWebexPlugin {
8
+ changeVideoLayoutDebounced: any;
9
+ meetingRef: WeakRef<any>;
10
+ locusDeltaRequest: (options: object) => Promise<any>;
11
+ /**
12
+ * Constructor
13
+ * @param {Object} attrs
14
+ * @param {Object} options
15
+ */
16
+ constructor(attrs: any, options: any);
17
+ /**
18
+ * Returns joinCookie from boundedStorage if present.
19
+ * @returns {Object} joinCookie
20
+ */
21
+ private getJoinCookie;
22
+ /**
23
+ * Make a network request to join a meeting
24
+ * @param {Object} options
25
+ * @param {String} options.sipUri
26
+ * @param {String} options.deviceUrl
27
+ * @param {String} options.locusUrl
28
+ * @param {String} options.resourceId,
29
+ * @param {String} options.correlationId
30
+ * @param {boolean} options.ensureConversation
31
+ * @param {boolean} options.moderator
32
+ * @param {boolean} options.pin
33
+ * @param {boolean} options.moveToResource
34
+ * @param {Object} options.roapMessage
35
+ * @param {boolean} options.breakoutsSupported
36
+ * @param {String} options.locale,
37
+ * @param {Array} options.deviceCapabilities
38
+ * @param {boolean} options.liveAnnotationSupported
39
+ * @returns {Promise}
40
+ */
41
+ joinMeeting(options: {
42
+ sipUri: string;
43
+ deviceUrl: string;
44
+ locusUrl: string;
45
+ resourceId: string;
46
+ correlationId: string;
47
+ ensureConversation: boolean;
48
+ moderator: boolean;
49
+ pin: boolean;
50
+ moveToResource: boolean;
51
+ roapMessage: any;
52
+ asResourceOccupant: any;
53
+ inviteeAddress: any;
54
+ meetingNumber: any;
55
+ permissionToken: any;
56
+ preferTranscoding: any;
57
+ breakoutsSupported: boolean;
58
+ locale?: string;
59
+ deviceCapabilities?: Array<string>;
60
+ liveAnnotationSupported: boolean;
61
+ }): Promise<any>;
62
+ /**
63
+ * Send a request to refresh the captcha
64
+ * @param {Object} options
65
+ * @param {String} options.captchaRefreshUrl
66
+ * @param {String} options.captchaId
67
+ * @returns {Promise}
68
+ * @private
69
+ */
70
+ private refreshCaptcha;
71
+ /**
72
+ * Make a network request to add a dial in device
73
+ * @param {Object} options
74
+ * @param {String} options.correlationId
75
+ * @param {String} options.locusUrl url for the meeting
76
+ * @param {String} options.dialInUrl identifier for the to-be provisioned device
77
+ * @param {String} options.clientUrl identifier for the web device
78
+ * @returns {Promise}
79
+ * @private
80
+ */
81
+ private dialIn;
82
+ /**
83
+ * Make a network request to add a dial out device
84
+ * @param {Object} options
85
+ * @param {String} options.correlationId
86
+ * @param {String} options.locusUrl url for the meeting
87
+ * @param {String} options.dialOutUrl identifier for the to-be provisioned device
88
+ * @param {String} options.phoneNumber phone number to dial out to
89
+ * @param {String} options.clientUrl identifier for the web device
90
+ * @returns {Promise}
91
+ * @private
92
+ */
93
+ private dialOut;
94
+ /**
95
+ * Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
96
+ * @param {Object} options
97
+ * @param {String} options.locusUrl sync url to get ht elatest locus delta
98
+ * @returns {Promise}
99
+ */
100
+ getLocusDTO(options: {
101
+ url: string;
102
+ }): any;
103
+ /**
104
+ * Make a network request to make a provisioned phone leave the meeting
105
+ * @param {Object} options
106
+ * @param {String} options.locusUrl
107
+ * @param {String} options.phoneUrl
108
+ * @param {String} options.correlationId
109
+ * @param {String} options.selfId
110
+ * @returns {Promise}
111
+ * @private
112
+ */
113
+ private disconnectPhoneAudio;
114
+ /**
115
+ * Make a network request to leave a meeting
116
+ * @param {Object} options
117
+ * @param {Url} options.locusUrl
118
+ * @param {String} options.selfId
119
+ * @param {Url} options.deviceUrl
120
+ * @param {String} options.resourceId,
121
+ * @param {String} options.correlationId
122
+ * @returns {Promise}
123
+ */
124
+ leaveMeeting({ locusUrl, selfId, deviceUrl: url, resourceId, correlationId, }: {
125
+ locusUrl: string;
126
+ selfId: string;
127
+ deviceUrl: string;
128
+ resourceId: string;
129
+ correlationId: string;
130
+ }): Promise<any>;
131
+ /**
132
+ * Make a network request to acknowledge a meeting
133
+ * @param {Object} options
134
+ * @param {String} options.locusUrl
135
+ * @param {String} options.deviceUrl
136
+ * @param {String} options.correlationId
137
+ * @returns {Promise}
138
+ */
139
+ acknowledgeMeeting(options: {
140
+ locusUrl: string;
141
+ deviceUrl: string;
142
+ correlationId: string;
143
+ }): Promise<any>;
144
+ /**
145
+ * Makes a network request to lock the meeting
146
+ * @param {Object} options
147
+ * @param {Boolean} options.lock Whether it is locked or not
148
+ * @returns {Promise}
149
+ */
150
+ lockMeeting(options: any): Promise<any>;
151
+ /**
152
+ * Make a network request to decline a meeting
153
+ * @param {Object} options
154
+ * @param {String} options.locusUrl
155
+ * @param {String} options.deviceUrl
156
+ * @param {String} options.reason
157
+ * @returns {Promise}
158
+ */
159
+ declineMeeting(options: {
160
+ locusUrl: string;
161
+ deviceUrl: string;
162
+ reason: string;
163
+ }): Promise<any>;
164
+ /**
165
+ * change the content floor grant
166
+ * @param {Object} options options for floor grant
167
+ * @param {String} options.disposition floor action (granted/released)
168
+ * @param {String} options.personUrl personUrl who is requesting floor
169
+ * @param {String} options.deviceUrl Url of a device
170
+ * @param {String} options.resourceId Populated if you are paired to a device
171
+ * @param {String} options.uri floor grant uri
172
+ * @returns {Promise}
173
+ */
174
+ changeMeetingFloor(options: {
175
+ disposition: string;
176
+ personUrl: string;
177
+ deviceUrl: string;
178
+ resourceId: string;
179
+ uri: string;
180
+ annotationInfo: AnnotationInfo;
181
+ } | any): any;
182
+ /**
183
+ * Sends a request to the DTMF endpoint to send tones
184
+ * @param {Object} options
185
+ * @param {String} options.locusUrl
186
+ * @param {String} options.deviceUrl
187
+ * @param {String} options.tones a string of one or more DTMF tones to send
188
+ * @returns {Promise}
189
+ */
190
+ sendDTMF({ locusUrl, deviceUrl, tones }: {
191
+ locusUrl: string;
192
+ deviceUrl: string;
193
+ tones: string;
194
+ }): Promise<any>;
195
+ /**
196
+ * Sends a request to the controls endpoint to set the video layout
197
+ * @param {Object} options
198
+ * @param {String} options.locusUrl
199
+ * @param {String} options.deviceUrl
200
+ * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}
201
+ * @param {Object} options.main preferred dimensions for the remote main video stream
202
+ * @param {Number} options.main.width preferred width of main video stream
203
+ * @param {Number} options.main.height preferred height of main video stream
204
+ * @param {Object} options.content preferred dimensions for the remote content share stream
205
+ * @param {Number} options.content.width preferred width of content share stream
206
+ * @param {Number} options.content.height preferred height of content share stream
207
+ * @returns {Promise}
208
+ */
209
+ changeVideoLayout({ locusUrl, deviceUrl, layoutType, main, content, }: {
210
+ locusUrl: string;
211
+ deviceUrl: string;
212
+ layoutType: string;
213
+ main: {
214
+ width: number;
215
+ height: number;
216
+ };
217
+ content: {
218
+ width: number;
219
+ height: number;
220
+ };
221
+ }): Promise<any>;
222
+ /**
223
+ * Make a network request to end meeting for all
224
+ * @param {Object} options
225
+ * @param {Url} options.locusUrl
226
+ * @returns {Promise}
227
+ */
228
+ endMeetingForAll({ locusUrl }: {
229
+ locusUrl: string;
230
+ }): Promise<any>;
231
+ /**
232
+ * Send a locus keepAlive (used in lobby)
233
+ * @param {Object} options
234
+ * @param {Url} options.keepAliveUrl
235
+ * @returns {Promise}
236
+ */
237
+ keepAlive({ keepAliveUrl }: {
238
+ keepAliveUrl: string;
239
+ }): any;
240
+ /**
241
+ * Make a network request to send a reaction.
242
+ * @param {Object} options
243
+ * @param {Url} options.reactionChannelUrl
244
+ * @param {Reaction} options.reaction
245
+ * @param {string} options.senderID
246
+ * @returns {Promise}
247
+ */
248
+ sendReaction({ reactionChannelUrl, reaction, participantId }: SendReactionOptions): any;
249
+ /**
250
+ * Make a network request to enable or disable reactions.
251
+ * @param {boolean} options.enable - determines if we need to enable or disable.
252
+ * @param {locusUrl} options.locusUrl
253
+ * @returns {Promise}
254
+ */
255
+ toggleReactions({ enable, locusUrl, requestingParticipantId }: ToggleReactionsOptions): Promise<any>;
256
+ getLocusStatusByUrl(locusUrl: string): any;
257
+ }
@@ -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,78 @@
1
+ import { SELF_POLICY } 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
+ 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
+ getTrack: (stream: any) => {
19
+ audioTrack: any;
20
+ videoTrack: any;
21
+ };
22
+ getModeratorFromLocusInfo: (locusInfo: any) => any;
23
+ getPolicyFromLocusInfo: (locusInfo: any) => any;
24
+ getUserDisplayHintsFromLocusInfo: (locusInfo: any) => any;
25
+ canInviteNewParticipants: (displayHints: any) => any;
26
+ canAdmitParticipant: (displayHints: any) => any;
27
+ canUserLock: (displayHints: any) => any;
28
+ canUserUnlock: (displayHints: any) => any;
29
+ canUserRaiseHand: (displayHints: any) => any;
30
+ canUserLowerAllHands: (displayHints: any) => any;
31
+ canUserLowerSomeoneElsesHand: (displayHints: any) => any;
32
+ bothLeaveAndEndMeetingAvailable: (displayHints: any) => any;
33
+ canManageBreakout: (displayHints: any) => any;
34
+ canBroadcastMessageToBreakout: (displayHints: any, policies?: {}) => boolean;
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) => void;
42
+ handleVideoLogging: (videoTrack?: LocalCameraTrack) => 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
+ selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => boolean;
76
+ parseInterpretationInfo: (meeting: any, meetingInfo: any) => void;
77
+ };
78
+ 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
+ }
@@ -0,0 +1,62 @@
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+ /**
5
+ * @class MeetingInfo
6
+ */
7
+ export default class MeetingInfo {
8
+ meetingInfoCollection: any;
9
+ meetingInfoRequest: any;
10
+ webex: any;
11
+ /**
12
+ *
13
+ * @param {WebexSDK} webex
14
+ */
15
+ constructor(webex: any);
16
+ /**
17
+ * @param {string} id
18
+ * @returns {object}
19
+ * @public
20
+ * @memberof MeetingInfo
21
+ */
22
+ getMeetingInfo(id: string): any;
23
+ /**
24
+ * @param {string} id
25
+ * @param {object} info
26
+ * @returns {null}
27
+ * @public
28
+ * @memberof MeetingInfo
29
+ */
30
+ setMeetingInfo(id: string, info: object): void;
31
+ /**
32
+ * Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject
33
+ * @param {Object} options
34
+ * @returns {Promise}
35
+ * @private
36
+ * @memberof MeetingInfo
37
+ */
38
+ private requestFetchInfo;
39
+ /**
40
+ * Helper to generate the options for the MeetingInfo request
41
+ * @param {String} destination
42
+ * @param {String} type
43
+ * @returns {Promise}
44
+ * @private
45
+ * @memberof MeetingInfo
46
+ */
47
+ private fetchInfoOptions;
48
+ /**
49
+ * Fetches meeting info from the server
50
+ * @param {String} destination one of many different types of destinations to look up info for
51
+ * @param {String} [type] to match up with the destination value
52
+ * @returns {Promise} returns a meeting info object
53
+ * @public
54
+ * @memberof MeetingInfo
55
+ */
56
+ fetchMeetingInfo(destination: string, type?: string, password?: string, captchaInfo?: {
57
+ code: string;
58
+ id: string;
59
+ }, installedOrgID?: any, locusId?: any, extraParams?: object, options?: {
60
+ meetingId?: string;
61
+ }): any;
62
+ }