@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
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import uuid from 'uuid';
|
|
2
2
|
import {debounce} from 'lodash';
|
|
3
|
+
// @ts-ignore
|
|
3
4
|
import {StatelessWebexPlugin} from '@webex/webex-core';
|
|
5
|
+
// @ts-ignore
|
|
4
6
|
import {deviceType} from '@webex/common';
|
|
5
7
|
|
|
6
8
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
7
9
|
import {
|
|
8
10
|
ALERT,
|
|
9
11
|
ALTERNATE_REDIRECT_TRUE,
|
|
12
|
+
BREAKOUTS,
|
|
10
13
|
CALL,
|
|
11
14
|
CONTROLS,
|
|
12
15
|
DECLINE,
|
|
@@ -15,24 +18,70 @@ import {
|
|
|
15
18
|
HTTP_VERBS,
|
|
16
19
|
LEAVE,
|
|
17
20
|
LOCI,
|
|
18
|
-
LOCUS,
|
|
19
|
-
MEDIA,
|
|
20
21
|
PARTICIPANT,
|
|
21
22
|
PROVISIONAL_TYPE_DIAL_IN,
|
|
22
23
|
PROVISIONAL_TYPE_DIAL_OUT,
|
|
24
|
+
REACHABILITY,
|
|
23
25
|
SEND_DTMF_ENDPOINT,
|
|
24
|
-
_SLIDES_
|
|
26
|
+
_SLIDES_,
|
|
27
|
+
ANNOTATION,
|
|
25
28
|
} from '../constants';
|
|
29
|
+
import {SendReactionOptions, ToggleReactionsOptions} from './request.type';
|
|
30
|
+
import MeetingUtil from './util';
|
|
31
|
+
import {AnnotationInfo} from '../annotation/annotation.types';
|
|
26
32
|
|
|
27
33
|
/**
|
|
28
34
|
* @class MeetingRequest
|
|
29
35
|
*/
|
|
30
36
|
export default class MeetingRequest extends StatelessWebexPlugin {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
37
|
+
changeVideoLayoutDebounced: any;
|
|
38
|
+
meetingRef: WeakRef<any>;
|
|
39
|
+
locusDeltaRequest: (options: object) => Promise<any>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Constructor
|
|
43
|
+
* @param {Object} attrs
|
|
44
|
+
* @param {Object} options
|
|
45
|
+
*/
|
|
46
|
+
constructor(attrs: any, options: any) {
|
|
47
|
+
const {meeting, ...otherAttrs} = attrs;
|
|
48
|
+
|
|
49
|
+
super(otherAttrs, options);
|
|
50
|
+
|
|
51
|
+
this.locusDeltaRequest = MeetingUtil.generateLocusDeltaRequest(meeting);
|
|
52
|
+
|
|
53
|
+
this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {
|
|
54
|
+
leading: true,
|
|
55
|
+
trailing: true,
|
|
56
|
+
});
|
|
34
57
|
}
|
|
35
58
|
|
|
59
|
+
/**
|
|
60
|
+
* Returns joinCookie from boundedStorage if present.
|
|
61
|
+
* @returns {Object} joinCookie
|
|
62
|
+
*/
|
|
63
|
+
private getJoinCookie = async () => {
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
const joinCookieRaw = await this.webex.boundedStorage
|
|
66
|
+
.get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)
|
|
67
|
+
.catch(() => {});
|
|
68
|
+
|
|
69
|
+
if (joinCookieRaw) {
|
|
70
|
+
try {
|
|
71
|
+
const joinCookie = JSON.parse(joinCookieRaw);
|
|
72
|
+
if (joinCookie) {
|
|
73
|
+
return joinCookie;
|
|
74
|
+
}
|
|
75
|
+
} catch (e) {
|
|
76
|
+
LoggerProxy.logger.error(
|
|
77
|
+
`MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return null;
|
|
83
|
+
};
|
|
84
|
+
|
|
36
85
|
/**
|
|
37
86
|
* Make a network request to join a meeting
|
|
38
87
|
* @param {Object} options
|
|
@@ -46,9 +95,33 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
46
95
|
* @param {boolean} options.pin
|
|
47
96
|
* @param {boolean} options.moveToResource
|
|
48
97
|
* @param {Object} options.roapMessage
|
|
98
|
+
* @param {boolean} options.breakoutsSupported
|
|
99
|
+
* @param {String} options.locale,
|
|
100
|
+
* @param {Array} options.deviceCapabilities
|
|
101
|
+
* @param {boolean} options.liveAnnotationSupported
|
|
49
102
|
* @returns {Promise}
|
|
50
103
|
*/
|
|
51
|
-
async joinMeeting(options
|
|
104
|
+
async joinMeeting(options: {
|
|
105
|
+
sipUri: string;
|
|
106
|
+
deviceUrl: string;
|
|
107
|
+
locusUrl: string;
|
|
108
|
+
resourceId: string;
|
|
109
|
+
correlationId: string;
|
|
110
|
+
ensureConversation: boolean;
|
|
111
|
+
moderator: boolean;
|
|
112
|
+
pin: boolean;
|
|
113
|
+
moveToResource: boolean;
|
|
114
|
+
roapMessage: any;
|
|
115
|
+
asResourceOccupant: any;
|
|
116
|
+
inviteeAddress: any;
|
|
117
|
+
meetingNumber: any;
|
|
118
|
+
permissionToken: any;
|
|
119
|
+
preferTranscoding: any;
|
|
120
|
+
breakoutsSupported: boolean;
|
|
121
|
+
locale?: string;
|
|
122
|
+
deviceCapabilities?: Array<string>;
|
|
123
|
+
liveAnnotationSupported: boolean;
|
|
124
|
+
}) {
|
|
52
125
|
const {
|
|
53
126
|
asResourceOccupant,
|
|
54
127
|
inviteeAddress,
|
|
@@ -63,36 +136,59 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
63
136
|
pin,
|
|
64
137
|
moveToResource,
|
|
65
138
|
roapMessage,
|
|
66
|
-
preferTranscoding
|
|
139
|
+
preferTranscoding,
|
|
140
|
+
breakoutsSupported,
|
|
141
|
+
locale,
|
|
142
|
+
deviceCapabilities = [],
|
|
143
|
+
liveAnnotationSupported,
|
|
67
144
|
} = options;
|
|
68
145
|
|
|
69
|
-
LoggerProxy.logger.info(
|
|
70
|
-
'Meeting:request#joinMeeting --> Joining a meeting',
|
|
71
|
-
correlationId
|
|
72
|
-
);
|
|
146
|
+
LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);
|
|
73
147
|
|
|
74
148
|
let url = '';
|
|
75
149
|
|
|
76
|
-
const
|
|
150
|
+
const joinCookie = await this.getJoinCookie();
|
|
151
|
+
|
|
152
|
+
const body: any = {
|
|
77
153
|
asResourceOccupant,
|
|
78
154
|
device: {
|
|
79
155
|
url: deviceUrl,
|
|
80
|
-
|
|
156
|
+
// @ts-ignore - config comes from registerPlugin
|
|
157
|
+
deviceType: this.config.meetings.deviceType,
|
|
81
158
|
},
|
|
82
159
|
usingResource: resourceId || null,
|
|
83
|
-
moveMediaToResource: resourceId && moveToResource || false,
|
|
160
|
+
moveMediaToResource: (resourceId && moveToResource) || false,
|
|
84
161
|
correlationId,
|
|
85
162
|
respOnlySdp: true,
|
|
86
163
|
allowMultiDevice: true,
|
|
87
164
|
ensureConversation: ensureConversation || false,
|
|
88
165
|
supportsNativeLobby: 1,
|
|
89
166
|
clientMediaPreferences: {
|
|
90
|
-
preferTranscoding: preferTranscoding ?? true
|
|
91
|
-
|
|
167
|
+
preferTranscoding: preferTranscoding ?? true,
|
|
168
|
+
joinCookie,
|
|
169
|
+
},
|
|
92
170
|
};
|
|
93
171
|
|
|
172
|
+
if (breakoutsSupported) {
|
|
173
|
+
deviceCapabilities.push(BREAKOUTS.BREAKOUTS_SUPPORTED);
|
|
174
|
+
}
|
|
175
|
+
if (liveAnnotationSupported) {
|
|
176
|
+
deviceCapabilities.push(ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
if (locale) {
|
|
180
|
+
body.locale = locale;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// add deviceCapabilities prop
|
|
184
|
+
if (deviceCapabilities.length) {
|
|
185
|
+
body.deviceCapabilities = deviceCapabilities;
|
|
186
|
+
}
|
|
187
|
+
// @ts-ignore
|
|
94
188
|
if (this.webex.meetings.clientRegion) {
|
|
189
|
+
// @ts-ignore
|
|
95
190
|
body.device.countryCode = this.webex.meetings.clientRegion.countryCode;
|
|
191
|
+
// @ts-ignore
|
|
96
192
|
body.device.regionCode = this.webex.meetings.clientRegion.regionCode;
|
|
97
193
|
}
|
|
98
194
|
|
|
@@ -110,28 +206,29 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
110
206
|
|
|
111
207
|
if (locusUrl) {
|
|
112
208
|
url = `${locusUrl}/${PARTICIPANT}`;
|
|
113
|
-
}
|
|
114
|
-
else if (inviteeAddress || meetingNumber) {
|
|
209
|
+
} else if (inviteeAddress || meetingNumber) {
|
|
115
210
|
try {
|
|
211
|
+
// @ts-ignore
|
|
116
212
|
await this.webex.internal.services.waitForCatalog('postauth');
|
|
213
|
+
// @ts-ignore
|
|
117
214
|
url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;
|
|
118
215
|
body.invitee = {
|
|
119
|
-
address: inviteeAddress || `wbxmn:${meetingNumber}
|
|
216
|
+
address: inviteeAddress || `wbxmn:${meetingNumber}`,
|
|
120
217
|
};
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
218
|
+
} catch (e) {
|
|
219
|
+
LoggerProxy.logger.error(
|
|
220
|
+
`Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`
|
|
221
|
+
);
|
|
222
|
+
throw e;
|
|
125
223
|
}
|
|
126
224
|
}
|
|
127
225
|
|
|
128
|
-
|
|
129
226
|
// TODO: -- this will be resolved in SDK request
|
|
130
227
|
url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);
|
|
131
228
|
|
|
132
229
|
if (resourceId === inviteeAddress) {
|
|
133
230
|
body.callPreferences = {
|
|
134
|
-
requestedMedia: [_SLIDES_]
|
|
231
|
+
requestedMedia: [_SLIDES_],
|
|
135
232
|
};
|
|
136
233
|
}
|
|
137
234
|
|
|
@@ -139,10 +236,11 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
139
236
|
body.localMedias = roapMessage.localMedias;
|
|
140
237
|
}
|
|
141
238
|
|
|
239
|
+
/// @ts-ignore
|
|
142
240
|
return this.request({
|
|
143
241
|
method: HTTP_VERBS.POST,
|
|
144
242
|
uri: url,
|
|
145
|
-
body
|
|
243
|
+
body,
|
|
146
244
|
});
|
|
147
245
|
}
|
|
148
246
|
|
|
@@ -154,18 +252,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
154
252
|
* @returns {Promise}
|
|
155
253
|
* @private
|
|
156
254
|
*/
|
|
157
|
-
refreshCaptcha({
|
|
255
|
+
private refreshCaptcha({
|
|
158
256
|
captchaRefreshUrl,
|
|
159
|
-
captchaId
|
|
257
|
+
captchaId,
|
|
258
|
+
}: {
|
|
259
|
+
captchaRefreshUrl: string;
|
|
260
|
+
captchaId: string;
|
|
160
261
|
}) {
|
|
161
262
|
const body = {
|
|
162
|
-
captchaId
|
|
263
|
+
captchaId,
|
|
163
264
|
};
|
|
164
265
|
|
|
266
|
+
// @ts-ignore
|
|
165
267
|
return this.request({
|
|
166
268
|
method: HTTP_VERBS.POST,
|
|
167
269
|
uri: captchaRefreshUrl,
|
|
168
|
-
body
|
|
270
|
+
body,
|
|
169
271
|
}).catch((err) => {
|
|
170
272
|
LoggerProxy.logger.error(`Meeting:request#refreshCaptcha --> Error: ${err}`);
|
|
171
273
|
|
|
@@ -177,17 +279,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
177
279
|
* Make a network request to add a dial in device
|
|
178
280
|
* @param {Object} options
|
|
179
281
|
* @param {String} options.correlationId
|
|
180
|
-
* @param {String} options.
|
|
282
|
+
* @param {String} options.locusUrl url for the meeting
|
|
181
283
|
* @param {String} options.dialInUrl identifier for the to-be provisioned device
|
|
182
284
|
* @param {String} options.clientUrl identifier for the web device
|
|
183
285
|
* @returns {Promise}
|
|
184
286
|
* @private
|
|
185
287
|
*/
|
|
186
|
-
dialIn({
|
|
288
|
+
private dialIn({
|
|
187
289
|
locusUrl,
|
|
188
290
|
dialInUrl,
|
|
189
291
|
clientUrl,
|
|
190
|
-
correlationId
|
|
292
|
+
correlationId,
|
|
293
|
+
}: {
|
|
294
|
+
correlationId: string;
|
|
295
|
+
locusUrl: string;
|
|
296
|
+
dialInUrl: string;
|
|
297
|
+
clientUrl: string;
|
|
191
298
|
}) {
|
|
192
299
|
LoggerProxy.logger.info(
|
|
193
300
|
'Meeting:request#dialIn --> Provisioning a dial in device',
|
|
@@ -200,17 +307,20 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
200
307
|
deviceType: deviceType.PROVISIONAL,
|
|
201
308
|
provisionalType: PROVISIONAL_TYPE_DIAL_IN,
|
|
202
309
|
url: dialInUrl,
|
|
203
|
-
clientUrl
|
|
310
|
+
clientUrl,
|
|
204
311
|
},
|
|
205
|
-
correlationId
|
|
312
|
+
correlationId,
|
|
206
313
|
};
|
|
207
314
|
|
|
208
|
-
|
|
315
|
+
// @ts-ignore
|
|
316
|
+
return this.locusDeltaRequest({
|
|
209
317
|
method: HTTP_VERBS.POST,
|
|
210
318
|
uri,
|
|
211
|
-
body
|
|
319
|
+
body,
|
|
212
320
|
}).catch((err) => {
|
|
213
|
-
LoggerProxy.logger.error(
|
|
321
|
+
LoggerProxy.logger.error(
|
|
322
|
+
`Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`
|
|
323
|
+
);
|
|
214
324
|
|
|
215
325
|
throw err;
|
|
216
326
|
});
|
|
@@ -220,19 +330,25 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
220
330
|
* Make a network request to add a dial out device
|
|
221
331
|
* @param {Object} options
|
|
222
332
|
* @param {String} options.correlationId
|
|
223
|
-
* @param {String} options.
|
|
333
|
+
* @param {String} options.locusUrl url for the meeting
|
|
224
334
|
* @param {String} options.dialOutUrl identifier for the to-be provisioned device
|
|
225
335
|
* @param {String} options.phoneNumber phone number to dial out to
|
|
226
336
|
* @param {String} options.clientUrl identifier for the web device
|
|
227
337
|
* @returns {Promise}
|
|
228
338
|
* @private
|
|
229
339
|
*/
|
|
230
|
-
dialOut({
|
|
340
|
+
private dialOut({
|
|
231
341
|
locusUrl,
|
|
232
342
|
dialOutUrl,
|
|
233
343
|
phoneNumber,
|
|
234
344
|
clientUrl,
|
|
235
|
-
correlationId
|
|
345
|
+
correlationId,
|
|
346
|
+
}: {
|
|
347
|
+
correlationId: string;
|
|
348
|
+
locusUrl: string;
|
|
349
|
+
dialOutUrl: string;
|
|
350
|
+
phoneNumber: string;
|
|
351
|
+
clientUrl: string;
|
|
236
352
|
}) {
|
|
237
353
|
LoggerProxy.logger.info(
|
|
238
354
|
'Meeting:request#dialOut --> Provisioning a dial out device',
|
|
@@ -246,72 +362,43 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
246
362
|
provisionalType: PROVISIONAL_TYPE_DIAL_OUT,
|
|
247
363
|
url: dialOutUrl,
|
|
248
364
|
dialoutAddress: phoneNumber,
|
|
249
|
-
clientUrl
|
|
365
|
+
clientUrl,
|
|
250
366
|
},
|
|
251
|
-
correlationId
|
|
367
|
+
correlationId,
|
|
252
368
|
};
|
|
253
369
|
|
|
254
|
-
|
|
370
|
+
// @ts-ignore
|
|
371
|
+
return this.locusDeltaRequest({
|
|
255
372
|
method: HTTP_VERBS.POST,
|
|
256
373
|
uri,
|
|
257
|
-
body
|
|
374
|
+
body,
|
|
258
375
|
}).catch((err) => {
|
|
259
|
-
LoggerProxy.logger.error(
|
|
376
|
+
LoggerProxy.logger.error(
|
|
377
|
+
`Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`
|
|
378
|
+
);
|
|
260
379
|
|
|
261
380
|
throw err;
|
|
262
381
|
});
|
|
263
382
|
}
|
|
264
383
|
|
|
265
384
|
/**
|
|
266
|
-
*
|
|
267
|
-
* @param {Object} options
|
|
268
|
-
* @param {boolen} options.desync flag to get partial or whole locus object
|
|
269
|
-
* @param {String} options.syncUrl sync url to get ht elatest locus delta
|
|
270
|
-
* @returns {Promise}
|
|
271
|
-
*/
|
|
272
|
-
syncMeeting(options) {
|
|
273
|
-
/* eslint-disable no-else-return */
|
|
274
|
-
const {desync} = options;
|
|
275
|
-
let {syncUrl} = options;
|
|
276
|
-
|
|
277
|
-
/* istanbul ignore else */
|
|
278
|
-
if (desync) {
|
|
279
|
-
// check for existing URL parameters
|
|
280
|
-
syncUrl = syncUrl.concat(syncUrl.split('?')[1] ? '&' : '?').concat(`${LOCUS.SYNCDEBUG}=${desync}`);
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
return this.request({
|
|
284
|
-
method: HTTP_VERBS.GET,
|
|
285
|
-
uri: syncUrl
|
|
286
|
-
}) // TODO: Handle if delta sync failed . Get the full locus object
|
|
287
|
-
.catch((err) => {
|
|
288
|
-
LoggerProxy.logger.error(`Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`);
|
|
289
|
-
|
|
290
|
-
return err;
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* Request to get the complete locus object
|
|
385
|
+
* Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
|
|
296
386
|
* @param {Object} options
|
|
297
|
-
* @param {boolen} options.desync flag to get partial or whole locus object
|
|
298
387
|
* @param {String} options.locusUrl sync url to get ht elatest locus delta
|
|
299
388
|
* @returns {Promise}
|
|
300
389
|
*/
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
const {desync} = options;
|
|
304
|
-
|
|
305
|
-
if (locusUrl) {
|
|
306
|
-
if (desync) {
|
|
307
|
-
locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;
|
|
308
|
-
}
|
|
390
|
+
getLocusDTO(options: {url: string}) {
|
|
391
|
+
const {url} = options;
|
|
309
392
|
|
|
393
|
+
if (url) {
|
|
394
|
+
// @ts-ignore
|
|
310
395
|
return this.request({
|
|
311
396
|
method: HTTP_VERBS.GET,
|
|
312
|
-
uri:
|
|
397
|
+
uri: url,
|
|
313
398
|
}).catch((err) => {
|
|
314
|
-
LoggerProxy.logger.error(
|
|
399
|
+
LoggerProxy.logger.error(
|
|
400
|
+
`Meeting:request#getLocusDTO --> Error getting latest locus, error ${err}`
|
|
401
|
+
);
|
|
315
402
|
|
|
316
403
|
return err;
|
|
317
404
|
});
|
|
@@ -330,11 +417,16 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
330
417
|
* @returns {Promise}
|
|
331
418
|
* @private
|
|
332
419
|
*/
|
|
333
|
-
disconnectPhoneAudio({
|
|
420
|
+
private disconnectPhoneAudio({
|
|
334
421
|
locusUrl,
|
|
335
422
|
phoneUrl,
|
|
336
423
|
correlationId,
|
|
337
|
-
selfId
|
|
424
|
+
selfId,
|
|
425
|
+
}: {
|
|
426
|
+
locusUrl: string;
|
|
427
|
+
phoneUrl: string;
|
|
428
|
+
correlationId: string;
|
|
429
|
+
selfId: string;
|
|
338
430
|
}) {
|
|
339
431
|
LoggerProxy.logger.info(
|
|
340
432
|
`Meeting:request#disconnectPhoneAudio --> request phone ${phoneUrl} to leave`,
|
|
@@ -345,15 +437,16 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
345
437
|
const body = {
|
|
346
438
|
device: {
|
|
347
439
|
deviceType: deviceType.PROVISIONAL,
|
|
348
|
-
url: phoneUrl
|
|
440
|
+
url: phoneUrl,
|
|
349
441
|
},
|
|
350
|
-
correlationId
|
|
442
|
+
correlationId,
|
|
351
443
|
};
|
|
352
444
|
|
|
353
|
-
|
|
445
|
+
// @ts-ignore
|
|
446
|
+
return this.locusDeltaRequest({
|
|
354
447
|
method: HTTP_VERBS.PUT,
|
|
355
448
|
uri,
|
|
356
|
-
body
|
|
449
|
+
body,
|
|
357
450
|
}).catch((err) => {
|
|
358
451
|
LoggerProxy.logger.error(
|
|
359
452
|
`Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`
|
|
@@ -378,27 +471,31 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
378
471
|
selfId,
|
|
379
472
|
deviceUrl: url,
|
|
380
473
|
resourceId,
|
|
381
|
-
correlationId
|
|
474
|
+
correlationId,
|
|
475
|
+
}: {
|
|
476
|
+
locusUrl: string;
|
|
477
|
+
selfId: string;
|
|
478
|
+
deviceUrl: string;
|
|
479
|
+
resourceId: string;
|
|
480
|
+
correlationId: string;
|
|
382
481
|
}) {
|
|
383
|
-
LoggerProxy.logger.info(
|
|
384
|
-
'Meeting:request#leaveMeeting --> Leaving a meeting',
|
|
385
|
-
correlationId
|
|
386
|
-
);
|
|
482
|
+
LoggerProxy.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);
|
|
387
483
|
|
|
388
484
|
const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;
|
|
389
485
|
const body = {
|
|
390
486
|
device: {
|
|
487
|
+
// @ts-ignore
|
|
391
488
|
deviceType: this.config.meetings.deviceType,
|
|
392
|
-
url
|
|
489
|
+
url,
|
|
393
490
|
},
|
|
394
491
|
usingResource: resourceId || null,
|
|
395
|
-
correlationId
|
|
492
|
+
correlationId,
|
|
396
493
|
};
|
|
397
494
|
|
|
398
|
-
return this.
|
|
495
|
+
return this.locusDeltaRequest({
|
|
399
496
|
method: HTTP_VERBS.PUT,
|
|
400
497
|
uri,
|
|
401
|
-
body
|
|
498
|
+
body,
|
|
402
499
|
});
|
|
403
500
|
}
|
|
404
501
|
|
|
@@ -410,59 +507,42 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
410
507
|
* @param {String} options.correlationId
|
|
411
508
|
* @returns {Promise}
|
|
412
509
|
*/
|
|
413
|
-
acknowledgeMeeting(options) {
|
|
510
|
+
acknowledgeMeeting(options: {locusUrl: string; deviceUrl: string; correlationId: string}) {
|
|
414
511
|
const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;
|
|
415
512
|
const body = {
|
|
416
513
|
device: {
|
|
514
|
+
// @ts-ignore
|
|
417
515
|
deviceType: this.config.meetings.deviceType,
|
|
418
|
-
url: options.deviceUrl
|
|
516
|
+
url: options.deviceUrl,
|
|
419
517
|
},
|
|
420
|
-
correlationId: options.correlationId
|
|
518
|
+
correlationId: options.correlationId,
|
|
421
519
|
};
|
|
422
520
|
|
|
423
|
-
return this.
|
|
521
|
+
return this.locusDeltaRequest({
|
|
424
522
|
method: HTTP_VERBS.PUT,
|
|
425
523
|
uri,
|
|
426
|
-
body
|
|
524
|
+
body,
|
|
427
525
|
});
|
|
428
526
|
}
|
|
429
527
|
|
|
430
528
|
/**
|
|
431
|
-
*
|
|
529
|
+
* Makes a network request to lock the meeting
|
|
432
530
|
* @param {Object} options
|
|
433
|
-
* @param {
|
|
434
|
-
* @param {String} options.deviceUrl
|
|
435
|
-
* @param {String} options.id
|
|
531
|
+
* @param {Boolean} options.lock Whether it is locked or not
|
|
436
532
|
* @returns {Promise}
|
|
437
533
|
*/
|
|
438
|
-
recordMeeting(options) {
|
|
439
|
-
const uri = `${options.locusUrl}/${CONTROLS}`;
|
|
440
|
-
const body = {
|
|
441
|
-
record: {
|
|
442
|
-
recording: options.recording,
|
|
443
|
-
paused: options.paused
|
|
444
|
-
}
|
|
445
|
-
};
|
|
446
|
-
|
|
447
|
-
return this.request({
|
|
448
|
-
method: HTTP_VERBS.PATCH,
|
|
449
|
-
uri,
|
|
450
|
-
body
|
|
451
|
-
});
|
|
452
|
-
}
|
|
453
|
-
|
|
454
534
|
lockMeeting(options) {
|
|
455
535
|
const uri = `${options.locusUrl}/${CONTROLS}`;
|
|
456
536
|
const body = {
|
|
457
537
|
lock: {
|
|
458
|
-
locked: options.lock
|
|
459
|
-
}
|
|
538
|
+
locked: options.lock,
|
|
539
|
+
},
|
|
460
540
|
};
|
|
461
541
|
|
|
462
|
-
return this.
|
|
542
|
+
return this.locusDeltaRequest({
|
|
463
543
|
method: HTTP_VERBS.PATCH,
|
|
464
544
|
uri,
|
|
465
|
-
body
|
|
545
|
+
body,
|
|
466
546
|
});
|
|
467
547
|
}
|
|
468
548
|
|
|
@@ -474,54 +554,21 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
474
554
|
* @param {String} options.reason
|
|
475
555
|
* @returns {Promise}
|
|
476
556
|
*/
|
|
477
|
-
declineMeeting(options) {
|
|
557
|
+
declineMeeting(options: {locusUrl: string; deviceUrl: string; reason: string}) {
|
|
478
558
|
const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;
|
|
479
559
|
const body = {
|
|
480
560
|
device: {
|
|
561
|
+
// @ts-ignore
|
|
481
562
|
deviceType: this.config.meetings.deviceType,
|
|
482
|
-
url: options.deviceUrl
|
|
483
|
-
},
|
|
484
|
-
...(options.reason && {reason: options.reason})
|
|
485
|
-
};
|
|
486
|
-
|
|
487
|
-
return this.request({
|
|
488
|
-
method: HTTP_VERBS.PUT,
|
|
489
|
-
uri,
|
|
490
|
-
body
|
|
491
|
-
});
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
/**
|
|
495
|
-
* Toggle remote audio and/or video
|
|
496
|
-
* @param {Object} options options for toggling
|
|
497
|
-
* @param {String} options.selfId Locus self id??
|
|
498
|
-
* @param {String} options.locusUrl Locus url
|
|
499
|
-
* @param {String} options.deviceUrl Url of a device
|
|
500
|
-
* @param {String} options.resourceId Populated if you are paired to a device
|
|
501
|
-
* @param {String} options.localMedias local sdps
|
|
502
|
-
* @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)
|
|
503
|
-
* @returns {Promise}
|
|
504
|
-
*/
|
|
505
|
-
remoteAudioVideoToggle(options) {
|
|
506
|
-
const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;
|
|
507
|
-
const body = {
|
|
508
|
-
device: {
|
|
509
|
-
deviceType: this.config.meetings.deviceType,
|
|
510
|
-
url: options.deviceUrl
|
|
563
|
+
url: options.deviceUrl,
|
|
511
564
|
},
|
|
512
|
-
|
|
513
|
-
correlationId: options.correlationId,
|
|
514
|
-
respOnlySdp: true,
|
|
515
|
-
localMedias: options.localMedias,
|
|
516
|
-
clientMediaPreferences: {
|
|
517
|
-
preferTranscoding: options.preferTranscoding ?? true
|
|
518
|
-
}
|
|
565
|
+
...(options.reason && {reason: options.reason}),
|
|
519
566
|
};
|
|
520
567
|
|
|
521
|
-
return this.
|
|
568
|
+
return this.locusDeltaRequest({
|
|
522
569
|
method: HTTP_VERBS.PUT,
|
|
523
570
|
uri,
|
|
524
|
-
body
|
|
571
|
+
body,
|
|
525
572
|
});
|
|
526
573
|
}
|
|
527
574
|
|
|
@@ -535,8 +582,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
535
582
|
* @param {String} options.uri floor grant uri
|
|
536
583
|
* @returns {Promise}
|
|
537
584
|
*/
|
|
538
|
-
changeMeetingFloor(
|
|
539
|
-
|
|
585
|
+
changeMeetingFloor(
|
|
586
|
+
options:
|
|
587
|
+
| {
|
|
588
|
+
disposition: string;
|
|
589
|
+
personUrl: string;
|
|
590
|
+
deviceUrl: string;
|
|
591
|
+
resourceId: string;
|
|
592
|
+
uri: string;
|
|
593
|
+
annotationInfo: AnnotationInfo;
|
|
594
|
+
}
|
|
595
|
+
| any
|
|
596
|
+
) {
|
|
597
|
+
let floorReq: any = {disposition: options.disposition};
|
|
540
598
|
|
|
541
599
|
/* istanbul ignore else */
|
|
542
600
|
if (options.disposition === FLOOR_ACTION.GRANTED) {
|
|
@@ -545,31 +603,36 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
545
603
|
url: options.personUrl,
|
|
546
604
|
devices: [
|
|
547
605
|
{
|
|
606
|
+
// @ts-ignore
|
|
548
607
|
deviceType: this.config.meetings.deviceType,
|
|
549
|
-
url: options.deviceUrl
|
|
550
|
-
}
|
|
551
|
-
]
|
|
608
|
+
url: options.deviceUrl,
|
|
609
|
+
},
|
|
610
|
+
],
|
|
552
611
|
},
|
|
553
612
|
disposition: options.disposition,
|
|
554
613
|
requester: {
|
|
555
|
-
url: options.personUrl
|
|
556
|
-
}
|
|
614
|
+
url: options.personUrl,
|
|
615
|
+
},
|
|
557
616
|
};
|
|
558
617
|
}
|
|
559
618
|
|
|
560
|
-
const body = {
|
|
619
|
+
const body: any = {
|
|
561
620
|
floor: floorReq,
|
|
562
|
-
resourceUrl: options.resourceUrl
|
|
621
|
+
resourceUrl: options.resourceUrl,
|
|
563
622
|
};
|
|
564
623
|
|
|
565
624
|
if (options?.resourceToken) {
|
|
566
625
|
body.resourceToken = options?.resourceToken;
|
|
567
626
|
}
|
|
627
|
+
if (options?.annotationInfo) {
|
|
628
|
+
body.annotation = options?.annotationInfo;
|
|
629
|
+
}
|
|
568
630
|
|
|
631
|
+
// @ts-ignore
|
|
569
632
|
return this.request({
|
|
570
633
|
uri: options.uri,
|
|
571
634
|
method: HTTP_VERBS.PUT,
|
|
572
|
-
body
|
|
635
|
+
body,
|
|
573
636
|
});
|
|
574
637
|
}
|
|
575
638
|
|
|
@@ -581,17 +644,18 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
581
644
|
* @param {String} options.tones a string of one or more DTMF tones to send
|
|
582
645
|
* @returns {Promise}
|
|
583
646
|
*/
|
|
584
|
-
sendDTMF({locusUrl, deviceUrl, tones}) {
|
|
585
|
-
|
|
647
|
+
sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {
|
|
648
|
+
// @ts-ignore
|
|
649
|
+
return this.locusDeltaRequest({
|
|
586
650
|
method: HTTP_VERBS.POST,
|
|
587
651
|
uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,
|
|
588
652
|
body: {
|
|
589
653
|
deviceUrl,
|
|
590
654
|
dtmf: {
|
|
591
655
|
correlationId: uuid.v4(),
|
|
592
|
-
tones
|
|
593
|
-
}
|
|
594
|
-
}
|
|
656
|
+
tones,
|
|
657
|
+
},
|
|
658
|
+
},
|
|
595
659
|
});
|
|
596
660
|
}
|
|
597
661
|
|
|
@@ -614,39 +678,65 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
614
678
|
deviceUrl,
|
|
615
679
|
layoutType,
|
|
616
680
|
main,
|
|
617
|
-
content
|
|
681
|
+
content,
|
|
682
|
+
}: {
|
|
683
|
+
locusUrl: string;
|
|
684
|
+
deviceUrl: string;
|
|
685
|
+
layoutType: string;
|
|
686
|
+
main: {
|
|
687
|
+
width: number;
|
|
688
|
+
height: number;
|
|
689
|
+
};
|
|
690
|
+
content: {
|
|
691
|
+
width: number;
|
|
692
|
+
height: number;
|
|
693
|
+
};
|
|
618
694
|
}) {
|
|
619
695
|
// send main/content renderInfo only if both width and height are specified
|
|
620
696
|
if (main && (!main.width || !main.height)) {
|
|
621
|
-
return Promise.reject(
|
|
697
|
+
return Promise.reject(
|
|
698
|
+
new Error(
|
|
699
|
+
`Both width and height must be specified. One of them is missing for main: ${JSON.stringify(
|
|
700
|
+
main
|
|
701
|
+
)}`
|
|
702
|
+
)
|
|
703
|
+
);
|
|
622
704
|
}
|
|
623
705
|
|
|
624
706
|
if (content && (!content.width || !content.height)) {
|
|
625
|
-
return Promise.reject(
|
|
707
|
+
return Promise.reject(
|
|
708
|
+
new Error(
|
|
709
|
+
`Both width and height must be specified. One of them is missing for content: ${JSON.stringify(
|
|
710
|
+
content
|
|
711
|
+
)}`
|
|
712
|
+
)
|
|
713
|
+
);
|
|
626
714
|
}
|
|
627
715
|
|
|
628
|
-
const renderInfoMain =
|
|
629
|
-
const renderInfoContent =
|
|
630
|
-
|
|
631
|
-
const layoutParams =
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
716
|
+
const renderInfoMain = main ? {width: main.width, height: main.height} : undefined;
|
|
717
|
+
const renderInfoContent = content ? {width: content.width, height: content.height} : undefined;
|
|
718
|
+
|
|
719
|
+
const layoutParams =
|
|
720
|
+
renderInfoMain || renderInfoContent
|
|
721
|
+
? {
|
|
722
|
+
renderInfo: {
|
|
723
|
+
main: renderInfoMain,
|
|
724
|
+
content: renderInfoContent,
|
|
725
|
+
},
|
|
726
|
+
}
|
|
727
|
+
: undefined;
|
|
728
|
+
|
|
729
|
+
// @ts-ignore
|
|
730
|
+
return this.locusDeltaRequest({
|
|
641
731
|
method: HTTP_VERBS.PUT,
|
|
642
732
|
uri: `${locusUrl}/${CONTROLS}`,
|
|
643
733
|
body: {
|
|
644
734
|
layout: {
|
|
645
735
|
deviceUrl,
|
|
646
736
|
type: layoutType,
|
|
647
|
-
layoutParams
|
|
648
|
-
}
|
|
649
|
-
}
|
|
737
|
+
layoutParams,
|
|
738
|
+
},
|
|
739
|
+
},
|
|
650
740
|
});
|
|
651
741
|
}
|
|
652
742
|
|
|
@@ -656,14 +746,13 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
656
746
|
* @param {Url} options.locusUrl
|
|
657
747
|
* @returns {Promise}
|
|
658
748
|
*/
|
|
659
|
-
endMeetingForAll({
|
|
660
|
-
locusUrl,
|
|
661
|
-
}) {
|
|
749
|
+
endMeetingForAll({locusUrl}: {locusUrl: string}) {
|
|
662
750
|
const uri = `${locusUrl}/${END}`;
|
|
663
751
|
|
|
664
|
-
|
|
752
|
+
// @ts-ignore
|
|
753
|
+
return this.locusDeltaRequest({
|
|
665
754
|
method: HTTP_VERBS.POST,
|
|
666
|
-
uri
|
|
755
|
+
uri,
|
|
667
756
|
});
|
|
668
757
|
}
|
|
669
758
|
|
|
@@ -673,12 +762,63 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
673
762
|
* @param {Url} options.keepAliveUrl
|
|
674
763
|
* @returns {Promise}
|
|
675
764
|
*/
|
|
676
|
-
keepAlive({
|
|
677
|
-
|
|
678
|
-
|
|
765
|
+
keepAlive({keepAliveUrl}: {keepAliveUrl: string}) {
|
|
766
|
+
// @ts-ignore
|
|
767
|
+
return this.request({
|
|
768
|
+
method: HTTP_VERBS.GET,
|
|
769
|
+
uri: keepAliveUrl,
|
|
770
|
+
});
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
/**
|
|
774
|
+
* Make a network request to send a reaction.
|
|
775
|
+
* @param {Object} options
|
|
776
|
+
* @param {Url} options.reactionChannelUrl
|
|
777
|
+
* @param {Reaction} options.reaction
|
|
778
|
+
* @param {string} options.senderID
|
|
779
|
+
* @returns {Promise}
|
|
780
|
+
*/
|
|
781
|
+
sendReaction({reactionChannelUrl, reaction, participantId}: SendReactionOptions) {
|
|
782
|
+
const uri = reactionChannelUrl;
|
|
783
|
+
|
|
784
|
+
// @ts-ignore
|
|
785
|
+
return this.request({
|
|
786
|
+
method: HTTP_VERBS.POST,
|
|
787
|
+
uri,
|
|
788
|
+
body: {
|
|
789
|
+
sender: {participantId},
|
|
790
|
+
reaction,
|
|
791
|
+
},
|
|
792
|
+
});
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
/**
|
|
796
|
+
* Make a network request to enable or disable reactions.
|
|
797
|
+
* @param {boolean} options.enable - determines if we need to enable or disable.
|
|
798
|
+
* @param {locusUrl} options.locusUrl
|
|
799
|
+
* @returns {Promise}
|
|
800
|
+
*/
|
|
801
|
+
toggleReactions({enable, locusUrl, requestingParticipantId}: ToggleReactionsOptions) {
|
|
802
|
+
const uri = `${locusUrl}/${CONTROLS}`;
|
|
803
|
+
|
|
804
|
+
// @ts-ignore
|
|
805
|
+
return this.locusDeltaRequest({
|
|
806
|
+
method: HTTP_VERBS.PUT,
|
|
807
|
+
uri,
|
|
808
|
+
body: {
|
|
809
|
+
reactions: {
|
|
810
|
+
enabled: enable,
|
|
811
|
+
},
|
|
812
|
+
requestingParticipantId,
|
|
813
|
+
},
|
|
814
|
+
});
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
getLocusStatusByUrl(locusUrl: string) {
|
|
818
|
+
// @ts-ignore
|
|
679
819
|
return this.request({
|
|
680
820
|
method: HTTP_VERBS.GET,
|
|
681
|
-
uri:
|
|
821
|
+
uri: locusUrl,
|
|
682
822
|
});
|
|
683
823
|
}
|
|
684
824
|
}
|