@webex/plugin-meetings 3.0.0-beta.26 → 3.0.0-beta.261

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 +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +114 -14
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/edit-lock-error.js +52 -0
  11. package/dist/breakouts/edit-lock-error.js.map +1 -0
  12. package/dist/breakouts/events.js +45 -0
  13. package/dist/breakouts/events.js.map +1 -0
  14. package/dist/breakouts/index.js +841 -19
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/request.js +78 -0
  17. package/dist/breakouts/request.js.map +1 -0
  18. package/dist/breakouts/utils.js +67 -0
  19. package/dist/breakouts/utils.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +28 -7
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/queue.js +24 -9
  25. package/dist/common/queue.js.map +1 -1
  26. package/dist/config.js +5 -10
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +196 -28
  29. package/dist/constants.js.map +1 -1
  30. package/dist/controls-options-manager/enums.js +14 -2
  31. package/dist/controls-options-manager/enums.js.map +1 -1
  32. package/dist/controls-options-manager/index.js +109 -15
  33. package/dist/controls-options-manager/index.js.map +1 -1
  34. package/dist/controls-options-manager/types.js +7 -0
  35. package/dist/controls-options-manager/types.js.map +1 -0
  36. package/dist/controls-options-manager/util.js +309 -18
  37. package/dist/controls-options-manager/util.js.map +1 -1
  38. package/dist/index.js +112 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/interpretation/collection.js +23 -0
  41. package/dist/interpretation/collection.js.map +1 -0
  42. package/dist/interpretation/index.js +366 -0
  43. package/dist/interpretation/index.js.map +1 -0
  44. package/dist/interpretation/siLanguage.js +25 -0
  45. package/dist/interpretation/siLanguage.js.map +1 -0
  46. package/dist/locus-info/controlsUtils.js +91 -2
  47. package/dist/locus-info/controlsUtils.js.map +1 -1
  48. package/dist/locus-info/index.js +381 -62
  49. package/dist/locus-info/index.js.map +1 -1
  50. package/dist/locus-info/infoUtils.js +7 -1
  51. package/dist/locus-info/infoUtils.js.map +1 -1
  52. package/dist/locus-info/mediaSharesUtils.js +43 -1
  53. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  54. package/dist/locus-info/parser.js +224 -63
  55. package/dist/locus-info/parser.js.map +1 -1
  56. package/dist/locus-info/selfUtils.js +89 -14
  57. package/dist/locus-info/selfUtils.js.map +1 -1
  58. package/dist/media/index.js +58 -116
  59. package/dist/media/index.js.map +1 -1
  60. package/dist/media/properties.js +60 -121
  61. package/dist/media/properties.js.map +1 -1
  62. package/dist/meeting/in-meeting-actions.js +82 -2
  63. package/dist/meeting/in-meeting-actions.js.map +1 -1
  64. package/dist/meeting/index.js +3022 -2795
  65. package/dist/meeting/index.js.map +1 -1
  66. package/dist/meeting/locusMediaRequest.js +292 -0
  67. package/dist/meeting/locusMediaRequest.js.map +1 -0
  68. package/dist/meeting/muteState.js +230 -124
  69. package/dist/meeting/muteState.js.map +1 -1
  70. package/dist/meeting/request.js +256 -196
  71. package/dist/meeting/request.js.map +1 -1
  72. package/dist/meeting/util.js +601 -417
  73. package/dist/meeting/util.js.map +1 -1
  74. package/dist/meeting-info/index.js +70 -7
  75. package/dist/meeting-info/index.js.map +1 -1
  76. package/dist/meeting-info/meeting-info-v2.js +189 -51
  77. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  78. package/dist/meeting-info/util.js +1 -1
  79. package/dist/meeting-info/util.js.map +1 -1
  80. package/dist/meeting-info/utilv2.js +36 -36
  81. package/dist/meeting-info/utilv2.js.map +1 -1
  82. package/dist/meetings/collection.js +22 -0
  83. package/dist/meetings/collection.js.map +1 -1
  84. package/dist/meetings/index.js +372 -90
  85. package/dist/meetings/index.js.map +1 -1
  86. package/dist/meetings/meetings.types.js +7 -0
  87. package/dist/meetings/meetings.types.js.map +1 -0
  88. package/dist/meetings/request.js +2 -0
  89. package/dist/meetings/request.js.map +1 -1
  90. package/dist/meetings/util.js +88 -1
  91. package/dist/meetings/util.js.map +1 -1
  92. package/dist/member/index.js +49 -0
  93. package/dist/member/index.js.map +1 -1
  94. package/dist/member/types.js +25 -0
  95. package/dist/member/types.js.map +1 -0
  96. package/dist/member/util.js +121 -25
  97. package/dist/member/util.js.map +1 -1
  98. package/dist/members/collection.js +10 -0
  99. package/dist/members/collection.js.map +1 -1
  100. package/dist/members/index.js +86 -5
  101. package/dist/members/index.js.map +1 -1
  102. package/dist/members/request.js +106 -38
  103. package/dist/members/request.js.map +1 -1
  104. package/dist/members/types.js +15 -0
  105. package/dist/members/types.js.map +1 -0
  106. package/dist/members/util.js +316 -233
  107. package/dist/members/util.js.map +1 -1
  108. package/dist/metrics/constants.js +10 -5
  109. package/dist/metrics/constants.js.map +1 -1
  110. package/dist/metrics/index.js +1 -468
  111. package/dist/metrics/index.js.map +1 -1
  112. package/dist/multistream/mediaRequestManager.js +238 -49
  113. package/dist/multistream/mediaRequestManager.js.map +1 -1
  114. package/dist/multistream/receiveSlot.js +49 -16
  115. package/dist/multistream/receiveSlot.js.map +1 -1
  116. package/dist/multistream/receiveSlotManager.js +52 -34
  117. package/dist/multistream/receiveSlotManager.js.map +1 -1
  118. package/dist/multistream/remoteMedia.js +44 -18
  119. package/dist/multistream/remoteMedia.js.map +1 -1
  120. package/dist/multistream/remoteMediaGroup.js +60 -3
  121. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  122. package/dist/multistream/remoteMediaManager.js +209 -59
  123. package/dist/multistream/remoteMediaManager.js.map +1 -1
  124. package/dist/multistream/sendSlotManager.js +233 -0
  125. package/dist/multistream/sendSlotManager.js.map +1 -0
  126. package/dist/reachability/index.js +161 -57
  127. package/dist/reachability/index.js.map +1 -1
  128. package/dist/reachability/request.js +17 -8
  129. package/dist/reachability/request.js.map +1 -1
  130. package/dist/reconnection-manager/index.js +199 -154
  131. package/dist/reconnection-manager/index.js.map +1 -1
  132. package/dist/recording-controller/index.js +21 -2
  133. package/dist/recording-controller/index.js.map +1 -1
  134. package/dist/recording-controller/util.js +9 -8
  135. package/dist/recording-controller/util.js.map +1 -1
  136. package/dist/roap/index.js +23 -29
  137. package/dist/roap/index.js.map +1 -1
  138. package/dist/roap/request.js +112 -97
  139. package/dist/roap/request.js.map +1 -1
  140. package/dist/roap/turnDiscovery.js +96 -36
  141. package/dist/roap/turnDiscovery.js.map +1 -1
  142. package/dist/rtcMetrics/constants.js +12 -0
  143. package/dist/rtcMetrics/constants.js.map +1 -0
  144. package/dist/rtcMetrics/index.js +117 -0
  145. package/dist/rtcMetrics/index.js.map +1 -0
  146. package/dist/statsAnalyzer/index.js +51 -34
  147. package/dist/statsAnalyzer/index.js.map +1 -1
  148. package/dist/statsAnalyzer/mqaUtil.js +6 -6
  149. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  150. package/dist/types/annotation/annotation.types.d.ts +42 -0
  151. package/dist/types/annotation/constants.d.ts +31 -0
  152. package/dist/types/annotation/index.d.ts +117 -0
  153. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  154. package/dist/types/breakouts/events.d.ts +8 -0
  155. package/dist/types/breakouts/request.d.ts +22 -0
  156. package/dist/types/breakouts/utils.d.ts +15 -0
  157. package/dist/types/common/errors/webex-errors.d.ts +13 -1
  158. package/dist/types/common/queue.d.ts +9 -7
  159. package/dist/types/config.d.ts +1 -6
  160. package/dist/types/constants.d.ts +155 -21
  161. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  162. package/dist/types/controls-options-manager/index.d.ts +17 -1
  163. package/dist/types/controls-options-manager/types.d.ts +43 -0
  164. package/dist/types/controls-options-manager/util.d.ts +1 -7
  165. package/dist/types/index.d.ts +6 -4
  166. package/dist/types/interpretation/collection.d.ts +5 -0
  167. package/dist/types/interpretation/index.d.ts +5 -0
  168. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  169. package/dist/types/locus-info/index.d.ts +57 -4
  170. package/dist/types/locus-info/parser.d.ts +65 -6
  171. package/dist/types/media/index.d.ts +2 -0
  172. package/dist/types/media/properties.d.ts +34 -48
  173. package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
  174. package/dist/types/meeting/index.d.ts +344 -506
  175. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  176. package/dist/types/meeting/muteState.d.ts +99 -23
  177. package/dist/types/meeting/request.d.ts +72 -43
  178. package/dist/types/meeting/util.d.ts +101 -1
  179. package/dist/types/meeting-info/index.d.ts +13 -1
  180. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  181. package/dist/types/meetings/collection.d.ts +8 -0
  182. package/dist/types/meetings/index.d.ts +86 -12
  183. package/dist/types/meetings/meetings.types.d.ts +4 -0
  184. package/dist/types/member/index.d.ts +13 -0
  185. package/dist/types/member/types.d.ts +32 -0
  186. package/dist/types/members/collection.d.ts +5 -0
  187. package/dist/types/members/index.d.ts +35 -2
  188. package/dist/types/members/request.d.ts +73 -9
  189. package/dist/types/members/types.d.ts +24 -0
  190. package/dist/types/members/util.d.ts +209 -1
  191. package/dist/types/metrics/constants.d.ts +9 -4
  192. package/dist/types/metrics/index.d.ts +4 -119
  193. package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
  194. package/dist/types/multistream/receiveSlot.d.ts +16 -12
  195. package/dist/types/multistream/receiveSlotManager.d.ts +19 -4
  196. package/dist/types/multistream/remoteMedia.d.ts +8 -29
  197. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  198. package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
  199. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  200. package/dist/types/reachability/index.d.ts +44 -7
  201. package/dist/types/reachability/request.d.ts +7 -3
  202. package/dist/types/reconnection-manager/index.d.ts +9 -0
  203. package/dist/types/recording-controller/index.d.ts +15 -1
  204. package/dist/types/recording-controller/util.d.ts +5 -4
  205. package/dist/types/roap/request.d.ts +15 -11
  206. package/dist/types/roap/turnDiscovery.d.ts +18 -1
  207. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  208. package/dist/types/rtcMetrics/index.d.ts +47 -0
  209. package/dist/types/statsAnalyzer/index.d.ts +6 -1
  210. package/package.json +23 -20
  211. package/src/annotation/annotation.types.ts +50 -0
  212. package/src/annotation/constants.ts +36 -0
  213. package/src/annotation/index.ts +328 -0
  214. package/src/breakouts/README.md +44 -14
  215. package/src/breakouts/breakout.ts +87 -9
  216. package/src/breakouts/edit-lock-error.ts +25 -0
  217. package/src/breakouts/events.ts +56 -0
  218. package/src/breakouts/index.ts +710 -10
  219. package/src/breakouts/request.ts +55 -0
  220. package/src/breakouts/utils.ts +57 -0
  221. package/src/common/errors/webex-errors.ts +27 -2
  222. package/src/common/logs/logger-proxy.ts +1 -1
  223. package/src/common/queue.ts +22 -8
  224. package/src/config.ts +4 -9
  225. package/src/constants.ts +178 -18
  226. package/src/controls-options-manager/enums.ts +12 -0
  227. package/src/controls-options-manager/index.ts +116 -21
  228. package/src/controls-options-manager/types.ts +59 -0
  229. package/src/controls-options-manager/util.ts +294 -14
  230. package/src/index.ts +40 -0
  231. package/src/interpretation/README.md +60 -0
  232. package/src/interpretation/collection.ts +19 -0
  233. package/src/interpretation/index.ts +332 -0
  234. package/src/interpretation/siLanguage.ts +18 -0
  235. package/src/locus-info/controlsUtils.ts +108 -0
  236. package/src/locus-info/index.ts +412 -59
  237. package/src/locus-info/infoUtils.ts +10 -2
  238. package/src/locus-info/mediaSharesUtils.ts +48 -0
  239. package/src/locus-info/parser.ts +231 -39
  240. package/src/locus-info/selfUtils.ts +81 -5
  241. package/src/media/index.ts +100 -122
  242. package/src/media/properties.ts +70 -108
  243. package/src/meeting/in-meeting-actions.ts +163 -3
  244. package/src/meeting/index.ts +2471 -2306
  245. package/src/meeting/locusMediaRequest.ts +313 -0
  246. package/src/meeting/muteState.ts +229 -131
  247. package/src/meeting/request.ts +172 -121
  248. package/src/meeting/util.ts +588 -394
  249. package/src/meeting-info/index.ts +79 -8
  250. package/src/meeting-info/meeting-info-v2.ts +168 -14
  251. package/src/meeting-info/util.ts +1 -1
  252. package/src/meeting-info/utilv2.ts +23 -23
  253. package/src/meetings/collection.ts +20 -0
  254. package/src/meetings/index.ts +414 -108
  255. package/src/meetings/meetings.types.ts +12 -0
  256. package/src/meetings/request.ts +2 -0
  257. package/src/meetings/util.ts +103 -4
  258. package/src/member/index.ts +49 -0
  259. package/src/member/types.ts +38 -0
  260. package/src/member/util.ts +127 -25
  261. package/src/members/collection.ts +8 -0
  262. package/src/members/index.ts +107 -6
  263. package/src/members/request.ts +97 -17
  264. package/src/members/types.ts +28 -0
  265. package/src/members/util.ts +319 -240
  266. package/src/metrics/constants.ts +9 -4
  267. package/src/metrics/index.ts +1 -490
  268. package/src/multistream/mediaRequestManager.ts +289 -79
  269. package/src/multistream/receiveSlot.ts +55 -18
  270. package/src/multistream/receiveSlotManager.ts +46 -24
  271. package/src/multistream/remoteMedia.ts +27 -2
  272. package/src/multistream/remoteMediaGroup.ts +59 -0
  273. package/src/multistream/remoteMediaManager.ts +148 -30
  274. package/src/multistream/sendSlotManager.ts +170 -0
  275. package/src/reachability/index.ts +165 -37
  276. package/src/reachability/request.ts +17 -8
  277. package/src/reconnection-manager/index.ts +81 -54
  278. package/src/recording-controller/index.ts +20 -3
  279. package/src/recording-controller/util.ts +26 -9
  280. package/src/roap/index.ts +23 -30
  281. package/src/roap/request.ts +100 -104
  282. package/src/roap/turnDiscovery.ts +51 -25
  283. package/src/rtcMetrics/constants.ts +3 -0
  284. package/src/rtcMetrics/index.ts +100 -0
  285. package/src/statsAnalyzer/index.ts +73 -35
  286. package/src/statsAnalyzer/mqaUtil.ts +8 -10
  287. package/test/integration/spec/converged-space-meetings.js +233 -0
  288. package/test/integration/spec/journey.js +320 -261
  289. package/test/integration/spec/space-meeting.js +76 -3
  290. package/test/unit/spec/annotation/index.ts +418 -0
  291. package/test/unit/spec/breakouts/breakout.ts +142 -24
  292. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  293. package/test/unit/spec/breakouts/events.ts +89 -0
  294. package/test/unit/spec/breakouts/index.ts +1545 -48
  295. package/test/unit/spec/breakouts/request.ts +104 -0
  296. package/test/unit/spec/breakouts/utils.js +72 -0
  297. package/test/unit/spec/common/queue.js +31 -2
  298. package/test/unit/spec/controls-options-manager/index.js +163 -0
  299. package/test/unit/spec/controls-options-manager/util.js +576 -60
  300. package/test/unit/spec/fixture/locus.js +1 -0
  301. package/test/unit/spec/interpretation/collection.ts +15 -0
  302. package/test/unit/spec/interpretation/index.ts +589 -0
  303. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  304. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  305. package/test/unit/spec/locus-info/index.js +1283 -33
  306. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  307. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  308. package/test/unit/spec/locus-info/parser.js +62 -22
  309. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  310. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  311. package/test/unit/spec/media/index.ts +104 -37
  312. package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
  313. package/test/unit/spec/meeting/index.js +4095 -1913
  314. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  315. package/test/unit/spec/meeting/muteState.js +408 -208
  316. package/test/unit/spec/meeting/request.js +440 -45
  317. package/test/unit/spec/meeting/utils.js +679 -64
  318. package/test/unit/spec/meeting-info/index.js +293 -0
  319. package/test/unit/spec/meeting-info/meetinginfov2.js +517 -5
  320. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  321. package/test/unit/spec/meetings/collection.js +14 -0
  322. package/test/unit/spec/meetings/index.js +941 -151
  323. package/test/unit/spec/meetings/utils.js +206 -2
  324. package/test/unit/spec/member/index.js +58 -4
  325. package/test/unit/spec/member/util.js +479 -35
  326. package/test/unit/spec/members/index.js +319 -1
  327. package/test/unit/spec/members/request.js +206 -27
  328. package/test/unit/spec/members/utils.js +184 -0
  329. package/test/unit/spec/metrics/index.js +1 -50
  330. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  331. package/test/unit/spec/multistream/receiveSlot.ts +72 -13
  332. package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
  333. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  334. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  335. package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
  336. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  337. package/test/unit/spec/reachability/index.ts +343 -9
  338. package/test/unit/spec/reachability/request.js +68 -0
  339. package/test/unit/spec/reconnection-manager/index.js +84 -9
  340. package/test/unit/spec/recording-controller/index.js +294 -218
  341. package/test/unit/spec/recording-controller/util.js +223 -96
  342. package/test/unit/spec/roap/index.ts +31 -51
  343. package/test/unit/spec/roap/request.ts +203 -85
  344. package/test/unit/spec/roap/turnDiscovery.ts +48 -13
  345. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  346. package/test/unit/spec/stats-analyzer/index.js +29 -2
  347. package/test/utils/constants.js +9 -0
  348. package/test/utils/integrationTestUtils.js +46 -0
  349. package/test/utils/testUtils.js +0 -45
  350. package/test/utils/webex-config.js +4 -0
  351. package/test/utils/webex-test-users.js +6 -3
  352. package/dist/meeting/effectsState.js +0 -262
  353. package/dist/meeting/effectsState.js.map +0 -1
  354. package/dist/metrics/config.js +0 -299
  355. package/dist/metrics/config.js.map +0 -1
  356. package/dist/types/meeting/effectsState.d.ts +0 -42
  357. package/dist/types/metrics/config.d.ts +0 -178
  358. package/src/index.js +0 -16
  359. package/src/meeting/effectsState.ts +0 -211
  360. package/src/metrics/config.ts +0 -495
  361. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -1,7 +1,10 @@
