@webex/plugin-meetings 3.0.0-beta.22 → 3.0.0-beta.220
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 +2590 -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 +2083 -2153
- 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 +3520 -1744
- 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
|
@@ -24,14 +24,15 @@ describe('plugin-meetings', () => {
|
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
const defaultStats = {
|
|
27
|
+
resolutions: {},
|
|
27
28
|
internal: {
|
|
28
|
-
video: {
|
|
29
|
+
'video-send-1': {
|
|
29
30
|
send: {
|
|
30
31
|
totalPacketsLostOnReceiver: 10,
|
|
31
32
|
},
|
|
32
33
|
},
|
|
33
34
|
},
|
|
34
|
-
video: {
|
|
35
|
+
'video-send-1': {
|
|
35
36
|
send: {
|
|
36
37
|
packetsSent: 2,
|
|
37
38
|
meanRemoteJitter: [],
|
|
@@ -52,7 +53,12 @@ describe('plugin-meetings', () => {
|
|
|
52
53
|
beforeEach(() => {
|
|
53
54
|
const networkQualityMonitor = new NetworkQualityMonitor(initialConfig);
|
|
54
55
|
|
|
55
|
-
statsAnalyzer = new StatsAnalyzer(
|
|
56
|
+
statsAnalyzer = new StatsAnalyzer(
|
|
57
|
+
initialConfig,
|
|
58
|
+
() => ({}),
|
|
59
|
+
networkQualityMonitor,
|
|
60
|
+
defaultStats
|
|
61
|
+
);
|
|
56
62
|
|
|
57
63
|
sandBoxSpy = sandbox.spy(
|
|
58
64
|
statsAnalyzer.networkQualityMonitor,
|
|
@@ -65,12 +71,12 @@ describe('plugin-meetings', () => {
|
|
|
65
71
|
});
|
|
66
72
|
|
|
67
73
|
it('should trigger determineUplinkNetworkQuality with specific arguments', async () => {
|
|
68
|
-
await statsAnalyzer.parseGetStatsResult(statusResult, 'video');
|
|
74
|
+
await statsAnalyzer.parseGetStatsResult(statusResult, 'video-send-1', true);
|
|
69
75
|
|
|
70
76
|
assert.calledOnce(statsAnalyzer.networkQualityMonitor.determineUplinkNetworkQuality);
|
|
71
77
|
assert(
|
|
72
78
|
sandBoxSpy.calledWith({
|
|
73
|
-
mediaType: 'video',
|
|
79
|
+
mediaType: 'video-send-1',
|
|
74
80
|
remoteRtpResults: statusResult,
|
|
75
81
|
statsAnalyzerCurrentStats: statsAnalyzer.statsResults,
|
|
76
82
|
})
|
|
@@ -83,6 +89,7 @@ describe('plugin-meetings', () => {
|
|
|
83
89
|
let pc;
|
|
84
90
|
let networkQualityMonitor;
|
|
85
91
|
let statsAnalyzer;
|
|
92
|
+
let mqeData;
|
|
86
93
|
|
|
87
94
|
let receivedEventsData = {
|
|
88
95
|
local: {},
|
|
@@ -110,28 +117,55 @@ describe('plugin-meetings', () => {
|
|
|
110
117
|
// bytesReceived and bytesSent need to be non-zero in order for StatsAnalyzer to parse any other values
|
|
111
118
|
fakeStats = {
|
|
112
119
|
audio: {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
senders: [
|
|
121
|
+
{
|
|
122
|
+
report: [
|
|
123
|
+
{
|
|
124
|
+
type: 'outbound-rtp',
|
|
125
|
+
packetsSent: 0,
|
|
126
|
+
bytesSent: 1,
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
receivers: [
|
|
132
|
+
{
|
|
133
|
+
report: [
|
|
134
|
+
{
|
|
135
|
+
type: 'inbound-rtp',
|
|
136
|
+
packetsReceived: 0,
|
|
137
|
+
bytesReceived: 1,
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
},
|
|
141
|
+
],
|
|
123
142
|
},
|
|
124
143
|
video: {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
144
|
+
senders: [
|
|
145
|
+
{
|
|
146
|
+
report: [
|
|
147
|
+
{
|
|
148
|
+
type: 'outbound-rtp',
|
|
149
|
+
framesSent: 0,
|
|
150
|
+
bytesSent: 1,
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
receivers: [
|
|
156
|
+
{
|
|
157
|
+
report: [
|
|
158
|
+
{
|
|
159
|
+
type: 'inbound-rtp',
|
|
160
|
+
framesDecoded: 0,
|
|
161
|
+
bytesReceived: 1,
|
|
162
|
+
frameHeight: 720,
|
|
163
|
+
frameWidth: 1280,
|
|
164
|
+
framesReceived: 1,
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
},
|
|
168
|
+
],
|
|
135
169
|
},
|
|
136
170
|
};
|
|
137
171
|
|
|
@@ -139,28 +173,27 @@ describe('plugin-meetings', () => {
|
|
|
139
173
|
getConnectionState: sinon.stub().returns(ConnectionState.Connected),
|
|
140
174
|
getTransceiverStats: sinon.stub().resolves({
|
|
141
175
|
audio: {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
currentDirection: 'sendrecv',
|
|
145
|
-
localTrackLabel: 'fake mic',
|
|
176
|
+
senders: [fakeStats.audio.senders[0]],
|
|
177
|
+
receivers: [fakeStats.audio.receivers[0]],
|
|
146
178
|
},
|
|
147
179
|
video: {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
180
|
+
senders: [fakeStats.video.senders[0]],
|
|
181
|
+
receivers: [fakeStats.video.receivers[0]],
|
|
182
|
+
},
|
|
183
|
+
screenShareAudio: {
|
|
184
|
+
senders: [],
|
|
185
|
+
receivers: [],
|
|
152
186
|
},
|
|
153
187
|
screenShareVideo: {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
currentDirection: 'sendrecv',
|
|
188
|
+
senders: [],
|
|
189
|
+
receivers: [],
|
|
157
190
|
},
|
|
158
191
|
}),
|
|
159
192
|
};
|
|
160
193
|
|
|
161
194
|
networkQualityMonitor = new NetworkQualityMonitor(initialConfig);
|
|
162
195
|
|
|
163
|
-
statsAnalyzer = new StatsAnalyzer(initialConfig, networkQualityMonitor);
|
|
196
|
+
statsAnalyzer = new StatsAnalyzer(initialConfig, () => ({}), networkQualityMonitor);
|
|
164
197
|
|
|
165
198
|
statsAnalyzer.on(EVENTS.LOCAL_MEDIA_STARTED, (data) => {
|
|
166
199
|
receivedEventsData.local.started = data;
|
|
@@ -174,6 +207,9 @@ describe('plugin-meetings', () => {
|
|
|
174
207
|
statsAnalyzer.on(EVENTS.REMOTE_MEDIA_STOPPED, (data) => {
|
|
175
208
|
receivedEventsData.remote.stopped = data;
|
|
176
209
|
});
|
|
210
|
+
statsAnalyzer.on(EVENTS.MEDIA_QUALITY, ({data}) => {
|
|
211
|
+
mqeData = data;
|
|
212
|
+
});
|
|
177
213
|
});
|
|
178
214
|
|
|
179
215
|
afterEach(() => {
|
|
@@ -200,6 +236,12 @@ describe('plugin-meetings', () => {
|
|
|
200
236
|
assert.deepEqual(receivedEventsData.remote.stopped, expected.remote?.stopped);
|
|
201
237
|
};
|
|
202
238
|
|
|
239
|
+
const checkMqeData = () => {
|
|
240
|
+
assert.strictEqual(mqeData.videoReceive[0].streams[0].receivedFrameSize, 3600);
|
|
241
|
+
assert.strictEqual(mqeData.videoReceive[0].streams[0].receivedHeight, 720);
|
|
242
|
+
assert.strictEqual(mqeData.videoReceive[0].streams[0].receivedWidth, 1280);
|
|
243
|
+
};
|
|
244
|
+
|
|
203
245
|
it('emits LOCAL_MEDIA_STARTED and LOCAL_MEDIA_STOPPED events for audio', async () => {
|
|
204
246
|
await startStatsAnalyzer({expected: {sendAudio: true}});
|
|
205
247
|
|
|
@@ -207,7 +249,7 @@ describe('plugin-meetings', () => {
|
|
|
207
249
|
checkReceivedEvent({expected: {}});
|
|
208
250
|
|
|
209
251
|
// setup a mock to return some values higher the previous ones
|
|
210
|
-
fakeStats.audio.
|
|
252
|
+
fakeStats.audio.senders[0].report[0].packetsSent += 10;
|
|
211
253
|
|
|
212
254
|
await progressTime();
|
|
213
255
|
|
|
@@ -227,7 +269,7 @@ describe('plugin-meetings', () => {
|
|
|
227
269
|
checkReceivedEvent({expected: {}});
|
|
228
270
|
|
|
229
271
|
// setup a mock to return some values higher the previous ones
|
|
230
|
-
fakeStats.video.
|
|
272
|
+
fakeStats.video.senders[0].report[0].framesSent += 1;
|
|
231
273
|
|
|
232
274
|
await progressTime();
|
|
233
275
|
|
|
@@ -247,7 +289,7 @@ describe('plugin-meetings', () => {
|
|
|
247
289
|
checkReceivedEvent({expected: {}});
|
|
248
290
|
|
|
249
291
|
// setup a mock to return some values higher the previous ones
|
|
250
|
-
fakeStats.audio.
|
|
292
|
+
fakeStats.audio.receivers[0].report[0].packetsReceived += 5;
|
|
251
293
|
|
|
252
294
|
await progressTime();
|
|
253
295
|
// check that we got the REMOTE_MEDIA_STARTED event for audio
|
|
@@ -267,7 +309,7 @@ describe('plugin-meetings', () => {
|
|
|
267
309
|
checkReceivedEvent({expected: {}});
|
|
268
310
|
|
|
269
311
|
// setup a mock to return some values higher the previous ones
|
|
270
|
-
fakeStats.video.
|
|
312
|
+
fakeStats.video.receivers[0].report[0].framesDecoded += 1;
|
|
271
313
|
|
|
272
314
|
await progressTime();
|
|
273
315
|
// check that we got the REMOTE_MEDIA_STARTED event for video
|
|
@@ -279,6 +321,15 @@ describe('plugin-meetings', () => {
|
|
|
279
321
|
|
|
280
322
|
checkReceivedEvent({expected: {remote: {stopped: {type: 'video'}}}});
|
|
281
323
|
});
|
|
324
|
+
|
|
325
|
+
it('emits the correct MEDIA_QUALITY events', async () => {
|
|
326
|
+
await startStatsAnalyzer({expected: {receiveVideo: true}});
|
|
327
|
+
|
|
328
|
+
await progressTime();
|
|
329
|
+
|
|
330
|
+
// Check that the mqe data has been emitted and is correctly computed.
|
|
331
|
+
checkMqeData();
|
|
332
|
+
});
|
|
282
333
|
});
|
|
283
334
|
});
|
|
284
335
|
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// MOVE TO TEST CONSTANTS
|
|
2
|
+
export const MEDIA_SERVERS = {
|
|
3
|
+
// The homer media server for converged multistream meetings.
|
|
4
|
+
HOMER: 'homer',
|
|
5
|
+
// The linus media server
|
|
6
|
+
LINUS: 'linus',
|
|
7
|
+
// The calliope media server for transcoded meetings
|
|
8
|
+
CALLIOPE: 'calliope',
|
|
9
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {assert} from '@webex/test-helper-chai';
|
|
2
|
+
import {Defer} from '@webex/common';
|
|
3
|
+
|
|
4
|
+
const addMedia = async (user, options = {}) => {
|
|
5
|
+
|
|
6
|
+
const {microphone, camera} = options;
|
|
7
|
+
|
|
8
|
+
if (options.multistream) {
|
|
9
|
+
await user.meeting.addMedia({localTracks: {microphone, camera}});
|
|
10
|
+
} else {
|
|
11
|
+
const mediaReadyPromises = Array.isArray(options.expectedMediaReadyTypes)
|
|
12
|
+
? options.expectedMediaReadyTypes.reduce((output, expectedMediaReadyType) => {
|
|
13
|
+
if (typeof expectedMediaReadyType !== 'string') {
|
|
14
|
+
return output;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
output[expectedMediaReadyType] = new Defer();
|
|
18
|
+
|
|
19
|
+
return output;
|
|
20
|
+
}, {})
|
|
21
|
+
: {remoteAudio: new Defer(), remoteVideo: new Defer()};
|
|
22
|
+
|
|
23
|
+
const mediaReady = (media) => {
|
|
24
|
+
if (!media) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (mediaReadyPromises[media.type]) {
|
|
28
|
+
mediaReadyPromises[media.type].resolve();
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
user.meeting.on('media:ready', mediaReady);
|
|
33
|
+
|
|
34
|
+
await user.meeting.addMedia({localTracks: {microphone, camera}});
|
|
35
|
+
await Promise.all(Object.values(mediaReadyPromises).map((defer) => defer.promise));
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
assert.exists(user.meeting.mediaProperties.audioTrack, 'audioTrack not present');
|
|
40
|
+
assert.exists(user.meeting.mediaProperties.videoTrack, 'videoTrack not present');
|
|
41
|
+
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export default {
|
|
45
|
+
addMedia
|
|
46
|
+
};
|
package/test/utils/testUtils.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import {assert} from '@webex/test-helper-chai';
|
|
2
|
-
import {Defer} from '@webex/common';
|
|
3
1
|
|
|
4
2
|
const max = 30000;
|
|
5
3
|
const waitForSpy = (spy, event) => {
|
|
@@ -195,49 +193,7 @@ const delayedTest = (callback, timeout) =>
|
|
|
195
193
|
}, timeout);
|
|
196
194
|
});
|
|
197
195
|
|
|
198
|
-
const addMedia = (user) => {
|
|
199
|
-
const mediaReadyPromises = {
|
|
200
|
-
local: new Defer(),
|
|
201
|
-
remoteAudio: new Defer(),
|
|
202
|
-
remoteVideo: new Defer(),
|
|
203
|
-
};
|
|
204
|
-
const mediaReady = (media) => {
|
|
205
|
-
if (!media) {
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
if (mediaReadyPromises[media.type]) {
|
|
209
|
-
mediaReadyPromises[media.type].resolve();
|
|
210
|
-
}
|
|
211
|
-
};
|
|
212
|
-
|
|
213
|
-
user.meeting.on('media:ready', mediaReady);
|
|
214
196
|
|
|
215
|
-
return user.meeting
|
|
216
|
-
.getMediaStreams({
|
|
217
|
-
sendAudio: true,
|
|
218
|
-
sendVideo: true,
|
|
219
|
-
sendShare: false,
|
|
220
|
-
})
|
|
221
|
-
.then(([localStream, localShare]) =>
|
|
222
|
-
user.meeting.addMedia({
|
|
223
|
-
mediaSettings: {
|
|
224
|
-
sendAudio: true,
|
|
225
|
-
sendVideo: true,
|
|
226
|
-
sendShare: false,
|
|
227
|
-
receiveShare: true,
|
|
228
|
-
receiveAudio: true,
|
|
229
|
-
receiveVideo: true,
|
|
230
|
-
},
|
|
231
|
-
localShare,
|
|
232
|
-
localStream,
|
|
233
|
-
})
|
|
234
|
-
)
|
|
235
|
-
.then(() => Promise.all(Object.values(mediaReadyPromises).map((defer) => defer.promise)))
|
|
236
|
-
.then(() => {
|
|
237
|
-
assert.exists(user.meeting.mediaProperties.audioTrack, 'audioTrack not present');
|
|
238
|
-
assert.exists(user.meeting.mediaProperties.videoTrack, 'videoTrack not present');
|
|
239
|
-
});
|
|
240
|
-
};
|
|
241
197
|
|
|
242
198
|
const waitUntil = (waitTime) =>
|
|
243
199
|
new Promise((resolve) => {
|
|
@@ -279,7 +235,6 @@ export default {
|
|
|
279
235
|
waitForEvents,
|
|
280
236
|
checkParticipantUpdatedStatus,
|
|
281
237
|
delayedPromise,
|
|
282
|
-
addMedia,
|
|
283
238
|
waitUntil,
|
|
284
239
|
delayedTest,
|
|
285
240
|
flushPromises,
|
|
@@ -17,9 +17,11 @@ require('@webex/plugin-people');
|
|
|
17
17
|
require('@webex/plugin-rooms');
|
|
18
18
|
require('@webex/plugin-meetings');
|
|
19
19
|
|
|
20
|
-
const generateTestUsers = (options) =>
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
const generateTestUsers = (options = {}) => {
|
|
21
|
+
options.config = options.config || {};
|
|
22
|
+
options.config.orgId = options.config.orgId || process.env.WEBEX_CONVERGED_ORG_ID;
|
|
23
|
+
|
|
24
|
+
return testUser.create(options)
|
|
23
25
|
.then(async (userSet) => {
|
|
24
26
|
if (userSet.length !== options.count) {
|
|
25
27
|
return Promise.reject(new Error('Test users not created'));
|
|
@@ -52,6 +54,7 @@ const generateTestUsers = (options) =>
|
|
|
52
54
|
.catch((error) => {
|
|
53
55
|
console.error('#generateTestUsers=>ERROR', error);
|
|
54
56
|
});
|
|
57
|
+
};
|
|
55
58
|
|
|
56
59
|
const reserveCMR = (user) =>
|
|
57
60
|
user.webex
|
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
-
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
10
|
-
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
11
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
13
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
15
|
-
var _internalMediaCore = require("@webex/internal-media-core");
|
|
16
|
-
var _constants = _interopRequireDefault(require("../metrics/constants"));
|
|
17
|
-
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
18
|
-
var _util = _interopRequireDefault(require("../media/util"));
|
|
19
|
-
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
20
|
-
var _constants2 = require("../constants");
|
|
21
|
-
/* eslint-disable no-param-reassign */
|
|
22
|
-
|
|
23
|
-
var createEffectsState = function createEffectsState(type) {
|
|
24
|
-
_loggerProxy.default.logger.info("Meeting:effectState#createEffectsState --> creating effectsState for effect ".concat(type));
|
|
25
|
-
return new EffectsState(type);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/* The purpose of this class is to manage the effects state(for eg., BNR).
|
|
29
|
-
*/
|
|
30
|
-
var EffectsState = /*#__PURE__*/function () {
|
|
31
|
-
function EffectsState(type) {
|
|
32
|
-
(0, _classCallCheck2.default)(this, EffectsState);
|
|
33
|
-
(0, _defineProperty2.default)(this, "effectType", void 0);
|
|
34
|
-
(0, _defineProperty2.default)(this, "pendingPromiseReject", void 0);
|
|
35
|
-
(0, _defineProperty2.default)(this, "pendingPromiseResolve", void 0);
|
|
36
|
-
(0, _defineProperty2.default)(this, "state", void 0);
|
|
37
|
-
this.effectType = type;
|
|
38
|
-
this.state = {
|
|
39
|
-
bnr: {
|
|
40
|
-
enabled: _constants2.BNR_STATUS.NOT_ENABLED
|
|
41
|
-
},
|
|
42
|
-
callToWebrtcBNRInProgress: false
|
|
43
|
-
};
|
|
44
|
-
// these 2 hold the resolve, reject methods for the promise we returned to the client in last handleClientRequest() call
|
|
45
|
-
this.pendingPromiseResolve = null;
|
|
46
|
-
this.pendingPromiseReject = null;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* @memberof EffectsState
|
|
51
|
-
* @param {Boolean} [isEnable] true for enableBNR, false for disableBNR request
|
|
52
|
-
* @param {Object} [meeting] the meeting object
|
|
53
|
-
* @returns {Promise}
|
|
54
|
-
*/
|
|
55
|
-
(0, _createClass2.default)(EffectsState, [{
|
|
56
|
-
key: "handleClientRequest",
|
|
57
|
-
value: function () {
|
|
58
|
-
var _handleClientRequest = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(isEnable, meeting) {
|
|
59
|
-
var _this = this;
|
|
60
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
61
|
-
while (1) switch (_context.prev = _context.next) {
|
|
62
|
-
case 0:
|
|
63
|
-
return _context.abrupt("return", new _promise.default(function (resolve, reject) {
|
|
64
|
-
if (_this.pendingPromiseResolve) {
|
|
65
|
-
// resolve the last promise we returned to the client as the client has issued a new request that has superseded the previous one
|
|
66
|
-
_this.pendingPromiseResolve();
|
|
67
|
-
}
|
|
68
|
-
_this.pendingPromiseResolve = resolve;
|
|
69
|
-
_this.pendingPromiseReject = reject;
|
|
70
|
-
if (isEnable) _this.enableBNR(meeting);else _this.disableBNR(meeting);
|
|
71
|
-
}));
|
|
72
|
-
case 1:
|
|
73
|
-
case "end":
|
|
74
|
-
return _context.stop();
|
|
75
|
-
}
|
|
76
|
-
}, _callee);
|
|
77
|
-
}));
|
|
78
|
-
function handleClientRequest(_x, _x2) {
|
|
79
|
-
return _handleClientRequest.apply(this, arguments);
|
|
80
|
-
}
|
|
81
|
-
return handleClientRequest;
|
|
82
|
-
}()
|
|
83
|
-
/**
|
|
84
|
-
* Internal API to return status of BNR
|
|
85
|
-
* @memberof EffectsState
|
|
86
|
-
* @returns {Boolean}
|
|
87
|
-
* @public
|
|
88
|
-
* @memberof Meeting
|
|
89
|
-
*/
|
|
90
|
-
}, {
|
|
91
|
-
key: "isBnrEnabled",
|
|
92
|
-
value: function isBnrEnabled() {
|
|
93
|
-
return this.state.bnr.enabled === _constants2.BNR_STATUS.ENABLED;
|
|
94
|
-
}
|
|
95
|
-
}, {
|
|
96
|
-
key: "resolvePromise",
|
|
97
|
-
value: function resolvePromise() {
|
|
98
|
-
if (this.pendingPromiseResolve) {
|
|
99
|
-
this.pendingPromiseResolve(true);
|
|
100
|
-
}
|
|
101
|
-
this.pendingPromiseResolve = null;
|
|
102
|
-
this.pendingPromiseReject = null;
|
|
103
|
-
}
|
|
104
|
-
}, {
|
|
105
|
-
key: "rejectPromise",
|
|
106
|
-
value: function rejectPromise(e) {
|
|
107
|
-
if (this.pendingPromiseReject) {
|
|
108
|
-
this.pendingPromiseReject(e);
|
|
109
|
-
}
|
|
110
|
-
this.pendingPromiseResolve = null;
|
|
111
|
-
this.pendingPromiseReject = null;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* enableBNR API
|
|
116
|
-
* @param {Object} meeting the meeting object
|
|
117
|
-
* @returns {Promise<Boolean>}
|
|
118
|
-
* @public
|
|
119
|
-
* @memberof EffectsState
|
|
120
|
-
*/
|
|
121
|
-
}, {
|
|
122
|
-
key: "enableBNR",
|
|
123
|
-
value: function () {
|
|
124
|
-
var _enableBNR = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(meeting) {
|
|
125
|
-
var bnr, audioStream;
|
|
126
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
127
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
128
|
-
case 0:
|
|
129
|
-
_loggerProxy.default.logger.info('Meeting:effectState#enableBNR. Enable BNR called');
|
|
130
|
-
if (!this.isBnrEnabled()) {
|
|
131
|
-
_context2.next = 4;
|
|
132
|
-
break;
|
|
133
|
-
}
|
|
134
|
-
_loggerProxy.default.logger.warn('Meeting:index#enableBNR. BNR is already enabled');
|
|
135
|
-
return _context2.abrupt("return", this.resolvePromise());
|
|
136
|
-
case 4:
|
|
137
|
-
if (!this.state.callToWebrtcBNRInProgress) {
|
|
138
|
-
_context2.next = 7;
|
|
139
|
-
break;
|
|
140
|
-
}
|
|
141
|
-
_loggerProxy.default.logger.warn('Meeting:effectState#enableBNR. Call to WebRTC in progress, we need to wait for it to complete');
|
|
142
|
-
return _context2.abrupt("return", this.resolvePromise());
|
|
143
|
-
case 7:
|
|
144
|
-
bnr = this.state.bnr;
|
|
145
|
-
_context2.prev = 8;
|
|
146
|
-
bnr.enabled = _constants2.BNR_STATUS.SHOULD_ENABLE;
|
|
147
|
-
this.state.callToWebrtcBNRInProgress = true;
|
|
148
|
-
audioStream = _util.default.createMediaStream([meeting.mediaProperties.audioTrack]);
|
|
149
|
-
_loggerProxy.default.logger.info('Meeting:effectState#enableBNR. MediaStream created from meeting & sent to updateAudio');
|
|
150
|
-
_context2.next = 15;
|
|
151
|
-
return meeting.updateAudio({
|
|
152
|
-
sendAudio: true,
|
|
153
|
-
receiveAudio: meeting.mediaProperties.mediaDirection.receiveAudio,
|
|
154
|
-
stream: audioStream
|
|
155
|
-
});
|
|
156
|
-
case 15:
|
|
157
|
-
_loggerProxy.default.logger.info('Meeting:effectState#enableBNR. Updated meeting audio with bnr enabled track');
|
|
158
|
-
bnr.enabled = _constants2.BNR_STATUS.ENABLED;
|
|
159
|
-
this.state.callToWebrtcBNRInProgress = false;
|
|
160
|
-
_metrics.default.sendBehavioralMetric(_constants.default.ENABLE_BNR_SUCCESS);
|
|
161
|
-
_context2.next = 29;
|
|
162
|
-
break;
|
|
163
|
-
case 21:
|
|
164
|
-
_context2.prev = 21;
|
|
165
|
-
_context2.t0 = _context2["catch"](8);
|
|
166
|
-
bnr.enabled = _constants2.BNR_STATUS.NOT_ENABLED;
|
|
167
|
-
this.state.callToWebrtcBNRInProgress = false;
|
|
168
|
-
_loggerProxy.default.logger.error('Meeting:index#enableBNR.', _context2.t0);
|
|
169
|
-
_metrics.default.sendBehavioralMetric(_constants.default.ENABLE_BNR_FAILURE, {
|
|
170
|
-
reason: _context2.t0.message,
|
|
171
|
-
stack: _context2.t0.stack
|
|
172
|
-
});
|
|
173
|
-
this.rejectPromise(_context2.t0);
|
|
174
|
-
throw _context2.t0;
|
|
175
|
-
case 29:
|
|
176
|
-
return _context2.abrupt("return", this.resolvePromise());
|
|
177
|
-
case 30:
|
|
178
|
-
case "end":
|
|
179
|
-
return _context2.stop();
|
|
180
|
-
}
|
|
181
|
-
}, _callee2, this, [[8, 21]]);
|
|
182
|
-
}));
|
|
183
|
-
function enableBNR(_x3) {
|
|
184
|
-
return _enableBNR.apply(this, arguments);
|
|
185
|
-
}
|
|
186
|
-
return enableBNR;
|
|
187
|
-
}()
|
|
188
|
-
/**
|
|
189
|
-
* disableBNR API
|
|
190
|
-
* @param {Object} meeting the meeting object
|
|
191
|
-
* @returns {Promise<Boolean>}
|
|
192
|
-
* @public
|
|
193
|
-
* @memberof EffectsState
|
|
194
|
-
*/
|
|
195
|
-
}, {
|
|
196
|
-
key: "disableBNR",
|
|
197
|
-
value: function () {
|
|
198
|
-
var _disableBNR = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(meeting) {
|
|
199
|
-
var bnr, audioTrack, audioStream;
|
|
200
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
201
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
202
|
-
case 0:
|
|
203
|
-
_loggerProxy.default.logger.info('Meeting:effectState#disableBNR. Disable BNR called');
|
|
204
|
-
bnr = this.state.bnr;
|
|
205
|
-
_context3.prev = 2;
|
|
206
|
-
if (!this.state.callToWebrtcBNRInProgress) {
|
|
207
|
-
_context3.next = 6;
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
_loggerProxy.default.logger.info('Meeting:effectState#disableBNR. Call to WebRTC in progress, we need to wait for it to complete');
|
|
211
|
-
return _context3.abrupt("return", this.resolvePromise());
|
|
212
|
-
case 6:
|
|
213
|
-
bnr.enabled = _constants2.BNR_STATUS.SHOULD_DISABLE;
|
|
214
|
-
this.state.callToWebrtcBNRInProgress = true;
|
|
215
|
-
|
|
216
|
-
// @ts-ignore - disableBNR does not expect an argument
|
|
217
|
-
audioTrack = _internalMediaCore.Media.Effects.BNR.disableBNR(meeting.mediaProperties.audioTrack);
|
|
218
|
-
audioStream = _util.default.createMediaStream([audioTrack]);
|
|
219
|
-
_loggerProxy.default.logger.info('Meeting:effectState#disableBNR. Raw media track obtained from WebRTC & sent to updateAudio');
|
|
220
|
-
_context3.next = 13;
|
|
221
|
-
return meeting.updateAudio({
|
|
222
|
-
sendAudio: true,
|
|
223
|
-
receiveAudio: meeting.mediaProperties.mediaDirection.receiveAudio,
|
|
224
|
-
stream: audioStream
|
|
225
|
-
});
|
|
226
|
-
case 13:
|
|
227
|
-
bnr.enabled = _constants2.BNR_STATUS.NOT_ENABLED;
|
|
228
|
-
this.state.callToWebrtcBNRInProgress = false;
|
|
229
|
-
_metrics.default.sendBehavioralMetric(_constants.default.DISABLE_BNR_SUCCESS);
|
|
230
|
-
_context3.next = 26;
|
|
231
|
-
break;
|
|
232
|
-
case 18:
|
|
233
|
-
_context3.prev = 18;
|
|
234
|
-
_context3.t0 = _context3["catch"](2);
|
|
235
|
-
bnr.enabled = _constants2.BNR_STATUS.ENABLED;
|
|
236
|
-
this.state.callToWebrtcBNRInProgress = false;
|
|
237
|
-
_loggerProxy.default.logger.error("Meeting:index#disableBNR. ".concat(_context3.t0));
|
|
238
|
-
_metrics.default.sendBehavioralMetric(_constants.default.DISABLE_BNR_FAILURE, {
|
|
239
|
-
reason: _context3.t0.message,
|
|
240
|
-
stack: _context3.t0.stack
|
|
241
|
-
});
|
|
242
|
-
this.rejectPromise(_context3.t0);
|
|
243
|
-
throw _context3.t0;
|
|
244
|
-
case 26:
|
|
245
|
-
return _context3.abrupt("return", this.resolvePromise());
|
|
246
|
-
case 27:
|
|
247
|
-
case "end":
|
|
248
|
-
return _context3.stop();
|
|
249
|
-
}
|
|
250
|
-
}, _callee3, this, [[2, 18]]);
|
|
251
|
-
}));
|
|
252
|
-
function disableBNR(_x4) {
|
|
253
|
-
return _disableBNR.apply(this, arguments);
|
|
254
|
-
}
|
|
255
|
-
return disableBNR;
|
|
256
|
-
}()
|
|
257
|
-
}]);
|
|
258
|
-
return EffectsState;
|
|
259
|
-
}();
|
|
260
|
-
var _default = createEffectsState;
|
|
261
|
-
exports.default = _default;
|
|
262
|
-
//# sourceMappingURL=effectsState.js.map
|