@webex/plugin-meetings 3.0.0-beta.4 → 3.0.0-beta.400

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