1
1
  import '@webex/internal-plugin-mercury';
2
2
  import '@webex/internal-plugin-conversation';
3
+ import '@webex/internal-plugin-metrics';
3
4
  import { WebexPlugin } from '@webex/webex-core';
4
5
  import 'webrtc-adapter';
6
+ import Reachability from '../reachability';
7
+ import { INoiseReductionEffect, IVirtualBackgroundEffect } from './meetings.types';
5
8
  /**
6
9
  * Meetings Ready Event
7
10
  * Emitted when the meetings instance on webex is ready
@@ -55,11 +58,13 @@ export default class Meetings extends WebexPlugin {
55
58
  meetingCollection: any;
56
59
  personalMeetingRoom: any;
57
60
  preferredWebexSite: any;
58
- reachability: any;
61
+ reachability: Reachability;
59
62
  registered: any;
60
63
  request: any;
61
64
  geoHintInfo: any;
62
65
  meetingInfo: any;
66
+ mediaHelpers: any;
67
+ breakoutLocusForHandleLater: any;
63
68
  namespace: string;
64
69
  /**
65
70
  * Initializes the Meetings Plugin
@@ -68,6 +73,34 @@ export default class Meetings extends WebexPlugin {
68
73
  * @memberof Meetings
69
74
  */
70
75
  constructor(...args: any[]);
