@webex/plugin-meetings 3.0.0-beta.18 → 3.0.0-beta.181

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