@webex/plugin-meetings 3.0.0-beta.22 → 3.0.0-beta.221
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 +46 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +114 -14
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +841 -19
- package/dist/breakouts/index.js.map +1 -1
- 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/errors/webex-errors.js +3 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +3 -8
- package/dist/config.js.map +1 -1
- package/dist/constants.js +188 -30
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +14 -0
- package/dist/controls-options-manager/constants.js.map +1 -0
- package/dist/controls-options-manager/enums.js +27 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.js +297 -0
- package/dist/controls-options-manager/index.js.map +1 -0
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +319 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +106 -1
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +91 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +357 -62
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +43 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +219 -63
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +89 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +49 -106
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +29 -90
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -493
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +90 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2587 -2560
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +228 -123
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +244 -194
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +568 -414
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +48 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +171 -51
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +20 -5
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +22 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +361 -84
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +88 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +49 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +121 -25
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +86 -5
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +106 -38
- 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 +316 -233
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +3 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +238 -49
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +49 -16
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +52 -34
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +173 -59
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +4 -2
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/reachability/index.js +90 -30
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +16 -7
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +196 -155
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +25 -29
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +111 -89
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +97 -36
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +117 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.js +1 -93
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +326 -311
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +90 -53
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/breakout.d.ts +8 -0
- package/dist/types/breakouts/collection.d.ts +5 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/browser-detection.d.ts +9 -0
- package/dist/types/common/collection.d.ts +48 -0
- package/dist/types/common/config.d.ts +2 -0
- package/dist/types/common/errors/captcha-error.d.ts +15 -0
- package/dist/types/common/errors/intent-to-join.d.ts +16 -0
- package/dist/types/common/errors/join-meeting.d.ts +17 -0
- package/dist/types/common/errors/media.d.ts +15 -0
- package/dist/types/common/errors/parameter.d.ts +15 -0
- package/dist/types/common/errors/password-error.d.ts +15 -0
- package/dist/types/common/errors/permission.d.ts +14 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/common/errors/reconnection.d.ts +15 -0
- package/dist/types/common/errors/stats.d.ts +15 -0
- package/dist/types/common/errors/webex-errors.d.ts +69 -0
- package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/types/common/events/events-scope.d.ts +17 -0
- package/dist/types/common/events/events.d.ts +12 -0
- package/dist/types/common/events/trigger-proxy.d.ts +2 -0
- package/dist/types/common/events/util.d.ts +2 -0
- package/dist/types/common/logs/logger-config.d.ts +2 -0
- package/dist/types/common/logs/logger-proxy.d.ts +2 -0
- package/dist/types/common/logs/request.d.ts +34 -0
- package/dist/types/common/queue.d.ts +34 -0
- package/dist/types/config.d.ts +72 -0
- package/dist/types/constants.d.ts +1028 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +15 -0
- package/dist/types/controls-options-manager/index.d.ts +136 -0
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/controlsUtils.d.ts +2 -0
- package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/types/locus-info/fullState.d.ts +2 -0
- package/dist/types/locus-info/hostUtils.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +322 -0
- package/dist/types/locus-info/infoUtils.d.ts +2 -0
- package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/types/locus-info/parser.d.ts +271 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +34 -0
- package/dist/types/media/properties.d.ts +93 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +163 -0
- package/dist/types/meeting/index.d.ts +1512 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +75 -0
- package/dist/types/meeting/muteState.d.ts +184 -0
- package/dist/types/meeting/request.d.ts +289 -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 +94 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +62 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
- package/dist/types/meeting-info/request.d.ts +22 -0
- package/dist/types/meeting-info/util.d.ts +2 -0
- package/dist/types/meeting-info/utilv2.d.ts +2 -0
- package/dist/types/meetings/collection.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +361 -0
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/meetings/request.d.ts +27 -0
- package/dist/types/meetings/util.d.ts +18 -0
- package/dist/types/member/index.d.ts +159 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +353 -0
- package/dist/types/members/request.d.ts +114 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +210 -0
- package/dist/types/metrics/constants.d.ts +55 -0
- package/dist/types/metrics/index.d.ts +45 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/types/multistream/receiveSlot.d.ts +68 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/types/multistream/remoteMedia.d.ts +72 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/personal-meeting-room/index.d.ts +47 -0
- package/dist/types/personal-meeting-room/request.d.ts +14 -0
- package/dist/types/personal-meeting-room/util.d.ts +2 -0
- package/dist/types/reachability/index.d.ts +158 -0
- package/dist/types/reachability/request.d.ts +39 -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 +207 -0
- package/dist/types/recording-controller/util.d.ts +14 -0
- package/dist/types/roap/index.d.ts +77 -0
- package/dist/types/roap/request.d.ts +38 -0
- package/dist/types/roap/turnDiscovery.d.ts +91 -0
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +47 -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/package.json +23 -20
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +44 -14
- package/src/breakouts/breakout.ts +87 -9
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +710 -10
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/webex-errors.ts +6 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +2 -7
- package/src/constants.ts +175 -21
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +18 -0
- package/src/controls-options-manager/index.ts +278 -0
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +300 -0
- package/src/index.ts +39 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +381 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +48 -0
- package/src/locus-info/parser.ts +224 -39
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +89 -109
- package/src/media/properties.ts +49 -90
- package/src/mediaQualityMetrics/config.ts +379 -377
- package/src/meeting/in-meeting-actions.ts +179 -3
- package/src/meeting/index.ts +2062 -2137
- package/src/meeting/locusMediaRequest.ts +314 -0
- package/src/meeting/muteState.ts +227 -130
- package/src/meeting/request.ts +157 -116
- package/src/meeting/util.ts +555 -396
- package/src/meeting-info/index.ts +54 -8
- package/src/meeting-info/meeting-info-v2.ts +148 -14
- package/src/meeting-info/utilv2.ts +13 -3
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +397 -102
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +103 -4
- package/src/member/index.ts +49 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +127 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +107 -6
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +319 -240
- package/src/metrics/constants.ts +2 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +289 -79
- package/src/multistream/receiveSlot.ts +55 -18
- package/src/multistream/receiveSlotManager.ts +46 -24
- package/src/multistream/remoteMedia.ts +27 -2
- package/src/multistream/remoteMediaGroup.ts +59 -0
- package/src/multistream/remoteMediaManager.ts +113 -32
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/index.ts +76 -18
- package/src/reachability/request.ts +16 -7
- package/src/reconnection-manager/index.ts +68 -43
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +25 -30
- package/src/roap/request.ts +103 -95
- package/src/roap/turnDiscovery.ts +51 -25
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/global.ts +1 -94
- package/src/statsAnalyzer/index.ts +376 -386
- package/src/statsAnalyzer/mqaUtil.ts +100 -99
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +336 -259
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +142 -24
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1545 -48
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +582 -0
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1169 -36
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
- package/test/unit/spec/locus-info/parser.js +62 -22
- package/test/unit/spec/locus-info/selfConstant.js +27 -4
- package/test/unit/spec/locus-info/selfUtils.js +208 -17
- package/test/unit/spec/media/index.ts +138 -28
- package/test/unit/spec/meeting/in-meeting-actions.ts +89 -3
- package/test/unit/spec/meeting/index.js +3510 -1747
- package/test/unit/spec/meeting/locusMediaRequest.ts +443 -0
- package/test/unit/spec/meeting/muteState.js +370 -208
- package/test/unit/spec/meeting/request.js +417 -45
- package/test/unit/spec/meeting/utils.js +601 -53
- package/test/unit/spec/meeting-info/index.js +181 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +874 -150
- package/test/unit/spec/meetings/utils.js +206 -2
- package/test/unit/spec/member/index.js +58 -4
- package/test/unit/spec/member/util.js +479 -35
- package/test/unit/spec/members/index.js +319 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +184 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
- package/test/unit/spec/multistream/receiveSlot.ts +72 -13
- package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
- package/test/unit/spec/multistream/remoteMedia.ts +30 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +318 -0
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/index.ts +185 -7
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +59 -6
- package/test/unit/spec/recording-controller/index.js +294 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +27 -51
- package/test/unit/spec/roap/request.ts +202 -85
- package/test/unit/spec/roap/turnDiscovery.ts +36 -8
- package/test/unit/spec/rtcMetrics/index.ts +68 -0
- package/test/unit/spec/stats-analyzer/index.js +92 -41
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -45
- package/test/utils/webex-config.js +4 -0
- package/test/utils/webex-test-users.js +6 -3
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/src/index.js +0 -16
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/test/unit/spec/meeting/effectsState.js +0 -285
package/src/meeting/request.ts
CHANGED
|
@@ -18,31 +18,73 @@ import {
|
|
|
18
18
|
HTTP_VERBS,
|
|
19
19
|
LEAVE,
|
|
20
20
|
LOCI,
|
|
21
|
-
LOCUS,
|
|
22
|
-
MEDIA,
|
|
23
21
|
PARTICIPANT,
|
|
24
22
|
PROVISIONAL_TYPE_DIAL_IN,
|
|
25
23
|
PROVISIONAL_TYPE_DIAL_OUT,
|
|
24
|
+
REACHABILITY,
|
|
26
25
|
SEND_DTMF_ENDPOINT,
|
|
27
26
|
_SLIDES_,
|
|
27
|
+
ANNOTATION,
|
|
28
|
+
IP_VERSION,
|
|
28
29
|
} from '../constants';
|
|
29
|
-
import {Reaction} from '../reactions/reactions.type';
|
|
30
30
|
import {SendReactionOptions, ToggleReactionsOptions} from './request.type';
|
|
31
|
+
import MeetingUtil from './util';
|
|
32
|
+
import {AnnotationInfo} from '../annotation/annotation.types';
|
|
31
33
|
|
|
32
34
|
/**
|
|
33
35
|
* @class MeetingRequest
|
|
34
36
|
*/
|
|
35
37
|
export default class MeetingRequest extends StatelessWebexPlugin {
|
|
36
38
|
changeVideoLayoutDebounced: any;
|
|
39
|
+
meetingRef: WeakRef<any>;
|
|
40
|
+
locusDeltaRequest: (options: object) => Promise<any>;
|
|
41
|
+
buildLocusDeltaRequestOptions: (options: object) => Promise<any>;
|
|
37
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Constructor
|
|
45
|
+
* @param {Object} attrs
|
|
46
|
+
* @param {Object} options
|
|
47
|
+
*/
|
|
38
48
|
constructor(attrs: any, options: any) {
|
|
39
|
-
|
|
49
|
+
const {meeting, ...otherAttrs} = attrs;
|
|
50
|
+
|
|
51
|
+
super(otherAttrs, options);
|
|
52
|
+
|
|
53
|
+
this.locusDeltaRequest = MeetingUtil.generateLocusDeltaRequest(meeting);
|
|
54
|
+
this.buildLocusDeltaRequestOptions = MeetingUtil.generateBuildLocusDeltaRequestOptions(meeting);
|
|
55
|
+
|
|
40
56
|
this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {
|
|
41
57
|
leading: true,
|
|
42
58
|
trailing: true,
|
|
43
59
|
});
|
|
44
60
|
}
|
|
45
61
|
|
|
62
|
+
/**
|
|
63
|
+
* Returns joinCookie from boundedStorage if present.
|
|
64
|
+
* @returns {Object} joinCookie
|
|
65
|
+
*/
|
|
66
|
+
private getJoinCookie = async () => {
|
|
67
|
+
// @ts-ignore
|
|
68
|
+
const joinCookieRaw = await this.webex.boundedStorage
|
|
69
|
+
.get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)
|
|
70
|
+
.catch(() => {});
|
|
71
|
+
|
|
72
|
+
if (joinCookieRaw) {
|
|
73
|
+
try {
|
|
74
|
+
const joinCookie = JSON.parse(joinCookieRaw);
|
|
75
|
+
if (joinCookie) {
|
|
76
|
+
return joinCookie;
|
|
77
|
+
}
|
|
78
|
+
} catch (e) {
|
|
79
|
+
LoggerProxy.logger.error(
|
|
80
|
+
`MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return null;
|
|
86
|
+
};
|
|
87
|
+
|
|
46
88
|
/**
|
|
47
89
|
* Make a network request to join a meeting
|
|
48
90
|
* @param {Object} options
|
|
@@ -57,6 +99,9 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
57
99
|
* @param {boolean} options.moveToResource
|
|
58
100
|
* @param {Object} options.roapMessage
|
|
59
101
|
* @param {boolean} options.breakoutsSupported
|
|
102
|
+
* @param {String} options.locale,
|
|
103
|
+
* @param {Array} options.deviceCapabilities
|
|
104
|
+
* @param {boolean} options.liveAnnotationSupported
|
|
60
105
|
* @returns {Promise}
|
|
61
106
|
*/
|
|
62
107
|
async joinMeeting(options: {
|
|
@@ -76,6 +121,10 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
76
121
|
permissionToken: any;
|
|
77
122
|
preferTranscoding: any;
|
|
78
123
|
breakoutsSupported: boolean;
|
|
124
|
+
locale?: string;
|
|
125
|
+
deviceCapabilities?: Array<string>;
|
|
126
|
+
liveAnnotationSupported: boolean;
|
|
127
|
+
ipVersion: IP_VERSION;
|
|
79
128
|
}) {
|
|
80
129
|
const {
|
|
81
130
|
asResourceOccupant,
|
|
@@ -93,12 +142,18 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
93
142
|
roapMessage,
|
|
94
143
|
preferTranscoding,
|
|
95
144
|
breakoutsSupported,
|
|
145
|
+
locale,
|
|
146
|
+
deviceCapabilities = [],
|
|
147
|
+
liveAnnotationSupported,
|
|
148
|
+
ipVersion,
|
|
96
149
|
} = options;
|
|
97
150
|
|
|
98
151
|
LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);
|
|
99
152
|
|
|
100
153
|
let url = '';
|
|
101
154
|
|
|
155
|
+
const joinCookie = await this.getJoinCookie();
|
|
156
|
+
|
|
102
157
|
const body: any = {
|
|
103
158
|
asResourceOccupant,
|
|
104
159
|
device: {
|
|
@@ -115,19 +170,32 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
115
170
|
supportsNativeLobby: 1,
|
|
116
171
|
clientMediaPreferences: {
|
|
117
172
|
preferTranscoding: preferTranscoding ?? true,
|
|
173
|
+
joinCookie,
|
|
174
|
+
ipver: ipVersion,
|
|
118
175
|
},
|
|
119
176
|
};
|
|
120
177
|
|
|
121
178
|
if (breakoutsSupported) {
|
|
122
|
-
|
|
179
|
+
deviceCapabilities.push(BREAKOUTS.BREAKOUTS_SUPPORTED);
|
|
180
|
+
}
|
|
181
|
+
if (liveAnnotationSupported) {
|
|
182
|
+
deviceCapabilities.push(ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (locale) {
|
|
186
|
+
body.locale = locale;
|
|
123
187
|
}
|
|
124
188
|
|
|
189
|
+
// add deviceCapabilities prop
|
|
190
|
+
if (deviceCapabilities.length) {
|
|
191
|
+
body.deviceCapabilities = deviceCapabilities;
|
|
192
|
+
}
|
|
125
193
|
// @ts-ignore
|
|
126
|
-
if (this.webex.meetings.
|
|
194
|
+
if (this.webex.meetings.geoHintInfo) {
|
|
127
195
|
// @ts-ignore
|
|
128
|
-
body.device.countryCode = this.webex.meetings.
|
|
196
|
+
body.device.countryCode = this.webex.meetings.geoHintInfo.countryCode;
|
|
129
197
|
// @ts-ignore
|
|
130
|
-
body.device.regionCode = this.webex.meetings.
|
|
198
|
+
body.device.regionCode = this.webex.meetings.geoHintInfo.regionCode;
|
|
131
199
|
}
|
|
132
200
|
|
|
133
201
|
if (moderator !== undefined) {
|
|
@@ -251,7 +319,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
251
319
|
};
|
|
252
320
|
|
|
253
321
|
// @ts-ignore
|
|
254
|
-
return this.
|
|
322
|
+
return this.locusDeltaRequest({
|
|
255
323
|
method: HTTP_VERBS.POST,
|
|
256
324
|
uri,
|
|
257
325
|
body,
|
|
@@ -306,7 +374,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
306
374
|
};
|
|
307
375
|
|
|
308
376
|
// @ts-ignore
|
|
309
|
-
return this.
|
|
377
|
+
return this.locusDeltaRequest({
|
|
310
378
|
method: HTTP_VERBS.POST,
|
|
311
379
|
uri,
|
|
312
380
|
body,
|
|
@@ -320,62 +388,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
320
388
|
}
|
|
321
389
|
|
|
322
390
|
/**
|
|
323
|
-
*
|
|
391
|
+
* Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
|
|
324
392
|
* @param {Object} options
|
|
325
|
-
* @param {boolean} options.desync flag to get partial or whole locus object
|
|
326
|
-
* @param {String} options.syncUrl sync url to get ht elatest locus delta
|
|
327
|
-
* @returns {Promise}
|
|
328
|
-
*/
|
|
329
|
-
syncMeeting(options: {desync: boolean; syncUrl: string}) {
|
|
330
|
-
/* eslint-disable no-else-return */
|
|
331
|
-
const {desync} = options;
|
|
332
|
-
let {syncUrl} = options;
|
|
333
|
-
|
|
334
|
-
/* istanbul ignore else */
|
|
335
|
-
if (desync) {
|
|
336
|
-
// check for existing URL parameters
|
|
337
|
-
syncUrl = syncUrl
|
|
338
|
-
.concat(syncUrl.split('?')[1] ? '&' : '?')
|
|
339
|
-
.concat(`${LOCUS.SYNCDEBUG}=${desync}`);
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
// @ts-ignore
|
|
343
|
-
return this.request({
|
|
344
|
-
method: HTTP_VERBS.GET,
|
|
345
|
-
uri: syncUrl,
|
|
346
|
-
}) // TODO: Handle if delta sync failed . Get the full locus object
|
|
347
|
-
.catch((err) => {
|
|
348
|
-
LoggerProxy.logger.error(
|
|
349
|
-
`Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`
|
|
350
|
-
);
|
|
351
|
-
|
|
352
|
-
return err;
|
|
353
|
-
});
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
/**
|
|
357
|
-
* Request to get the complete locus object
|
|
358
|
-
* @param {Object} options
|
|
359
|
-
* @param {boolean} options.desync flag to get partial or whole locus object
|
|
360
393
|
* @param {String} options.locusUrl sync url to get ht elatest locus delta
|
|
361
394
|
* @returns {Promise}
|
|
362
395
|
*/
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
const {desync} = options;
|
|
366
|
-
|
|
367
|
-
if (locusUrl) {
|
|
368
|
-
if (desync) {
|
|
369
|
-
locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;
|
|
370
|
-
}
|
|
396
|
+
getLocusDTO(options: {url: string}) {
|
|
397
|
+
const {url} = options;
|
|
371
398
|
|
|
399
|
+
if (url) {
|
|
372
400
|
// @ts-ignore
|
|
373
401
|
return this.request({
|
|
374
402
|
method: HTTP_VERBS.GET,
|
|
375
|
-
uri:
|
|
403
|
+
uri: url,
|
|
376
404
|
}).catch((err) => {
|
|
377
405
|
LoggerProxy.logger.error(
|
|
378
|
-
`Meeting:request#
|
|
406
|
+
`Meeting:request#getLocusDTO --> Error getting latest locus, error ${err}`
|
|
379
407
|
);
|
|
380
408
|
|
|
381
409
|
return err;
|
|
@@ -421,7 +449,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
421
449
|
};
|
|
422
450
|
|
|
423
451
|
// @ts-ignore
|
|
424
|
-
return this.
|
|
452
|
+
return this.locusDeltaRequest({
|
|
425
453
|
method: HTTP_VERBS.PUT,
|
|
426
454
|
uri,
|
|
427
455
|
body,
|
|
@@ -435,13 +463,49 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
435
463
|
}
|
|
436
464
|
|
|
437
465
|
/**
|
|
438
|
-
*
|
|
466
|
+
* Prepares request options to to leave a meeting
|
|
439
467
|
* @param {Object} options
|
|
440
468
|
* @param {Url} options.locusUrl
|
|
441
469
|
* @param {String} options.selfId
|
|
442
470
|
* @param {Url} options.deviceUrl
|
|
443
471
|
* @param {String} options.resourceId,
|
|
444
472
|
* @param {String} options.correlationId
|
|
473
|
+
* @returns {Object} request options
|
|
474
|
+
*/
|
|
475
|
+
prepareLeaveMeetingRequestOptions({
|
|
476
|
+
locusUrl,
|
|
477
|
+
selfId,
|
|
478
|
+
deviceUrl: url,
|
|
479
|
+
resourceId,
|
|
480
|
+
correlationId,
|
|
481
|
+
}: {
|
|
482
|
+
locusUrl: string;
|
|
483
|
+
selfId: string;
|
|
484
|
+
deviceUrl: string;
|
|
485
|
+
resourceId: string;
|
|
486
|
+
correlationId: string;
|
|
487
|
+
}) {
|
|
488
|
+
const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;
|
|
489
|
+
const body = {
|
|
490
|
+
device: {
|
|
491
|
+
// @ts-ignore
|
|
492
|
+
deviceType: this.config.meetings.deviceType,
|
|
493
|
+
url,
|
|
494
|
+
},
|
|
495
|
+
usingResource: resourceId || null,
|
|
496
|
+
correlationId,
|
|
497
|
+
};
|
|
498
|
+
|
|
499
|
+
return {
|
|
500
|
+
method: HTTP_VERBS.PUT,
|
|
501
|
+
uri,
|
|
502
|
+
body,
|
|
503
|
+
};
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
/**
|
|
507
|
+
* Make a network request to leave a meeting
|
|
508
|
+
* @param {Object} options
|
|
445
509
|
* @returns {Promise}
|
|
446
510
|
*/
|
|
447
511
|
leaveMeeting({
|
|
@@ -470,14 +534,22 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
470
534
|
correlationId,
|
|
471
535
|
};
|
|
472
536
|
|
|
473
|
-
|
|
474
|
-
return this.request({
|
|
537
|
+
return this.locusDeltaRequest({
|
|
475
538
|
method: HTTP_VERBS.PUT,
|
|
476
539
|
uri,
|
|
477
540
|
body,
|
|
478
541
|
});
|
|
479
542
|
}
|
|
480
543
|
|
|
544
|
+
/**
|
|
545
|
+
* Builds request options to leave a meeting
|
|
546
|
+
* @param {Object} options
|
|
547
|
+
* @returns {Object} request options
|
|
548
|
+
*/
|
|
549
|
+
buildLeaveMeetingRequestOptions(options: any) {
|
|
550
|
+
return this.buildLocusDeltaRequestOptions(this.prepareLeaveMeetingRequestOptions(options));
|
|
551
|
+
}
|
|
552
|
+
|
|
481
553
|
/**
|
|
482
554
|
* Make a network request to acknowledge a meeting
|
|
483
555
|
* @param {Object} options
|
|
@@ -497,14 +569,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
497
569
|
correlationId: options.correlationId,
|
|
498
570
|
};
|
|
499
571
|
|
|
500
|
-
|
|
501
|
-
return this.request({
|
|
572
|
+
return this.locusDeltaRequest({
|
|
502
573
|
method: HTTP_VERBS.PUT,
|
|
503
574
|
uri,
|
|
504
575
|
body,
|
|
505
576
|
});
|
|
506
577
|
}
|
|
507
578
|
|
|
579
|
+
/**
|
|
580
|
+
* Makes a network request to lock the meeting
|
|
581
|
+
* @param {Object} options
|
|
582
|
+
* @param {Boolean} options.lock Whether it is locked or not
|
|
583
|
+
* @returns {Promise}
|
|
584
|
+
*/
|
|
508
585
|
lockMeeting(options) {
|
|
509
586
|
const uri = `${options.locusUrl}/${CONTROLS}`;
|
|
510
587
|
const body = {
|
|
@@ -513,8 +590,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
513
590
|
},
|
|
514
591
|
};
|
|
515
592
|
|
|
516
|
-
|
|
517
|
-
return this.request({
|
|
593
|
+
return this.locusDeltaRequest({
|
|
518
594
|
method: HTTP_VERBS.PATCH,
|
|
519
595
|
uri,
|
|
520
596
|
body,
|
|
@@ -540,54 +616,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
540
616
|
...(options.reason && {reason: options.reason}),
|
|
541
617
|
};
|
|
542
618
|
|
|
543
|
-
|
|
544
|
-
return this.request({
|
|
545
|
-
method: HTTP_VERBS.PUT,
|
|
546
|
-
uri,
|
|
547
|
-
body,
|
|
548
|
-
});
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
/**
|
|
552
|
-
* Toggle remote audio and/or video
|
|
553
|
-
* @param {Object} options options for toggling
|
|
554
|
-
* @param {String} options.selfId Locus self id??
|
|
555
|
-
* @param {String} options.locusUrl Locus url
|
|
556
|
-
* @param {String} options.deviceUrl Url of a device
|
|
557
|
-
* @param {String} options.resourceId Populated if you are paired to a device
|
|
558
|
-
* @param {String} options.localMedias local sdps
|
|
559
|
-
* @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)
|
|
560
|
-
* @returns {Promise}
|
|
561
|
-
*/
|
|
562
|
-
remoteAudioVideoToggle(
|
|
563
|
-
options:
|
|
564
|
-
| {
|
|
565
|
-
selfId: string;
|
|
566
|
-
locusUrl: string;
|
|
567
|
-
deviceUrl: string;
|
|
568
|
-
resourceId: string;
|
|
569
|
-
localMedias: string;
|
|
570
|
-
}
|
|
571
|
-
| any
|
|
572
|
-
) {
|
|
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({
|
|
619
|
+
return this.locusDeltaRequest({
|
|
591
620
|
method: HTTP_VERBS.PUT,
|
|
592
621
|
uri,
|
|
593
622
|
body,
|
|
@@ -612,6 +641,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
612
641
|
deviceUrl: string;
|
|
613
642
|
resourceId: string;
|
|
614
643
|
uri: string;
|
|
644
|
+
annotationInfo: AnnotationInfo;
|
|
615
645
|
}
|
|
616
646
|
| any
|
|
617
647
|
) {
|
|
@@ -645,6 +675,9 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
645
675
|
if (options?.resourceToken) {
|
|
646
676
|
body.resourceToken = options?.resourceToken;
|
|
647
677
|
}
|
|
678
|
+
if (options?.annotationInfo) {
|
|
679
|
+
body.annotation = options?.annotationInfo;
|
|
680
|
+
}
|
|
648
681
|
|
|
649
682
|
// @ts-ignore
|
|
650
683
|
return this.request({
|
|
@@ -664,7 +697,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
664
697
|
*/
|
|
665
698
|
sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {
|
|
666
699
|
// @ts-ignore
|
|
667
|
-
return this.
|
|
700
|
+
return this.locusDeltaRequest({
|
|
668
701
|
method: HTTP_VERBS.POST,
|
|
669
702
|
uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,
|
|
670
703
|
body: {
|
|
@@ -745,7 +778,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
745
778
|
: undefined;
|
|
746
779
|
|
|
747
780
|
// @ts-ignore
|
|
748
|
-
return this.
|
|
781
|
+
return this.locusDeltaRequest({
|
|
749
782
|
method: HTTP_VERBS.PUT,
|
|
750
783
|
uri: `${locusUrl}/${CONTROLS}`,
|
|
751
784
|
body: {
|
|
@@ -768,7 +801,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
768
801
|
const uri = `${locusUrl}/${END}`;
|
|
769
802
|
|
|
770
803
|
// @ts-ignore
|
|
771
|
-
return this.
|
|
804
|
+
return this.locusDeltaRequest({
|
|
772
805
|
method: HTTP_VERBS.POST,
|
|
773
806
|
uri,
|
|
774
807
|
});
|
|
@@ -820,7 +853,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
820
853
|
const uri = `${locusUrl}/${CONTROLS}`;
|
|
821
854
|
|
|
822
855
|
// @ts-ignore
|
|
823
|
-
return this.
|
|
856
|
+
return this.locusDeltaRequest({
|
|
824
857
|
method: HTTP_VERBS.PUT,
|
|
825
858
|
uri,
|
|
826
859
|
body: {
|
|
@@ -831,4 +864,12 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
831
864
|
},
|
|
832
865
|
});
|
|
833
866
|
}
|
|
867
|
+
|
|
868
|
+
getLocusStatusByUrl(locusUrl: string) {
|
|
869
|
+
// @ts-ignore
|
|
870
|
+
return this.request({
|
|
871
|
+
method: HTTP_VERBS.GET,
|
|
872
|
+
uri: locusUrl,
|
|
873
|
+
});
|
|
874
|
+
}
|
|
834
875
|
}
|