76
+ /**
77
+ * check whether you need to handle this main session's locus data or not
78
+ * @param {Object} meeting current meeting data
79
+ * @param {Object} newLocus new locus data
80
+ * @returns {boolean}
81
+ * @private
82
+ * @memberof Meetings
83
+ */
84
+ private isNeedHandleMainLocus;
85
+ /**
86
+ * check whether you need to handle this locus data or not
87
+ * @param {Object} meeting old locus data
88
+ * @param {Object} newLocus new locus data
89
+ * @returns {boolean}
90
+ * @private
91
+ * @memberof Meetings
92
+ */
93
+ private isNeedHandleLocusDTO;
94
+ /**
95
+ * get corresponding meeting object by locus data
96
+ * @param {Object} data a locus event
97
+ * @param {String} data.locusUrl
98
+ * @param {Object} data.locus
99
+ * @returns {Object}
100
+ * @private
101
+ * @memberof Meetings
102
+ */
103
+ getCorrespondingMeetingByLocus(data: any): any;
71
104
  /**
72
105
  * handle locus events and takes meeting actions with them as they come in
73
106
  * @param {Object} data a locus event
@@ -159,6 +192,24 @@ export default class Meetings extends WebexPlugin {
159
192
  * @memberof Meetings
160
193
  */
