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