@webex/plugin-meetings 3.0.0-beta.14 → 3.0.0-beta.141
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 -1
- 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 +355 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +193 -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 +1012 -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 +5 -26
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +5 -26
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +6 -27
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +5 -26
- 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 +5 -26
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +4 -25
- 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 +5 -26
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +5 -26
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +6 -41
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -24
- 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 +35 -61
- 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 +6 -6
- package/dist/config.js.map +1 -1
- package/dist/constants.js +204 -53
- 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 +300 -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 +100 -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 +398 -216
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +0 -38
- 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 +89 -124
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +94 -92
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +55 -165
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +71 -117
- 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 +77 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2576 -2455
- 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 +292 -138
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +296 -342
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +0 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +463 -583
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +10 -33
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +305 -286
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -16
- 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 +24 -20
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +692 -593
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +23 -42
- 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 +89 -88
- 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 +101 -69
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +12 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +166 -205
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +120 -85
- 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/config.js +50 -16
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +4 -7
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +93 -162
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +170 -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 +74 -93
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +55 -74
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +14 -40
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +481 -442
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +32 -59
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +10 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -33
- 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 +190 -199
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +14 -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 +2 -4
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +19 -23
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +326 -465
- 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 +31 -75
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +129 -136
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +143 -103
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +1 -95
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +369 -462
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +144 -94
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +13 -45
- package/dist/transcription/index.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +35 -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 +994 -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/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 +147 -0
- package/dist/types/meeting/index.d.ts +1762 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
- package/dist/types/meeting/muteState.d.ts +186 -0
- package/dist/types/meeting/request.d.ts +269 -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 +76 -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 +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 +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 +157 -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 +114 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +210 -0
- package/dist/types/metrics/config.d.ts +195 -0
- package/dist/types/metrics/constants.d.ts +55 -0
- package/dist/types/metrics/index.d.ts +169 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +104 -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 +48 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +267 -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 +36 -0
- package/dist/types/roap/turnDiscovery.d.ts +91 -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 +28 -21
- package/src/annotation/annotation.types.ts +42 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +339 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +163 -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 +888 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/browser-detection.ts +9 -6
- package/src/common/collection.ts +3 -1
- package/src/common/errors/captcha-error.ts +6 -6
- package/src/common/errors/intent-to-join.ts +6 -6
- package/src/common/errors/join-meeting.ts +12 -8
- package/src/common/errors/media.ts +6 -6
- package/src/common/errors/parameter.ts +9 -6
- package/src/common/errors/password-error.ts +6 -6
- package/src/common/errors/permission.ts +5 -5
- package/src/common/errors/reconnection.ts +6 -6
- package/src/common/errors/stats.ts +6 -6
- package/src/common/errors/webex-errors.ts +7 -5
- package/src/common/errors/webex-meetings-error.ts +1 -1
- package/src/common/events/events-scope.ts +5 -1
- package/src/common/events/events.ts +5 -1
- package/src/common/events/trigger-proxy.ts +8 -3
- package/src/common/events/util.ts +1 -2
- package/src/common/logs/logger-proxy.ts +22 -11
- package/src/common/logs/request.ts +11 -8
- package/src/config.ts +16 -12
- package/src/constants.ts +154 -7
- 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 +286 -0
- package/src/index.ts +33 -0
- package/src/locus-info/controlsUtils.ts +142 -24
- package/src/locus-info/fullState.ts +15 -11
- package/src/locus-info/hostUtils.ts +4 -3
- package/src/locus-info/index.ts +335 -55
- package/src/locus-info/infoUtils.ts +12 -4
- package/src/locus-info/mediaSharesUtils.ts +52 -4
- package/src/locus-info/parser.ts +47 -69
- package/src/locus-info/selfUtils.ts +175 -56
- package/src/media/index.ts +139 -196
- package/src/media/properties.ts +43 -36
- package/src/media/util.ts +1 -1
- package/src/mediaQualityMetrics/config.ts +380 -378
- package/src/meeting/in-meeting-actions.ts +159 -3
- package/src/meeting/index.ts +2809 -1589
- package/src/meeting/locusMediaRequest.ts +309 -0
- package/src/meeting/muteState.ts +290 -72
- package/src/meeting/request.ts +229 -182
- package/src/meeting/request.type.ts +10 -8
- package/src/meeting/state.ts +45 -30
- package/src/meeting/util.ts +445 -395
- package/src/meeting-info/collection.ts +2 -1
- package/src/meeting-info/index.ts +32 -30
- package/src/meeting-info/meeting-info-v2.ts +235 -116
- package/src/meeting-info/request.ts +9 -3
- package/src/meeting-info/util.ts +54 -46
- package/src/meeting-info/utilv2.ts +71 -55
- package/src/meetings/collection.ts +21 -1
- package/src/meetings/index.ts +771 -437
- package/src/meetings/request.ts +29 -25
- package/src/meetings/util.ts +132 -33
- package/src/member/index.ts +95 -49
- package/src/member/types.ts +24 -0
- package/src/member/util.ts +106 -13
- package/src/members/collection.ts +8 -1
- package/src/members/index.ts +288 -130
- package/src/members/request.ts +144 -31
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +316 -235
- package/src/metrics/config.ts +302 -90
- package/src/metrics/constants.ts +2 -6
- package/src/metrics/index.ts +124 -95
- package/src/multistream/mediaRequestManager.ts +210 -45
- package/src/multistream/receiveSlot.ts +69 -26
- package/src/multistream/receiveSlotManager.ts +62 -38
- package/src/multistream/remoteMedia.ts +30 -4
- package/src/multistream/remoteMediaGroup.ts +11 -3
- package/src/multistream/remoteMediaManager.ts +245 -66
- package/src/networkQualityMonitor/index.ts +24 -27
- package/src/personal-meeting-room/index.ts +12 -16
- package/src/personal-meeting-room/request.ts +10 -3
- package/src/personal-meeting-room/util.ts +3 -3
- package/src/reachability/index.ts +131 -79
- package/src/reachability/request.ts +43 -34
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +8 -8
- package/src/reactions/reactions.type.ts +31 -5
- package/src/reconnection-manager/index.ts +193 -112
- 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 +53 -53
- package/src/roap/request.ts +77 -65
- package/src/roap/turnDiscovery.ts +101 -48
- package/src/statsAnalyzer/global.ts +8 -104
- package/src/statsAnalyzer/index.ts +624 -377
- package/src/statsAnalyzer/mqaUtil.ts +203 -90
- package/src/transcription/index.ts +34 -32
- package/test/integration/spec/converged-space-meetings.js +177 -0
- package/test/integration/spec/journey.js +670 -466
- package/test/integration/spec/space-meeting.js +320 -204
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/annotation/index.ts +433 -0
- package/test/unit/spec/breakouts/breakout.ts +203 -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 +1685 -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 +518 -0
- package/test/unit/spec/fixture/locus.js +93 -90
- package/test/unit/spec/locus-info/controlsUtils.js +305 -32
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +615 -5
- package/test/unit/spec/locus-info/infoUtils.js +26 -33
- 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 +3 -9
- package/test/unit/spec/locus-info/selfConstant.js +110 -103
- package/test/unit/spec/locus-info/selfUtils.js +221 -12
- package/test/unit/spec/media/index.ts +104 -8
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +76 -3
- package/test/unit/spec/meeting/index.js +3077 -923
- package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
- package/test/unit/spec/meeting/muteState.js +421 -94
- package/test/unit/spec/meeting/request.js +408 -85
- package/test/unit/spec/meeting/utils.js +326 -189
- 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 +1126 -328
- package/test/unit/spec/meetings/utils.js +220 -14
- package/test/unit/spec/member/index.js +24 -1
- package/test/unit/spec/member/util.js +383 -32
- package/test/unit/spec/members/index.js +424 -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 +113 -20
- package/test/unit/spec/multistream/mediaRequestManager.ts +676 -105
- package/test/unit/spec/multistream/receiveSlot.ts +76 -17
- package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
- package/test/unit/spec/multistream/remoteMedia.ts +32 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +52 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +585 -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 +62 -31
- 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 +19 -49
- package/test/unit/spec/roap/request.ts +187 -0
- package/test/unit/spec/roap/turnDiscovery.ts +92 -50
- 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 +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/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 -334
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -116
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/src/index.js +0 -15
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/meeting/effectsState.ts +0 -211
- package/src/multistream/multistreamMedia.ts +0 -92
- package/test/unit/spec/meeting/effectsState.js +0 -291
package/src/meeting/request.ts
CHANGED
|
@@ -9,6 +9,7 @@ import LoggerProxy from '../common/logs/logger-proxy';
|
|
|
9
9
|
import {
|
|
10
10
|
ALERT,
|
|
11
11
|
ALTERNATE_REDIRECT_TRUE,
|
|
12
|
+
BREAKOUTS,
|
|
12
13
|
CALL,
|
|
13
14
|
CONTROLS,
|
|
14
15
|
DECLINE,
|
|
@@ -18,27 +19,69 @@ import {
|
|
|
18
19
|
LEAVE,
|
|
19
20
|
LOCI,
|
|
20
21
|
LOCUS,
|
|
21
|
-
MEDIA,
|
|
22
22
|
PARTICIPANT,
|
|
23
23
|
PROVISIONAL_TYPE_DIAL_IN,
|
|
24
24
|
PROVISIONAL_TYPE_DIAL_OUT,
|
|
25
|
+
REACHABILITY,
|
|
25
26
|
SEND_DTMF_ENDPOINT,
|
|
26
|
-
_SLIDES_
|
|
27
|
+
_SLIDES_,
|
|
28
|
+
ANNOTATION,
|
|
27
29
|
} from '../constants';
|
|
28
|
-
import {Reaction} from '../reactions/reactions.type';
|
|
29
30
|
import {SendReactionOptions, ToggleReactionsOptions} from './request.type';
|
|
31
|
+
import MeetingUtil from './util';
|
|
30
32
|
|
|
31
33
|
/**
|
|
32
34
|
* @class MeetingRequest
|
|
33
35
|
*/
|
|
34
36
|
export default class MeetingRequest extends StatelessWebexPlugin {
|
|
35
37
|
changeVideoLayoutDebounced: any;
|
|
38
|
+
meetingRef: WeakRef<any>;
|
|
39
|
+
locusDeltaRequest: (options: object) => Promise<any>;
|
|
36
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Constructor
|
|
43
|
+
* @param {Object} attrs
|
|
44
|
+
* @param {Object} options
|
|
45
|
+
*/
|
|
37
46
|
constructor(attrs: any, options: any) {
|
|
38
|
-
|
|
39
|
-
|
|
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
|
+
});
|
|
40
57
|
}
|
|
41
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
|
+
|
|
42
85
|
/**
|
|
43
86
|
* Make a network request to join a meeting
|
|
44
87
|
* @param {Object} options
|
|
@@ -52,6 +95,10 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
52
95
|
* @param {boolean} options.pin
|
|
53
96
|
* @param {boolean} options.moveToResource
|
|
54
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
|
|
55
102
|
* @returns {Promise}
|
|
56
103
|
*/
|
|
57
104
|
async joinMeeting(options: {
|
|
@@ -70,6 +117,10 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
70
117
|
meetingNumber: any;
|
|
71
118
|
permissionToken: any;
|
|
72
119
|
preferTranscoding: any;
|
|
120
|
+
breakoutsSupported: boolean;
|
|
121
|
+
locale?: string;
|
|
122
|
+
deviceCapabilities?: Array<string>;
|
|
123
|
+
liveAnnotationSupported: boolean;
|
|
73
124
|
}) {
|
|
74
125
|
const {
|
|
75
126
|
asResourceOccupant,
|
|
@@ -85,35 +136,54 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
85
136
|
pin,
|
|
86
137
|
moveToResource,
|
|
87
138
|
roapMessage,
|
|
88
|
-
preferTranscoding
|
|
139
|
+
preferTranscoding,
|
|
140
|
+
breakoutsSupported,
|
|
141
|
+
locale,
|
|
142
|
+
deviceCapabilities = [],
|
|
143
|
+
liveAnnotationSupported,
|
|
89
144
|
} = options;
|
|
90
145
|
|
|
91
|
-
LoggerProxy.logger.info(
|
|
92
|
-
'Meeting:request#joinMeeting --> Joining a meeting',
|
|
93
|
-
correlationId
|
|
94
|
-
);
|
|
146
|
+
LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);
|
|
95
147
|
|
|
96
148
|
let url = '';
|
|
97
149
|
|
|
150
|
+
const joinCookie = await this.getJoinCookie();
|
|
151
|
+
|
|
98
152
|
const body: any = {
|
|
99
153
|
asResourceOccupant,
|
|
100
154
|
device: {
|
|
101
155
|
url: deviceUrl,
|
|
102
156
|
// @ts-ignore - config comes from registerPlugin
|
|
103
|
-
deviceType: this.config.meetings.deviceType
|
|
157
|
+
deviceType: this.config.meetings.deviceType,
|
|
104
158
|
},
|
|
105
159
|
usingResource: resourceId || null,
|
|
106
|
-
moveMediaToResource: resourceId && moveToResource || false,
|
|
160
|
+
moveMediaToResource: (resourceId && moveToResource) || false,
|
|
107
161
|
correlationId,
|
|
108
162
|
respOnlySdp: true,
|
|
109
163
|
allowMultiDevice: true,
|
|
110
164
|
ensureConversation: ensureConversation || false,
|
|
111
165
|
supportsNativeLobby: 1,
|
|
112
166
|
clientMediaPreferences: {
|
|
113
|
-
preferTranscoding: preferTranscoding ?? true
|
|
114
|
-
|
|
167
|
+
preferTranscoding: preferTranscoding ?? true,
|
|
168
|
+
joinCookie,
|
|
169
|
+
},
|
|
115
170
|
};
|
|
116
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
|
+
}
|
|
117
187
|
// @ts-ignore
|
|
118
188
|
if (this.webex.meetings.clientRegion) {
|
|
119
189
|
// @ts-ignore
|
|
@@ -136,30 +206,29 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
136
206
|
|
|
137
207
|
if (locusUrl) {
|
|
138
208
|
url = `${locusUrl}/${PARTICIPANT}`;
|
|
139
|
-
}
|
|
140
|
-
else if (inviteeAddress || meetingNumber) {
|
|
209
|
+
} else if (inviteeAddress || meetingNumber) {
|
|
141
210
|
try {
|
|
142
211
|
// @ts-ignore
|
|
143
212
|
await this.webex.internal.services.waitForCatalog('postauth');
|
|
144
213
|
// @ts-ignore
|
|
145
214
|
url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;
|
|
146
215
|
body.invitee = {
|
|
147
|
-
address: inviteeAddress || `wbxmn:${meetingNumber}
|
|
216
|
+
address: inviteeAddress || `wbxmn:${meetingNumber}`,
|
|
148
217
|
};
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
218
|
+
} catch (e) {
|
|
219
|
+
LoggerProxy.logger.error(
|
|
220
|
+
`Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`
|
|
221
|
+
);
|
|
222
|
+
throw e;
|
|
153
223
|
}
|
|
154
224
|
}
|
|
155
225
|
|
|
156
|
-
|
|
157
226
|
// TODO: -- this will be resolved in SDK request
|
|
158
227
|
url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);
|
|
159
228
|
|
|
160
229
|
if (resourceId === inviteeAddress) {
|
|
161
230
|
body.callPreferences = {
|
|
162
|
-
requestedMedia: [_SLIDES_]
|
|
231
|
+
requestedMedia: [_SLIDES_],
|
|
163
232
|
};
|
|
164
233
|
}
|
|
165
234
|
|
|
@@ -171,7 +240,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
171
240
|
return this.request({
|
|
172
241
|
method: HTTP_VERBS.POST,
|
|
173
242
|
uri: url,
|
|
174
|
-
body
|
|
243
|
+
body,
|
|
175
244
|
});
|
|
176
245
|
}
|
|
177
246
|
|
|
@@ -183,16 +252,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
183
252
|
* @returns {Promise}
|
|
184
253
|
* @private
|
|
185
254
|
*/
|
|
186
|
-
private refreshCaptcha({
|
|
255
|
+
private refreshCaptcha({
|
|
256
|
+
captchaRefreshUrl,
|
|
257
|
+
captchaId,
|
|
258
|
+
}: {
|
|
259
|
+
captchaRefreshUrl: string;
|
|
260
|
+
captchaId: string;
|
|
261
|
+
}) {
|
|
187
262
|
const body = {
|
|
188
|
-
captchaId
|
|
263
|
+
captchaId,
|
|
189
264
|
};
|
|
190
265
|
|
|
191
266
|
// @ts-ignore
|
|
192
267
|
return this.request({
|
|
193
268
|
method: HTTP_VERBS.POST,
|
|
194
269
|
uri: captchaRefreshUrl,
|
|
195
|
-
body
|
|
270
|
+
body,
|
|
196
271
|
}).catch((err) => {
|
|
197
272
|
LoggerProxy.logger.error(`Meeting:request#refreshCaptcha --> Error: ${err}`);
|
|
198
273
|
|
|
@@ -232,18 +307,20 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
232
307
|
deviceType: deviceType.PROVISIONAL,
|
|
233
308
|
provisionalType: PROVISIONAL_TYPE_DIAL_IN,
|
|
234
309
|
url: dialInUrl,
|
|
235
|
-
clientUrl
|
|
310
|
+
clientUrl,
|
|
236
311
|
},
|
|
237
|
-
correlationId
|
|
312
|
+
correlationId,
|
|
238
313
|
};
|
|
239
314
|
|
|
240
315
|
// @ts-ignore
|
|
241
|
-
return this.
|
|
316
|
+
return this.locusDeltaRequest({
|
|
242
317
|
method: HTTP_VERBS.POST,
|
|
243
318
|
uri,
|
|
244
|
-
body
|
|
319
|
+
body,
|
|
245
320
|
}).catch((err) => {
|
|
246
|
-
LoggerProxy.logger.error(
|
|
321
|
+
LoggerProxy.logger.error(
|
|
322
|
+
`Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`
|
|
323
|
+
);
|
|
247
324
|
|
|
248
325
|
throw err;
|
|
249
326
|
});
|
|
@@ -285,18 +362,20 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
285
362
|
provisionalType: PROVISIONAL_TYPE_DIAL_OUT,
|
|
286
363
|
url: dialOutUrl,
|
|
287
364
|
dialoutAddress: phoneNumber,
|
|
288
|
-
clientUrl
|
|
365
|
+
clientUrl,
|
|
289
366
|
},
|
|
290
|
-
correlationId
|
|
367
|
+
correlationId,
|
|
291
368
|
};
|
|
292
369
|
|
|
293
370
|
// @ts-ignore
|
|
294
|
-
return this.
|
|
371
|
+
return this.locusDeltaRequest({
|
|
295
372
|
method: HTTP_VERBS.POST,
|
|
296
373
|
uri,
|
|
297
|
-
body
|
|
374
|
+
body,
|
|
298
375
|
}).catch((err) => {
|
|
299
|
-
LoggerProxy.logger.error(
|
|
376
|
+
LoggerProxy.logger.error(
|
|
377
|
+
`Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`
|
|
378
|
+
);
|
|
300
379
|
|
|
301
380
|
throw err;
|
|
302
381
|
});
|
|
@@ -309,7 +388,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
309
388
|
* @param {String} options.syncUrl sync url to get ht elatest locus delta
|
|
310
389
|
* @returns {Promise}
|
|
311
390
|
*/
|
|
312
|
-
syncMeeting(options: {
|
|
391
|
+
syncMeeting(options: {desync: boolean; syncUrl: string}) {
|
|
313
392
|
/* eslint-disable no-else-return */
|
|
314
393
|
const {desync} = options;
|
|
315
394
|
let {syncUrl} = options;
|
|
@@ -317,16 +396,20 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
317
396
|
/* istanbul ignore else */
|
|
318
397
|
if (desync) {
|
|
319
398
|
// check for existing URL parameters
|
|
320
|
-
syncUrl = syncUrl
|
|
399
|
+
syncUrl = syncUrl
|
|
400
|
+
.concat(syncUrl.split('?')[1] ? '&' : '?')
|
|
401
|
+
.concat(`${LOCUS.SYNCDEBUG}=${desync}`);
|
|
321
402
|
}
|
|
322
403
|
|
|
323
404
|
// @ts-ignore
|
|
324
405
|
return this.request({
|
|
325
406
|
method: HTTP_VERBS.GET,
|
|
326
|
-
uri: syncUrl
|
|
407
|
+
uri: syncUrl,
|
|
327
408
|
}) // TODO: Handle if delta sync failed . Get the full locus object
|
|
328
409
|
.catch((err) => {
|
|
329
|
-
LoggerProxy.logger.error(
|
|
410
|
+
LoggerProxy.logger.error(
|
|
411
|
+
`Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`
|
|
412
|
+
);
|
|
330
413
|
|
|
331
414
|
return err;
|
|
332
415
|
});
|
|
@@ -339,7 +422,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
339
422
|
* @param {String} options.locusUrl sync url to get ht elatest locus delta
|
|
340
423
|
* @returns {Promise}
|
|
341
424
|
*/
|
|
342
|
-
getFullLocus(options: {
|
|
425
|
+
getFullLocus(options: {desync: boolean; locusUrl: string}) {
|
|
343
426
|
let {locusUrl} = options;
|
|
344
427
|
const {desync} = options;
|
|
345
428
|
|
|
@@ -351,9 +434,11 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
351
434
|
// @ts-ignore
|
|
352
435
|
return this.request({
|
|
353
436
|
method: HTTP_VERBS.GET,
|
|
354
|
-
uri: locusUrl
|
|
437
|
+
uri: locusUrl,
|
|
355
438
|
}).catch((err) => {
|
|
356
|
-
LoggerProxy.logger.error(
|
|
439
|
+
LoggerProxy.logger.error(
|
|
440
|
+
`Meeting:request#getFullLocus --> Error getting full locus, error ${err}`
|
|
441
|
+
);
|
|
357
442
|
|
|
358
443
|
return err;
|
|
359
444
|
});
|
|
@@ -392,16 +477,16 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
392
477
|
const body = {
|
|
393
478
|
device: {
|
|
394
479
|
deviceType: deviceType.PROVISIONAL,
|
|
395
|
-
url: phoneUrl
|
|
480
|
+
url: phoneUrl,
|
|
396
481
|
},
|
|
397
|
-
correlationId
|
|
482
|
+
correlationId,
|
|
398
483
|
};
|
|
399
484
|
|
|
400
485
|
// @ts-ignore
|
|
401
|
-
return this.
|
|
486
|
+
return this.locusDeltaRequest({
|
|
402
487
|
method: HTTP_VERBS.PUT,
|
|
403
488
|
uri,
|
|
404
|
-
body
|
|
489
|
+
body,
|
|
405
490
|
}).catch((err) => {
|
|
406
491
|
LoggerProxy.logger.error(
|
|
407
492
|
`Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`
|
|
@@ -434,27 +519,23 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
434
519
|
resourceId: string;
|
|
435
520
|
correlationId: string;
|
|
436
521
|
}) {
|
|
437
|
-
LoggerProxy.logger.info(
|
|
438
|
-
'Meeting:request#leaveMeeting --> Leaving a meeting',
|
|
439
|
-
correlationId
|
|
440
|
-
);
|
|
522
|
+
LoggerProxy.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);
|
|
441
523
|
|
|
442
524
|
const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;
|
|
443
525
|
const body = {
|
|
444
526
|
device: {
|
|
445
527
|
// @ts-ignore
|
|
446
528
|
deviceType: this.config.meetings.deviceType,
|
|
447
|
-
url
|
|
529
|
+
url,
|
|
448
530
|
},
|
|
449
531
|
usingResource: resourceId || null,
|
|
450
|
-
correlationId
|
|
532
|
+
correlationId,
|
|
451
533
|
};
|
|
452
534
|
|
|
453
|
-
|
|
454
|
-
return this.request({
|
|
535
|
+
return this.locusDeltaRequest({
|
|
455
536
|
method: HTTP_VERBS.PUT,
|
|
456
537
|
uri,
|
|
457
|
-
body
|
|
538
|
+
body,
|
|
458
539
|
});
|
|
459
540
|
}
|
|
460
541
|
|
|
@@ -466,63 +547,42 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
466
547
|
* @param {String} options.correlationId
|
|
467
548
|
* @returns {Promise}
|
|
468
549
|
*/
|
|
469
|
-
acknowledgeMeeting(options: {
|
|
550
|
+
acknowledgeMeeting(options: {locusUrl: string; deviceUrl: string; correlationId: string}) {
|
|
470
551
|
const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;
|
|
471
552
|
const body = {
|
|
472
553
|
device: {
|
|
473
554
|
// @ts-ignore
|
|
474
555
|
deviceType: this.config.meetings.deviceType,
|
|
475
|
-
url: options.deviceUrl
|
|
556
|
+
url: options.deviceUrl,
|
|
476
557
|
},
|
|
477
|
-
correlationId: options.correlationId
|
|
558
|
+
correlationId: options.correlationId,
|
|
478
559
|
};
|
|
479
560
|
|
|
480
|
-
|
|
481
|
-
return this.request({
|
|
561
|
+
return this.locusDeltaRequest({
|
|
482
562
|
method: HTTP_VERBS.PUT,
|
|
483
563
|
uri,
|
|
484
|
-
body
|
|
564
|
+
body,
|
|
485
565
|
});
|
|
486
566
|
}
|
|
487
567
|
|
|
488
568
|
/**
|
|
489
|
-
*
|
|
569
|
+
* Makes a network request to lock the meeting
|
|
490
570
|
* @param {Object} options
|
|
491
|
-
* @param {
|
|
492
|
-
* @param {String} options.deviceUrl
|
|
493
|
-
* @param {String} options.id
|
|
571
|
+
* @param {Boolean} options.lock Whether it is locked or not
|
|
494
572
|
* @returns {Promise}
|
|
495
573
|
*/
|
|
496
|
-
recordMeeting(options: { locusUrl: string; deviceUrl: string; id: string, recording: any, paused: any }) {
|
|
497
|
-
const uri = `${options.locusUrl}/${CONTROLS}`;
|
|
498
|
-
const body = {
|
|
499
|
-
record: {
|
|
500
|
-
recording: options.recording,
|
|
501
|
-
paused: options.paused
|
|
502
|
-
}
|
|
503
|
-
};
|
|
504
|
-
|
|
505
|
-
// @ts-ignore
|
|
506
|
-
return this.request({
|
|
507
|
-
method: HTTP_VERBS.PATCH,
|
|
508
|
-
uri,
|
|
509
|
-
body
|
|
510
|
-
});
|
|
511
|
-
}
|
|
512
|
-
|
|
513
574
|
lockMeeting(options) {
|
|
514
575
|
const uri = `${options.locusUrl}/${CONTROLS}`;
|
|
515
576
|
const body = {
|
|
516
577
|
lock: {
|
|
517
|
-
locked: options.lock
|
|
518
|
-
}
|
|
578
|
+
locked: options.lock,
|
|
579
|
+
},
|
|
519
580
|
};
|
|
520
581
|
|
|
521
|
-
|
|
522
|
-
return this.request({
|
|
582
|
+
return this.locusDeltaRequest({
|
|
523
583
|
method: HTTP_VERBS.PATCH,
|
|
524
584
|
uri,
|
|
525
|
-
body
|
|
585
|
+
body,
|
|
526
586
|
});
|
|
527
587
|
}
|
|
528
588
|
|
|
@@ -534,64 +594,21 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
534
594
|
* @param {String} options.reason
|
|
535
595
|
* @returns {Promise}
|
|
536
596
|
*/
|
|
537
|
-
declineMeeting(options: {
|
|
597
|
+
declineMeeting(options: {locusUrl: string; deviceUrl: string; reason: string}) {
|
|
538
598
|
const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;
|
|
539
599
|
const body = {
|
|
540
600
|
device: {
|
|
541
601
|
// @ts-ignore
|
|
542
602
|
deviceType: this.config.meetings.deviceType,
|
|
543
|
-
url: options.deviceUrl
|
|
603
|
+
url: options.deviceUrl,
|
|
544
604
|
},
|
|
545
605
|
...(options.reason && {reason: options.reason}),
|
|
546
606
|
};
|
|
547
607
|
|
|
548
|
-
|
|
549
|
-
return this.request({
|
|
550
|
-
method: HTTP_VERBS.PUT,
|
|
551
|
-
uri,
|
|
552
|
-
body
|
|
553
|
-
});
|
|
554
|
-
}
|
|
555
|
-
|
|
556
|
-
/**
|
|
557
|
-
* Toggle remote audio and/or video
|
|
558
|
-
* @param {Object} options options for toggling
|
|
559
|
-
* @param {String} options.selfId Locus self id??
|
|
560
|
-
* @param {String} options.locusUrl Locus url
|
|
561
|
-
* @param {String} options.deviceUrl Url of a device
|
|
562
|
-
* @param {String} options.resourceId Populated if you are paired to a device
|
|
563
|
-
* @param {String} options.localMedias local sdps
|
|
564
|
-
* @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)
|
|
565
|
-
* @returns {Promise}
|
|
566
|
-
*/
|
|
567
|
-
remoteAudioVideoToggle(options: {
|
|
568
|
-
selfId: string;
|
|
569
|
-
locusUrl: string;
|
|
570
|
-
deviceUrl: string;
|
|
571
|
-
resourceId: string;
|
|
572
|
-
localMedias: string;
|
|
573
|
-
} | any) {
|
|
574
|
-
const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;
|
|
575
|
-
const body = {
|
|
576
|
-
device: {
|
|
577
|
-
// @ts-ignore
|
|
578
|
-
deviceType: this.config.meetings.deviceType,
|
|
579
|
-
url: options.deviceUrl
|
|
580
|
-
},
|
|
581
|
-
usingResource: options.resourceId || null,
|
|
582
|
-
correlationId: options.correlationId,
|
|
583
|
-
respOnlySdp: true,
|
|
584
|
-
localMedias: options.localMedias,
|
|
585
|
-
clientMediaPreferences: {
|
|
586
|
-
preferTranscoding: options.preferTranscoding ?? true
|
|
587
|
-
}
|
|
588
|
-
};
|
|
589
|
-
|
|
590
|
-
// @ts-ignore
|
|
591
|
-
return this.request({
|
|
608
|
+
return this.locusDeltaRequest({
|
|
592
609
|
method: HTTP_VERBS.PUT,
|
|
593
610
|
uri,
|
|
594
|
-
body
|
|
611
|
+
body,
|
|
595
612
|
});
|
|
596
613
|
}
|
|
597
614
|
|
|
@@ -605,13 +622,18 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
605
622
|
* @param {String} options.uri floor grant uri
|
|
606
623
|
* @returns {Promise}
|
|
607
624
|
*/
|
|
608
|
-
changeMeetingFloor(
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
625
|
+
changeMeetingFloor(
|
|
626
|
+
options:
|
|
627
|
+
| {
|
|
628
|
+
disposition: string;
|
|
629
|
+
personUrl: string;
|
|
630
|
+
deviceUrl: string;
|
|
631
|
+
resourceId: string;
|
|
632
|
+
uri: string;
|
|
633
|
+
annotation: any;
|
|
634
|
+
}
|
|
635
|
+
| any
|
|
636
|
+
) {
|
|
615
637
|
let floorReq: any = {disposition: options.disposition};
|
|
616
638
|
|
|
617
639
|
/* istanbul ignore else */
|
|
@@ -623,31 +645,34 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
623
645
|
{
|
|
624
646
|
// @ts-ignore
|
|
625
647
|
deviceType: this.config.meetings.deviceType,
|
|
626
|
-
url: options.deviceUrl
|
|
627
|
-
}
|
|
628
|
-
]
|
|
648
|
+
url: options.deviceUrl,
|
|
649
|
+
},
|
|
650
|
+
],
|
|
629
651
|
},
|
|
630
652
|
disposition: options.disposition,
|
|
631
653
|
requester: {
|
|
632
|
-
url: options.personUrl
|
|
633
|
-
}
|
|
654
|
+
url: options.personUrl,
|
|
655
|
+
},
|
|
634
656
|
};
|
|
635
657
|
}
|
|
636
658
|
|
|
637
659
|
const body: any = {
|
|
638
660
|
floor: floorReq,
|
|
639
|
-
resourceUrl: options.resourceUrl
|
|
661
|
+
resourceUrl: options.resourceUrl,
|
|
640
662
|
};
|
|
641
663
|
|
|
642
664
|
if (options?.resourceToken) {
|
|
643
665
|
body.resourceToken = options?.resourceToken;
|
|
644
666
|
}
|
|
667
|
+
if (options?.annotation) {
|
|
668
|
+
body.annotation = options?.annotation;
|
|
669
|
+
}
|
|
645
670
|
|
|
646
671
|
// @ts-ignore
|
|
647
672
|
return this.request({
|
|
648
673
|
uri: options.uri,
|
|
649
674
|
method: HTTP_VERBS.PUT,
|
|
650
|
-
body
|
|
675
|
+
body,
|
|
651
676
|
});
|
|
652
677
|
}
|
|
653
678
|
|
|
@@ -659,18 +684,18 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
659
684
|
* @param {String} options.tones a string of one or more DTMF tones to send
|
|
660
685
|
* @returns {Promise}
|
|
661
686
|
*/
|
|
662
|
-
sendDTMF({
|
|
687
|
+
sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {
|
|
663
688
|
// @ts-ignore
|
|
664
|
-
return this.
|
|
689
|
+
return this.locusDeltaRequest({
|
|
665
690
|
method: HTTP_VERBS.POST,
|
|
666
691
|
uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,
|
|
667
692
|
body: {
|
|
668
693
|
deviceUrl,
|
|
669
694
|
dtmf: {
|
|
670
695
|
correlationId: uuid.v4(),
|
|
671
|
-
tones
|
|
672
|
-
}
|
|
673
|
-
}
|
|
696
|
+
tones,
|
|
697
|
+
},
|
|
698
|
+
},
|
|
674
699
|
});
|
|
675
700
|
}
|
|
676
701
|
|
|
@@ -709,36 +734,49 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
709
734
|
}) {
|
|
710
735
|
// send main/content renderInfo only if both width and height are specified
|
|
711
736
|
if (main && (!main.width || !main.height)) {
|
|
712
|
-
return Promise.reject(
|
|
737
|
+
return Promise.reject(
|
|
738
|
+
new Error(
|
|
739
|
+
`Both width and height must be specified. One of them is missing for main: ${JSON.stringify(
|
|
740
|
+
main
|
|
741
|
+
)}`
|
|
742
|
+
)
|
|
743
|
+
);
|
|
713
744
|
}
|
|
714
745
|
|
|
715
746
|
if (content && (!content.width || !content.height)) {
|
|
716
|
-
return Promise.reject(
|
|
747
|
+
return Promise.reject(
|
|
748
|
+
new Error(
|
|
749
|
+
`Both width and height must be specified. One of them is missing for content: ${JSON.stringify(
|
|
750
|
+
content
|
|
751
|
+
)}`
|
|
752
|
+
)
|
|
753
|
+
);
|
|
717
754
|
}
|
|
718
755
|
|
|
719
|
-
const renderInfoMain =
|
|
720
|
-
const renderInfoContent =
|
|
756
|
+
const renderInfoMain = main ? {width: main.width, height: main.height} : undefined;
|
|
757
|
+
const renderInfoContent = content ? {width: content.width, height: content.height} : undefined;
|
|
721
758
|
|
|
722
|
-
const layoutParams =
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
759
|
+
const layoutParams =
|
|
760
|
+
renderInfoMain || renderInfoContent
|
|
761
|
+
? {
|
|
762
|
+
renderInfo: {
|
|
763
|
+
main: renderInfoMain,
|
|
764
|
+
content: renderInfoContent,
|
|
765
|
+
},
|
|
766
|
+
}
|
|
767
|
+
: undefined;
|
|
730
768
|
|
|
731
769
|
// @ts-ignore
|
|
732
|
-
return this.
|
|
770
|
+
return this.locusDeltaRequest({
|
|
733
771
|
method: HTTP_VERBS.PUT,
|
|
734
772
|
uri: `${locusUrl}/${CONTROLS}`,
|
|
735
773
|
body: {
|
|
736
774
|
layout: {
|
|
737
775
|
deviceUrl,
|
|
738
776
|
type: layoutType,
|
|
739
|
-
layoutParams
|
|
740
|
-
}
|
|
741
|
-
}
|
|
777
|
+
layoutParams,
|
|
778
|
+
},
|
|
779
|
+
},
|
|
742
780
|
});
|
|
743
781
|
}
|
|
744
782
|
|
|
@@ -748,13 +786,13 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
748
786
|
* @param {Url} options.locusUrl
|
|
749
787
|
* @returns {Promise}
|
|
750
788
|
*/
|
|
751
|
-
endMeetingForAll({
|
|
789
|
+
endMeetingForAll({locusUrl}: {locusUrl: string}) {
|
|
752
790
|
const uri = `${locusUrl}/${END}`;
|
|
753
791
|
|
|
754
792
|
// @ts-ignore
|
|
755
|
-
return this.
|
|
793
|
+
return this.locusDeltaRequest({
|
|
756
794
|
method: HTTP_VERBS.POST,
|
|
757
|
-
uri
|
|
795
|
+
uri,
|
|
758
796
|
});
|
|
759
797
|
}
|
|
760
798
|
|
|
@@ -764,11 +802,11 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
764
802
|
* @param {Url} options.keepAliveUrl
|
|
765
803
|
* @returns {Promise}
|
|
766
804
|
*/
|
|
767
|
-
keepAlive({
|
|
805
|
+
keepAlive({keepAliveUrl}: {keepAliveUrl: string}) {
|
|
768
806
|
// @ts-ignore
|
|
769
807
|
return this.request({
|
|
770
808
|
method: HTTP_VERBS.GET,
|
|
771
|
-
uri: keepAliveUrl
|
|
809
|
+
uri: keepAliveUrl,
|
|
772
810
|
});
|
|
773
811
|
}
|
|
774
812
|
|
|
@@ -780,7 +818,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
780
818
|
* @param {string} options.senderID
|
|
781
819
|
* @returns {Promise}
|
|
782
820
|
*/
|
|
783
|
-
sendReaction({
|
|
821
|
+
sendReaction({reactionChannelUrl, reaction, participantId}: SendReactionOptions) {
|
|
784
822
|
const uri = reactionChannelUrl;
|
|
785
823
|
|
|
786
824
|
// @ts-ignore
|
|
@@ -790,7 +828,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
790
828
|
body: {
|
|
791
829
|
sender: {participantId},
|
|
792
830
|
reaction,
|
|
793
|
-
}
|
|
831
|
+
},
|
|
794
832
|
});
|
|
795
833
|
}
|
|
796
834
|
|
|
@@ -800,18 +838,27 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
800
838
|
* @param {locusUrl} options.locusUrl
|
|
801
839
|
* @returns {Promise}
|
|
802
840
|
*/
|
|
803
|
-
toggleReactions({
|
|
841
|
+
toggleReactions({enable, locusUrl, requestingParticipantId}: ToggleReactionsOptions) {
|
|
804
842
|
const uri = `${locusUrl}/${CONTROLS}`;
|
|
805
843
|
|
|
806
|
-
|
|
844
|
+
// @ts-ignore
|
|
845
|
+
return this.locusDeltaRequest({
|
|
807
846
|
method: HTTP_VERBS.PUT,
|
|
808
847
|
uri,
|
|
809
848
|
body: {
|
|
810
849
|
reactions: {
|
|
811
|
-
enabled: enable
|
|
850
|
+
enabled: enable,
|
|
812
851
|
},
|
|
813
852
|
requestingParticipantId,
|
|
814
|
-
}
|
|
853
|
+
},
|
|
854
|
+
});
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
getLocusStatusByUrl(locusUrl: string) {
|
|
858
|
+
// @ts-ignore
|
|
859
|
+
return this.request({
|
|
860
|
+
method: HTTP_VERBS.GET,
|
|
861
|
+
uri: locusUrl,
|
|
815
862
|
});
|
|
816
863
|
}
|
|
817
864
|
}
|