161
194
  unregister(): any;
195
+ /**
196
+ * Creates a noise reduction effect
197
+ *
198
+ * @param {INoiseReductionEffect} options optional custom effect options
199
+ * @returns {Promise<effect>} noise reduction effect.
200
+ * @public
201
+ * @memberof Meetings
202
+ */
203
+ createNoiseReductionEffect: (options?: INoiseReductionEffect) => Promise<any>;
204
+ /**
205
+ * Creates a virtual background effect
206
+ *
207
+ * @param {IVirtualBackgroundEffect} options optional custom effect options
208
+ * @returns {Promise<effect>} virtual background effect.
209
+ * @public
210
+ * @memberof Meetings
211
+ */
212
+ createVirtualBackgroundEffect: (options?: IVirtualBackgroundEffect) => Promise<any>;
162
213
  /**
163
214
  * Uploads logs to the webex services for tracking
164
215
  * @param {Object} [options={}]
@@ -180,27 +231,30 @@ export default class Meetings extends WebexPlugin {
180
231
  userId?: string;
181
232
  orgId?: string;
182
233
  }): any;
183
- /**
184
- * initializes the reachability instance for Meetings
185
- * @returns {undefined}
186
- * @public
187
- * @memberof Meetings
188
- */
189
- setReachability(): void;
190
234
  /**
191
235
  * gets the reachability instance for Meetings
192
236
  * @returns {Reachability}
193
237
  * @public
194
238
  * @memberof Meetings
195
239
  */
