@webex/plugin-meetings 3.0.0-beta.3 → 3.0.0-beta.300

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