@webex/plugin-meetings 3.0.0-beta.1 → 3.0.0-beta.104
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/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 +48 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +357 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +176 -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 +43 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +919 -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 +10 -69
- 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 +4 -14
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +7 -6
- package/dist/config.js.map +1 -1
- package/dist/constants.js +184 -122
- 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 +25 -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 +250 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +72 -17
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +56 -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 +362 -208
- 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 +12 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +92 -118
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +99 -91
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +113 -337
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +96 -135
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -35
- 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 +59 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2909 -2398
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +257 -112
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +330 -264
- 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 +63 -261
- 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 +14 -32
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +273 -280
- 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 +155 -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 +741 -548
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +26 -41
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +194 -149
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +100 -85
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +15 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +90 -68
- 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 +227 -188
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +54 -39
- 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 +107 -44
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +5 -14
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +3 -7
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +67 -159
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +250 -0
- package/dist/multistream/mediaRequestManager.js.map +1 -0
- package/dist/multistream/receiveSlot.js +202 -0
- package/dist/multistream/receiveSlot.js.map +1 -0
- package/dist/multistream/receiveSlotManager.js +176 -0
- package/dist/multistream/receiveSlotManager.js.map +1 -0
- package/dist/multistream/remoteMedia.js +270 -0
- package/dist/multistream/remoteMedia.js.map +1 -0
- package/dist/multistream/remoteMediaGroup.js +209 -0
- package/dist/multistream/remoteMediaGroup.js.map +1 -0
- package/dist/multistream/remoteMediaManager.js +1137 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +40 -59
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +21 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +1 -31
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +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 +386 -527
- 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 +343 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +63 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/index.js +84 -286
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +138 -238
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +164 -102
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +1 -93
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +399 -470
- 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 +34 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +124 -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 +2 -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 +32 -0
- package/dist/types/config.d.ts +78 -0
- package/dist/types/constants.d.ts +968 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +13 -0
- package/dist/types/controls-options-manager/index.d.ts +136 -0
- package/dist/types/controls-options-manager/types.d.ts +37 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -0
- package/dist/types/index.d.ts +7 -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 +315 -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 +212 -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 +108 -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 +129 -0
- package/dist/types/meeting/index.d.ts +1748 -0
- package/dist/types/meeting/muteState.d.ts +185 -0
- package/dist/types/meeting/request.d.ts +275 -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 +2 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +57 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +112 -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 +345 -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 +156 -0
- package/dist/types/member/types.d.ts +21 -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 +69 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +2 -0
- package/dist/types/metrics/config.d.ts +172 -0
- package/dist/types/metrics/constants.d.ts +54 -0
- package/dist/types/metrics/index.d.ts +152 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +101 -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 +263 -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 +193 -0
- package/dist/types/recording-controller/util.d.ts +13 -0
- package/dist/types/roap/index.d.ts +77 -0
- package/dist/types/roap/request.d.ts +38 -0
- package/dist/types/roap/turnDiscovery.d.ts +88 -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 +41 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +339 -0
- package/src/breakouts/README.md +219 -0
- package/src/breakouts/breakout.ts +141 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +37 -0
- package/src/breakouts/index.ts +823 -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} +8 -25
- 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 +1 -2
- package/src/{config.js → config.ts} +18 -12
- package/src/constants.ts +256 -183
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +16 -0
- package/src/controls-options-manager/index.ts +278 -0
- package/src/controls-options-manager/types.ts +49 -0
- package/src/controls-options-manager/util.ts +229 -0
- package/src/index.ts +33 -0
- package/src/locus-info/controlsUtils.ts +169 -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} +331 -80
- package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
- package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
- package/src/locus-info/{parser.js → parser.ts} +67 -79
- package/src/locus-info/{selfUtils.js → selfUtils.ts} +196 -67
- package/src/media/index.ts +488 -0
- package/src/media/{properties.js → properties.ts} +67 -54
- package/src/media/util.ts +16 -0
- package/src/mediaQualityMetrics/config.ts +384 -0
- package/src/meeting/in-meeting-actions.ts +123 -3
- package/src/meeting/{index.js → index.ts} +3334 -1775
- package/src/meeting/muteState.ts +526 -0
- package/src/meeting/{request.js → request.ts} +350 -142
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/{state.js → state.ts} +50 -35
- package/src/meeting/{util.js → util.ts} +126 -159
- package/src/meeting-info/{collection.js → collection.ts} +6 -2
- package/src/meeting-info/{index.js → index.ts} +42 -36
- package/src/meeting-info/meeting-info-v2.ts +345 -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} +76 -60
- package/src/meetings/{collection.js → collection.ts} +26 -3
- package/src/meetings/index.ts +1394 -0
- package/src/meetings/{request.js → request.ts} +34 -25
- package/src/meetings/util.ts +288 -0
- package/src/member/{index.js → index.ts} +124 -56
- package/src/member/types.ts +24 -0
- package/src/member/{util.js → util.ts} +105 -25
- package/src/members/{collection.js → collection.ts} +10 -2
- package/src/members/{index.js → index.ts} +359 -139
- package/src/members/request.ts +215 -0
- package/src/members/types.ts +28 -0
- package/src/members/{util.js → util.ts} +145 -54
- package/src/metrics/{config.js → config.ts} +256 -92
- package/src/metrics/{constants.js → constants.ts} +1 -6
- package/src/metrics/{index.js → index.ts} +116 -97
- package/src/multistream/mediaRequestManager.ts +324 -0
- package/src/multistream/receiveSlot.ts +184 -0
- package/src/multistream/receiveSlotManager.ts +166 -0
- package/src/multistream/remoteMedia.ts +254 -0
- package/src/multistream/remoteMediaGroup.ts +225 -0
- package/src/multistream/remoteMediaManager.ts +1075 -0
- package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
- package/src/personal-meeting-room/{index.js → index.ts} +28 -19
- package/src/personal-meeting-room/{request.js → request.ts} +13 -4
- package/src/personal-meeting-room/{util.js → util.ts} +4 -4
- package/src/reachability/{index.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} +261 -163
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +315 -0
- package/src/recording-controller/util.ts +58 -0
- package/src/roap/index.ts +241 -0
- package/src/roap/request.ts +172 -0
- package/src/roap/turnDiscovery.ts +127 -53
- package/src/statsAnalyzer/global.ts +37 -0
- package/src/statsAnalyzer/index.ts +1273 -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 +177 -0
- package/test/integration/spec/journey.js +666 -464
- package/test/integration/spec/space-meeting.js +321 -206
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/annotation/index.ts +435 -0
- package/test/unit/spec/breakouts/breakout.ts +184 -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 +77 -0
- package/test/unit/spec/breakouts/index.ts +1504 -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/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +403 -0
- package/test/unit/spec/fixture/locus.js +92 -90
- package/test/unit/spec/locus-info/controlsUtils.js +177 -32
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +493 -3
- 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/parser.js +3 -9
- package/test/unit/spec/locus-info/selfConstant.js +110 -103
- package/test/unit/spec/locus-info/selfUtils.js +236 -12
- package/test/unit/spec/media/index.ts +303 -0
- package/test/unit/spec/media/properties.ts +73 -82
- package/test/unit/spec/meeting/in-meeting-actions.ts +58 -3
- package/test/unit/spec/meeting/index.js +3127 -975
- package/test/unit/spec/meeting/muteState.js +375 -70
- package/test/unit/spec/meeting/request.js +217 -43
- package/test/unit/spec/meeting/utils.js +205 -163
- package/test/unit/spec/meeting-info/meetinginfov2.js +268 -74
- 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 +1052 -333
- package/test/unit/spec/meetings/utils.js +163 -14
- package/test/unit/spec/member/index.js +24 -1
- package/test/unit/spec/member/util.js +359 -32
- package/test/unit/spec/members/index.js +547 -37
- package/test/unit/spec/members/request.js +76 -20
- package/test/unit/spec/members/utils.js +191 -4
- package/test/unit/spec/metrics/index.js +46 -20
- package/test/unit/spec/multistream/mediaRequestManager.ts +1060 -0
- package/test/unit/spec/multistream/receiveSlot.ts +163 -0
- package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
- package/test/unit/spec/multistream/remoteMedia.ts +255 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +396 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +1793 -0
- package/test/unit/spec/networkQualityMonitor/index.js +24 -18
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +176 -27
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +106 -9
- package/test/unit/spec/recording-controller/index.js +231 -0
- package/test/unit/spec/recording-controller/util.js +102 -0
- package/test/unit/spec/roap/index.ts +78 -45
- package/test/unit/spec/roap/request.ts +217 -0
- package/test/unit/spec/roap/turnDiscovery.ts +93 -49
- package/test/unit/spec/stats-analyzer/index.js +118 -65
- package/test/utils/cmr.js +44 -42
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +64 -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/meeting/effectsState.js +0 -327
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/peer-connection-manager/index.js +0 -794
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -124
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/roap/collection.js +0 -73
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.js +0 -337
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/state.js +0 -164
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/util.js +0 -102
- package/dist/roap/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 -593
- package/src/media/util.js +0 -38
- package/src/mediaQualityMetrics/config.js +0 -382
- package/src/meeting/effectsState.js +0 -205
- package/src/meeting/muteState.js +0 -318
- package/src/meeting-info/meeting-info-v2.js +0 -255
- package/src/meetings/index.js +0 -986
- package/src/meetings/util.js +0 -176
- package/src/members/request.js +0 -131
- package/src/peer-connection-manager/index.js +0 -723
- package/src/peer-connection-manager/util.ts +0 -117
- package/src/roap/collection.js +0 -63
- package/src/roap/handler.js +0 -252
- package/src/roap/index.js +0 -380
- package/src/roap/request.js +0 -198
- package/src/roap/state.js +0 -149
- package/src/roap/util.js +0 -93
- package/src/statsAnalyzer/global.js +0 -131
- package/src/statsAnalyzer/index.js +0 -1020
- package/src/statsAnalyzer/mqaUtil.js +0 -173
- package/test/unit/spec/meeting/effectsState.js +0 -293
- package/test/unit/spec/peerconnection-manager/index.js +0 -188
- package/test/unit/spec/peerconnection-manager/utils.js +0 -48
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
- package/test/unit/spec/roap/util.js +0 -30
- /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,
|
|
@@ -20,19 +23,58 @@ import {
|
|
|
20
23
|
PARTICIPANT,
|
|
21
24
|
PROVISIONAL_TYPE_DIAL_IN,
|
|
22
25
|
PROVISIONAL_TYPE_DIAL_OUT,
|
|
26
|
+
REACHABILITY,
|
|
23
27
|
SEND_DTMF_ENDPOINT,
|
|
24
|
-
_SLIDES_
|
|
28
|
+
_SLIDES_,
|
|
29
|
+
ANNOTATION,
|
|
25
30
|
} from '../constants';
|
|
31
|
+
import {SendReactionOptions, ToggleReactionsOptions} from './request.type';
|
|
26
32
|
|
|
27
33
|
/**
|
|
28
34
|
* @class MeetingRequest
|
|
29
35
|
*/
|
|
30
36
|
export default class MeetingRequest extends StatelessWebexPlugin {
|
|
31
|
-
|
|
37
|
+
changeVideoLayoutDebounced: any;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Constructor
|
|
41
|
+
* @param {Object} attrs
|
|
42
|
+
* @param {Object} options
|
|
43
|
+
*/
|
|
44
|
+
constructor(attrs: any, options: any) {
|
|
32
45
|
super(attrs, options);
|
|
33
|
-
this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {
|
|
46
|
+
this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {
|
|
47
|
+
leading: true,
|
|
48
|
+
trailing: true,
|
|
49
|
+
});
|
|
34
50
|
}
|
|
35
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Returns joinCookie from boundedStorage if present.
|
|
54
|
+
* @returns {Object} joinCookie
|
|
55
|
+
*/
|
|
56
|
+
private getJoinCookie = async () => {
|
|
57
|
+
// @ts-ignore
|
|
58
|
+
const joinCookieRaw = await this.webex.boundedStorage
|
|
59
|
+
.get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)
|
|
60
|
+
.catch(() => {});
|
|
61
|
+
|
|
62
|
+
if (joinCookieRaw) {
|
|
63
|
+
try {
|
|
64
|
+
const joinCookie = JSON.parse(joinCookieRaw);
|
|
65
|
+
if (joinCookie) {
|
|
66
|
+
return joinCookie;
|
|
67
|
+
}
|
|
68
|
+
} catch (e) {
|
|
69
|
+
LoggerProxy.logger.error(
|
|
70
|
+
`MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return null;
|
|
76
|
+
};
|
|
77
|
+
|
|
36
78
|
/**
|
|
37
79
|
* Make a network request to join a meeting
|
|
38
80
|
* @param {Object} options
|
|
@@ -46,9 +88,29 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
46
88
|
* @param {boolean} options.pin
|
|
47
89
|
* @param {boolean} options.moveToResource
|
|
48
90
|
* @param {Object} options.roapMessage
|
|
91
|
+
* @param {boolean} options.breakoutsSupported
|
|
92
|
+
* @param {boolean} options.liveAnnotationSupported
|
|
49
93
|
* @returns {Promise}
|
|
50
94
|
*/
|
|
51
|
-
async joinMeeting(options
|
|
95
|
+
async joinMeeting(options: {
|
|
96
|
+
sipUri: string;
|
|
97
|
+
deviceUrl: string;
|
|
98
|
+
locusUrl: string;
|
|
99
|
+
resourceId: string;
|
|
100
|
+
correlationId: string;
|
|
101
|
+
ensureConversation: boolean;
|
|
102
|
+
moderator: boolean;
|
|
103
|
+
pin: boolean;
|
|
104
|
+
moveToResource: boolean;
|
|
105
|
+
roapMessage: any;
|
|
106
|
+
asResourceOccupant: any;
|
|
107
|
+
inviteeAddress: any;
|
|
108
|
+
meetingNumber: any;
|
|
109
|
+
permissionToken: any;
|
|
110
|
+
preferTranscoding: any;
|
|
111
|
+
breakoutsSupported: boolean;
|
|
112
|
+
liveAnnotationSupported: boolean;
|
|
113
|
+
}) {
|
|
52
114
|
const {
|
|
53
115
|
asResourceOccupant,
|
|
54
116
|
inviteeAddress,
|
|
@@ -63,36 +125,53 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
63
125
|
pin,
|
|
64
126
|
moveToResource,
|
|
65
127
|
roapMessage,
|
|
66
|
-
preferTranscoding
|
|
128
|
+
preferTranscoding,
|
|
129
|
+
breakoutsSupported,
|
|
130
|
+
liveAnnotationSupported,
|
|
67
131
|
} = options;
|
|
68
132
|
|
|
69
|
-
LoggerProxy.logger.info(
|
|
70
|
-
'Meeting:request#joinMeeting --> Joining a meeting',
|
|
71
|
-
correlationId
|
|
72
|
-
);
|
|
133
|
+
LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);
|
|
73
134
|
|
|
74
135
|
let url = '';
|
|
75
136
|
|
|
76
|
-
const
|
|
137
|
+
const joinCookie = await this.getJoinCookie();
|
|
138
|
+
|
|
139
|
+
const body: any = {
|
|
77
140
|
asResourceOccupant,
|
|
78
141
|
device: {
|
|
79
142
|
url: deviceUrl,
|
|
80
|
-
|
|
143
|
+
// @ts-ignore - config comes from registerPlugin
|
|
144
|
+
deviceType: this.config.meetings.deviceType,
|
|
81
145
|
},
|
|
82
146
|
usingResource: resourceId || null,
|
|
83
|
-
moveMediaToResource: resourceId && moveToResource || false,
|
|
147
|
+
moveMediaToResource: (resourceId && moveToResource) || false,
|
|
84
148
|
correlationId,
|
|
85
149
|
respOnlySdp: true,
|
|
86
150
|
allowMultiDevice: true,
|
|
87
151
|
ensureConversation: ensureConversation || false,
|
|
88
152
|
supportsNativeLobby: 1,
|
|
89
153
|
clientMediaPreferences: {
|
|
90
|
-
preferTranscoding: preferTranscoding ?? true
|
|
91
|
-
|
|
154
|
+
preferTranscoding: preferTranscoding ?? true,
|
|
155
|
+
joinCookie,
|
|
156
|
+
},
|
|
92
157
|
};
|
|
93
158
|
|
|
159
|
+
let deviceCapabilities = [];
|
|
160
|
+
if (breakoutsSupported) {
|
|
161
|
+
deviceCapabilities = [...deviceCapabilities, BREAKOUTS.BREAKOUTS_SUPPORTED];
|
|
162
|
+
}
|
|
163
|
+
if (liveAnnotationSupported) {
|
|
164
|
+
deviceCapabilities = [...deviceCapabilities, ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED];
|
|
165
|
+
}
|
|
166
|
+
if (deviceCapabilities.length > 0) {
|
|
167
|
+
body.deviceCapabilities = deviceCapabilities;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// @ts-ignore
|
|
94
171
|
if (this.webex.meetings.clientRegion) {
|
|
172
|
+
// @ts-ignore
|
|
95
173
|
body.device.countryCode = this.webex.meetings.clientRegion.countryCode;
|
|
174
|
+
// @ts-ignore
|
|
96
175
|
body.device.regionCode = this.webex.meetings.clientRegion.regionCode;
|
|
97
176
|
}
|
|
98
177
|
|
|
@@ -110,28 +189,29 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
110
189
|
|
|
111
190
|
if (locusUrl) {
|
|
112
191
|
url = `${locusUrl}/${PARTICIPANT}`;
|
|
113
|
-
}
|
|
114
|
-
else if (inviteeAddress || meetingNumber) {
|
|
192
|
+
} else if (inviteeAddress || meetingNumber) {
|
|
115
193
|
try {
|
|
194
|
+
// @ts-ignore
|
|
116
195
|
await this.webex.internal.services.waitForCatalog('postauth');
|
|
196
|
+
// @ts-ignore
|
|
117
197
|
url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;
|
|
118
198
|
body.invitee = {
|
|
119
|
-
address: inviteeAddress || `wbxmn:${meetingNumber}
|
|
199
|
+
address: inviteeAddress || `wbxmn:${meetingNumber}`,
|
|
120
200
|
};
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
201
|
+
} catch (e) {
|
|
202
|
+
LoggerProxy.logger.error(
|
|
203
|
+
`Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`
|
|
204
|
+
);
|
|
205
|
+
throw e;
|
|
125
206
|
}
|
|
126
207
|
}
|
|
127
208
|
|
|
128
|
-
|
|
129
209
|
// TODO: -- this will be resolved in SDK request
|
|
130
210
|
url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);
|
|
131
211
|
|
|
132
212
|
if (resourceId === inviteeAddress) {
|
|
133
213
|
body.callPreferences = {
|
|
134
|
-
requestedMedia: [_SLIDES_]
|
|
214
|
+
requestedMedia: [_SLIDES_],
|
|
135
215
|
};
|
|
136
216
|
}
|
|
137
217
|
|
|
@@ -139,10 +219,11 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
139
219
|
body.localMedias = roapMessage.localMedias;
|
|
140
220
|
}
|
|
141
221
|
|
|
222
|
+
/// @ts-ignore
|
|
142
223
|
return this.request({
|
|
143
224
|
method: HTTP_VERBS.POST,
|
|
144
225
|
uri: url,
|
|
145
|
-
body
|
|
226
|
+
body,
|
|
146
227
|
});
|
|
147
228
|
}
|
|
148
229
|
|
|
@@ -154,18 +235,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
154
235
|
* @returns {Promise}
|
|
155
236
|
* @private
|
|
156
237
|
*/
|
|
157
|
-
refreshCaptcha({
|
|
238
|
+
private refreshCaptcha({
|
|
158
239
|
captchaRefreshUrl,
|
|
159
|
-
captchaId
|
|
240
|
+
captchaId,
|
|
241
|
+
}: {
|
|
242
|
+
captchaRefreshUrl: string;
|
|
243
|
+
captchaId: string;
|
|
160
244
|
}) {
|
|
161
245
|
const body = {
|
|
162
|
-
captchaId
|
|
246
|
+
captchaId,
|
|
163
247
|
};
|
|
164
248
|
|
|
249
|
+
// @ts-ignore
|
|
165
250
|
return this.request({
|
|
166
251
|
method: HTTP_VERBS.POST,
|
|
167
252
|
uri: captchaRefreshUrl,
|
|
168
|
-
body
|
|
253
|
+
body,
|
|
169
254
|
}).catch((err) => {
|
|
170
255
|
LoggerProxy.logger.error(`Meeting:request#refreshCaptcha --> Error: ${err}`);
|
|
171
256
|
|
|
@@ -177,17 +262,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
177
262
|
* Make a network request to add a dial in device
|
|
178
263
|
* @param {Object} options
|
|
179
264
|
* @param {String} options.correlationId
|
|
180
|
-
* @param {String} options.
|
|
265
|
+
* @param {String} options.locusUrl url for the meeting
|
|
181
266
|
* @param {String} options.dialInUrl identifier for the to-be provisioned device
|
|
182
267
|
* @param {String} options.clientUrl identifier for the web device
|
|
183
268
|
* @returns {Promise}
|
|
184
269
|
* @private
|
|
185
270
|
*/
|
|
186
|
-
dialIn({
|
|
271
|
+
private dialIn({
|
|
187
272
|
locusUrl,
|
|
188
273
|
dialInUrl,
|
|
189
274
|
clientUrl,
|
|
190
|
-
correlationId
|
|
275
|
+
correlationId,
|
|
276
|
+
}: {
|
|
277
|
+
correlationId: string;
|
|
278
|
+
locusUrl: string;
|
|
279
|
+
dialInUrl: string;
|
|
280
|
+
clientUrl: string;
|
|
191
281
|
}) {
|
|
192
282
|
LoggerProxy.logger.info(
|
|
193
283
|
'Meeting:request#dialIn --> Provisioning a dial in device',
|
|
@@ -200,17 +290,20 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
200
290
|
deviceType: deviceType.PROVISIONAL,
|
|
201
291
|
provisionalType: PROVISIONAL_TYPE_DIAL_IN,
|
|
202
292
|
url: dialInUrl,
|
|
203
|
-
clientUrl
|
|
293
|
+
clientUrl,
|
|
204
294
|
},
|
|
205
|
-
correlationId
|
|
295
|
+
correlationId,
|
|
206
296
|
};
|
|
207
297
|
|
|
298
|
+
// @ts-ignore
|
|
208
299
|
return this.request({
|
|
209
300
|
method: HTTP_VERBS.POST,
|
|
210
301
|
uri,
|
|
211
|
-
body
|
|
302
|
+
body,
|
|
212
303
|
}).catch((err) => {
|
|
213
|
-
LoggerProxy.logger.error(
|
|
304
|
+
LoggerProxy.logger.error(
|
|
305
|
+
`Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`
|
|
306
|
+
);
|
|
214
307
|
|
|
215
308
|
throw err;
|
|
216
309
|
});
|
|
@@ -220,19 +313,25 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
220
313
|
* Make a network request to add a dial out device
|
|
221
314
|
* @param {Object} options
|
|
222
315
|
* @param {String} options.correlationId
|
|
223
|
-
* @param {String} options.
|
|
316
|
+
* @param {String} options.locusUrl url for the meeting
|
|
224
317
|
* @param {String} options.dialOutUrl identifier for the to-be provisioned device
|
|
225
318
|
* @param {String} options.phoneNumber phone number to dial out to
|
|
226
319
|
* @param {String} options.clientUrl identifier for the web device
|
|
227
320
|
* @returns {Promise}
|
|
228
321
|
* @private
|
|
229
322
|
*/
|
|
230
|
-
dialOut({
|
|
323
|
+
private dialOut({
|
|
231
324
|
locusUrl,
|
|
232
325
|
dialOutUrl,
|
|
233
326
|
phoneNumber,
|
|
234
327
|
clientUrl,
|
|
235
|
-
correlationId
|
|
328
|
+
correlationId,
|
|
329
|
+
}: {
|
|
330
|
+
correlationId: string;
|
|
331
|
+
locusUrl: string;
|
|
332
|
+
dialOutUrl: string;
|
|
333
|
+
phoneNumber: string;
|
|
334
|
+
clientUrl: string;
|
|
236
335
|
}) {
|
|
237
336
|
LoggerProxy.logger.info(
|
|
238
337
|
'Meeting:request#dialOut --> Provisioning a dial out device',
|
|
@@ -246,17 +345,20 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
246
345
|
provisionalType: PROVISIONAL_TYPE_DIAL_OUT,
|
|
247
346
|
url: dialOutUrl,
|
|
248
347
|
dialoutAddress: phoneNumber,
|
|
249
|
-
clientUrl
|
|
348
|
+
clientUrl,
|
|
250
349
|
},
|
|
251
|
-
correlationId
|
|
350
|
+
correlationId,
|
|
252
351
|
};
|
|
253
352
|
|
|
353
|
+
// @ts-ignore
|
|
254
354
|
return this.request({
|
|
255
355
|
method: HTTP_VERBS.POST,
|
|
256
356
|
uri,
|
|
257
|
-
body
|
|
357
|
+
body,
|
|
258
358
|
}).catch((err) => {
|
|
259
|
-
LoggerProxy.logger.error(
|
|
359
|
+
LoggerProxy.logger.error(
|
|
360
|
+
`Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`
|
|
361
|
+
);
|
|
260
362
|
|
|
261
363
|
throw err;
|
|
262
364
|
});
|
|
@@ -265,11 +367,11 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
265
367
|
/**
|
|
266
368
|
* Syns the missed delta event
|
|
267
369
|
* @param {Object} options
|
|
268
|
-
* @param {
|
|
370
|
+
* @param {boolean} options.desync flag to get partial or whole locus object
|
|
269
371
|
* @param {String} options.syncUrl sync url to get ht elatest locus delta
|
|
270
372
|
* @returns {Promise}
|
|
271
373
|
*/
|
|
272
|
-
syncMeeting(options) {
|
|
374
|
+
syncMeeting(options: {desync: boolean; syncUrl: string}) {
|
|
273
375
|
/* eslint-disable no-else-return */
|
|
274
376
|
const {desync} = options;
|
|
275
377
|
let {syncUrl} = options;
|
|
@@ -277,15 +379,20 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
277
379
|
/* istanbul ignore else */
|
|
278
380
|
if (desync) {
|
|
279
381
|
// check for existing URL parameters
|
|
280
|
-
syncUrl = syncUrl
|
|
382
|
+
syncUrl = syncUrl
|
|
383
|
+
.concat(syncUrl.split('?')[1] ? '&' : '?')
|
|
384
|
+
.concat(`${LOCUS.SYNCDEBUG}=${desync}`);
|
|
281
385
|
}
|
|
282
386
|
|
|
387
|
+
// @ts-ignore
|
|
283
388
|
return this.request({
|
|
284
389
|
method: HTTP_VERBS.GET,
|
|
285
|
-
uri: syncUrl
|
|
390
|
+
uri: syncUrl,
|
|
286
391
|
}) // TODO: Handle if delta sync failed . Get the full locus object
|
|
287
392
|
.catch((err) => {
|
|
288
|
-
LoggerProxy.logger.error(
|
|
393
|
+
LoggerProxy.logger.error(
|
|
394
|
+
`Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`
|
|
395
|
+
);
|
|
289
396
|
|
|
290
397
|
return err;
|
|
291
398
|
});
|
|
@@ -294,11 +401,11 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
294
401
|
/**
|
|
295
402
|
* Request to get the complete locus object
|
|
296
403
|
* @param {Object} options
|
|
297
|
-
* @param {
|
|
404
|
+
* @param {boolean} options.desync flag to get partial or whole locus object
|
|
298
405
|
* @param {String} options.locusUrl sync url to get ht elatest locus delta
|
|
299
406
|
* @returns {Promise}
|
|
300
407
|
*/
|
|
301
|
-
getFullLocus(options) {
|
|
408
|
+
getFullLocus(options: {desync: boolean; locusUrl: string}) {
|
|
302
409
|
let {locusUrl} = options;
|
|
303
410
|
const {desync} = options;
|
|
304
411
|
|
|
@@ -307,11 +414,14 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
307
414
|
locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;
|
|
308
415
|
}
|
|
309
416
|
|
|
417
|
+
// @ts-ignore
|
|
310
418
|
return this.request({
|
|
311
419
|
method: HTTP_VERBS.GET,
|
|
312
|
-
uri: locusUrl
|
|
420
|
+
uri: locusUrl,
|
|
313
421
|
}).catch((err) => {
|
|
314
|
-
LoggerProxy.logger.error(
|
|
422
|
+
LoggerProxy.logger.error(
|
|
423
|
+
`Meeting:request#getFullLocus --> Error getting full locus, error ${err}`
|
|
424
|
+
);
|
|
315
425
|
|
|
316
426
|
return err;
|
|
317
427
|
});
|
|
@@ -330,11 +440,16 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
330
440
|
* @returns {Promise}
|
|
331
441
|
* @private
|
|
332
442
|
*/
|
|
333
|
-
disconnectPhoneAudio({
|
|
443
|
+
private disconnectPhoneAudio({
|
|
334
444
|
locusUrl,
|
|
335
445
|
phoneUrl,
|
|
336
446
|
correlationId,
|
|
337
|
-
selfId
|
|
447
|
+
selfId,
|
|
448
|
+
}: {
|
|
449
|
+
locusUrl: string;
|
|
450
|
+
phoneUrl: string;
|
|
451
|
+
correlationId: string;
|
|
452
|
+
selfId: string;
|
|
338
453
|
}) {
|
|
339
454
|
LoggerProxy.logger.info(
|
|
340
455
|
`Meeting:request#disconnectPhoneAudio --> request phone ${phoneUrl} to leave`,
|
|
@@ -345,15 +460,16 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
345
460
|
const body = {
|
|
346
461
|
device: {
|
|
347
462
|
deviceType: deviceType.PROVISIONAL,
|
|
348
|
-
url: phoneUrl
|
|
463
|
+
url: phoneUrl,
|
|
349
464
|
},
|
|
350
|
-
correlationId
|
|
465
|
+
correlationId,
|
|
351
466
|
};
|
|
352
467
|
|
|
468
|
+
// @ts-ignore
|
|
353
469
|
return this.request({
|
|
354
470
|
method: HTTP_VERBS.PUT,
|
|
355
471
|
uri,
|
|
356
|
-
body
|
|
472
|
+
body,
|
|
357
473
|
}).catch((err) => {
|
|
358
474
|
LoggerProxy.logger.error(
|
|
359
475
|
`Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`
|
|
@@ -378,27 +494,32 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
378
494
|
selfId,
|
|
379
495
|
deviceUrl: url,
|
|
380
496
|
resourceId,
|
|
381
|
-
correlationId
|
|
497
|
+
correlationId,
|
|
498
|
+
}: {
|
|
499
|
+
locusUrl: string;
|
|
500
|
+
selfId: string;
|
|
501
|
+
deviceUrl: string;
|
|
502
|
+
resourceId: string;
|
|
503
|
+
correlationId: string;
|
|
382
504
|
}) {
|
|
383
|
-
LoggerProxy.logger.info(
|
|
384
|
-
'Meeting:request#leaveMeeting --> Leaving a meeting',
|
|
385
|
-
correlationId
|
|
386
|
-
);
|
|
505
|
+
LoggerProxy.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);
|
|
387
506
|
|
|
388
507
|
const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;
|
|
389
508
|
const body = {
|
|
390
509
|
device: {
|
|
510
|
+
// @ts-ignore
|
|
391
511
|
deviceType: this.config.meetings.deviceType,
|
|
392
|
-
url
|
|
512
|
+
url,
|
|
393
513
|
},
|
|
394
514
|
usingResource: resourceId || null,
|
|
395
|
-
correlationId
|
|
515
|
+
correlationId,
|
|
396
516
|
};
|
|
397
517
|
|
|
518
|
+
// @ts-ignore
|
|
398
519
|
return this.request({
|
|
399
520
|
method: HTTP_VERBS.PUT,
|
|
400
521
|
uri,
|
|
401
|
-
body
|
|
522
|
+
body,
|
|
402
523
|
});
|
|
403
524
|
}
|
|
404
525
|
|
|
@@ -410,44 +531,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
410
531
|
* @param {String} options.correlationId
|
|
411
532
|
* @returns {Promise}
|
|
412
533
|
*/
|
|
413
|
-
acknowledgeMeeting(options) {
|
|
534
|
+
acknowledgeMeeting(options: {locusUrl: string; deviceUrl: string; correlationId: string}) {
|
|
414
535
|
const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;
|
|
415
536
|
const body = {
|
|
416
537
|
device: {
|
|
538
|
+
// @ts-ignore
|
|
417
539
|
deviceType: this.config.meetings.deviceType,
|
|
418
|
-
url: options.deviceUrl
|
|
540
|
+
url: options.deviceUrl,
|
|
419
541
|
},
|
|
420
|
-
correlationId: options.correlationId
|
|
542
|
+
correlationId: options.correlationId,
|
|
421
543
|
};
|
|
422
544
|
|
|
545
|
+
// @ts-ignore
|
|
423
546
|
return this.request({
|
|
424
547
|
method: HTTP_VERBS.PUT,
|
|
425
548
|
uri,
|
|
426
|
-
body
|
|
427
|
-
});
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
/**
|
|
431
|
-
* Make a network request to acknowledge a meeting
|
|
432
|
-
* @param {Object} options
|
|
433
|
-
* @param {String} options.locusUrl
|
|
434
|
-
* @param {String} options.deviceUrl
|
|
435
|
-
* @param {String} options.id
|
|
436
|
-
* @returns {Promise}
|
|
437
|
-
*/
|
|
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
|
|
549
|
+
body,
|
|
451
550
|
});
|
|
452
551
|
}
|
|
453
552
|
|
|
@@ -455,14 +554,15 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
455
554
|
const uri = `${options.locusUrl}/${CONTROLS}`;
|
|
456
555
|
const body = {
|
|
457
556
|
lock: {
|
|
458
|
-
locked: options.lock
|
|
459
|
-
}
|
|
557
|
+
locked: options.lock,
|
|
558
|
+
},
|
|
460
559
|
};
|
|
461
560
|
|
|
561
|
+
// @ts-ignore
|
|
462
562
|
return this.request({
|
|
463
563
|
method: HTTP_VERBS.PATCH,
|
|
464
564
|
uri,
|
|
465
|
-
body
|
|
565
|
+
body,
|
|
466
566
|
});
|
|
467
567
|
}
|
|
468
568
|
|
|
@@ -474,20 +574,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
474
574
|
* @param {String} options.reason
|
|
475
575
|
* @returns {Promise}
|
|
476
576
|
*/
|
|
477
|
-
declineMeeting(options) {
|
|
577
|
+
declineMeeting(options: {locusUrl: string; deviceUrl: string; reason: string}) {
|
|
478
578
|
const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;
|
|
479
579
|
const body = {
|
|
480
580
|
device: {
|
|
581
|
+
// @ts-ignore
|
|
481
582
|
deviceType: this.config.meetings.deviceType,
|
|
482
|
-
url: options.deviceUrl
|
|
583
|
+
url: options.deviceUrl,
|
|
483
584
|
},
|
|
484
|
-
...(options.reason && {reason: options.reason})
|
|
585
|
+
...(options.reason && {reason: options.reason}),
|
|
485
586
|
};
|
|
486
587
|
|
|
588
|
+
// @ts-ignore
|
|
487
589
|
return this.request({
|
|
488
590
|
method: HTTP_VERBS.PUT,
|
|
489
591
|
uri,
|
|
490
|
-
body
|
|
592
|
+
body,
|
|
491
593
|
});
|
|
492
594
|
}
|
|
493
595
|
|
|
@@ -499,28 +601,41 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
499
601
|
* @param {String} options.deviceUrl Url of a device
|
|
500
602
|
* @param {String} options.resourceId Populated if you are paired to a device
|
|
501
603
|
* @param {String} options.localMedias local sdps
|
|
604
|
+
* @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)
|
|
502
605
|
* @returns {Promise}
|
|
503
606
|
*/
|
|
504
|
-
remoteAudioVideoToggle(
|
|
607
|
+
remoteAudioVideoToggle(
|
|
608
|
+
options:
|
|
609
|
+
| {
|
|
610
|
+
selfId: string;
|
|
611
|
+
locusUrl: string;
|
|
612
|
+
deviceUrl: string;
|
|
613
|
+
resourceId: string;
|
|
614
|
+
localMedias: string;
|
|
615
|
+
}
|
|
616
|
+
| any
|
|
617
|
+
) {
|
|
505
618
|
const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;
|
|
506
619
|
const body = {
|
|
507
620
|
device: {
|
|
621
|
+
// @ts-ignore
|
|
508
622
|
deviceType: this.config.meetings.deviceType,
|
|
509
|
-
url: options.deviceUrl
|
|
623
|
+
url: options.deviceUrl,
|
|
510
624
|
},
|
|
511
625
|
usingResource: options.resourceId || null,
|
|
512
626
|
correlationId: options.correlationId,
|
|
513
627
|
respOnlySdp: true,
|
|
514
628
|
localMedias: options.localMedias,
|
|
515
629
|
clientMediaPreferences: {
|
|
516
|
-
preferTranscoding: options.preferTranscoding ?? true
|
|
517
|
-
}
|
|
630
|
+
preferTranscoding: options.preferTranscoding ?? true,
|
|
631
|
+
},
|
|
518
632
|
};
|
|
519
633
|
|
|
634
|
+
// @ts-ignore
|
|
520
635
|
return this.request({
|
|
521
636
|
method: HTTP_VERBS.PUT,
|
|
522
637
|
uri,
|
|
523
|
-
body
|
|
638
|
+
body,
|
|
524
639
|
});
|
|
525
640
|
}
|
|
526
641
|
|
|
@@ -534,8 +649,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
534
649
|
* @param {String} options.uri floor grant uri
|
|
535
650
|
* @returns {Promise}
|
|
536
651
|
*/
|
|
537
|
-
changeMeetingFloor(
|
|
538
|
-
|
|
652
|
+
changeMeetingFloor(
|
|
653
|
+
options:
|
|
654
|
+
| {
|
|
655
|
+
disposition: string;
|
|
656
|
+
personUrl: string;
|
|
657
|
+
deviceUrl: string;
|
|
658
|
+
resourceId: string;
|
|
659
|
+
uri: string;
|
|
660
|
+
annotation: any;
|
|
661
|
+
}
|
|
662
|
+
| any
|
|
663
|
+
) {
|
|
664
|
+
let floorReq: any = {disposition: options.disposition};
|
|
539
665
|
|
|
540
666
|
/* istanbul ignore else */
|
|
541
667
|
if (options.disposition === FLOOR_ACTION.GRANTED) {
|
|
@@ -544,31 +670,36 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
544
670
|
url: options.personUrl,
|
|
545
671
|
devices: [
|
|
546
672
|
{
|
|
673
|
+
// @ts-ignore
|
|
547
674
|
deviceType: this.config.meetings.deviceType,
|
|
548
|
-
url: options.deviceUrl
|
|
549
|
-
}
|
|
550
|
-
]
|
|
675
|
+
url: options.deviceUrl,
|
|
676
|
+
},
|
|
677
|
+
],
|
|
551
678
|
},
|
|
552
679
|
disposition: options.disposition,
|
|
553
680
|
requester: {
|
|
554
|
-
url: options.personUrl
|
|
555
|
-
}
|
|
681
|
+
url: options.personUrl,
|
|
682
|
+
},
|
|
556
683
|
};
|
|
557
684
|
}
|
|
558
685
|
|
|
559
|
-
const body = {
|
|
686
|
+
const body: any = {
|
|
560
687
|
floor: floorReq,
|
|
561
|
-
resourceUrl: options.resourceUrl
|
|
688
|
+
resourceUrl: options.resourceUrl,
|
|
562
689
|
};
|
|
563
690
|
|
|
564
691
|
if (options?.resourceToken) {
|
|
565
692
|
body.resourceToken = options?.resourceToken;
|
|
566
693
|
}
|
|
694
|
+
if (options?.annotation) {
|
|
695
|
+
body.annotation = options?.annotation;
|
|
696
|
+
}
|
|
567
697
|
|
|
698
|
+
// @ts-ignore
|
|
568
699
|
return this.request({
|
|
569
700
|
uri: options.uri,
|
|
570
701
|
method: HTTP_VERBS.PUT,
|
|
571
|
-
body
|
|
702
|
+
body,
|
|
572
703
|
});
|
|
573
704
|
}
|
|
574
705
|
|
|
@@ -580,7 +711,8 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
580
711
|
* @param {String} options.tones a string of one or more DTMF tones to send
|
|
581
712
|
* @returns {Promise}
|
|
582
713
|
*/
|
|
583
|
-
sendDTMF({locusUrl, deviceUrl, tones}) {
|
|
714
|
+
sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {
|
|
715
|
+
// @ts-ignore
|
|
584
716
|
return this.request({
|
|
585
717
|
method: HTTP_VERBS.POST,
|
|
586
718
|
uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,
|
|
@@ -588,9 +720,9 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
588
720
|
deviceUrl,
|
|
589
721
|
dtmf: {
|
|
590
722
|
correlationId: uuid.v4(),
|
|
591
|
-
tones
|
|
592
|
-
}
|
|
593
|
-
}
|
|
723
|
+
tones,
|
|
724
|
+
},
|
|
725
|
+
},
|
|
594
726
|
});
|
|
595
727
|
}
|
|
596
728
|
|
|
@@ -613,29 +745,55 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
613
745
|
deviceUrl,
|
|
614
746
|
layoutType,
|
|
615
747
|
main,
|
|
616
|
-
content
|
|
748
|
+
content,
|
|
749
|
+
}: {
|
|
750
|
+
locusUrl: string;
|
|
751
|
+
deviceUrl: string;
|
|
752
|
+
layoutType: string;
|
|
753
|
+
main: {
|
|
754
|
+
width: number;
|
|
755
|
+
height: number;
|
|
756
|
+
};
|
|
757
|
+
content: {
|
|
758
|
+
width: number;
|
|
759
|
+
height: number;
|
|
760
|
+
};
|
|
617
761
|
}) {
|
|
618
762
|
// send main/content renderInfo only if both width and height are specified
|
|
619
763
|
if (main && (!main.width || !main.height)) {
|
|
620
|
-
return Promise.reject(
|
|
764
|
+
return Promise.reject(
|
|
765
|
+
new Error(
|
|
766
|
+
`Both width and height must be specified. One of them is missing for main: ${JSON.stringify(
|
|
767
|
+
main
|
|
768
|
+
)}`
|
|
769
|
+
)
|
|
770
|
+
);
|
|
621
771
|
}
|
|
622
772
|
|
|
623
773
|
if (content && (!content.width || !content.height)) {
|
|
624
|
-
return Promise.reject(
|
|
774
|
+
return Promise.reject(
|
|
775
|
+
new Error(
|
|
776
|
+
`Both width and height must be specified. One of them is missing for content: ${JSON.stringify(
|
|
777
|
+
content
|
|
778
|
+
)}`
|
|
779
|
+
)
|
|
780
|
+
);
|
|
625
781
|
}
|
|
626
782
|
|
|
627
|
-
const renderInfoMain =
|
|
628
|
-
const renderInfoContent =
|
|
783
|
+
const renderInfoMain = main ? {width: main.width, height: main.height} : undefined;
|
|
784
|
+
const renderInfoContent = content ? {width: content.width, height: content.height} : undefined;
|
|
629
785
|
|
|
630
|
-
const layoutParams =
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
786
|
+
const layoutParams =
|
|
787
|
+
renderInfoMain || renderInfoContent
|
|
788
|
+
? {
|
|
789
|
+
renderInfo: {
|
|
790
|
+
main: renderInfoMain,
|
|
791
|
+
content: renderInfoContent,
|
|
792
|
+
},
|
|
793
|
+
}
|
|
794
|
+
: undefined;
|
|
638
795
|
|
|
796
|
+
// @ts-ignore
|
|
639
797
|
return this.request({
|
|
640
798
|
method: HTTP_VERBS.PUT,
|
|
641
799
|
uri: `${locusUrl}/${CONTROLS}`,
|
|
@@ -643,9 +801,9 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
643
801
|
layout: {
|
|
644
802
|
deviceUrl,
|
|
645
803
|
type: layoutType,
|
|
646
|
-
layoutParams
|
|
647
|
-
}
|
|
648
|
-
}
|
|
804
|
+
layoutParams,
|
|
805
|
+
},
|
|
806
|
+
},
|
|
649
807
|
});
|
|
650
808
|
}
|
|
651
809
|
|
|
@@ -655,14 +813,13 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
655
813
|
* @param {Url} options.locusUrl
|
|
656
814
|
* @returns {Promise}
|
|
657
815
|
*/
|
|
658
|
-
endMeetingForAll({
|
|
659
|
-
locusUrl,
|
|
660
|
-
}) {
|
|
816
|
+
endMeetingForAll({locusUrl}: {locusUrl: string}) {
|
|
661
817
|
const uri = `${locusUrl}/${END}`;
|
|
662
818
|
|
|
819
|
+
// @ts-ignore
|
|
663
820
|
return this.request({
|
|
664
821
|
method: HTTP_VERBS.POST,
|
|
665
|
-
uri
|
|
822
|
+
uri,
|
|
666
823
|
});
|
|
667
824
|
}
|
|
668
825
|
|
|
@@ -672,12 +829,63 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
672
829
|
* @param {Url} options.keepAliveUrl
|
|
673
830
|
* @returns {Promise}
|
|
674
831
|
*/
|
|
675
|
-
keepAlive({
|
|
676
|
-
|
|
677
|
-
|
|
832
|
+
keepAlive({keepAliveUrl}: {keepAliveUrl: string}) {
|
|
833
|
+
// @ts-ignore
|
|
834
|
+
return this.request({
|
|
835
|
+
method: HTTP_VERBS.GET,
|
|
836
|
+
uri: keepAliveUrl,
|
|
837
|
+
});
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
/**
|
|
841
|
+
* Make a network request to send a reaction.
|
|
842
|
+
* @param {Object} options
|
|
843
|
+
* @param {Url} options.reactionChannelUrl
|
|
844
|
+
* @param {Reaction} options.reaction
|
|
845
|
+
* @param {string} options.senderID
|
|
846
|
+
* @returns {Promise}
|
|
847
|
+
*/
|
|
848
|
+
sendReaction({reactionChannelUrl, reaction, participantId}: SendReactionOptions) {
|
|
849
|
+
const uri = reactionChannelUrl;
|
|
850
|
+
|
|
851
|
+
// @ts-ignore
|
|
852
|
+
return this.request({
|
|
853
|
+
method: HTTP_VERBS.POST,
|
|
854
|
+
uri,
|
|
855
|
+
body: {
|
|
856
|
+
sender: {participantId},
|
|
857
|
+
reaction,
|
|
858
|
+
},
|
|
859
|
+
});
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
/**
|
|
863
|
+
* Make a network request to enable or disable reactions.
|
|
864
|
+
* @param {boolean} options.enable - determines if we need to enable or disable.
|
|
865
|
+
* @param {locusUrl} options.locusUrl
|
|
866
|
+
* @returns {Promise}
|
|
867
|
+
*/
|
|
868
|
+
toggleReactions({enable, locusUrl, requestingParticipantId}: ToggleReactionsOptions) {
|
|
869
|
+
const uri = `${locusUrl}/${CONTROLS}`;
|
|
870
|
+
|
|
871
|
+
// @ts-ignore
|
|
872
|
+
return this.request({
|
|
873
|
+
method: HTTP_VERBS.PUT,
|
|
874
|
+
uri,
|
|
875
|
+
body: {
|
|
876
|
+
reactions: {
|
|
877
|
+
enabled: enable,
|
|
878
|
+
},
|
|
879
|
+
requestingParticipantId,
|
|
880
|
+
},
|
|
881
|
+
});
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
getLocusStatusByUrl(locusUrl: string) {
|
|
885
|
+
// @ts-ignore
|
|
678
886
|
return this.request({
|
|
679
887
|
method: HTTP_VERBS.GET,
|
|
680
|
-
uri:
|
|
888
|
+
uri: locusUrl,
|
|
681
889
|
});
|
|
682
890
|
}
|
|
683
891
|
}
|