196
- getReachability(): any;
240
+ getReachability(): Reachability;
197
241
  /**
198
242
  * initializes and starts gathering reachability for Meetings
199
243
  * @returns {Promise}
200
244
  * @public
201
245
  * @memberof Meetings
202
246
  */
203
- startReachability(): any;
247
+ startReachability(): Promise<{
248
+ [x: string]: {
249
+ udp: import("../reachability").TransportResult;
250
+ tcp: import("../reachability").TransportResult;
251
+ xtls: {
252
+ untested: "true";
253
+ };
254
+ } & {
255
+ isVideoMesh?: boolean;
256
+ };
257
+ }>;
204
258
  /**
205
259
  * Get geoHint for info for meetings
206
260
  * @returns {Promise}
@@ -234,18 +288,22 @@ export default class Meetings extends WebexPlugin {
234
288
  private destroy;
235
289
  /**
236
290
  * Create a meeting.
237
- * @param {string} destination - sipURL, spaceId, phonenumber, or locus object}
291
+ * @param {string} destination - sipURL, phonenumber, or locus object}
238
292
  * @param {string} [type] - the optional specified type, such as locusId
239
293
  * @param {Boolean} useRandomDelayForInfo - whether a random delay should be added to fetching meeting info
294
+ * @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
295
+ * @param {string} correlationId - the optional specified correlationId
240
296
  * @returns {Promise<Meeting>} A new Meeting.
241
297
  * @public
242
298
  * @memberof Meetings
243
299
  */
244
- create(destination: string, type?: string, useRandomDelayForInfo?: boolean): any;
300
+ create(destination: string, type?: string, useRandomDelayForInfo?: boolean, infoExtraParams?: {}, correlationId?: string): any;
245
301
  /**
246
302
  * @param {String} destination see create()
247
303
  * @param {String} type see create()
248
304
  * @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
305
+ * @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
306
+ * @param {String} correlationId the optional specified correlationId
249
307
  * @returns {Promise} a new meeting instance complete with meeting info and destination
250
308
  * @private
251
309
  * @memberof Meetings
@@ -280,6 +338,22 @@ export default class Meetings extends WebexPlugin {
280
338
  * @memberof Meetings
281
339
  */
282
340
  syncMeetings(): any;
341
+ /**
342
+ * sort out locus array for initial creating
343
+ * @param {Array} loci original locus array
344
+ * @returns {undefined}
345
+ * @public
346
+ * @memberof Meetings
347
+ */
348
+ sortLocusArrayToUpdate(loci: any[]): any[];
349
+ /**
350
+ * check breakout locus which waiting for main locus's meeting to be created, then handle the breakout locus
351
+ * @param {Object} newCreatedLocus the locus which just create meeting object of it
352
+ * @returns {undefined}
353
+ * @public
354
+ * @memberof Meetings
355
+ */
356
+ checkHandleBreakoutLocus(newCreatedLocus: any): void;
283
357
  /**
284
358
  * Get all scheduled meetings.
285
359
  * @param {object} options
@@ -0,0 +1,4 @@
1
+ import type { NoiseReductionEffectOptions, VirtualBackgroundEffectOptions } from '@webex/media-helpers';
2
+ type INoiseReductionEffect = Omit<NoiseReductionEffectOptions, 'authToken' | 'workletProcessorUrl' | 'legacyProcessorUrl'>;
3
+ type IVirtualBackgroundEffect = Omit<VirtualBackgroundEffectOptions, 'authToken'>;
4
+ export type { INoiseReductionEffect, IVirtualBackgroundEffect };
@@ -1,3 +1,4 @@
1
+ import { IExternalRoles, IMediaStatus } from './types';
1
2
  /**
2
3
  * @class Member
3
4
  */
@@ -21,10 +22,14 @@ export default class Member {
21
22
  isSelf: any;
22
23
  isUser: any;
23
24
  isVideoMuted: any;
25
+ roles: IExternalRoles;
26
+ mediaStatus: IMediaStatus;
24
27
  name: any;
25
28
  participant: any;
26
29
  status: any;
27
30
  supportsBreakouts: boolean;
31
+ supportsInterpretation: boolean;
32
+ supportLiveAnnotation: boolean;
28
33
  type: any;
29
34
  namespace: string;
30
35
  /**
@@ -135,6 +140,14 @@ export default class Member {
135
140
  * @memberof Member
136
141
  */
137
142
  private processIsHost;
143
+ /**
144
+ * process the roles that have been applied to this member
145
+ * @param {Object} participant
146
+ * @returns {undefined}
147
+ * @private
148
+ * @memberof Member
149
+ */
150
+ private processRoles;
138
151
  /**
139
152
  * set the type for the member, could be MEETING or CALL
140
153
  * @param {String} type
@@ -0,0 +1,32 @@
1
+ export interface IExternalRoles {
2
+ cohost: boolean;
3
+ moderator: boolean;
4
+ presenter: boolean;
5
+ }
6
+ export declare enum ServerRoles {
7
+ Cohost = "COHOST",
8
+ Moderator = "MODERATOR",
9
+ Presenter = "PRESENTER"
10
+ }
11
+ export type ServerRoleShape = {
12
+ type: ServerRoles;
13
+ hasRole: boolean;
14
+ };
15
+ export type ParticipantWithRoles = {
16
+ controls: {
17
+ role: {
18
+ roles: Array<ServerRoleShape>;
19
+ };
20
+ };
21
+ };
22
+ export declare enum MediaStatus {
23
+ RECVONLY = "RECVONLY",
24
+ SENDONLY = "SENDONLY",
25
+ SENDRECV = "SENDRECV",
26
+ INACTIVE = "INACTIVE",
27
+ UNKNOWN = "UNKNOWN"
28
+ }
29
+ export interface IMediaStatus {
30
+ audio: MediaStatus;
31
+ video: MediaStatus;
32
+ }
@@ -21,4 +21,9 @@ export default class MembersCollection {
21
21
  * @memberof MembersCollection
22
22
  */
23
23
  getAll(): any;
24
+ /**
25
+ * @returns {void}
26
+ * reset members
27
+ */
28
+ reset(): void;
24
29
  }
