@webex/plugin-meetings 3.0.0-beta.17 → 3.0.0-beta.170

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