@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.200

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