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