@webex/plugin-meetings 3.8.0 → 3.8.1-next.10

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