@@ -1,6 +1,7 @@
1
1
  import { StatelessWebexPlugin } from '@webex/webex-core';
2
2
  import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
3
3
  import { MediaRequestManager } from '../multistream/mediaRequestManager';
4
+ import { ServerRoleShape } from './types';
4
5
  /**
5
6
  * Members Update Event
6
7
  * Emitted when something in the roster list needs to be updated
@@ -91,6 +92,13 @@ export default class Members extends StatelessWebexPlugin {
91
92
  newHost: any;
92
93
  oldHost: any;
93
94
  }): void;
95
+ /**
96
+ * clear member collection
97
+ * @returns {void}
98
+ * @private
99
+ * @memberof Members
100
+ */
101
+ clearMembers(): void;
94
102
  /**
95
103
  * when new participant updates come in, both delta and full participants, update them in members collection
96
104
  * delta object in the event will have {updated, added} and full will be the full membersCollection
@@ -102,6 +110,7 @@ export default class Members extends StatelessWebexPlugin {
102
110
  */
103
111
  locusParticipantsUpdate(payload: {
104
112
  participants: object;
113
+ isReplace?: boolean;
105
114
  }): void;
106
115
  /**
107
116
  * Internal update the content id
@@ -245,11 +254,15 @@ export default class Members extends StatelessWebexPlugin {
245
254
  /**
246
255
  * Admits waiting members (invited guests to meeting)
247
256
  * @param {Array} memberIds
257
+ * @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
248
258
  * @returns {Promise}
249
259
  * @public
250
260
  * @memberof Members
251
261
  */
252
- admitMembers(memberIds: Array<any>): any;
262
+ admitMembers(memberIds: Array<any>, sessionLocusUrls?: {
263
+ authorizingLocusUrl: string;
264
+ mainLocusUrl: string;
265
+ }): any;
253
266
  /**
254
267
  * Removes a member from the meeting
255
268
  * @param {String} memberId
@@ -262,11 +275,21 @@ export default class Members extends StatelessWebexPlugin {
262
275
  * Audio mutes another member in a meeting
263
276
  * @param {String} memberId
264
277
  * @param {boolean} [mute] default true
278
+ * @param {boolean} [isAudio] default true
265
279
  * @returns {Promise}
266
280
  * @public
267
281
  * @memberof Members
268
282
  */
269
- muteMember(memberId: string, mute?: boolean): any;
283
+ muteMember(memberId: string, mute?: boolean, isAudio?: boolean): any;
284
+ /**
285
+ * Assign role(s) to a member in the meeting
286
+ * @param {String} memberId
287
+ * @param {[ServerRoleShape]} roles - to assign an array of roles
288
+ * @returns {Promise}
289
+ * @public
290
+ * @memberof Members
291
+ */
292
+ assignRoles(memberId: string, roles: Array<ServerRoleShape>): any;
270
293
  /**
271
294
  * Raise or lower the hand of a member in a meeting
272
295
  * @param {String} memberId
@@ -317,4 +340,14 @@ export default class Members extends StatelessWebexPlugin {
317
340
  * @returns {Member}
318
341
  */
319
342
  getCsisForMember(memberId: any, mediaType?: string, mediaContent?: string): any[];
343
+ /**
344
+ * Edit display name of participants in a meeting
345
+ * @param {string} memberId - id of the participant who is receiving request
346
+ * @param {string} requestingParticipantId - id of the participant who is sending request (optional)
347
+ * @param {string} [alias] - alias name
348
+ * @returns {Promise}
349
+ * @public
350
+ * @memberof Members
351
+ */
352
+ editDisplayName(memberId: string, requestingParticipantId: string, alias: string): any;
320
353
  }
@@ -4,6 +4,15 @@ import { StatelessWebexPlugin } from '@webex/webex-core';
4
4
  */
