@webex/plugin-meetings 3.0.0-beta.21 → 3.0.0-beta.211

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