@webex/plugin-meetings 3.0.0-beta.7 → 3.0.0-beta.71

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