5
5
  export default class MembersRequest extends StatelessWebexPlugin {
6
6
  namespace: string;
7
+ locusDeltaRequest: (options: object) => Promise<any>;
8
+ /**
9
+ * Constructor
10
+ * @param {Object} attrs
11
+ * @param {Object} options
12
+ */
13
+ constructor(attrs: {
14
+ meeting: any;
15
+ }, options: object);
7
16
  /**
8
17
  *
9
18
  * @param {Object} options with format of {invitee: string, locusUrl: string}
@@ -11,7 +20,7 @@ export default class MembersRequest extends StatelessWebexPlugin {
11
20
  * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl
12
21
  * @memberof MembersRequest
13
22
  */
14
- addMembers(options: any): any;
23
+ addMembers(options: any): Promise<any>;
15
24
  /**
16
25
  *
17
26
  * @param {Object} options
@@ -19,12 +28,67 @@ export default class MembersRequest extends StatelessWebexPlugin {
19
28
  * @throws {Error} if the options are not valid and complete, must have memberIds AND locusUrl
20
29
  * @memberof MembersRequest
21
30
  */
22
- admitMember(options: any): any;
23
- removeMember(options: any): any;
24
- muteMember(options: any): any;
25
- raiseOrLowerHandMember(options: any): any;
26
- lowerAllHandsMember(options: any): any;
27
- transferHostToMember(options: any): any;
31
+ admitMember(options: any): Promise<any>;
32
+ /**
33
+ * Sends a request to remove a member
34
+ * @param {Object} options
35
+ * @param {String} options.locusUrl
36
+ * @param {String} options.memberId ID of member
37
+ * @returns {Promise}
38
+ */
39
+ removeMember(options: any): Promise<any>;
40
+ /**
41
+ * Sends a request to mute a member
42
+ * @param {Object} options
43
+ * @param {String} options.locusUrl
44
+ * @param {String} options.memberId ID of member
45
+ * @returns {Promise}
46
+ */
47
+ muteMember(options: any): Promise<any>;
48
+ /**
49
+ * Sends a request to the DTMF endpoint to send tones
50
+ * @param {Object} options
51
+ * @param {String} options.locusUrl
52
+ * @param {String} options.memberId ID of PSTN user
53
+ * @returns {Promise}
54
+ */
55
+ assignRolesMember(options: any): Promise<any>;
56
+ /**
57
+ * Sends a request to raise or lower a member's hand
58
+ * @param {Object} options
59
+ * @param {String} options.locusUrl
60
+ * @param {String} options.memberId ID of member
61
+ * @returns {Promise}
62
+ */
63
+ raiseOrLowerHandMember(options: any): Promise<any>;
64
+ /**
65
+ * Sends a request to lower all hands
66
+ * @param {Object} options
67
+ * @param {String} options.locusUrl
68
+ * @param {String} options.requestingParticipantId ID of requesting participant
69
+ * @returns {Promise}
70
+ */
71
+ lowerAllHandsMember(options: any): Promise<any>;
72
+ /**
73
+ *
74
+ * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}
75
+ * @returns {Promise}
76
+ * @throws {Error} if the options are not valid and complete, must have requestingParticipantId AND locusUrl
77
+ * @memberof MembersRequest
78
+ */
79
+ editDisplayNameMember(options: {
80
+ locusUrl: string;
81
+ requestingParticipantId: string;
82
+ }): Promise<any>;
83
+ /**
84
+ * Sends a request to raise or lower a member's hand
85
+ * @param {Object} options
86
+ * @param {String} options.locusUrl
87
+ * @param {String} options.memberId ID of member
88
+ * @param {String} options.moderator ID of moderator
89
+ * @returns {Promise}
90
+ */
91
+ transferHostToMember(options: any): Promise<any>;
28
92
  /**
29
93
  * Sends a request to the DTMF endpoint to send tones
30
94
  * @param {Object} options
@@ -39,12 +103,12 @@ export default class MembersRequest extends StatelessWebexPlugin {
39
103
  url: string;
40
104
  tones: string;
41
105
  memberId: string;
42
- }): any;
106
+ }): Promise<any>;
43
107
  /**
44
108
  * @param {Object} options with format of {invitee: string, locusUrl: string}
45
109
  * @returns {Promise}
46
110
  * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl
47
111
  * @memberof MembersRequest
48
112
  */
49
- cancelPhoneInvite(options: any): any;
113
+ cancelPhoneInvite(options: any): Promise<any>;
50
114
  }
