@webex/plugin-meetings 3.0.0-beta.19 → 3.0.0-beta.190

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 +78 -2
  65. package/dist/meeting/in-meeting-actions.js.map +1 -1
  66. package/dist/meeting/index.js +2679 -2542
  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 +527 -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 +350 -65
  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 +48 -30
  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 +151 -0
  214. package/dist/types/meeting/index.d.ts +1472 -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 +365 -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 +26 -23
  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 +155 -3
  305. package/src/meeting/index.ts +1964 -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 +386 -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 +42 -20
  331. package/src/multistream/remoteMedia.ts +28 -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 +1088 -39
  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 +77 -3
  375. package/test/unit/spec/meeting/index.js +2930 -1567
  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 +447 -55
  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 +848 -123
  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,1472 @@
1
+ /// <reference types="node" />
2
+ import { StatelessWebexPlugin } from '@webex/webex-core';
3
+ import { ClientEvent } from '@webex/internal-plugin-metrics';
4
+ import { LocalTrack, LocalCameraTrack, LocalDisplayTrack, LocalSystemAudioTrack, LocalMicrophoneTrack, TrackMuteEvent } from '@webex/media-helpers';
5
+ import { StatsAnalyzer } from '../statsAnalyzer';
6
+ import NetworkQualityMonitor from '../networkQualityMonitor';
7
+ import Roap from '../roap/index';
8
+ import { type BundlePolicy } from '../media';
9
+ import MediaProperties from '../media/properties';
10
+ import ReconnectionManager from '../reconnection-manager';
11
+ import MeetingRequest from './request';
12
+ import Members from '../members/index';
13
+ import Transcription from '../transcription';
14
+ import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
15
+ import { MediaRequestManager } from '../multistream/mediaRequestManager';
16
+ import { Configuration as RemoteMediaManagerConfiguration, RemoteMediaManager } from '../multistream/remoteMediaManager';
17
+ import { ReactionServerType, SkinToneType } from '../reactions/reactions.type';
18
+ import InMeetingActions from './in-meeting-actions';
19
+ import RecordingController from '../recording-controller';
20
+ import ControlsOptionsManager from '../controls-options-manager';
21
+ import { LocusMediaRequest } from './locusMediaRequest';
22
+ import { AnnotationInfo } from '../annotation/annotation.types';
23
+ export type LocalTracks = {
24
+ microphone?: LocalMicrophoneTrack;
25
+ camera?: LocalCameraTrack;
26
+ screenShare?: {
27
+ audio?: LocalSystemAudioTrack;
28
+ video?: LocalDisplayTrack;
29
+ };
30
+ annotationInfo?: AnnotationInfo;
31
+ };
32
+ export type AddMediaOptions = {
33
+ localTracks?: LocalTracks;
34
+ audioEnabled?: boolean;
35
+ videoEnabled?: boolean;
36
+ receiveShare?: boolean;
37
+ remoteMediaManagerConfig?: RemoteMediaManagerConfiguration;
38
+ bundlePolicy?: BundlePolicy;
39
+ allowMediaInLobby?: boolean;
40
+ };
41
+ export declare const MEDIA_UPDATE_TYPE: {
42
+ TRANSCODED_MEDIA_CONNECTION: string;
43
+ SHARE_FLOOR_REQUEST: string;
44
+ UPDATE_MEDIA: string;
45
+ };
46
+ export declare enum ScreenShareFloorStatus {
47
+ PENDING = "floor_request_pending",
48
+ GRANTED = "floor_request_granted",
49
+ RELEASED = "floor_released"
50
+ }
51
+ /**
52
+ * MediaDirection
53
+ * @typedef {Object} MediaDirection
54
+ * @property {boolean} sendAudio
55
+ * @property {boolean} receiveAudio
56
+ * @property {boolean} sendVideo
57
+ * @property {boolean} receiveVideo
58
+ * @property {boolean} sendShare
59
+ * @property {boolean} receiveShare
60
+ * @property {boolean} isSharing
61
+ */
62
+ /**
63
+ * SharePreferences
64
+ * @typedef {Object} SharePreferences
65
+ * @property {Object} [shareConstraints]
66
+ * @property {Boolean} [highFrameRate]
67
+ */
68
+ /**
69
+ * JoinOptions
70
+ * @typedef {Object} JoinOptions
71
+ * @property {String} [resourceId]
72
+ * @property {String} [pin]
73
+ * @property {Boolean} [moderator]
74
+ * @property {String|Object} [meetingQuality]
75
+ * @property {String} [meetingQuality.remote]
76
+ * @property {Boolean} [rejoin]
77
+ * @property {Boolean} [enableMultistream]
78
+ * @property {String} [correlationId]
79
+ */
80
+ /**
81
+ * Recording
82
+ * @typedef {Object} Recording
83
+ * @property {Object} state
84
+ * @property {String} modifiedBy
85
+ */
86
+ /**
87
+ * Meeting State Change Event
88
+ * Emitted when ever there is a meeting state change
89
+ * @event meeting:stateChange
90
+ * @instance
91
+ * @type {Object}
92
+ * @property {String} currentState current state of the meeting
93
+ * @property {String} previousState previous state of the meeting
94
+ * @memberof Meeting
95
+ */
96
+ /**
97
+ * Media Ready Event
98
+ * Emitted when a stream is ready to be rendered
99
+ * @event media:ready
100
+ * @instance
101
+ * @type {Object}
102
+ * @property {MediaStream} stream the media stream
103
+ * @property {String} type what type of stream, remote, local
104
+ * @memberof Meeting
105
+ */
106
+ /**
107
+ * Media Stopped Event
108
+ * Emitted when a stream has stopped sending
109
+ * @event media:stopped
110
+ * @instance
111
+ * @type {Object}
112
+ * @property {String} type what type of stream, remote, local
113
+ * @memberof Meeting
114
+ */
115
+ /**
116
+ * Meeting Ringing Event
117
+ * Emitted when this client should play a ringing sound, because this member is getting an incoming meeting
118
+ * or sending out an incoming meeting
119
+ * @event meeting:ringing
120
+ * @instance
121
+ * @type {Object}
122
+ * @property {String} type // INCOMING or JOIN
123
+ * @property {String} id
124
+ * @memberof Meeting
125
+ */
126
+ /**
127
+ * Meeting Ringing Stop Event
128
+ * Emitted when this client should stop playing a ringing sound
129
+ * @event meeting:ringingStop
130
+ * @instance
131
+ * @type {Object}
132
+ * @property {Object} type
133
+ * @property {Boolean} type.remoteAnswered
134
+ * @property {Boolean} type.remoteDeclined
135
+ * @property {String} id
136
+ * @memberof Meeting
137
+ */
138
+ /**
139
+ * Meeting Started Sharing Local Event
140
+ * Emitted when this member starts sharing
141
+ * @event meeting:startedSharingLocal
142
+ * @instance
143
+ * @type {Object}
144
+ * @memberof Meeting
145
+ */
146
+ /**
147
+ * Meeting Stopped Sharing Local Event
148
+ * Emitted when this member stops sharing
149
+ * @event meeting:stoppedSharingLocal
150
+ * @instance
151
+ * @type {Object}
152
+ * @memberof Meeting
153
+ */
154
+ /**
155
+ * Meeting Started Sharing Remote Event
156
+ * Emitted when remote sharing starts
157
+ * @event meeting:startedSharingRemote
158
+ * @instance
159
+ * @type {Object}
160
+ * @property {Boolean} memberId id of the meeting member that started screen share
161
+ * @property {String} url of this content share
162
+ * @property {String} shareInstanceId of this content share
163
+ * @property {Object} annotation Info of this content share
164
+ * @memberof Meeting
165
+ *
166
+ */
167
+ /**
168
+ * Meeting Stopped Sharing Remote Event
169
+ * Emitted when remote screen sharing ends
170
+ * @event meeting:stoppedSharingRemote
171
+ * @instance
172
+ * @type {Object}
173
+ * @memberof Meeting
174
+ */
175
+ /**
176
+ * Meeting Locked Event
177
+ * Emitted when a meeting is locked
178
+ * @event meeting:locked
179
+ * @instance
180
+ * @type {Object}
181
+ * @property {Object} info
182
+ * @memberof Meeting
183
+ */
184
+ /**
185
+ * Meeting Unlocked Event
186
+ * Emitted when a meeting is unlocked
187
+ * @event meeting:unlocked
188
+ * @instance
189
+ * @type {Object}
190
+ * @property {Object} info
191
+ * @memberof Meeting
192
+ */
193
+ /**
194
+ * Meeting Actions Update Event
195
+ * Emitted when a user can take actions on a meeting such as lock, unlock, assign host
196
+ * @event meeting:actionsUpdate
197
+ * @instance
198
+ * @type {Object}
199
+ * @property {Boolean} canLock
200
+ * @property {Boolean} canUnlock
201
+ * @property {Boolean} canAssignHost
202
+ * @memberof Meeting
203
+ */
204
+ /**
205
+ * Meeting Unmuted By Others Event
206
+ * Emitted when a member is unmuted by another member
207
+ * @event meeting:self:unmutedByOthers
208
+ * @instance
209
+ * @type {Object}
210
+ * @property {Object} payload
211
+ * @memberof Meeting
212
+ */
213
+ /**
214
+ * Meeting Muted By Others Event
215
+ * Emitted when a member is muted by another member
216
+ * @event meeting:self:mutedByOthers
217
+ * @instance
218
+ * @type {Object}
219
+ * @property {Object} payload
220
+ * @property {Boolean} payload.unmuteAllowed - whether the user is allowed to unmute self
221
+ * @memberof Meeting
222
+ */
223
+ /**
224
+ * Meeting Muted By Others Event
225
+ * Emitted when the host(moderator)/co-host requests a user to unmute
226
+ * @event meeting:self:requestedToUnmute
227
+ * @instance
228
+ * @type {Object}
229
+ * @property {Object} payload
230
+ * @memberof Meeting
231
+ */
232
+ /**
233
+ * Meeting Self Guest Admitted Event
234
+ * Emitted when a joined user get admitted to the meeting by another member or host
235
+ * @event meeting:self:guestAdmitted
236
+ * @instance
237
+ * @type {Object}
238
+ * @property {Object} payload
239
+ * @memberof Meeting
240
+ */
241
+ /**
242
+ * Meeting Self Lobby Waiting Event
243
+ * Emitted when joined user enters the lobby and is waiting for the webex meeting to begin
244
+ * @event meeting:self:lobbyWaiting
245
+ * @instance
246
+ * @type {Object}
247
+ * @property {Object} reason Reason why user left the meeting
248
+ * @memberof Meeting
249
+ */
250
+ /**
251
+ * Meeting Self Left State
252
+ * Emitted when user is inactive for more then 40 seconds, User can rejoin the meeting again
253
+ * @event meeting:self:left
254
+ * @instance
255
+ * @type {Object}
256
+ * @property {Object} payload
257
+ * @memberof Meeting
258
+ */
259
+ /**
260
+ * Reconnection Starting Event
261
+ * Emitted when reconnection of media to the active meeting was successful
262
+ * @event meeting:reconnectionStarting
263
+ * @instance
264
+ * @memberof Meeting
265
+ */
266
+ /**
267
+ * Reconnection Success Event
268
+ * Emitted when reconnection of media to the active meeting was successful
269
+ * @event meeting:reconnectionSuccess
270
+ * @instance
271
+ * @type {Object}
272
+ * @property {Object} reconnect
273
+ * @memberof Meeting
274
+ */
275
+ /**
276
+ * Reconnection Failure Event
277
+ * Emitted when reconnection of media to the active meeting was successful
278
+ * @event meeting:reconnectionFailure
279
+ * @instance
280
+ * @type {Object}
281
+ * @property {Error} error
282
+ * @memberof Meeting
283
+ */
284
+ /**
285
+ * Meeting network quality event
286
+ * Emitted on each interval of retrieving stats Analyzer data
287
+ * @event network:quality
288
+ * @type {Object}
289
+ * @property {string} mediaType {video|audio}
290
+ * @property {number} networkQualityScore - {1|0} 1 indicates acceptable uplink 0 indicates unacceptable uplink based on threshold
291
+ * @memberof Meeting
292
+ */
293
+ /**
294
+ * @description Meeting is the crux of the plugin
295
+ * @export
296
+ * @class Meeting
297
+ */
298
+ export default class Meeting extends StatelessWebexPlugin {
299
+ attrs: any;
300
+ audio: any;
301
+ breakouts: any;
302
+ simultaneousInterpretation: any;
303
+ annotation: any;
304
+ conversationUrl: string;
305
+ correlationId: string;
306
+ destination: string;
307
+ destinationType: string;
308
+ deviceUrl: string;
309
+ hostId: string;
310
+ id: string;
311
+ isMultistream: boolean;
312
+ locusUrl: string;
313
+ mediaConnections: any[];
314
+ mediaId?: string;
315
+ meetingFiniteStateMachine: any;
316
+ meetingInfo: any;
317
+ meetingRequest: MeetingRequest;
318
+ members: Members;
319
+ options: object;
320
+ orgId: string;
321
+ owner: string;
322
+ partner: any;
323
+ policy: string;
324
+ reconnectionManager: ReconnectionManager;
325
+ resource: string;
326
+ roap: Roap;
327
+ roapSeq: number;
328
+ selfUrl?: string;
329
+ sipUri: string;
330
+ type: string;
331
+ userId: string;
332
+ video: any;
333
+ callEvents: any[];
334
+ deferJoin: Promise<any>;
335
+ dialInDeviceStatus: string;
336
+ dialInUrl: string;
337
+ dialOutDeviceStatus: string;
338
+ dialOutUrl: string;
339
+ fetchMeetingInfoTimeoutId: NodeJS.Timeout;
340
+ floorGrantPending: boolean;
341
+ hasJoinedOnce: boolean;
342
+ hasWebsocketConnected: boolean;
343
+ inMeetingActions: InMeetingActions;
344
+ isLocalShareLive: boolean;
345
+ isRoapInProgress: boolean;
346
+ keepAliveTimerId: NodeJS.Timeout;
347
+ lastVideoLayoutInfo: any;
348
+ locusInfo: any;
349
+ locusMediaRequest?: LocusMediaRequest;
350
+ mediaProperties: MediaProperties;
351
+ mediaRequestManagers: {
352
+ audio: MediaRequestManager;
353
+ video: MediaRequestManager;
354
+ screenShareAudio: MediaRequestManager;
355
+ screenShareVideo: MediaRequestManager;
356
+ };
357
+ meetingInfoFailureReason: string;
358
+ meetingInfoFailureCode?: number;
359
+ networkQualityMonitor: NetworkQualityMonitor;
360
+ networkStatus: string;
361
+ passwordStatus: string;
362
+ queuedMediaUpdates: any[];
363
+ recording: any;
364
+ remoteMediaManager: RemoteMediaManager | null;
365
+ recordingController: RecordingController;
366
+ controlsOptionsManager: ControlsOptionsManager;
367
+ requiredCaptcha: any;
368
+ receiveSlotManager: ReceiveSlotManager;
369
+ selfUserPolicies: any;
370
+ shareStatus: string;
371
+ screenShareFloorState: ScreenShareFloorStatus;
372
+ statsAnalyzer: StatsAnalyzer;
373
+ transcription: Transcription;
374
+ updateMediaConnections: (mediaConnections: any[]) => void;
375
+ endCallInitJoinReq: any;
376
+ endJoinReqResp: any;
377
+ endLocalSDPGenRemoteSDPRecvDelay: any;
378
+ joinedWith: any;
379
+ locusId: any;
380
+ startCallInitJoinReq: any;
381
+ startJoinReqResp: any;
382
+ startLocalSDPGenRemoteSDPRecvDelay: any;
383
+ wirelessShare: any;
384
+ guest: any;
385
+ meetingJoinUrl: any;
386
+ meetingNumber: any;
387
+ meetingState: any;
388
+ permissionToken: any;
389
+ resourceId: any;
390
+ resourceUrl: string;
391
+ selfId: string;
392
+ state: any;
393
+ localAudioTrackMuteStateHandler: (event: TrackMuteEvent) => void;
394
+ localVideoTrackMuteStateHandler: (event: TrackMuteEvent) => void;
395
+ underlyingLocalTrackChangeHandler: () => void;
396
+ roles: any[];
397
+ environment: string;
398
+ namespace: string;
399
+ annotationInfo: AnnotationInfo;
400
+ allowMediaInLobby: boolean;
401
+ /**
402
+ * @param {Object} attrs
403
+ * @param {Object} options
404
+ * @constructor
405
+ * @memberof Meeting
406
+ */
407
+ constructor(attrs: any, options: object);
408
+ /**
409
+ * returns meeting is joined
410
+ * @private
411
+ * @memberof Meeting
412
+ * @returns {Boolean}
413
+ */
414
+ private isJoined;
415
+ /**
416
+ * Returns whether this meeting is a Locus CALL
417
+ * @returns {Boolean}
418
+ */
419
+ isLocusCall(): boolean;
420
+ /**
421
+ * Fetches meeting information.
422
+ * @param {Object} options
423
+ * @param {String} [options.password] optional
424
+ * @param {String} [options.captchaCode] optional
425
+ * @public
426
+ * @memberof Meeting
427
+ * @returns {Promise}
428
+ */
429
+ fetchMeetingInfo({ password, captchaCode, extraParams, }: {
430
+ password?: string;
431
+ captchaCode?: string;
432
+ extraParams?: Record<string, any>;
433
+ }): Promise<void>;
434
+ /**
435
+ * Checks if the supplied password/host key is correct. It returns a promise with information whether the
436
+ * password and captcha code were correct or not.
437
+ * @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
438
+ * @param {String} captchaCode - can be undefined if captcha was not required by the server
439
+ * @public
440
+ * @memberof Meeting
441
+ * @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
442
+ */
443
+ verifyPassword(password: string, captchaCode: string): Promise<{
444
+ isPasswordValid: boolean;
445
+ requiredCaptcha: any;
446
+ failureReason: string;
447
+ } | {
448
+ isPasswordValid: boolean;
449
+ requiredCaptcha: any;
450
+ failureReason: string;
451
+ }>;
452
+ /**
453
+ * Refreshes the captcha. As a result the meeting will have new captcha id, image and audio.
454
+ * If the refresh operation fails, meeting remains with the old captcha properties.
455
+ * @public
456
+ * @memberof Meeting
457
+ * @returns {Promise}
458
+ */
459
+ refreshCaptcha(): any;
460
+ /**
461
+ * Posts metrics event for this meeting. Allows the app to send Call Analyzer events.
462
+ * @param {String} eventName - Call Analyzer event
463
+ * @public
464
+ * @memberof Meeting
465
+ * @returns {Promise}
466
+ */
467
+ postMetrics(eventName: ClientEvent['name']): void;
468
+ /**
469
+ * Proxy function for all the listener set ups
470
+ * @returns {undefined}
471
+ * @private
472
+ * @memberof Meeting
473
+ */
474
+ private setUpLocusInfoListeners;
475
+ /**
476
+ * Set up the listeners for breakouts
477
+ * @returns {undefined}
478
+ * @private
479
+ * @memberof Meeting
480
+ */
481
+ setUpBreakoutsListener(): void;
482
+ /**
483
+ * Set up the listeners for interpretation
484
+ * @returns {undefined}
485
+ * @private
486
+ * @memberof Meeting
487
+ */
488
+ private setUpInterpretationListener;
489
+ /**
490
+ * Set up the locus info listener for meetings disconnected due to inactivity
491
+ * @returns {undefined}
492
+ * @private
493
+ * @memberof Meeting
494
+ */
495
+ private setUpLocusInfoMediaInactiveListener;
496
+ /**
497
+ * Set up the locus info listener for assign host permissions on a meeting
498
+ * @returns {undefined}
499
+ * @private
500
+ * @memberof Meeting
501
+ */
502
+ private setUpLocusInfoAssignHostListener;
503
+ /**
504
+ * Set up the internal locus info full state object listener
505
+ * @returns {undefined}
506
+ * @private
507
+ * @memberof Meeting
508
+ */
509
+ private setUpLocusFullStateListener;
510
+ /**
511
+ * sets the network status on meeting object
512
+ * @param {String} networkStatus
513
+ * @private
514
+ * @returns {undefined}
515
+ * @memberof Meeting
516
+ */
517
+ private setNetworkStatus;
518
+ /**
519
+ * Set up the locus info self listener
520
+ * update self value for members and updates the member
521
+ * notifies consumer with members:self:update {activeSelfId endedSelfId}
522
+ * @returns {undefined}
523
+ * @private
524
+ * @memberof Meeting
525
+ */
526
+ private setUpLocusSelfListener;
527
+ /**
528
+ * Notify any changes on the pstn devices
529
+ * @param {Object} payload
530
+ * @returns {undefined}
531
+ * @private
532
+ * @memberof Meeting
533
+ */
534
+ private pstnUpdate;
535
+ /**
536
+ * Set up the locus info host listener
537
+ * update host value for members and updates the member
538
+ * notifies consumer with members:host:update: {activeHostId, endedHostId}
539
+ * @returns {undefined}
540
+ * @private
541
+ * @memberof Meeting
542
+ */
543
+ private setUpLocusHostListener;
544
+ /**
545
+ * Set up the locus info participants update listener
546
+ * update members collection value for members
547
+ * notifies consumer with members:update
548
+ * @returns {undefined}
549
+ * @private
550
+ * @memberof Meeting
551
+ */
552
+ private setUpLocusParticipantsListener;
553
+ /**
554
+ * Set up the locus info recording update listener
555
+ * update recording value for the meeting
556
+ * notifies consumer with:
557
+ * meeting:recording:started
558
+ * meeting:recording:stopped
559
+ * meeting:recording:paused
560
+ * meeting:recording:resumed
561
+ *
562
+ * Set up the locus info meeeting container listener
563
+ * update meetingContainerUrl value for the meeting
564
+ * notifies consumer with:
565
+ * meeting:meetingContainer:update
566
+ *
567
+ * @returns {undefined}
568
+ * @private
569
+ * @memberof Meeting
570
+ */
571
+ private setupLocusControlsListener;
572
+ /**
573
+ * Trigger annotation info update event
574
+ @returns {undefined}
575
+ @param {object} contentShare
576
+ @param {object} previousContentShare
577
+ */
578
+ private triggerAnnotationInfoEvent;
579
+ /**
580
+ * Set up the locus info media shares listener
581
+ * update content and whiteboard sharing id value for members, and updates the member
582
+ * notifies consumer with members:content:update {activeContentSharingId, endedContentSharingId}
583
+ * @returns {undefined}
584
+ * @private
585
+ * @memberof Meeting
586
+ */
587
+ private setUpLocusMediaSharesListener;
588
+ /**
589
+ * Set up the locus info url listener
590
+ * update locus_url value for members
591
+ * @returns {undefined}
592
+ * @private
593
+ * @memberof Meeting
594
+ */
595
+ private setUpLocusUrlListener;
596
+ /**
597
+ * Set up the locus info service link listener
598
+ * update the locusInfo for recording controller
599
+ * does not currently re-emit the event as it's internal only
600
+ * payload is unused
601
+ * @returns {undefined}
602
+ * @private
603
+ * @memberof Meeting
604
+ */
605
+ private setUpLocusServicesListener;
606
+ /**
607
+ * Set up the locus info meeting info listener
608
+ * @returns {undefined}
609
+ * @private
610
+ * @memberof meeting
611
+ */
612
+ private setUpLocusInfoMeetingInfoListener;
613
+ /**
614
+ * Handles a data channel URL change
615
+ * @param {String} datachannelUrl
616
+ * @returns {void}
617
+ */
618
+ handleDataChannelUrlChange(datachannelUrl: any): void;
619
+ /**
620
+ * Set up the locus info embedded apps listener
621
+ * @returns {undefined}
622
+ * @private
623
+ * @memberof meeting
624
+ */
625
+ private setUpLocusEmbeddedAppsListener;
626
+ /**
627
+ * Internal function to listen to the self object changes
628
+ * @returns {undefined}
629
+ * @private
630
+ * @memberof Meeting
631
+ */
632
+ private setUpLocusInfoSelfListener;
633
+ /**
634
+ * Add LocusInfo nested object listeners (from child to parent)
635
+ * @returns {undefined}
636
+ * @private
637
+ * @memberof Meeting
638
+ */
639
+ private setUpLocusInfoMeetingListener;
640
+ /**
641
+ * Set meeting values rather than events
642
+ * @param {Object} object
643
+ * @returns {undefined}
644
+ * @private
645
+ * @memberof Meeting
646
+ * // TODO: is this function necessary?
647
+ */
648
+ private updateMeetingObject;
649
+ /**
650
+ * Invite a guest to the call that isn't normally part of this call
651
+ * @param {Object} invitee
652
+ * @param {String} invitee.emailAddress
653
+ * @param {String} invitee.email
654
+ * @param {String} invitee.phoneNumber
655
+ * @param {Boolean} [alertIfActive]
656
+ * @returns {Promise} see #members.addMember
657
+ * @public
658
+ * @memberof Meeting
659
+ */
660
+ invite(invitee: {
661
+ emailAddress: string;
662
+ email: string;
663
+ phoneNumber: string;
664
+ }, alertIfActive?: boolean): any;
665
+ /**
666
+ * Cancel an outgoing phone call invitation made during a meeting
667
+ * @param {Object} invitee
668
+ * @param {String} invitee.phoneNumber
669
+ * @returns {Promise} see #members.cancelPhoneInvite
670
+ * @public
671
+ * @memberof Meeting
672
+ */
673
+ cancelPhoneInvite(invitee: {
674
+ phoneNumber: string;
675
+ }): any;
676
+ /**
677
+ * Admit the guest(s) to the call once they are waiting.
678
+ * If the host/cohost is in a breakout session, the locus url
679
+ * of the session must be provided as the authorizingLocusUrl.
680
+ * Regardless of host/cohost location, the locus Id (lid) in
681
+ * the path should be the locus Id of the main, which means the
682
+ * locus url of the api call must be from the main session.
683
+ * If these loucs urls are not provided, the function will do the check.
684
+ * @param {Array} memberIds
685
+ * @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
686
+ * @returns {Promise} see #members.admitMembers
687
+ * @public
688
+ * @memberof Meeting
689
+ */
690
+ admit(memberIds: Array<any>, sessionLocusUrls?: {
691
+ authorizingLocusUrl: string;
692
+ mainLocusUrl: string;
693
+ }): any;
694
+ /**
695
+ * Remove the member from the meeting, boot them
696
+ * @param {String} memberId
697
+ * @returns {Promise} see #members.removeMember
698
+ * @public
699
+ * @memberof Meeting
700
+ */
701
+ remove(memberId: string): any;
702
+ /**
703
+ * Mute another member from the meeting
704
+ * @param {String} memberId
705
+ * @param {Boolean} mute
706
+ * @returns {Promise} see #members.muteMember
707
+ * @public
708
+ * @memberof Meeting
709
+ */
710
+ mute(memberId: string, mute?: boolean): any;
711
+ /**
712
+ * Transfer the moderator role to another eligible member
713
+ * @param {String} memberId
714
+ * @param {Boolean} moderator
715
+ * @returns {Promise} see #members.transferHostToMember
716
+ * @public
717
+ * @memberof Meeting
718
+ */
719
+ transfer(memberId: string, moderator?: boolean): any;
720
+ /**
721
+ * Reference to the Members object
722
+ * @returns {Members}
723
+ * @public
724
+ * @memberof Meeting
725
+ */
726
+ getMembers(): Members;
727
+ /**
728
+ * Sets the meeting info on the class instance
729
+ * @param {Object} meetingInfo
730
+ * @param {Object} meetingInfo.body
731
+ * @param {String} meetingInfo.body.conversationUrl
732
+ * @param {String} meetingInfo.body.locusUrl
733
+ * @param {String} meetingInfo.body.sipUri
734
+ * @param {Object} meetingInfo.body.owner
735
+ * @param {Object | String} destination locus object with meeting data or destination string (sip url, meeting link, etc)
736
+ * @returns {undefined}
737
+ * @private
738
+ * @memberof Meeting
739
+ */
740
+ parseMeetingInfo(meetingInfo: {
741
+ body: {
742
+ conversationUrl: string;
743
+ locusUrl: string;
744
+ sipUri: string;
745
+ owner: object;
746
+ };
747
+ } | any, destination?: object | string | null): void;
748
+ /**
749
+ * Sets the self user policies based on the contents of the permission token
750
+ * @param {String} permissionToken
751
+ * @returns {void}
752
+ */
753
+ setSelfUserPolicies(permissionToken: string): void;
754
+ /**
755
+ * Sets the sip uri on the class instance
756
+ * uses meeting info as precedence
757
+ * @param {String} sipUri
758
+ * @returns {undefined}
759
+ * @private
760
+ * @memberof Meeting
761
+ */
762
+ setSipUri(sipUri: string): void;
763
+ /**
764
+ * Set the locus info the class instance
765
+ * @param {Object} locus
766
+ * @param {Array} locus.mediaConnections
767
+ * @param {String} locus.locusUrl
768
+ * @param {String} locus.locusId
769
+ * @param {String} locus.mediaId
770
+ * @param {Object} locus.host
771
+ * @todo change name to genertic parser
772
+ * @returns {undefined}
773
+ * @private
774
+ * @memberof Meeting
775
+ */
776
+ setLocus(locus: {
777
+ mediaConnections: Array<any>;
778
+ locusUrl: string;
779
+ locusId: string;
780
+ mediaId: string;
781
+ host: object;
782
+ } | any): void;
783
+ /**
784
+ * Upload logs for the current meeting
785
+ * @param {object} options file name and function name
786
+ * @returns {undefined}
787
+ * @public
788
+ * @memberof Meeting
789
+ */
790
+ uploadLogs(options?: object): void;
791
+ /**
792
+ * Removes remote audio, video and share tracks from class instance's mediaProperties
793
+ * @returns {undefined}
794
+ */
795
+ unsetRemoteTracks(): void;
796
+ /**
797
+ * Removes the remote stream on the class instance and triggers an event
798
+ * to developers
799
+ * @returns {undefined}
800
+ * @public
801
+ * @memberof Meeting
802
+ * @deprecated after v1.89.3
803
+ */
804
+ closeRemoteStream(): void;
805
+ /**
806
+ * Removes the remote tracks on the class instance and triggers an event
807
+ * to developers
808
+ * @returns {undefined}
809
+ * @memberof Meeting
810
+ */
811
+ closeRemoteTracks(): Promise<[any, any, any]>;
812
+ /**
813
+ * Stores the reference to a new microphone track, sets up the required event listeners
814
+ * on it, cleans up previous track, etc.
815
+ *
816
+ * @param {LocalMicrophoneTrack | null} localTrack local microphone track
817
+ * @returns {Promise<void>}
818
+ */
819
+ private setLocalAudioTrack;
820
+ /**
821
+ * Stores the reference to a new camera track, sets up the required event listeners
822
+ * on it, cleans up previous track, etc.
823
+ *
824
+ * @param {LocalCameraTrack | null} localTrack local camera track
825
+ * @returns {Promise<void>}
826
+ */
827
+ private setLocalVideoTrack;
828
+ /**
829
+ * Stores the reference to a new screen share video track, sets up the required event listeners
830
+ * on it, cleans up previous track, etc.
831
+ *
832
+ * @param {LocalDisplayTrack | undefined} localDisplayTrack local camera track
833
+ * @returns {Promise<void>}
834
+ */
835
+ private setLocalShareVideoTrack;
836
+ /**
837
+ * Stores the reference to a new screen share audio track, sets up the required event listeners
838
+ * on it, cleans up previous track, etc.
839
+ *
840
+ * @param {LocalSystemAudioTrack | undefined} localSystemAudioTrack local system audio track
841
+ * @returns {Promise<void>}
842
+ */
843
+ private setLocalShareAudioTrack;
844
+ /**
845
+ * sets up listner for mercury event
846
+ * @returns {undefined}
847
+ * @public
848
+ * @memberof Meeting
849
+ */
850
+ setMercuryListener(): void;
851
+ /**
852
+ * Close the peer connections and remove them from the class.
853
+ * Cleanup any media connection related things.
854
+ *
855
+ * @returns {Promise}
856
+ * @public
857
+ * @memberof Meeting
858
+ */
859
+ closePeerConnections(): Promise<void>;
860
+ /**
861
+ * Unsets the peer connections on the class
862
+ * warning DO NOT CALL WITHOUT CLOSING PEER CONNECTIONS FIRST
863
+ * @returns {undefined}
864
+ * @public
865
+ * @memberof Meeting
866
+ */
867
+ unsetPeerConnections(): void;
868
+ /**
869
+ * Convenience method to set the correlation id for the Meeting
870
+ * @param {String} id correlation id to set on the class
871
+ * @returns {undefined}
872
+ * @private
873
+ * @memberof Meeting
874
+ */
875
+ private setCorrelationId;
876
+ /**
877
+ * Enqueue request for screenshare floor and set the status to pending
878
+ * @returns {Promise}
879
+ * @private
880
+ * @memberof Meeting
881
+ */
882
+ private enqueueScreenShareFloorRequest;
883
+ /**
884
+ * Mute the audio for a meeting
885
+ * @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
886
+ * @public
887
+ * @memberof Meeting
888
+ */
889
+ muteAudio(): any;
890
+ /**
891
+ * Unmute meeting audio
892
+ * @returns {Promise} resolves data from muting audio {mute, self} or rejects if there is no audio set
893
+ * @public
894
+ * @memberof Meeting
895
+ */
896
+ unmuteAudio(): any;
897
+ /**
898
+ * Mute the video for a meeting
899
+ * @returns {Promise} resolves data from muting video {mute, self} or rejects if there is no video set
900
+ * @public
901
+ * @memberof Meeting
902
+ */
903
+ muteVideo(): any;
904
+ /**
905
+ * Unmute meeting video
906
+ * @returns {Promise} resolves data from muting video {mute, self} or rejects if there is no video set
907
+ * @public
908
+ * @memberof Meeting
909
+ */
910
+ unmuteVideo(): any;
911
+ /**
912
+ * Shorthand function to join AND set up media
913
+ * @param {Object} options - options to join with media
914
+ * @param {JoinOptions} [options.joinOptions] - see #join()
915
+ * @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
916
+ * @returns {Promise} -- {join: see join(), media: see addMedia()}
917
+ * @public
918
+ * @memberof Meeting
919
+ * @example
920
+ * joinWithMedia({
921
+ * joinOptions: {resourceId: 'resourceId' },
922
+ * mediaOptions: {
923
+ * localTracks: { microphone: microphoneTrack, camera: cameraTrack }
924
+ * }
925
+ * })
926
+ */
927
+ joinWithMedia(options?: {
928
+ joinOptions?: any;
929
+ mediaOptions?: AddMediaOptions;
930
+ }): any;
931
+ /**
932
+ * Initiates the reconnection of the media in the meeting
933
+ *
934
+ * @param {object} options
935
+ * @returns {Promise} resolves with {reconnect} or errors with {error}
936
+ * @public
937
+ * @memberof Meeting
938
+ */
939
+ reconnect(options?: object): any;
940
+ /**
941
+ * Check if the meeting supports the Webex Assistant feature
942
+ * @returns {boolean}
943
+ * @throws TranscriptionNotSupportedError
944
+ */
945
+ isTranscriptionSupported(): boolean;
946
+ /**
947
+ * Check if the meeting supports the Reactions
948
+ * @returns {boolean}
949
+ */
950
+ isReactionsSupported(): boolean;
951
+ /**
952
+ * Monitor the Low-Latency Mercury (LLM) web socket connection on `onError` and `onClose` states
953
+ * @private
954
+ * @returns {void}
955
+ */
956
+ private monitorTranscriptionSocketConnection;
957
+ /**
958
+ * Request for a WebSocket Url, open and monitor the WebSocket connection
959
+ * @private
960
+ * @returns {Promise<void>} a promise to open the WebSocket connection
961
+ */
962
+ private receiveTranscription;
963
+ /**
964
+ * Callback called when a relay event is received from meeting LLM Connection
965
+ * @param {RelayEvent} e Event object coming from LLM Connection
966
+ * @private
967
+ * @returns {void}
968
+ */
969
+ private processRelayEvent;
970
+ /**
971
+ * stop recieving Transcription by closing
972
+ * the web socket connection properly
973
+ * @returns {void}
974
+ */
975
+ stopReceivingTranscription(): void;
976
+ /**
977
+ * triggers an event to notify that the user
978
+ * will not receive any more transcription
979
+ * @private
980
+ * @returns{void}
981
+ */
982
+ private triggerStopReceivingTranscriptionEvent;
983
+ /**
984
+ * Specify joining via audio (option: pstn), video, screenshare
985
+ * @param {JoinOptions} options A configurable options object for joining a meeting
986
+ * @returns {Promise} the join response
987
+ * @public
988
+ * @memberof Meeting
989
+ * Scenario A: Joining own claimed personal meeting room
990
+ * Scenario B: Joining other's claimed personal meeting room, do pass pin (if desired to join as host, or nullify), do pass moderator
991
+ * Scenario C: Joining an unclaimed personal meeting room, -do not- pass pin or moderator on first try, -do- pass pin and moderator
992
+ * if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
993
+ * Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
994
+ */
995
+ join(options?: any): any;
996
+ /**
997
+ * Connects to low latency mercury and reconnects if the address has changed
998
+ * It will also disconnect if called when the meeting has ended
999
+ * @param {String} datachannelUrl
1000
+ * @returns {Promise}
1001
+ */
1002
+ updateLLMConnection(): Promise<any>;
1003
+ /**
1004
+ * Use phone for meeting audio
1005
+ * @param {String} phoneNumber If provided, it will dial-out using this number. If not provided, dial-in will be used
1006
+ * @returns {Promise} Resolves once the dial-in or dial-out request has completed, or rejects if it failed
1007
+ * @public
1008
+ * @memberof Meeting
1009
+ */
1010
+ usePhoneAudio(phoneNumber: string): Promise<any>;
1011
+ /**
1012
+ * Determines if the given pstnStatus is in a state which implies the phone is provisioned
1013
+ * @param {String} pstnStatus
1014
+ * @returns {Boolean}
1015
+ * @private
1016
+ * @memberof Meeting
1017
+ */
1018
+ private isPhoneProvisioned;
1019
+ /**
1020
+ * Enable dial-in for audio
1021
+ * @returns {Promise} Resolves once the dial-in request has completed, or rejects if it failed
1022
+ * @private
1023
+ * @memberof Meeting
1024
+ */
1025
+ private dialInPstn;
1026
+ /**
1027
+ * Enable dial-out for audio
1028
+ * @param {String} phoneNumber Phone number to dial out to
1029
+ * @returns {Promise} Resolves once the dial-out request has completed (it doesn't wait for the user to answer the phone), or rejects if it failed
1030
+ * @private
1031
+ * @memberof Meeting
1032
+ */
1033
+ private dialOutPstn;
1034
+ /**
1035
+ * Disconnect meeting audio via phone.
1036
+ * @returns {Promise} Resolves once the phone audio disconnection has completed
1037
+ * @public
1038
+ * @memberof Meeting
1039
+ * @returns {Promise}
1040
+ */
1041
+ disconnectPhoneAudio(): Promise<[any, any]>;
1042
+ /**
1043
+ * Moves the call to the specified resourceId
1044
+ * @param {String} resourceId
1045
+ * @returns {Promise} once the move has been completed
1046
+ * @public
1047
+ * @memberof Meeting
1048
+ */
1049
+ moveTo(resourceId: string): any;
1050
+ /**
1051
+ * Moves the call from the specified resourceId, back to computer
1052
+ * @param {String} resourceId
1053
+ * @returns {Promise} once the move has been completed
1054
+ * @public
1055
+ * @memberof Meeting
1056
+ */
1057
+ moveFrom(resourceId: string): any;
1058
+ /**
1059
+ * Handles ROAP_FAILURE event from the webrtc media connection
1060
+ *
1061
+ * @param {Error} error
1062
+ * @returns {void}
1063
+ */
1064
+ handleRoapFailure: (error: any) => void;
1065
+ setupMediaConnectionListeners: () => void;
1066
+ /**
1067
+ * Registers for all required StatsAnalyzer events
1068
+ * @private
1069
+ * @returns {void}
1070
+ * @memberof Meetings
1071
+ */
1072
+ setupStatsAnalyzerEventHandlers: () => void;
1073
+ getMediaConnectionDebugId(): string;
1074
+ /**
1075
+ * Creates a webrtc media connection and publishes tracks to it
1076
+ *
1077
+ * @param {Object} turnServerInfo TURN server information
1078
+ * @param {BundlePolicy} [bundlePolicy] Bundle policy settings
1079
+ * @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
1080
+ */
1081
+ private createMediaConnection;
1082
+ /**
1083
+ * Listens for an event emitted by eventEmitter and emits it from the meeting object
1084
+ *
1085
+ * @private
1086
+ * @param {*} eventEmitter object from which to forward the event
1087
+ * @param {*} eventTypeToForward which event type to listen on and to forward
1088
+ * @param {string} meetingEventType event type to be used in the event emitted from the meeting object
1089
+ * @returns {void}
1090
+ */
1091
+ forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
1092
+ /**
1093
+ * Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
1094
+ *
1095
+ * @param {AddMediaOptions} options
1096
+ * @returns {Promise}
1097
+ * @public
1098
+ * @memberof Meeting
1099
+ */
1100
+ addMedia(options?: AddMediaOptions): Promise<any>;
1101
+ /**
1102
+ * Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
1103
+ * @returns {Boolean}
1104
+ */
1105
+ canUpdateMedia(): boolean;
1106
+ /**
1107
+ * Enqueues a media update operation.
1108
+ * @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
1109
+ * @param {Object} options
1110
+ * @returns {Promise}
1111
+ * @private
1112
+ * @memberof Meeting
1113
+ */
1114
+ private enqueueMediaUpdate;
1115
+ /**
1116
+ * emits event when the negotation is completed
1117
+ * @returns {void}
1118
+ * @private
1119
+ * @memberof Meeting
1120
+ */
1121
+ mediaNegotiatedEvent: () => void;
1122
+ /**
1123
+ * Checks if there are any queued media updates and runs the first one from
1124
+ * the queue if we are in a state that allows doing that.
1125
+ * @returns {undefined}
1126
+ * @public
1127
+ * @memberof Meeting
1128
+ */
1129
+ processNextQueuedMediaUpdate: () => void;
1130
+ /**
1131
+ * Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
1132
+ * This does not affect the published tracks, so for example if a microphone track is published and
1133
+ * updateMedia({audioEnabled: false}) is called, the audio will not be sent or received anymore,
1134
+ * but the track's "published" state is not changed and when updateMedia({audioEnabled: true}) is called,
1135
+ * the sending of the audio from the same track will resume.
1136
+ *
1137
+ * @param {Object} options
1138
+ * @param {boolean} options.audioEnabled [optional] enables/disables receiving and sending of main audio in the meeting
1139
+ * @param {boolean} options.videoEnabled [optional] enables/disables receiving and sending of main video in the meeting
1140
+ * @param {boolean} options.shareEnabled [optional] enables/disables receiving and sending of screen share in the meeting
1141
+ * @returns {Promise}
1142
+ * @public
1143
+ * @memberof Meeting
1144
+ */
1145
+ updateMedia(options: {
1146
+ audioEnabled?: boolean;
1147
+ videoEnabled?: boolean;
1148
+ receiveShare?: boolean;
1149
+ }): Promise<void>;
1150
+ /**
1151
+ * Acknowledge the meeting, outgoing or incoming
1152
+ * @param {String} type
1153
+ * @returns {Promise} resolve {message, ringing, response}
1154
+ * @public
1155
+ * @memberof Meeting
1156
+ */
1157
+ acknowledge(type: string): Promise<{
1158
+ response: any;
1159
+ }> | Promise<{
1160
+ message: string;
1161
+ }>;
1162
+ /**
1163
+ * Decline this meeting
1164
+ * @param {String} reason
1165
+ * @returns {undefined}
1166
+ * @public
1167
+ * @memberof Meeting
1168
+ */
1169
+ decline(reason: string): any;
1170
+ /**
1171
+ * Leave the current meeting
1172
+ * @param {Object} options leave options
1173
+ * @param {String} options.resourceId the device with which to leave from, empty if just the computer
1174
+ * @returns {Promise}
1175
+ * @public
1176
+ * @memberof Meeting
1177
+ */
1178
+ leave(options?: {
1179
+ resourceId?: string;
1180
+ reason?: any;
1181
+ }): any;
1182
+ /**
1183
+ * Start sharing whiteboard given channelUrl
1184
+ * @param {string} channelUrl whiteboard url
1185
+ * @param {String} resourceToken token created by authorize media injector
1186
+ * @returns {Promise}
1187
+ * @public
1188
+ * @memberof Meeting
1189
+ */
1190
+ startWhiteboardShare(channelUrl: string, resourceToken: string): any;
1191
+ /**
1192
+ * Stop sharing whiteboard given channelUrl
1193
+ * @param {string} channelUrl whiteboard url
1194
+ * @returns {Promise}
1195
+ * @public
1196
+ * @memberof Meeting
1197
+ */
1198
+ stopWhiteboardShare(channelUrl: string): any;
1199
+ /**
1200
+ * Sends a request to Locus to obtain the screen share floor
1201
+ * @returns {Promise} see #meetingRequest.changeMeetingFloor
1202
+ * @private
1203
+ * @memberof Meeting
1204
+ */
1205
+ private requestScreenShareFloor;
1206
+ /**
1207
+ * Requests screen share floor if such request is pending.
1208
+ * It should be called whenever meeting state changes to JOINED
1209
+ *
1210
+ * @returns {void}
1211
+ */
1212
+ private requestScreenShareFloorIfPending;
1213
+ /**
1214
+ * Sends a request to Locus to release the screen share floor.
1215
+ * @returns {Promise} see #meetingRequest.changeMeetingFloor
1216
+ * @private
1217
+ * @memberof Meeting
1218
+ */
1219
+ private releaseScreenShareFloor;
1220
+ /**
1221
+ * Intiate a recording of this meeting
1222
+ * @returns {Promise}
1223
+ * @public
1224
+ * @memberof Meeting
1225
+ */
1226
+ startRecording(): Promise<any>;
1227
+ /**
1228
+ * set the mute on entry flag for participants if you're the host
1229
+ * @returns {Promise}
1230
+ * @param {boolean} enabled
1231
+ * @public
1232
+ * @memberof Meeting
1233
+ */
1234
+ setMuteOnEntry(enabled: boolean): Promise<any>;
1235
+ /**
1236
+ * set the disallow unmute flag for participants if you're the host
1237
+ * @returns {Promise}
1238
+ * @param {boolean} enabled
1239
+ * @public
1240
+ * @memberof Meeting
1241
+ */
1242
+ setDisallowUnmute(enabled: boolean): Promise<any>;
1243
+ /**
1244
+ * set the mute all flag for participants if you're the host
1245
+ * @returns {Promise}
1246
+ * @param {boolean} mutedEnabled
1247
+ * @param {boolean} disallowUnmuteEnabled
1248
+ * @param {boolean} muteOnEntryEnabled
1249
+ * @public
1250
+ * @memberof Meeting
1251
+ */
1252
+ setMuteAll(mutedEnabled: boolean, disallowUnmuteEnabled: boolean, muteOnEntryEnabled: boolean): Promise<any>;
1253
+ /**
1254
+ * End the recording of this meeting
1255
+ * @returns {Promise}
1256
+ * @public
1257
+ * @memberof Meeting
1258
+ */
1259
+ stopRecording(): Promise<any>;
1260
+ /**
1261
+ * Pauses the recording of this meeting
1262
+ * @returns {Promise}
1263
+ * @public
1264
+ * @memberof Meeting
1265
+ */
1266
+ pauseRecording(): Promise<any>;
1267
+ /**
1268
+ * Resumes the recording of this meeting
1269
+ * @returns {Promise}
1270
+ * @public
1271
+ * @memberof Meeting
1272
+ */
1273
+ resumeRecording(): Promise<any>;
1274
+ /**
1275
+ * Locks the current meeting if possible
1276
+ * @returns {Promise}
1277
+ * @public
1278
+ * @memberof Meeting
1279
+ */
1280
+ lockMeeting(): any;
1281
+ /**
1282
+ * Unlocks the current meeting if possible
1283
+ * @returns {Promise}
1284
+ * @public
1285
+ * @memberof Meeting
1286
+ */
1287
+ unlockMeeting(): any;
1288
+ /**
1289
+ * Logs an error message and returns a rejected promise with same message
1290
+ * @param {String} message
1291
+ * @returns {Promise}
1292
+ * @private
1293
+ * @memberof Meeting
1294
+ */
1295
+ private rejectWithErrorLog;
1296
+ /**
1297
+ * Sends DTMF tones to the current meeting
1298
+ * @param {String} tones a string of one or more DTMF tones to send
1299
+ * @returns {Promise}
1300
+ * @public
1301
+ * @memberof Meeting
1302
+ */
1303
+ sendDTMF(tones: string): Promise<any>;
1304
+ /**
1305
+ * Sends request to change layout type for the current meeting for the specific participant/device only
1306
+ * @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
1307
+ * @param {Object} renderInfo preferred dimensions for the remote main and content streams (server can ignore it)
1308
+ * @param {Object} renderInfo.main preferred dimensions for the remote main video stream
1309
+ * @param {Number} renderInfo.main.width preferred width of main video stream
1310
+ * @param {Number} renderInfo.main.height preferred height of main video stream
1311
+ * @param {Object} renderInfo.content preferred dimensions for the remote content share stream
1312
+ * @param {Number} renderInfo.content.width preferred width of content share stream
1313
+ * @param {Number} renderInfo.content.height preferred height of content share stream
1314
+ * @returns {Promise}
1315
+ * @public
1316
+ * @memberof Meeting
1317
+ */
1318
+ changeVideoLayout(layoutType?: string, renderInfo?: {
1319
+ main: {
1320
+ width: number;
1321
+ height: number;
1322
+ };
1323
+ content: {
1324
+ width: number;
1325
+ height: number;
1326
+ };
1327
+ }): any;
1328
+ /**
1329
+ * Sets the quality level of the remote incoming media
1330
+ * @param {String} level {LOW|MEDIUM|HIGH}
1331
+ * @returns {Promise}
1332
+ */
1333
+ setRemoteQualityLevel(level: string): Promise<void>;
1334
+ /**
1335
+ * Functionality for when a share audio is ended.
1336
+ * @private
1337
+ * @memberof Meeting
1338
+ * @returns {undefined}
1339
+ */
1340
+ private handleShareAudioTrackEnded;
1341
+ /**
1342
+ * Functionality for when a share video is ended.
1343
+ * @private
1344
+ * @memberof Meeting
1345
+ * @returns {undefined}
1346
+ */
1347
+ private handleShareVideoTrackEnded;
1348
+ /**
1349
+ * Emits meeting:stoppedSharingLocal
1350
+ * @private
1351
+ * @returns {undefined}
1352
+ * @memberof Meeting
1353
+ */
1354
+ private triggerStoppedSharing;
1355
+ /**
1356
+ * Emits the 'network:quality' event
1357
+ * 1 indicates an acceptable uplink network.
1358
+ * 0 indicates an unacceptable uplink network based on a predefined threshold
1359
+ * @returns {undefined}
1360
+ * @param {Object} res - payload of emitNetworkQuality
1361
+ * @property {string} mediaType {video|audio}
1362
+ * @property {number} networkQualityScore - {1|0}
1363
+ * @private
1364
+ * @memberof Meeting
1365
+ */
1366
+ private sendNetworkQualityEvent;
1367
+ /**
1368
+ * Handle logging the media
1369
+ * @param {Object} mediaProperties
1370
+ * @private
1371
+ * @returns {undefined}
1372
+ */
1373
+ private handleMediaLogging;
1374
+ /**
1375
+ *
1376
+ * @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
1377
+ */
1378
+ getCurUserType(): "host" | "cohost" | "attendee";
1379
+ /**
1380
+ * End the current meeting for all
1381
+ * @returns {Promise}
1382
+ * @public
1383
+ * @memberof Meeting
1384
+ */
1385
+ endMeetingForAll(): any;
1386
+ /**
1387
+ * clear the meeting data
1388
+ * @returns {undefined}
1389
+ * @public
1390
+ * @memberof Meeting
1391
+ */
1392
+ clearMeetingData: () => void;
1393
+ /**
1394
+ * starts keepAlives being sent
1395
+ * @returns {void}
1396
+ * @private
1397
+ * @memberof Meeting
1398
+ */
1399
+ startKeepAlive: () => void;
1400
+ /**
1401
+ * stops keepAlives being sent
1402
+ * @returns {void}
1403
+ * @private
1404
+ * @memberof Meeting
1405
+ */
1406
+ stopKeepAlive: () => void;
1407
+ /**
1408
+ * Send a reaction inside the meeting.
1409
+ *
1410
+ * @param {ReactionServerType} reactionType - type of reaction to be sent. Example: "thumbs_up"
1411
+ * @param {SkinToneType} skinToneType - skin tone for the reaction. Example: "medium_dark"
1412
+ * @returns {Promise}
1413
+ * @public
1414
+ * @memberof Meeting
1415
+ */
1416
+ sendReaction(reactionType: ReactionServerType, skinToneType?: SkinToneType): any;
1417
+ /**
1418
+ * Method to enable or disable reactions inside the meeting.
1419
+ *
1420
+ * @param {boolean} enable - enable or disable reactions
1421
+ * @returns {Promise}
1422
+ * @public
1423
+ * @memberof Meeting
1424
+ */
1425
+ toggleReactions(enable: boolean): Promise<any>;
1426
+ /**
1427
+ * Throws if we don't have a media connection created
1428
+ *
1429
+ * @returns {void}
1430
+ */
1431
+ private checkMediaConnection;
1432
+ /**
1433
+ * Method to enable or disable the 'Music mode' effect on audio track
1434
+ *
1435
+ * @param {boolean} shouldEnableMusicMode
1436
+ * @returns {Promise}
1437
+ */
1438
+ enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
1439
+ /** Updates the tracks being sent on the transcoded media connection
1440
+ *
1441
+ * @returns {Promise<void>}
1442
+ */
1443
+ private updateTranscodedMediaConnection;
1444
+ /**
1445
+ * Publishes a track.
1446
+ *
1447
+ * @param {LocalTrack} track to publish
1448
+ * @returns {Promise}
1449
+ */
1450
+ private publishTrack;
1451
+ /**
1452
+ * Un-publishes a track.
1453
+ *
1454
+ * @param {LocalTrack} track to unpublish
1455
+ * @returns {Promise}
1456
+ */
1457
+ private unpublishTrack;
1458
+ /**
1459
+ * Publishes specified local tracks in the meeting
1460
+ *
1461
+ * @param {Object} tracks
1462
+ * @returns {Promise}
1463
+ */
1464
+ publishTracks(tracks: LocalTracks): Promise<void>;
1465
+ /**
1466
+ * Un-publishes specified local tracks in the meeting
1467
+ *
1468
+ * @param {Array<MediaStreamTrack>} tracks
1469
+ * @returns {Promise}
1470
+ */
1471
+ unpublishTracks(tracks: LocalTrack[]): Promise<void>;
1472
+ }