@webex/plugin-meetings 3.0.0-beta.16 → 3.0.0-beta.161

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