@webex/plugin-meetings 3.0.0-beta.3 → 3.0.0-beta.300
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.
- package/README.md +46 -8
- package/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +216 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +1048 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +67 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +1 -20
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +5 -20
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +0 -7
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +10 -24
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +11 -24
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +12 -25
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +10 -24
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/parameter.js +5 -33
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +10 -24
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +9 -23
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +0 -17
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +10 -24
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +10 -24
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +54 -48
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +5 -25
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +0 -22
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +0 -23
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +0 -12
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +0 -15
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +0 -4
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -8
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +41 -60
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +28 -23
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +9 -15
- package/dist/config.js.map +1 -1
- package/dist/constants.js +315 -68
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +14 -0
- package/dist/controls-options-manager/constants.js.map +1 -0
- package/dist/controls-options-manager/enums.js +27 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.js +297 -0
- package/dist/controls-options-manager/index.js.map +1 -0
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +319 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +114 -17
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +101 -29
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -26
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +0 -15
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +4 -12
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +561 -246
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +10 -38
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +68 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +314 -163
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +110 -92
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +103 -231
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +137 -222
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +2 -9
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -495
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +93 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +4624 -3740
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +249 -184
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +400 -346
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +598 -586
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +6 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +87 -39
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +349 -283
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +3 -15
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +98 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +143 -234
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +26 -19
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +813 -596
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +26 -41
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +183 -156
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +135 -85
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +158 -88
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +13 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +194 -204
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +113 -68
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +324 -259
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +14 -7
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +11 -558
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +263 -50
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +58 -65
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +76 -95
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +62 -76
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +66 -43
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +536 -439
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +233 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +40 -59
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +21 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +1 -31
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +322 -200
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +20 -26
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +109 -0
- package/dist/reactions/reactions.js.map +1 -0
- package/dist/reactions/reactions.type.js +36 -0
- package/dist/reactions/reactions.type.js.map +1 -0
- package/dist/reconnection-manager/index.js +388 -476
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.js +362 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +64 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/index.js +99 -94
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +131 -135
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +151 -101
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +117 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.js +1 -95
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +416 -497
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +145 -88
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +22 -47
- package/dist/transcription/index.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/breakout.d.ts +8 -0
- package/dist/types/breakouts/collection.d.ts +5 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/browser-detection.d.ts +9 -0
- package/dist/types/common/collection.d.ts +48 -0
- package/dist/types/common/config.d.ts +2 -0
- package/dist/types/common/errors/captcha-error.d.ts +15 -0
- package/dist/types/common/errors/intent-to-join.d.ts +16 -0
- package/dist/types/common/errors/join-meeting.d.ts +17 -0
- package/dist/types/common/errors/media.d.ts +15 -0
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/parameter.d.ts +15 -0
- package/dist/types/common/errors/password-error.d.ts +15 -0
- package/dist/types/common/errors/permission.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/common/errors/reconnection.d.ts +15 -0
- package/dist/types/common/errors/stats.d.ts +15 -0
- package/dist/types/common/errors/webex-errors.d.ts +93 -0
- package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/types/common/events/events-scope.d.ts +17 -0
- package/dist/types/common/events/events.d.ts +12 -0
- package/dist/types/common/events/trigger-proxy.d.ts +2 -0
- package/dist/types/common/events/util.d.ts +2 -0
- package/dist/types/common/logs/logger-config.d.ts +2 -0
- package/dist/types/common/logs/logger-proxy.d.ts +2 -0
- package/dist/types/common/logs/request.d.ts +36 -0
- package/dist/types/common/queue.d.ts +34 -0
- package/dist/types/config.d.ts +71 -0
- package/dist/types/constants.d.ts +1066 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +15 -0
- package/dist/types/controls-options-manager/index.d.ts +136 -0
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/controlsUtils.d.ts +2 -0
- package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/types/locus-info/fullState.d.ts +2 -0
- package/dist/types/locus-info/hostUtils.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +322 -0
- package/dist/types/locus-info/infoUtils.d.ts +2 -0
- package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/types/locus-info/parser.d.ts +273 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +34 -0
- package/dist/types/media/properties.d.ts +93 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +163 -0
- package/dist/types/meeting/index.d.ts +1676 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +184 -0
- package/dist/types/meeting/request.d.ts +290 -0
- package/dist/types/meeting/request.type.d.ts +11 -0
- package/dist/types/meeting/state.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +102 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +69 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +123 -0
- package/dist/types/meeting-info/request.d.ts +22 -0
- package/dist/types/meeting-info/util.d.ts +2 -0
- package/dist/types/meeting-info/utilv2.d.ts +2 -0
- package/dist/types/meetings/collection.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +367 -0
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/meetings/request.d.ts +27 -0
- package/dist/types/meetings/util.d.ts +18 -0
- package/dist/types/member/index.d.ts +160 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +353 -0
- package/dist/types/members/request.d.ts +114 -0
- package/dist/types/members/types.d.ts +25 -0
- package/dist/types/members/util.d.ts +215 -0
- package/dist/types/metrics/constants.d.ts +65 -0
- package/dist/types/metrics/index.d.ts +45 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/types/multistream/receiveSlot.d.ts +68 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/types/multistream/remoteMedia.d.ts +72 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +285 -0
- package/dist/types/multistream/sendSlotManager.d.ts +61 -0
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/personal-meeting-room/index.d.ts +47 -0
- package/dist/types/personal-meeting-room/request.d.ts +14 -0
- package/dist/types/personal-meeting-room/util.d.ts +2 -0
- package/dist/types/reachability/index.d.ts +194 -0
- package/dist/types/reachability/request.d.ts +39 -0
- package/dist/types/reactions/constants.d.ts +3 -0
- package/dist/types/reactions/reactions.d.ts +4 -0
- package/dist/types/reactions/reactions.type.d.ts +52 -0
- package/dist/types/reconnection-manager/index.d.ts +126 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +207 -0
- package/dist/types/recording-controller/util.d.ts +14 -0
- package/dist/types/roap/index.d.ts +78 -0
- package/dist/types/roap/request.d.ts +39 -0
- package/dist/types/roap/turnDiscovery.d.ts +92 -0
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +47 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +201 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
- package/dist/types/transcription/index.d.ts +64 -0
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/internal-README.md +7 -6
- package/package.json +29 -21
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
- package/src/common/collection.ts +9 -7
- package/src/common/{config.js → config.ts} +1 -1
- package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
- package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
- package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
- package/src/common/errors/{media.js → media.ts} +11 -7
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/parameter.ts +11 -7
- package/src/common/errors/{password-error.js → password-error.ts} +11 -7
- package/src/common/errors/{permission.js → permission.ts} +10 -6
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
- package/src/common/errors/{stats.js → stats.ts} +11 -7
- package/src/common/errors/{webex-errors.js → webex-errors.ts} +51 -8
- package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
- package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
- package/src/common/events/{events.js → events.ts} +5 -1
- package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
- package/src/common/events/{util.js → util.ts} +2 -3
- package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
- package/src/common/logs/logger-proxy.ts +44 -0
- package/src/common/logs/{request.js → request.ts} +26 -9
- package/src/common/queue.ts +22 -9
- package/src/{config.js → config.ts} +18 -19
- package/src/constants.ts +260 -22
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +18 -0
- package/src/controls-options-manager/index.ts +278 -0
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +300 -0
- package/src/index.ts +40 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +222 -0
- package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
- package/src/locus-info/{fullState.js → fullState.ts} +16 -12
- package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
- package/src/locus-info/{index.js → index.ts} +557 -119
- package/src/locus-info/{infoUtils.js → infoUtils.ts} +29 -10
- package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +81 -17
- package/src/locus-info/{parser.js → parser.ts} +303 -104
- package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
- package/src/media/index.ts +458 -0
- package/src/media/properties.ts +283 -0
- package/src/media/{util.js → util.ts} +2 -2
- package/src/mediaQualityMetrics/config.ts +384 -0
- package/src/meeting/in-meeting-actions.ts +191 -3
- package/src/meeting/index.ts +7882 -0
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +451 -0
- package/src/meeting/{request.js → request.ts} +421 -220
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/{state.js → state.ts} +50 -35
- package/src/meeting/util.ts +697 -0
- package/src/meeting-info/{collection.js → collection.ts} +6 -2
- package/src/meeting-info/index.ts +210 -0
- package/src/meeting-info/meeting-info-v2.ts +429 -0
- package/src/meeting-info/{request.js → request.ts} +14 -4
- package/src/meeting-info/{util.js → util.ts} +60 -51
- package/src/meeting-info/{utilv2.js → utilv2.ts} +78 -71
- package/src/meetings/{collection.js → collection.ts} +26 -3
- package/src/meetings/index.ts +1470 -0
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/{request.js → request.ts} +34 -25
- package/src/meetings/{util.js → util.ts} +132 -37
- package/src/member/{index.js → index.ts} +160 -56
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +397 -0
- package/src/members/{collection.js → collection.ts} +10 -2
- package/src/members/{index.js → index.ts} +351 -146
- package/src/members/request.ts +255 -0
- package/src/members/types.ts +29 -0
- package/src/members/util.ts +353 -0
- package/src/metrics/{constants.js → constants.ts} +12 -6
- package/src/metrics/index.ts +73 -0
- package/src/multistream/mediaRequestManager.ts +337 -63
- package/src/multistream/receiveSlot.ts +69 -26
- package/src/multistream/receiveSlotManager.ts +66 -42
- package/src/multistream/remoteMedia.ts +40 -5
- package/src/multistream/remoteMediaGroup.ts +63 -3
- package/src/multistream/remoteMediaManager.ts +300 -66
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
- package/src/personal-meeting-room/{index.js → index.ts} +28 -19
- package/src/personal-meeting-room/{request.js → request.ts} +13 -4
- package/src/personal-meeting-room/{util.js → util.ts} +4 -4
- package/src/reachability/index.ts +671 -0
- package/src/reachability/request.ts +50 -35
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +104 -0
- package/src/reactions/reactions.type.ts +62 -0
- package/src/reconnection-manager/{index.js → index.ts} +258 -138
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +332 -0
- package/src/recording-controller/util.ts +75 -0
- package/src/roap/{index.js → index.ts} +127 -79
- package/src/roap/request.ts +153 -0
- package/src/roap/turnDiscovery.ts +109 -47
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/global.ts +37 -0
- package/src/statsAnalyzer/index.ts +1250 -0
- package/src/statsAnalyzer/mqaUtil.ts +292 -0
- package/src/transcription/{index.js → index.ts} +46 -39
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +790 -530
- package/test/integration/spec/space-meeting.js +391 -204
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +237 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1790 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +582 -0
- package/test/unit/spec/fixture/locus.js +93 -90
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +325 -32
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +1390 -17
- package/test/unit/spec/locus-info/infoUtils.js +71 -40
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +529 -685
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +119 -44
- package/test/unit/spec/locus-info/selfConstant.js +120 -103
- package/test/unit/spec/locus-info/selfUtils.js +296 -12
- package/test/unit/spec/media/index.ts +128 -77
- package/test/unit/spec/media/properties.ts +11 -11
- package/test/unit/spec/meeting/in-meeting-actions.ts +92 -3
- package/test/unit/spec/meeting/index.js +7433 -2752
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +420 -211
- package/test/unit/spec/meeting/request.js +545 -79
- package/test/unit/spec/meeting/utils.js +722 -174
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +624 -76
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +131 -74
- package/test/unit/spec/meetings/collection.js +15 -1
- package/test/unit/spec/meetings/index.js +1365 -377
- package/test/unit/spec/meetings/utils.js +216 -14
- package/test/unit/spec/member/index.js +61 -7
- package/test/unit/spec/member/util.js +526 -26
- package/test/unit/spec/members/index.js +536 -55
- package/test/unit/spec/members/request.js +228 -40
- package/test/unit/spec/members/utils.js +217 -4
- package/test/unit/spec/metrics/index.js +12 -66
- package/test/unit/spec/multistream/mediaRequestManager.ts +1012 -109
- package/test/unit/spec/multistream/receiveSlot.ts +77 -18
- package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
- package/test/unit/spec/multistream/remoteMedia.ts +40 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +738 -65
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/networkQualityMonitor/index.js +24 -18
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +598 -26
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +181 -12
- package/test/unit/spec/recording-controller/index.js +307 -0
- package/test/unit/spec/recording-controller/util.js +229 -0
- package/test/unit/spec/roap/index.ts +179 -64
- package/test/unit/spec/roap/request.ts +232 -0
- package/test/unit/spec/roap/turnDiscovery.ts +123 -58
- package/test/unit/spec/rtcMetrics/index.ts +73 -0
- package/test/unit/spec/stats-analyzer/index.js +199 -60
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/cmr.js +44 -42
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +63 -99
- package/test/utils/webex-config.js +22 -18
- package/test/utils/webex-test-users.js +57 -50
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -22
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -327
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -301
- package/dist/metrics/config.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -116
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -124
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/src/common/logs/logger-proxy.js +0 -33
- package/src/index.js +0 -15
- package/src/locus-info/controlsUtils.js +0 -102
- package/src/media/index.js +0 -459
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/media/properties.js +0 -289
- package/src/mediaQualityMetrics/config.js +0 -382
- package/src/meeting/effectsState.js +0 -205
- package/src/meeting/index.js +0 -6284
- package/src/meeting/muteState.js +0 -318
- package/src/meeting/util.js +0 -506
- package/src/meeting-info/index.js +0 -131
- package/src/meeting-info/meeting-info-v2.js +0 -255
- package/src/meetings/index.js +0 -1015
- package/src/member/util.js +0 -254
- package/src/members/request.js +0 -131
- package/src/members/util.js +0 -258
- package/src/metrics/config.js +0 -324
- package/src/metrics/index.js +0 -530
- package/src/multistream/multistreamMedia.ts +0 -92
- package/src/peer-connection-manager/util.ts +0 -117
- package/src/reachability/index.js +0 -464
- package/src/roap/request.js +0 -127
- package/src/statsAnalyzer/global.js +0 -133
- package/src/statsAnalyzer/index.js +0 -1006
- package/src/statsAnalyzer/mqaUtil.js +0 -173
- package/test/unit/spec/meeting/effectsState.js +0 -291
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
- /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
|
@@ -2,64 +2,97 @@
|
|
|
2
2
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
3
|
*/
|
|
4
4
|
import {isEmpty} from 'lodash';
|
|
5
|
+
// @ts-ignore
|
|
5
6
|
import {StatelessWebexPlugin} from '@webex/webex-core';
|
|
6
7
|
|
|
7
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
MEETINGS,
|
|
10
|
+
EVENT_TRIGGERS,
|
|
11
|
+
FLOOR_ACTION,
|
|
12
|
+
CONTENT,
|
|
13
|
+
WHITEBOARD,
|
|
14
|
+
ASSIGN_ROLES_ERROR_CODES,
|
|
15
|
+
} from '../constants';
|
|
8
16
|
import Trigger from '../common/events/trigger-proxy';
|
|
9
17
|
import Member from '../member';
|
|
10
18
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
11
19
|
import ParameterError from '../common/errors/parameter';
|
|
20
|
+
import {
|
|
21
|
+
ReclaimHostEmptyWrongKeyError,
|
|
22
|
+
ReclaimHostIsHostAlreadyError,
|
|
23
|
+
ReclaimHostNotAllowedError,
|
|
24
|
+
ReclaimHostNotSupportedError,
|
|
25
|
+
} from '../common/errors/reclaim-host-role-errors';
|
|
12
26
|
|
|
13
27
|
import MembersCollection from './collection';
|
|
14
28
|
import MembersRequest from './request';
|
|
15
29
|
import MembersUtil from './util';
|
|
30
|
+
import {ReceiveSlotManager} from '../multistream/receiveSlotManager';
|
|
31
|
+
import {MediaRequestManager} from '../multistream/mediaRequestManager';
|
|
32
|
+
import {ServerRoleShape} from './types';
|
|
16
33
|
|
|
17
34
|
/**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
35
|
+
* Members Update Event
|
|
36
|
+
* Emitted when something in the roster list needs to be updated
|
|
37
|
+
* @event members:update
|
|
38
|
+
* @instance
|
|
39
|
+
* @property {Object} delta the changes to the members list
|
|
40
|
+
* @property {Array} delta.updated array only the updates, includes removals, as they will have updated status and member properties
|
|
41
|
+
* @property {Array} delta.added array added members to the meeting
|
|
42
|
+
* @property {Array} full array the full members collection
|
|
43
|
+
* @memberof Members
|
|
44
|
+
*/
|
|
28
45
|
|
|
29
46
|
/**
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
47
|
+
* Members Content Update Event
|
|
48
|
+
* Emitted when who is sharing changes
|
|
49
|
+
* @event members:content:update
|
|
50
|
+
* @instance
|
|
51
|
+
* @property {String} activeContentSharingId
|
|
52
|
+
* @property {String} endedContentSharingId
|
|
53
|
+
* @memberof Members
|
|
54
|
+
*/
|
|
38
55
|
|
|
39
56
|
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
57
|
+
* Members Host Update Event
|
|
58
|
+
* Emitted when who is the host changes
|
|
59
|
+
* @event members:host:update
|
|
60
|
+
* @instance
|
|
61
|
+
* @property {String} activeHostId
|
|
62
|
+
* @property {String} endedHostId
|
|
63
|
+
* @memberof Members
|
|
64
|
+
*/
|
|
48
65
|
|
|
49
66
|
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
67
|
+
* Members Self Update Event
|
|
68
|
+
* Emitted when who is the self changes
|
|
69
|
+
* @event members:self:update
|
|
70
|
+
* @instance
|
|
71
|
+
* @property {String} activeSelfId
|
|
72
|
+
* @property {String} endedSelfId
|
|
73
|
+
* @memberof Members
|
|
74
|
+
*/
|
|
58
75
|
|
|
59
76
|
/**
|
|
60
77
|
* @class Members
|
|
61
78
|
*/
|
|
62
79
|
export default class Members extends StatelessWebexPlugin {
|
|
80
|
+
hostId: any;
|
|
81
|
+
locusUrl: any;
|
|
82
|
+
mediaShareContentId: any;
|
|
83
|
+
mediaShareWhiteboardId: any;
|
|
84
|
+
membersCollection: any;
|
|
85
|
+
membersRequest: any;
|
|
86
|
+
receiveSlotManager: ReceiveSlotManager;
|
|
87
|
+
mediaRequestManagers: {
|
|
88
|
+
audio: MediaRequestManager;
|
|
89
|
+
video: MediaRequestManager;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
recordingId: any;
|
|
93
|
+
selfId: any;
|
|
94
|
+
type: any;
|
|
95
|
+
|
|
63
96
|
namespace = MEETINGS;
|
|
64
97
|
|
|
65
98
|
/**
|
|
@@ -68,7 +101,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
68
101
|
* @param {Object} options
|
|
69
102
|
* @memberof Members
|
|
70
103
|
*/
|
|
71
|
-
constructor(attrs, options) {
|
|
104
|
+
constructor(attrs: any, options: object) {
|
|
72
105
|
super({}, options);
|
|
73
106
|
/**
|
|
74
107
|
* The Members Request object to interact with server
|
|
@@ -76,15 +109,22 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
76
109
|
* @type {MembersRequest}
|
|
77
110
|
* @private
|
|
78
111
|
* @memberof Members
|
|
79
|
-
|
|
80
|
-
|
|
112
|
+
*/
|
|
113
|
+
|
|
114
|
+
// @ts-ignore
|
|
115
|
+
this.membersRequest = new MembersRequest(
|
|
116
|
+
{
|
|
117
|
+
meeting: attrs.meeting,
|
|
118
|
+
},
|
|
119
|
+
options
|
|
120
|
+
);
|
|
81
121
|
/**
|
|
82
122
|
* The Members Collection cache
|
|
83
123
|
* @instance
|
|
84
124
|
* @type {MembersCollection}
|
|
85
125
|
* @private
|
|
86
126
|
* @memberof Members
|
|
87
|
-
|
|
127
|
+
*/
|
|
88
128
|
this.membersCollection = new MembersCollection();
|
|
89
129
|
/**
|
|
90
130
|
* The current locus url for the active meeting
|
|
@@ -92,7 +132,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
92
132
|
* @type {String}
|
|
93
133
|
* @private
|
|
94
134
|
* @memberof Members
|
|
95
|
-
|
|
135
|
+
*/
|
|
96
136
|
this.locusUrl = attrs.locusUrl || null;
|
|
97
137
|
/**
|
|
98
138
|
* The current hostId for the meeting
|
|
@@ -100,7 +140,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
100
140
|
* @type {String}
|
|
101
141
|
* @private
|
|
102
142
|
* @memberof Members
|
|
103
|
-
|
|
143
|
+
*/
|
|
104
144
|
this.hostId = null;
|
|
105
145
|
/**
|
|
106
146
|
* The current type for the meeting, could be MEETING or CALL
|
|
@@ -108,7 +148,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
108
148
|
* @type {String}
|
|
109
149
|
* @private
|
|
110
150
|
* @memberof Members
|
|
111
|
-
|
|
151
|
+
*/
|
|
112
152
|
this.type = null;
|
|
113
153
|
/**
|
|
114
154
|
* Locus has a self object, sent individually to the client
|
|
@@ -122,7 +162,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
122
162
|
* @type {String}
|
|
123
163
|
* @private
|
|
124
164
|
* @memberof Members
|
|
125
|
-
|
|
165
|
+
*/
|
|
126
166
|
this.selfId = null;
|
|
127
167
|
/**
|
|
128
168
|
* The current mediaShareContentId for the meeting
|
|
@@ -130,7 +170,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
130
170
|
* @type {String}
|
|
131
171
|
* @private
|
|
132
172
|
* @memberof Members
|
|
133
|
-
|
|
173
|
+
*/
|
|
134
174
|
this.mediaShareContentId = null;
|
|
135
175
|
/**
|
|
136
176
|
* The current mediaShareWhiteboardId for the meeting
|
|
@@ -138,7 +178,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
138
178
|
* @type {String}
|
|
139
179
|
* @private
|
|
140
180
|
* @memberof Members
|
|
141
|
-
|
|
181
|
+
*/
|
|
142
182
|
this.mediaShareWhiteboardId = null;
|
|
143
183
|
/**
|
|
144
184
|
* The current recordingId for the meeting, if it exists
|
|
@@ -146,7 +186,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
146
186
|
* @type {String}
|
|
147
187
|
* @private
|
|
148
188
|
* @memberof Members
|
|
149
|
-
|
|
189
|
+
*/
|
|
150
190
|
this.recordingId = null;
|
|
151
191
|
|
|
152
192
|
/**
|
|
@@ -171,7 +211,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
171
211
|
* @private
|
|
172
212
|
* @memberof Members
|
|
173
213
|
*/
|
|
174
|
-
locusSelfUpdate(payload) {
|
|
214
|
+
locusSelfUpdate(payload: {newSelf: any; oldSelf: any}) {
|
|
175
215
|
let newSelfId = null;
|
|
176
216
|
let oldSelfId = null;
|
|
177
217
|
|
|
@@ -202,12 +242,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
202
242
|
this,
|
|
203
243
|
{
|
|
204
244
|
file: 'members',
|
|
205
|
-
function: 'locusSelfUpdate'
|
|
245
|
+
function: 'locusSelfUpdate',
|
|
206
246
|
},
|
|
207
247
|
EVENT_TRIGGERS.MEMBERS_SELF_UPDATE,
|
|
208
248
|
{
|
|
209
249
|
activeSelfId: newSelfId,
|
|
210
|
-
endedSelfId: oldSelfId
|
|
250
|
+
endedSelfId: oldSelfId,
|
|
211
251
|
}
|
|
212
252
|
);
|
|
213
253
|
}
|
|
@@ -221,7 +261,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
221
261
|
* @private
|
|
222
262
|
* @memberof Members
|
|
223
263
|
*/
|
|
224
|
-
locusHostUpdate(payload) {
|
|
264
|
+
locusHostUpdate(payload: {newHost: any; oldHost: any}) {
|
|
225
265
|
let newHostId = null;
|
|
226
266
|
let oldHostId = null;
|
|
227
267
|
|
|
@@ -252,16 +292,35 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
252
292
|
this,
|
|
253
293
|
{
|
|
254
294
|
file: 'members',
|
|
255
|
-
function: 'locusHostUpdate'
|
|
295
|
+
function: 'locusHostUpdate',
|
|
256
296
|
},
|
|
257
297
|
EVENT_TRIGGERS.MEMBERS_HOST_UPDATE,
|
|
258
298
|
{
|
|
259
299
|
activeHostId: newHostId,
|
|
260
|
-
endedHostId: oldHostId
|
|
300
|
+
endedHostId: oldHostId,
|
|
261
301
|
}
|
|
262
302
|
);
|
|
263
303
|
}
|
|
264
304
|
|
|
305
|
+
/**
|
|
306
|
+
* clear member collection
|
|
307
|
+
* @returns {void}
|
|
308
|
+
* @private
|
|
309
|
+
* @memberof Members
|
|
310
|
+
*/
|
|
311
|
+
clearMembers() {
|
|
312
|
+
this.membersCollection.reset();
|
|
313
|
+
Trigger.trigger(
|
|
314
|
+
this,
|
|
315
|
+
{
|
|
316
|
+
file: 'members',
|
|
317
|
+
function: 'clearMembers',
|
|
318
|
+
},
|
|
319
|
+
EVENT_TRIGGERS.MEMBERS_CLEAR,
|
|
320
|
+
{}
|
|
321
|
+
);
|
|
322
|
+
}
|
|
323
|
+
|
|
265
324
|
/**
|
|
266
325
|
* when new participant updates come in, both delta and full participants, update them in members collection
|
|
267
326
|
* delta object in the event will have {updated, added} and full will be the full membersCollection
|
|
@@ -271,21 +330,27 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
271
330
|
* @private
|
|
272
331
|
* @memberof Members
|
|
273
332
|
*/
|
|
274
|
-
locusParticipantsUpdate(payload) {
|
|
333
|
+
locusParticipantsUpdate(payload: {participants: object; isReplace?: boolean}) {
|
|
275
334
|
if (payload) {
|
|
335
|
+
if (payload.isReplace) {
|
|
336
|
+
this.clearMembers();
|
|
337
|
+
}
|
|
276
338
|
const delta = this.handleLocusInfoUpdatedParticipants(payload);
|
|
277
339
|
const full = this.handleMembersUpdate(delta); // SDK should propagate the full list for both delta and non delta updates
|
|
278
340
|
|
|
341
|
+
this.receiveSlotManager?.updateMemberIds();
|
|
342
|
+
|
|
279
343
|
Trigger.trigger(
|
|
280
344
|
this,
|
|
281
345
|
{
|
|
282
346
|
file: 'members',
|
|
283
|
-
function: 'locusParticipantsUpdate'
|
|
347
|
+
function: 'locusParticipantsUpdate',
|
|
284
348
|
},
|
|
285
349
|
EVENT_TRIGGERS.MEMBERS_UPDATE,
|
|
286
350
|
{
|
|
287
351
|
delta,
|
|
288
|
-
full
|
|
352
|
+
full,
|
|
353
|
+
isReplace: !!payload.isReplace,
|
|
289
354
|
}
|
|
290
355
|
);
|
|
291
356
|
}
|
|
@@ -300,7 +365,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
300
365
|
* @private
|
|
301
366
|
* @memberof Members
|
|
302
367
|
*/
|
|
303
|
-
locusMediaSharesUpdate(payload) {
|
|
368
|
+
locusMediaSharesUpdate(payload: {current: any; previous: any}) {
|
|
304
369
|
const currentContent = payload.current?.content;
|
|
305
370
|
const previousContent = payload.previous?.content;
|
|
306
371
|
const currentWhiteboard = payload.current?.whiteboard;
|
|
@@ -319,8 +384,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
319
384
|
if (currentContent.disposition === FLOOR_ACTION.RELEASED) {
|
|
320
385
|
whoStopped = currentContent.beneficiaryId;
|
|
321
386
|
this.mediaShareContentId = null;
|
|
322
|
-
}
|
|
323
|
-
|
|
387
|
+
} else if (
|
|
388
|
+
currentContent.disposition === FLOOR_ACTION.GRANTED &&
|
|
389
|
+
currentContent.beneficiaryId !== previousContent.beneficiaryId
|
|
390
|
+
) {
|
|
324
391
|
whoStopped = previousContent.beneficiaryId;
|
|
325
392
|
}
|
|
326
393
|
}
|
|
@@ -337,8 +404,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
337
404
|
if (currentWhiteboard.disposition === FLOOR_ACTION.RELEASED) {
|
|
338
405
|
whoStopped = currentWhiteboard.beneficiaryId;
|
|
339
406
|
this.mediaShareWhiteboardId = null;
|
|
340
|
-
}
|
|
341
|
-
|
|
407
|
+
} else if (
|
|
408
|
+
currentWhiteboard.disposition === FLOOR_ACTION.GRANTED &&
|
|
409
|
+
currentWhiteboard.beneficiaryId !== previousWhiteboard.beneficiaryId
|
|
410
|
+
) {
|
|
342
411
|
whoStopped = previousWhiteboard.beneficiaryId;
|
|
343
412
|
}
|
|
344
413
|
}
|
|
@@ -363,17 +432,16 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
363
432
|
this,
|
|
364
433
|
{
|
|
365
434
|
file: 'members',
|
|
366
|
-
function: 'locusMediaSharesUpdate'
|
|
435
|
+
function: 'locusMediaSharesUpdate',
|
|
367
436
|
},
|
|
368
437
|
EVENT_TRIGGERS.MEMBERS_CONTENT_UPDATE,
|
|
369
438
|
{
|
|
370
439
|
activeSharingId: whoSharing,
|
|
371
|
-
endedSharingId: whoStopped
|
|
440
|
+
endedSharingId: whoStopped,
|
|
372
441
|
}
|
|
373
442
|
);
|
|
374
443
|
}
|
|
375
444
|
|
|
376
|
-
|
|
377
445
|
/**
|
|
378
446
|
* Internal update the locus url value
|
|
379
447
|
* @param {Object} payload
|
|
@@ -382,7 +450,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
382
450
|
* @private
|
|
383
451
|
* @memberof Members
|
|
384
452
|
*/
|
|
385
|
-
locusUrlUpdate(payload) {
|
|
453
|
+
locusUrlUpdate(payload: any) {
|
|
386
454
|
if (payload) {
|
|
387
455
|
this.setLocusUrl(null, payload);
|
|
388
456
|
}
|
|
@@ -396,7 +464,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
396
464
|
* @private
|
|
397
465
|
* @memberof Members
|
|
398
466
|
*/
|
|
399
|
-
locusFullStateTypeUpdate(payload) {
|
|
467
|
+
locusFullStateTypeUpdate(payload: {type: string}) {
|
|
400
468
|
// TODO: at some point there could be a timing issue here, for updating each member
|
|
401
469
|
// ie., if the type changes AND there is no locus update, then each member will not know the type of call
|
|
402
470
|
// which means they cannot determine isMutable && isRemovable
|
|
@@ -415,7 +483,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
415
483
|
* @private
|
|
416
484
|
* @memberof Members
|
|
417
485
|
*/
|
|
418
|
-
handleMembersUpdate(membersUpdate) {
|
|
486
|
+
private handleMembersUpdate(membersUpdate: any) {
|
|
419
487
|
if (membersUpdate) {
|
|
420
488
|
if (membersUpdate.updated) {
|
|
421
489
|
this.constructMembers(membersUpdate.updated);
|
|
@@ -435,7 +503,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
435
503
|
* @private
|
|
436
504
|
* @memberof Members
|
|
437
505
|
*/
|
|
438
|
-
constructMembers(list) {
|
|
506
|
+
private constructMembers(list: Array<any>) {
|
|
439
507
|
list.forEach((member) => {
|
|
440
508
|
this.membersCollection.set(member.id, member);
|
|
441
509
|
});
|
|
@@ -448,12 +516,14 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
448
516
|
* @private
|
|
449
517
|
* @memberof Members
|
|
450
518
|
*/
|
|
451
|
-
handleLocusInfoUpdatedParticipants(payload) {
|
|
519
|
+
private handleLocusInfoUpdatedParticipants(payload: any) {
|
|
452
520
|
this.hostId = payload.hostId || this.hostId;
|
|
453
521
|
this.selfId = payload.selfId || this.selfId;
|
|
454
522
|
this.recordingId = payload.recordingId;
|
|
455
523
|
if (!payload.participants) {
|
|
456
|
-
LoggerProxy.logger.warn(
|
|
524
|
+
LoggerProxy.logger.warn(
|
|
525
|
+
'Members:index#handleLocusInfoUpdatedParticipants --> participants payload is missing.'
|
|
526
|
+
);
|
|
457
527
|
}
|
|
458
528
|
const memberUpdate = this.update(payload.participants);
|
|
459
529
|
|
|
@@ -469,15 +539,15 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
469
539
|
* @public
|
|
470
540
|
* @memberof Members
|
|
471
541
|
*/
|
|
472
|
-
setLocusUrl(locus, locusUrl = null) {
|
|
542
|
+
public setLocusUrl(locus: any, locusUrl: string = null) {
|
|
473
543
|
if (locusUrl) {
|
|
474
544
|
this.locusUrl = locusUrl;
|
|
475
|
-
}
|
|
476
|
-
else if (locus && (locus.locusUrl || locus.url)) {
|
|
545
|
+
} else if (locus && (locus.locusUrl || locus.url)) {
|
|
477
546
|
this.locusUrl = locus.locusUrl || locus.url;
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
|
|
547
|
+
} else {
|
|
548
|
+
throw new ParameterError(
|
|
549
|
+
'Setting locusUrl for the Members module should be done with a locus object or locusUrl'
|
|
550
|
+
);
|
|
481
551
|
}
|
|
482
552
|
}
|
|
483
553
|
|
|
@@ -490,15 +560,15 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
490
560
|
* @public
|
|
491
561
|
* @memberof Members
|
|
492
562
|
*/
|
|
493
|
-
setHostId(locus, hostId = null) {
|
|
563
|
+
public setHostId(locus: any, hostId: string = null) {
|
|
494
564
|
if (hostId) {
|
|
495
565
|
this.hostId = hostId;
|
|
496
|
-
}
|
|
497
|
-
else if (locus) {
|
|
566
|
+
} else if (locus) {
|
|
498
567
|
this.hostId = locus && locus.owner && locus.owner.info ? locus.owner.info : null;
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
|
|
568
|
+
} else {
|
|
569
|
+
throw new ParameterError(
|
|
570
|
+
'Setting hostid for the Members module should be done with a locus object or hostId'
|
|
571
|
+
);
|
|
502
572
|
}
|
|
503
573
|
}
|
|
504
574
|
|
|
@@ -511,15 +581,15 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
511
581
|
* @public
|
|
512
582
|
* @memberof Members
|
|
513
583
|
*/
|
|
514
|
-
setType(fullState, type = null) {
|
|
584
|
+
public setType(fullState: any, type: string = null) {
|
|
515
585
|
if (type) {
|
|
516
586
|
this.type = type;
|
|
517
|
-
}
|
|
518
|
-
else if (fullState) {
|
|
587
|
+
} else if (fullState) {
|
|
519
588
|
this.type = (fullState && fullState.type) || null;
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
|
|
589
|
+
} else {
|
|
590
|
+
throw new ParameterError(
|
|
591
|
+
'Setting type for the Members module should be done with a fullstate object or type string'
|
|
592
|
+
);
|
|
523
593
|
}
|
|
524
594
|
}
|
|
525
595
|
|
|
@@ -531,15 +601,18 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
531
601
|
* @returns {undefined}
|
|
532
602
|
* @memberof Members
|
|
533
603
|
*/
|
|
534
|
-
setSelfId(locus, selfId = null) {
|
|
604
|
+
setSelfId(locus: any, selfId: string = null) {
|
|
535
605
|
if (selfId) {
|
|
536
606
|
this.selfId = selfId;
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
607
|
+
} else if (locus) {
|
|
608
|
+
this.selfId =
|
|
609
|
+
locus && locus.self && locus.self.person && locus.self.person.id
|
|
610
|
+
? locus.self.person.id
|
|
611
|
+
: null;
|
|
612
|
+
} else {
|
|
613
|
+
throw new ParameterError(
|
|
614
|
+
'Setting selfid for the Members module should be done with a locus object or selfId'
|
|
615
|
+
);
|
|
543
616
|
}
|
|
544
617
|
}
|
|
545
618
|
|
|
@@ -551,11 +624,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
551
624
|
* @returns {undefined}
|
|
552
625
|
* @memberof Members
|
|
553
626
|
*/
|
|
554
|
-
setMediaShareContentId(locus, contentId) {
|
|
627
|
+
setMediaShareContentId(locus: any, contentId?: string) {
|
|
555
628
|
if (contentId) {
|
|
556
629
|
this.mediaShareContentId = contentId;
|
|
557
|
-
}
|
|
558
|
-
else if (locus) {
|
|
630
|
+
} else if (locus) {
|
|
559
631
|
const contentMediaShare =
|
|
560
632
|
locus.mediaShares &&
|
|
561
633
|
locus.mediaShares.length &&
|
|
@@ -567,9 +639,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
567
639
|
contentMediaShare.floor.beneficiary &&
|
|
568
640
|
contentMediaShare.floor.beneficiary.id) ||
|
|
569
641
|
null;
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
|
|
642
|
+
} else {
|
|
643
|
+
throw new ParameterError(
|
|
644
|
+
'Setting hostid for the Members module should be done with a locus object or hostId'
|
|
645
|
+
);
|
|
573
646
|
}
|
|
574
647
|
}
|
|
575
648
|
|
|
@@ -581,11 +654,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
581
654
|
* @returns {undefined}
|
|
582
655
|
* @memberof Members
|
|
583
656
|
*/
|
|
584
|
-
setMediaShareWhiteboardId(locus, whiteboardId) {
|
|
657
|
+
setMediaShareWhiteboardId(locus: any, whiteboardId?: string) {
|
|
585
658
|
if (whiteboardId) {
|
|
586
659
|
this.mediaShareWhiteboardId = whiteboardId;
|
|
587
|
-
}
|
|
588
|
-
else if (locus) {
|
|
660
|
+
} else if (locus) {
|
|
589
661
|
const whiteboardMediaShare =
|
|
590
662
|
locus.mediaShares &&
|
|
591
663
|
locus.mediaShares.length &&
|
|
@@ -597,9 +669,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
597
669
|
whiteboardMediaShare.floor.beneficiary &&
|
|
598
670
|
whiteboardMediaShare.floor.beneficiary.id) ||
|
|
599
671
|
null;
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
|
|
672
|
+
} else {
|
|
673
|
+
throw new ParameterError(
|
|
674
|
+
'Setting hostid for the Members module should be done with a locus object or hostId'
|
|
675
|
+
);
|
|
603
676
|
}
|
|
604
677
|
}
|
|
605
678
|
|
|
@@ -612,7 +685,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
612
685
|
* @private
|
|
613
686
|
* @memberof Members
|
|
614
687
|
*/
|
|
615
|
-
update(participants) {
|
|
688
|
+
private update(participants: Array<any>) {
|
|
616
689
|
const membersUpdate = {added: [], updated: []};
|
|
617
690
|
|
|
618
691
|
if (participants) {
|
|
@@ -632,11 +705,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
632
705
|
hostId: this.hostId,
|
|
633
706
|
contentSharingId: this.mediaShareContentId,
|
|
634
707
|
whiteboardSharingId: this.mediaShareWhiteboardId,
|
|
635
|
-
type: this.type
|
|
708
|
+
type: this.type,
|
|
636
709
|
})
|
|
637
710
|
);
|
|
638
|
-
}
|
|
639
|
-
else {
|
|
711
|
+
} else {
|
|
640
712
|
membersUpdate.added.push(
|
|
641
713
|
new Member(participant, {
|
|
642
714
|
recordingId: this.recordingId,
|
|
@@ -644,7 +716,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
644
716
|
hostId: this.hostId,
|
|
645
717
|
contentSharingId: this.mediaShareContentId,
|
|
646
718
|
whiteboardSharingId: this.mediaShareWhiteboardId,
|
|
647
|
-
type: this.type
|
|
719
|
+
type: this.type,
|
|
648
720
|
})
|
|
649
721
|
);
|
|
650
722
|
}
|
|
@@ -661,13 +733,17 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
661
733
|
* @returns {Promise}
|
|
662
734
|
* @memberof Members
|
|
663
735
|
*/
|
|
664
|
-
addMember(invitee, alertIfActive) {
|
|
736
|
+
addMember(invitee: any, alertIfActive?: boolean) {
|
|
665
737
|
if (!this.locusUrl) {
|
|
666
|
-
return Promise.reject(
|
|
738
|
+
return Promise.reject(
|
|
739
|
+
new ParameterError('The associated locus url for this meeting object must be defined.')
|
|
740
|
+
);
|
|
667
741
|
}
|
|
668
742
|
if (MembersUtil.isInvalidInvitee(invitee)) {
|
|
669
743
|
return Promise.reject(
|
|
670
|
-
new ParameterError(
|
|
744
|
+
new ParameterError(
|
|
745
|
+
'The invitee must be defined with either a valid email, emailAddress or phoneNumber property.'
|
|
746
|
+
)
|
|
671
747
|
);
|
|
672
748
|
}
|
|
673
749
|
const options = MembersUtil.generateAddMemberOptions(invitee, this.locusUrl, alertIfActive);
|
|
@@ -681,9 +757,11 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
681
757
|
* @returns {Promise}
|
|
682
758
|
* @memberof Members
|
|
683
759
|
*/
|
|
684
|
-
cancelPhoneInvite(invitee) {
|
|
760
|
+
cancelPhoneInvite(invitee: any) {
|
|
685
761
|
if (!this.locusUrl) {
|
|
686
|
-
return Promise.reject(
|
|
762
|
+
return Promise.reject(
|
|
763
|
+
new ParameterError('The associated locus url for this meeting object must be defined.')
|
|
764
|
+
);
|
|
687
765
|
}
|
|
688
766
|
if (MembersUtil.isInvalidInvitee(invitee)) {
|
|
689
767
|
return Promise.reject(
|
|
@@ -692,22 +770,28 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
692
770
|
}
|
|
693
771
|
const options = MembersUtil.cancelPhoneInviteOptions(invitee, this.locusUrl);
|
|
694
772
|
|
|
695
|
-
|
|
696
773
|
return this.membersRequest.cancelPhoneInvite(options);
|
|
697
774
|
}
|
|
698
775
|
|
|
699
776
|
/**
|
|
700
777
|
* Admits waiting members (invited guests to meeting)
|
|
701
778
|
* @param {Array} memberIds
|
|
779
|
+
* @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
|
|
702
780
|
* @returns {Promise}
|
|
703
781
|
* @public
|
|
704
782
|
* @memberof Members
|
|
705
783
|
*/
|
|
706
|
-
admitMembers(
|
|
784
|
+
public admitMembers(
|
|
785
|
+
memberIds: Array<any>,
|
|
786
|
+
sessionLocusUrls?: {authorizingLocusUrl: string; mainLocusUrl: string}
|
|
787
|
+
) {
|
|
707
788
|
if (isEmpty(memberIds)) {
|
|
708
789
|
return Promise.reject(new ParameterError('No member ids provided to admit.'));
|
|
709
790
|
}
|
|
710
|
-
const options =
|
|
791
|
+
const options = {
|
|
792
|
+
sessionLocusUrls,
|
|
793
|
+
...MembersUtil.generateAdmitMemberOptions(memberIds, this.locusUrl),
|
|
794
|
+
};
|
|
711
795
|
|
|
712
796
|
return this.membersRequest.admitMember(options);
|
|
713
797
|
}
|
|
@@ -719,12 +803,16 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
719
803
|
* @public
|
|
720
804
|
* @memberof Members
|
|
721
805
|
*/
|
|
722
|
-
removeMember(memberId) {
|
|
806
|
+
public removeMember(memberId: string) {
|
|
723
807
|
if (!this.locusUrl) {
|
|
724
|
-
return Promise.reject(
|
|
808
|
+
return Promise.reject(
|
|
809
|
+
new ParameterError('The associated locus url for this meeting object must be defined.')
|
|
810
|
+
);
|
|
725
811
|
}
|
|
726
812
|
if (!memberId) {
|
|
727
|
-
return Promise.reject(
|
|
813
|
+
return Promise.reject(
|
|
814
|
+
new ParameterError('The member id must be defined to remove the member.')
|
|
815
|
+
);
|
|
728
816
|
}
|
|
729
817
|
const options = MembersUtil.generateRemoveMemberOptions(memberId, this.locusUrl);
|
|
730
818
|
|
|
@@ -735,22 +823,69 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
735
823
|
* Audio mutes another member in a meeting
|
|
736
824
|
* @param {String} memberId
|
|
737
825
|
* @param {boolean} [mute] default true
|
|
826
|
+
* @param {boolean} [isAudio] default true
|
|
738
827
|
* @returns {Promise}
|
|
739
828
|
* @public
|
|
740
829
|
* @memberof Members
|
|
741
830
|
*/
|
|
742
|
-
muteMember(memberId, mute = true) {
|
|
831
|
+
public muteMember(memberId: string, mute = true, isAudio = true) {
|
|
743
832
|
if (!this.locusUrl) {
|
|
744
|
-
return Promise.reject(
|
|
833
|
+
return Promise.reject(
|
|
834
|
+
new ParameterError(
|
|
835
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
836
|
+
)
|
|
837
|
+
);
|
|
745
838
|
}
|
|
746
839
|
if (!memberId) {
|
|
747
|
-
return Promise.reject(
|
|
840
|
+
return Promise.reject(
|
|
841
|
+
new ParameterError('The member id must be defined to mute the member.')
|
|
842
|
+
);
|
|
748
843
|
}
|
|
749
|
-
const options = MembersUtil.generateMuteMemberOptions(memberId, mute, this.locusUrl);
|
|
844
|
+
const options = MembersUtil.generateMuteMemberOptions(memberId, mute, this.locusUrl, isAudio);
|
|
750
845
|
|
|
751
846
|
return this.membersRequest.muteMember(options);
|
|
752
847
|
}
|
|
753
848
|
|
|
849
|
+
/**
|
|
850
|
+
* Assign role(s) to a member in the meeting
|
|
851
|
+
* @param {String} memberId
|
|
852
|
+
* @param {[ServerRoleShape]} roles - to assign an array of roles
|
|
853
|
+
* @returns {Promise}
|
|
854
|
+
* @public
|
|
855
|
+
* @memberof Members
|
|
856
|
+
*/
|
|
857
|
+
public assignRoles(memberId: string, roles: Array<ServerRoleShape>) {
|
|
858
|
+
if (!this.locusUrl) {
|
|
859
|
+
return Promise.reject(
|
|
860
|
+
new ParameterError(
|
|
861
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
862
|
+
)
|
|
863
|
+
);
|
|
864
|
+
}
|
|
865
|
+
if (!memberId) {
|
|
866
|
+
return Promise.reject(
|
|
867
|
+
new ParameterError('The member id must be defined to assign the roles to a member.')
|
|
868
|
+
);
|
|
869
|
+
}
|
|
870
|
+
const options = MembersUtil.generateRoleAssignmentMemberOptions(memberId, roles, this.locusUrl);
|
|
871
|
+
|
|
872
|
+
return this.membersRequest.assignRolesMember(options).catch((error: any) => {
|
|
873
|
+
const errorCode = error.body?.errorCode;
|
|
874
|
+
switch (errorCode) {
|
|
875
|
+
case ASSIGN_ROLES_ERROR_CODES.ReclaimHostNotSupportedErrorCode:
|
|
876
|
+
return Promise.reject(new ReclaimHostNotSupportedError());
|
|
877
|
+
case ASSIGN_ROLES_ERROR_CODES.ReclaimHostNotAllowedErrorCode:
|
|
878
|
+
return Promise.reject(new ReclaimHostNotAllowedError());
|
|
879
|
+
case ASSIGN_ROLES_ERROR_CODES.ReclaimHostEmptyWrongKeyErrorCode:
|
|
880
|
+
return Promise.reject(new ReclaimHostEmptyWrongKeyError());
|
|
881
|
+
case ASSIGN_ROLES_ERROR_CODES.ReclaimHostIsHostAlreadyErrorCode:
|
|
882
|
+
return Promise.reject(new ReclaimHostIsHostAlreadyError());
|
|
883
|
+
default:
|
|
884
|
+
return Promise.reject(error);
|
|
885
|
+
}
|
|
886
|
+
});
|
|
887
|
+
}
|
|
888
|
+
|
|
754
889
|
/**
|
|
755
890
|
* Raise or lower the hand of a member in a meeting
|
|
756
891
|
* @param {String} memberId
|
|
@@ -759,12 +894,18 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
759
894
|
* @public
|
|
760
895
|
* @memberof Members
|
|
761
896
|
*/
|
|
762
|
-
raiseOrLowerHand(memberId, raise = true) {
|
|
897
|
+
public raiseOrLowerHand(memberId: string, raise = true) {
|
|
763
898
|
if (!this.locusUrl) {
|
|
764
|
-
return Promise.reject(
|
|
899
|
+
return Promise.reject(
|
|
900
|
+
new ParameterError(
|
|
901
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
902
|
+
)
|
|
903
|
+
);
|
|
765
904
|
}
|
|
766
905
|
if (!memberId) {
|
|
767
|
-
return Promise.reject(
|
|
906
|
+
return Promise.reject(
|
|
907
|
+
new ParameterError('The member id must be defined to raise/lower the hand of the member.')
|
|
908
|
+
);
|
|
768
909
|
}
|
|
769
910
|
const options = MembersUtil.generateRaiseHandMemberOptions(memberId, raise, this.locusUrl);
|
|
770
911
|
|
|
@@ -778,19 +919,29 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
778
919
|
* @public
|
|
779
920
|
* @memberof Members
|
|
780
921
|
*/
|
|
781
|
-
lowerAllHands(requestingMemberId) {
|
|
922
|
+
public lowerAllHands(requestingMemberId: string) {
|
|
782
923
|
if (!this.locusUrl) {
|
|
783
|
-
return Promise.reject(
|
|
924
|
+
return Promise.reject(
|
|
925
|
+
new ParameterError(
|
|
926
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
927
|
+
)
|
|
928
|
+
);
|
|
784
929
|
}
|
|
785
930
|
if (!requestingMemberId) {
|
|
786
|
-
return Promise.reject(
|
|
931
|
+
return Promise.reject(
|
|
932
|
+
new ParameterError(
|
|
933
|
+
'The requestingMemberId must be defined to lower all hands in a meeting.'
|
|
934
|
+
)
|
|
935
|
+
);
|
|
787
936
|
}
|
|
788
|
-
const options = MembersUtil.generateLowerAllHandsMemberOptions(
|
|
937
|
+
const options = MembersUtil.generateLowerAllHandsMemberOptions(
|
|
938
|
+
requestingMemberId,
|
|
939
|
+
this.locusUrl
|
|
940
|
+
);
|
|
789
941
|
|
|
790
942
|
return this.membersRequest.lowerAllHandsMember(options);
|
|
791
943
|
}
|
|
792
944
|
|
|
793
|
-
|
|
794
945
|
/**
|
|
795
946
|
* Transfers the host to another member
|
|
796
947
|
* @param {String} memberId
|
|
@@ -799,19 +950,28 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
799
950
|
* @public
|
|
800
951
|
* @memberof Members
|
|
801
952
|
*/
|
|
802
|
-
transferHostToMember(memberId, moderator = true) {
|
|
953
|
+
public transferHostToMember(memberId: string, moderator = true) {
|
|
803
954
|
if (!this.locusUrl) {
|
|
804
|
-
return Promise.reject(
|
|
955
|
+
return Promise.reject(
|
|
956
|
+
new ParameterError(
|
|
957
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
958
|
+
)
|
|
959
|
+
);
|
|
805
960
|
}
|
|
806
961
|
if (!memberId) {
|
|
807
|
-
return Promise.reject(
|
|
962
|
+
return Promise.reject(
|
|
963
|
+
new ParameterError('The member id must be defined to transfer host to the member.')
|
|
964
|
+
);
|
|
808
965
|
}
|
|
809
|
-
const options = MembersUtil.generateTransferHostMemberOptions(
|
|
966
|
+
const options = MembersUtil.generateTransferHostMemberOptions(
|
|
967
|
+
memberId,
|
|
968
|
+
moderator,
|
|
969
|
+
this.locusUrl
|
|
970
|
+
);
|
|
810
971
|
|
|
811
972
|
return this.membersRequest.transferHostToMember(options);
|
|
812
973
|
}
|
|
813
974
|
|
|
814
|
-
|
|
815
975
|
/**
|
|
816
976
|
* Sends DTMF tones for the PSTN member of a meeting
|
|
817
977
|
* @param {String} tones a string of one or more DTMF tones to send
|
|
@@ -820,7 +980,8 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
820
980
|
* @public
|
|
821
981
|
* @memberof Members
|
|
822
982
|
*/
|
|
823
|
-
sendDialPadKey(tones = '', memberId = '') {
|
|
983
|
+
public sendDialPadKey(tones = '', memberId = '') {
|
|
984
|
+
// @ts-ignore
|
|
824
985
|
if (!tones && tones !== 0) {
|
|
825
986
|
return Promise.reject(new ParameterError('DMTF tones must be passed in'));
|
|
826
987
|
}
|
|
@@ -843,7 +1004,11 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
843
1004
|
return this.membersRequest.sendDialPadKey(options);
|
|
844
1005
|
}
|
|
845
1006
|
|
|
846
|
-
return Promise.reject(
|
|
1007
|
+
return Promise.reject(
|
|
1008
|
+
new Error(
|
|
1009
|
+
'Members:index#sendDialPadKey --> cannot send DTMF, meeting does not have a connection to the "locus" call control service.'
|
|
1010
|
+
)
|
|
1011
|
+
);
|
|
847
1012
|
}
|
|
848
1013
|
|
|
849
1014
|
/** Finds a member that has any device with a csi matching provided value
|
|
@@ -852,10 +1017,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
852
1017
|
* @returns {Member}
|
|
853
1018
|
*/
|
|
854
1019
|
findMemberByCsi(csi) {
|
|
855
|
-
return Object.values(this.membersCollection.getAll())
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
1020
|
+
return Object.values(this.membersCollection.getAll()).find((member) =>
|
|
1021
|
+
// @ts-ignore
|
|
1022
|
+
member.participant?.devices?.find((device) =>
|
|
1023
|
+
device.csis?.find((memberCsi) => memberCsi === csi)
|
|
1024
|
+
)
|
|
1025
|
+
);
|
|
859
1026
|
}
|
|
860
1027
|
|
|
861
1028
|
/**
|
|
@@ -872,7 +1039,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
872
1039
|
this.membersCollection.get(memberId)?.participant?.devices?.forEach((device) => {
|
|
873
1040
|
if (device.mediaSessions) {
|
|
874
1041
|
const deviceCsis = device.mediaSessions
|
|
875
|
-
?.filter(
|
|
1042
|
+
?.filter(
|
|
1043
|
+
(mediaSession) =>
|
|
1044
|
+
mediaSession.mediaType === mediaType && mediaSession.mediaContent === mediaContent
|
|
1045
|
+
)
|
|
876
1046
|
.map((mediaSession) => mediaSession.csi);
|
|
877
1047
|
|
|
878
1048
|
csis.push(...deviceCsis);
|
|
@@ -881,4 +1051,39 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
881
1051
|
|
|
882
1052
|
return csis;
|
|
883
1053
|
}
|
|
1054
|
+
|
|
1055
|
+
/**
|
|
1056
|
+
* Edit display name of participants in a meeting
|
|
1057
|
+
* @param {string} memberId - id of the participant who is receiving request
|
|
1058
|
+
* @param {string} requestingParticipantId - id of the participant who is sending request (optional)
|
|
1059
|
+
* @param {string} [alias] - alias name
|
|
1060
|
+
* @returns {Promise}
|
|
1061
|
+
* @public
|
|
1062
|
+
* @memberof Members
|
|
1063
|
+
*/
|
|
1064
|
+
public editDisplayName(memberId: string, requestingParticipantId: string, alias: string) {
|
|
1065
|
+
if (!this.locusUrl) {
|
|
1066
|
+
return Promise.reject(
|
|
1067
|
+
new ParameterError(
|
|
1068
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
1069
|
+
)
|
|
1070
|
+
);
|
|
1071
|
+
}
|
|
1072
|
+
if (!memberId) {
|
|
1073
|
+
return Promise.reject(
|
|
1074
|
+
new ParameterError('The member id must be defined to edit display name of the member.')
|
|
1075
|
+
);
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
const {locusUrl} = this;
|
|
1079
|
+
|
|
1080
|
+
const options = MembersUtil.generateEditDisplayNameMemberOptions(
|
|
1081
|
+
memberId,
|
|
1082
|
+
requestingParticipantId,
|
|
1083
|
+
alias,
|
|
1084
|
+
locusUrl
|
|
1085
|
+
);
|
|
1086
|
+
|
|
1087
|
+
return this.membersRequest.editDisplayNameMember(options);
|
|
1088
|
+
}
|
|
884
1089
|
}
|