@@ -0,0 +1,24 @@
1
+ export declare enum ServerRoles {
2
+ Cohost = "COHOST",
3
+ Moderator = "MODERATOR",
4
+ Presenter = "PRESENTER"
5
+ }
6
+ export type ServerRoleShape = {
7
+ type: ServerRoles;
8
+ hasRole: boolean;
9
+ };
10
+ export type RoleAssignmentOptions = {
11
+ roles: Array<ServerRoleShape>;
12
+ locusUrl: string;
13
+ memberId: string;
14
+ };
15
+ export type RoleAssignmentBody = {
16
+ role: {
17
+ roles: Array<ServerRoleShape>;
18
+ };
19
+ };
20
+ export type RoleAssignmentRequest = {
21
+ method: string;
22
+ uri: string;
23
+ body: RoleAssignmentBody;
24
+ };
@@ -1,2 +1,210 @@
1
- declare const MembersUtil: any;
1
+ import { RoleAssignmentOptions, RoleAssignmentRequest, ServerRoleShape } from './types';
2
+ declare const MembersUtil: {
3
+ /**
4
+ * @param {Object} invitee with emailAddress, email or phoneNumber
5
+ * @param {String} locusUrl
6
+ * @param {Boolean} alertIfActive
7
+ * @returns {Object} the format object
8
+ */
9
+ generateAddMemberOptions: (invitee: object, locusUrl: string, alertIfActive: boolean) => {
10
+ invitee: object;
11
+ locusUrl: string;
12
+ alertIfActive: boolean;
13
+ };
14
+ /**
15
+ * @param {Array} memberIds
16
+ * @param {String} locusUrl
17
+ * @returns {Object} the format object
18
+ */
19
+ generateAdmitMemberOptions: (memberIds: Array<any>, locusUrl: string) => {
20
+ locusUrl: string;
21
+ memberIds: any[];
22
+ };
23
+ /**
24
+ * @param {Object} options with {invitee: {emailAddress, email, phoneNumber}, alertIfActive}
25
+ * @returns {Object} with {invitees: [{address}], alertIfActive}
26
+ */
27
+ getAddMemberBody: (options: any) => {
28
+ invitees: {
29
+ address: any;
30
+ }[];
31
+ alertIfActive: any;
32
+ };
33
+ /**
34
+ * @param {Object} options with {memberIds, authorizingLocusUrl}
35
+ * @returns {Object} admit with {memberIds}
36
+ */
37
+ getAdmitMemberRequestBody: (options: any) => any;
38
+ /**
39
+ * @param {Object} format with {memberIds, locusUrl, sessionLocusUrls}
40
+ * @returns {Object} the request parameters (method, uri, body) needed to make a admitMember request
41
+ * if a host/cohost is in a breakout session, the locus url should be the main session locus url
42
+ */
43
+ getAdmitMemberRequestParams: (format: any) => {
44
+ method: string;
45
+ uri: string;
46
+ body: any;
47
+ };
48
+ /**
49
+ * @param {Object} format with {invitee {emailAddress, email, phoneNumber}, locusUrl, alertIfActive}
50
+ * @returns {Object} the request parameters (method, uri, body) needed to make a addMember request
51
+ */
52
+ getAddMemberRequestParams: (format: any) => {
53
+ method: string;
54
+ uri: any;
55
+ body: {
56
+ invitees: {
57
+ address: any;
58
+ }[];
59
+ alertIfActive: any;
60
+ };
61
+ };
62
+ isInvalidInvitee: (invitee: any) => boolean;
63
+ getRemoveMemberRequestParams: (options: any) => {
64
+ method: string;
65
+ uri: string;
66
+ body: {
67
+ reason: any;
68
+ };
69
+ };
70
+ generateTransferHostMemberOptions: (transfer: any, moderator: any, locusUrl: any) => {
71
+ moderator: any;
72
+ locusUrl: any;
73
+ memberId: any;
74
+ };
75
+ generateRemoveMemberOptions: (removal: any, locusUrl: any) => {
76
+ reason: string;
77
+ memberId: any;
78
+ locusUrl: any;
79
+ };
80
+ generateMuteMemberOptions: (memberId: any, status: any, locusUrl: any, isAudio: any) => {
81
+ memberId: any;
82
+ muted: any;
83
+ locusUrl: any;
84
+ isAudio: any;
85
+ };
86
+ generateRaiseHandMemberOptions: (memberId: any, status: any, locusUrl: any) => {
87
+ memberId: any;
88
+ raised: any;
89
+ locusUrl: any;
90
+ };
91
+ /**
92
+ * @param {String} memberId
93
+ * @param {[ServerRoleShape]} roles
94
+ * @param {String} locusUrl
95
+ * @returns {RoleAssignmentOptions}
96
+ */
97
+ generateRoleAssignmentMemberOptions: (memberId: string, roles: Array<ServerRoleShape>, locusUrl: string) => RoleAssignmentOptions;
98
+ generateLowerAllHandsMemberOptions: (requestingParticipantId: any, locusUrl: any) => {
99
+ requestingParticipantId: any;
100
+ locusUrl: any;
101
+ };
102
+ /**
103
+ * @param {String} memberId id of the participant who is receiving request
104
+ * @param {String} requestingParticipantId id of the participant who is sending request (optional)
105
+ * @param {String} alias alias name
106
+ * @param {String} locusUrl url
107
+ * @returns {Object} consists of {memberID: string, requestingParticipantId: string, alias: string, locusUrl: string}
108
+ */
109
+ generateEditDisplayNameMemberOptions: (memberId: any, requestingParticipantId: any, alias: any, locusUrl: any) => {
110
+ memberId: any;
111
+ requestingParticipantId: any;
112
+ alias: any;
113
+ locusUrl: any;
114
+ };
115
+ getMuteMemberRequestParams: (options: any) => {
116
+ method: string;
117
+ uri: string;
118
+ body: {
119
+ [x: string]: {
120
+ muted: any;
121
+ };
122
+ };
123
+ };
124
+ /**
125
+ * @param {RoleAssignmentOptions} options
126
+ * @returns {RoleAssignmentRequest} the request parameters (method, uri, body) needed to make a addMember request
127
+ */
128
+ getRoleAssignmentMemberRequestParams: (options: RoleAssignmentOptions) => RoleAssignmentRequest;
129
+ getRaiseHandMemberRequestParams: (options: any) => {
130
+ method: string;
131
+ uri: string;
132
+ body: {
133
+ hand: {
134
+ raised: any;
135
+ };
136
+ };
137
+ };
138
+ getLowerAllHandsMemberRequestParams: (options: any) => {
139
+ method: string;
140
+ uri: string;
141
+ body: {
142
+ hand: {
143
+ raised: boolean;
144
+ };
145
+ requestingParticipantId: any;
146
+ };
147
+ };
148
+ /**
149
+ * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}
150
+ * @returns {Object} request parameters (method, uri, body) needed to make a editDisplayName request
151
+ */
152
+ editDisplayNameMemberRequestParams: (options: any) => {
153
+ method: string;
154
+ uri: string;
155
+ body: {
156
+ aliasValue: any;
157
+ requestingParticipantId: any;
158
+ };
159
+ };
160
+ getTransferHostToMemberRequestParams: (options: any) => {
161
+ method: string;
162
+ uri: string;
163
+ body: {
164
+ role: {
165
+ moderator: any;
166
+ };
167
+ };
168
+ };
169
+ genderateSendDTMFOptions: (url: any, tones: any, memberId: any, locusUrl: any) => {
170
+ url: any;
171
+ tones: any;
172
+ memberId: any;
173
+ locusUrl: any;
174
+ };
175
+ generateSendDTMFRequestParams: ({ url, tones, memberId, locusUrl }: {
176
+ url: any;
177
+ tones: any;
178
+ memberId: any;
179
+ locusUrl: any;
180
+ }) => {
181
+ method: string;
182
+ uri: string;
183
+ body: {
184
+ device: {
185
+ url: any;
186
+ };
187
+ memberId: any;
188
+ dtmf: {
189
+ correlationId: any;
190
+ tones: any;
191
+ direction: string;
192
+ };
193
+ };
194
+ };
195
+ cancelPhoneInviteOptions: (invitee: any, locusUrl: any) => {
196
+ invitee: any;
197
+ locusUrl: any;
198
+ };
199
+ generateCancelInviteRequestParams: (options: any) => {
200
+ method: string;
201
+ uri: any;
202
+ body: {
203
+ actionType: string;
204
+ invitees: {
205
+ address: any;
206
+ }[];
207
+ };
208
+ };
209
+ };
2
210
  export default MembersUtil;