@webex/plugin-meetings 3.0.0-test.1 → 3.1.0
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/.eslintrc.js +6 -0
- package/babel.config.js +3 -0
- package/dist/annotation/constants.js +12 -20
- package/dist/annotation/constants.js.map +1 -1
- package/dist/annotation/index.js +25 -10
- package/dist/annotation/index.js.map +1 -1
- package/dist/breakouts/breakout.js +2 -3
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/collection.js +1 -2
- package/dist/breakouts/collection.js.map +1 -1
- package/dist/breakouts/edit-lock-error.js +1 -2
- package/dist/breakouts/edit-lock-error.js.map +1 -1
- package/dist/breakouts/events.js +1 -2
- package/dist/breakouts/events.js.map +1 -1
- package/dist/breakouts/index.js +13 -14
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/request.js +1 -2
- package/dist/breakouts/request.js.map +1 -1
- package/dist/breakouts/utils.js +3 -6
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/common/browser-detection.js +2 -3
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +3 -4
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +1 -2
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +1 -2
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +1 -2
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +1 -2
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +1 -2
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +1 -2
- package/dist/common/errors/no-meeting-info.js.map +1 -1
- package/dist/common/errors/parameter.js +3 -4
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +1 -2
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +1 -2
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reclaim-host-role-errors.js +6 -10
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.js +1 -2
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +1 -2
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +1 -2
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +14 -15
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -2
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +1 -2
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +1 -2
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +1 -2
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +1 -2
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +1 -2
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -2
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/{types/common → common}/logs/request.d.ts +1 -1
- package/dist/common/logs/request.js +3 -4
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +2 -4
- package/dist/common/queue.js.map +1 -1
- package/dist/{types/config.d.ts → config.d.ts} +1 -0
- package/dist/config.js +4 -3
- package/dist/config.js.map +1 -1
- package/dist/{types/constants.d.ts → constants.d.ts} +10 -5
- package/dist/constants.js +207 -380
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +3 -6
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +7 -10
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +27 -32
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/util.js +1 -2
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js.map +1 -1
- package/dist/interceptors/locusRetry.js +4 -3
- package/dist/interceptors/locusRetry.js.map +1 -1
- package/dist/interpretation/collection.js +1 -2
- package/dist/interpretation/collection.js.map +1 -1
- package/dist/interpretation/index.js +4 -5
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +2 -3
- package/dist/interpretation/siLanguage.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +12 -13
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -4
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +1 -2
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +1 -2
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +23 -27
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +3 -4
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +16 -3
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +6 -10
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +12 -6
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/MediaConnectionAwaiter.d.ts +61 -0
- package/dist/media/MediaConnectionAwaiter.js +163 -0
- package/dist/media/MediaConnectionAwaiter.js.map +1 -0
- package/dist/media/index.js +9 -5
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +7 -28
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -2
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +9 -18
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +14 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/{types/meeting → meeting}/index.d.ts +71 -16
- package/dist/meeting/index.js +1411 -1036
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +4 -5
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +2 -4
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/{types/meeting → meeting}/request.d.ts +3 -0
- package/dist/meeting/request.js +45 -36
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/state.js +1 -2
- package/dist/meeting/state.js.map +1 -1
- package/dist/{types/meeting → meeting}/util.d.ts +1 -0
- package/dist/meeting/util.js +13 -10
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting/voicea-meeting.d.ts +16 -0
- package/dist/meeting/voicea-meeting.js +169 -0
- package/dist/meeting/voicea-meeting.js.map +1 -0
- package/dist/meeting-info/collection.js +3 -4
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +5 -4
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +27 -29
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -2
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +8 -8
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +15 -9
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +5 -6
- package/dist/meetings/collection.js.map +1 -1
- package/dist/{types/meetings → meetings}/index.d.ts +11 -2
- package/dist/meetings/index.js +44 -17
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +2 -3
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +1 -4
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +1 -3
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +6 -8
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +1 -2
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +1 -2
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +8 -7
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +2 -3
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +3 -4
- package/dist/members/types.js.map +1 -1
- package/dist/{types/members → members}/util.d.ts +1 -1
- package/dist/members/util.js +3 -4
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +1 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +3 -2
- package/dist/metrics/index.js.map +1 -1
- package/dist/{types/multistream → multistream}/mediaRequestManager.d.ts +1 -2
- package/dist/multistream/mediaRequestManager.js +9 -11
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +3 -5
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +7 -9
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +3 -5
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/{types/multistream → multistream}/remoteMediaGroup.d.ts +1 -1
- package/dist/multistream/remoteMediaGroup.js +7 -6
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/{types/multistream → multistream}/remoteMediaManager.d.ts +1 -2
- package/dist/multistream/remoteMediaManager.js +32 -29
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/{types/multistream → multistream}/sendSlotManager.d.ts +1 -2
- package/dist/multistream/sendSlotManager.js +9 -6
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +1 -2
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +2 -3
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -3
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +1 -2
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/{types/reachability → reachability}/clusterReachability.d.ts +1 -0
- package/dist/reachability/clusterReachability.js +35 -20
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/{types/reachability → reachability}/index.d.ts +4 -0
- package/dist/reachability/index.js +41 -12
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +25 -20
- package/dist/reachability/request.js.map +1 -1
- package/dist/{types/reachability → reachability}/util.d.ts +7 -0
- package/dist/reachability/util.js +19 -0
- package/dist/reachability/util.js.map +1 -1
- package/dist/reactions/constants.js +1 -2
- package/dist/reactions/constants.js.map +1 -1
- package/dist/reactions/reactions.js +2 -4
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +6 -8
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +18 -11
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +4 -5
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.js +43 -51
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +1 -2
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/{types/roap → roap}/index.d.ts +10 -2
- package/dist/roap/index.js +17 -3
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +10 -10
- package/dist/roap/request.js.map +1 -1
- package/dist/{types/roap → roap}/turnDiscovery.d.ts +64 -17
- package/dist/roap/turnDiscovery.js +316 -134
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +1 -2
- package/dist/rtcMetrics/constants.js.map +1 -1
- package/dist/rtcMetrics/index.js +4 -6
- package/dist/rtcMetrics/index.js.map +1 -1
- package/dist/statsAnalyzer/global.js +1 -2
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +123 -96
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +24 -31
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +1 -2
- package/dist/transcription/index.js.map +1 -1
- package/dist/webinar/collection.js +1 -2
- package/dist/webinar/collection.js.map +1 -1
- package/dist/webinar/index.js +2 -3
- package/dist/webinar/index.js.map +1 -1
- package/jest.config.js +3 -0
- package/package.json +44 -25
- package/process +1 -0
- package/src/config.ts +3 -4
- package/src/constants.ts +13 -4
- package/src/interpretation/index.ts +2 -2
- package/src/locus-info/mediaSharesUtils.ts +16 -0
- package/src/locus-info/selfUtils.ts +5 -0
- package/src/media/MediaConnectionAwaiter.ts +174 -0
- package/src/media/index.ts +3 -1
- package/src/media/properties.ts +6 -31
- package/src/meeting/index.ts +526 -227
- package/src/meeting/request.ts +18 -2
- package/src/meeting/util.ts +6 -1
- package/src/meeting/voicea-meeting.ts +122 -0
- package/src/meeting-info/meeting-info-v2.ts +5 -11
- package/src/meeting-info/util.ts +12 -9
- package/src/meeting-info/utilv2.ts +26 -15
- package/src/meetings/index.ts +18 -0
- package/src/member/index.ts +0 -1
- package/src/multistream/mediaRequestManager.ts +1 -1
- package/src/multistream/remoteMediaGroup.ts +1 -1
- package/src/multistream/remoteMediaManager.ts +1 -2
- package/src/multistream/sendSlotManager.ts +1 -2
- package/src/reachability/clusterReachability.ts +20 -5
- package/src/reachability/index.ts +24 -1
- package/src/reachability/request.ts +15 -11
- package/src/reachability/util.ts +21 -0
- package/src/reconnection-manager/index.ts +1 -1
- package/src/roap/index.ts +25 -3
- package/src/roap/request.ts +2 -2
- package/src/roap/turnDiscovery.ts +244 -78
- package/src/statsAnalyzer/index.ts +63 -27
- package/test/integration/spec/journey.js +2 -2
- package/test/unit/spec/breakouts/breakout.ts +2 -1
- package/test/unit/spec/breakouts/index.ts +7 -4
- package/test/unit/spec/interpretation/index.ts +4 -1
- package/test/unit/spec/locus-info/index.js +27 -18
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +9 -0
- package/test/unit/spec/locus-info/selfUtils.js +41 -11
- package/test/unit/spec/media/MediaConnectionAwaiter.ts +344 -0
- package/test/unit/spec/media/index.ts +94 -78
- package/test/unit/spec/media/properties.ts +16 -70
- package/test/unit/spec/meeting/index.js +757 -141
- package/test/unit/spec/meeting/request.js +21 -0
- package/test/unit/spec/meeting/utils.js +58 -11
- package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +20 -15
- package/test/unit/spec/meeting-info/utilv2.js +6 -0
- package/test/unit/spec/meetings/index.js +101 -13
- package/test/unit/spec/metrics/index.js +1 -2
- package/test/unit/spec/multistream/mediaRequestManager.ts +1 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -1
- package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1
- package/test/unit/spec/reachability/clusterReachability.ts +86 -22
- package/test/unit/spec/reachability/index.ts +197 -60
- package/test/unit/spec/reachability/request.js +15 -7
- package/test/unit/spec/reachability/util.ts +32 -2
- package/test/unit/spec/reconnection-manager/index.js +28 -0
- package/test/unit/spec/recording-controller/index.js +0 -1
- package/test/unit/spec/roap/index.ts +61 -6
- package/test/unit/spec/roap/turnDiscovery.ts +299 -17
- package/test/unit/spec/stats-analyzer/index.js +179 -0
- /package/dist/{types/annotation → annotation}/annotation.types.d.ts +0 -0
- /package/dist/{types/annotation → annotation}/constants.d.ts +0 -0
- /package/dist/{types/annotation → annotation}/index.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/breakout.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/collection.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/edit-lock-error.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/events.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/index.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/request.d.ts +0 -0
- /package/dist/{types/breakouts → breakouts}/utils.d.ts +0 -0
- /package/dist/{types/common → common}/browser-detection.d.ts +0 -0
- /package/dist/{types/common → common}/collection.d.ts +0 -0
- /package/dist/{types/common → common}/config.d.ts +0 -0
- /package/dist/{types/common → common}/errors/captcha-error.d.ts +0 -0
- /package/dist/{types/common → common}/errors/intent-to-join.d.ts +0 -0
- /package/dist/{types/common → common}/errors/join-meeting.d.ts +0 -0
- /package/dist/{types/common → common}/errors/media.d.ts +0 -0
- /package/dist/{types/common → common}/errors/no-meeting-info.d.ts +0 -0
- /package/dist/{types/common → common}/errors/parameter.d.ts +0 -0
- /package/dist/{types/common → common}/errors/password-error.d.ts +0 -0
- /package/dist/{types/common → common}/errors/permission.d.ts +0 -0
- /package/dist/{types/common → common}/errors/reclaim-host-role-errors.d.ts +0 -0
- /package/dist/{types/common → common}/errors/reconnection-in-progress.d.ts +0 -0
- /package/dist/{types/common → common}/errors/reconnection.d.ts +0 -0
- /package/dist/{types/common → common}/errors/stats.d.ts +0 -0
- /package/dist/{types/common → common}/errors/webex-errors.d.ts +0 -0
- /package/dist/{types/common → common}/errors/webex-meetings-error.d.ts +0 -0
- /package/dist/{types/common → common}/events/events-scope.d.ts +0 -0
- /package/dist/{types/common → common}/events/events.d.ts +0 -0
- /package/dist/{types/common → common}/events/trigger-proxy.d.ts +0 -0
- /package/dist/{types/common → common}/events/util.d.ts +0 -0
- /package/dist/{types/common → common}/logs/logger-config.d.ts +0 -0
- /package/dist/{types/common → common}/logs/logger-proxy.d.ts +0 -0
- /package/dist/{types/common → common}/queue.d.ts +0 -0
- /package/dist/{types/controls-options-manager → controls-options-manager}/constants.d.ts +0 -0
- /package/dist/{types/controls-options-manager → controls-options-manager}/enums.d.ts +0 -0
- /package/dist/{types/controls-options-manager → controls-options-manager}/index.d.ts +0 -0
- /package/dist/{types/controls-options-manager → controls-options-manager}/types.d.ts +0 -0
- /package/dist/{types/controls-options-manager → controls-options-manager}/util.d.ts +0 -0
- /package/dist/{types/index.d.ts → index.d.ts} +0 -0
- /package/dist/{types/interceptors → interceptors}/index.d.ts +0 -0
- /package/dist/{types/interceptors → interceptors}/locusRetry.d.ts +0 -0
- /package/dist/{types/interpretation → interpretation}/collection.d.ts +0 -0
- /package/dist/{types/interpretation → interpretation}/index.d.ts +0 -0
- /package/dist/{types/interpretation → interpretation}/siLanguage.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/controlsUtils.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/embeddedAppsUtils.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/fullState.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/hostUtils.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/index.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/infoUtils.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/mediaSharesUtils.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/parser.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/selfUtils.d.ts +0 -0
- /package/dist/{types/media → media}/index.d.ts +0 -0
- /package/dist/{types/media → media}/properties.d.ts +0 -0
- /package/dist/{types/media → media}/util.d.ts +0 -0
- /package/dist/{types/mediaQualityMetrics → mediaQualityMetrics}/config.d.ts +0 -0
- /package/dist/{types/meeting → meeting}/in-meeting-actions.d.ts +0 -0
- /package/dist/{types/meeting → meeting}/locusMediaRequest.d.ts +0 -0
- /package/dist/{types/meeting → meeting}/muteState.d.ts +0 -0
- /package/dist/{types/meeting → meeting}/request.type.d.ts +0 -0
- /package/dist/{types/meeting → meeting}/state.d.ts +0 -0
- /package/dist/{types/meeting-info → meeting-info}/collection.d.ts +0 -0
- /package/dist/{types/meeting-info → meeting-info}/index.d.ts +0 -0
- /package/dist/{types/meeting-info → meeting-info}/meeting-info-v2.d.ts +0 -0
- /package/dist/{types/meeting-info → meeting-info}/request.d.ts +0 -0
- /package/dist/{types/meeting-info → meeting-info}/util.d.ts +0 -0
- /package/dist/{types/meeting-info → meeting-info}/utilv2.d.ts +0 -0
- /package/dist/{types/meetings → meetings}/collection.d.ts +0 -0
- /package/dist/{types/meetings → meetings}/meetings.types.d.ts +0 -0
- /package/dist/{types/meetings → meetings}/request.d.ts +0 -0
- /package/dist/{types/meetings → meetings}/util.d.ts +0 -0
- /package/dist/{types/member → member}/index.d.ts +0 -0
- /package/dist/{types/member → member}/types.d.ts +0 -0
- /package/dist/{types/member → member}/util.d.ts +0 -0
- /package/dist/{types/members → members}/collection.d.ts +0 -0
- /package/dist/{types/members → members}/index.d.ts +0 -0
- /package/dist/{types/members → members}/request.d.ts +0 -0
- /package/dist/{types/members → members}/types.d.ts +0 -0
- /package/dist/{types/metrics → metrics}/constants.d.ts +0 -0
- /package/dist/{types/metrics → metrics}/index.d.ts +0 -0
- /package/dist/{types/multistream → multistream}/receiveSlot.d.ts +0 -0
- /package/dist/{types/multistream → multistream}/receiveSlotManager.d.ts +0 -0
- /package/dist/{types/multistream → multistream}/remoteMedia.d.ts +0 -0
- /package/dist/{types/networkQualityMonitor → networkQualityMonitor}/index.d.ts +0 -0
- /package/dist/{types/personal-meeting-room → personal-meeting-room}/index.d.ts +0 -0
- /package/dist/{types/personal-meeting-room → personal-meeting-room}/request.d.ts +0 -0
- /package/dist/{types/personal-meeting-room → personal-meeting-room}/util.d.ts +0 -0
- /package/dist/{types/reachability → reachability}/request.d.ts +0 -0
- /package/dist/{types/reactions → reactions}/constants.d.ts +0 -0
- /package/dist/{types/reactions → reactions}/reactions.d.ts +0 -0
- /package/dist/{types/reactions → reactions}/reactions.type.d.ts +0 -0
- /package/dist/{types/reconnection-manager → reconnection-manager}/index.d.ts +0 -0
- /package/dist/{types/recording-controller → recording-controller}/enums.d.ts +0 -0
- /package/dist/{types/recording-controller → recording-controller}/index.d.ts +0 -0
- /package/dist/{types/recording-controller → recording-controller}/util.d.ts +0 -0
- /package/dist/{types/roap → roap}/request.d.ts +0 -0
- /package/dist/{types/rtcMetrics → rtcMetrics}/constants.d.ts +0 -0
- /package/dist/{types/rtcMetrics → rtcMetrics}/index.d.ts +0 -0
- /package/dist/{types/statsAnalyzer → statsAnalyzer}/global.d.ts +0 -0
- /package/dist/{types/statsAnalyzer → statsAnalyzer}/index.d.ts +0 -0
- /package/dist/{types/statsAnalyzer → statsAnalyzer}/mqaUtil.d.ts +0 -0
- /package/dist/{types/transcription → transcription}/index.d.ts +0 -0
- /package/dist/{types/webinar → webinar}/collection.d.ts +0 -0
- /package/dist/{types/webinar → webinar}/index.d.ts +0 -0
|
@@ -22,8 +22,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/
|
|
|
22
22
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
23
23
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
24
24
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
25
|
-
var
|
|
26
|
-
var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
25
|
+
var _lodash = require("lodash");
|
|
27
26
|
var _internalMediaCore = require("@webex/internal-media-core");
|
|
28
27
|
var _eventsScope = _interopRequireDefault(require("../common/events/events-scope"));
|
|
29
28
|
var _constants = require("../constants");
|
|
@@ -31,18 +30,17 @@ var _config = require("../mediaQualityMetrics/config");
|
|
|
31
30
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
32
31
|
var _global = _interopRequireDefault(require("./global"));
|
|
33
32
|
var _mqaUtil = require("./mqaUtil");
|
|
34
|
-
function ownKeys(
|
|
35
|
-
function _objectSpread(
|
|
33
|
+
function ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
34
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
36
35
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
37
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
38
|
-
var EVENTS = {
|
|
36
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable prefer-destructuring */
|
|
37
|
+
var EVENTS = exports.EVENTS = {
|
|
39
38
|
MEDIA_QUALITY: 'MEDIA_QUALITY',
|
|
40
39
|
LOCAL_MEDIA_STARTED: 'LOCAL_MEDIA_STARTED',
|
|
41
40
|
LOCAL_MEDIA_STOPPED: 'LOCAL_MEDIA_STOPPED',
|
|
42
41
|
REMOTE_MEDIA_STARTED: 'REMOTE_MEDIA_STARTED',
|
|
43
42
|
REMOTE_MEDIA_STOPPED: 'REMOTE_MEDIA_STOPPED'
|
|
44
43
|
};
|
|
45
|
-
exports.EVENTS = EVENTS;
|
|
46
44
|
var emptySender = {
|
|
47
45
|
trackLabel: '',
|
|
48
46
|
maxPacketLossRatio: 0,
|
|
@@ -64,11 +62,9 @@ var emptyReceiver = {
|
|
|
64
62
|
* @class StatsAnalyzer
|
|
65
63
|
* @extends {EventsScope}
|
|
66
64
|
*/
|
|
67
|
-
var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
65
|
+
var StatsAnalyzer = exports.StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
68
66
|
(0, _inherits2.default)(StatsAnalyzer, _EventsScope);
|
|
69
67
|
var _super = _createSuper(StatsAnalyzer);
|
|
70
|
-
// Returns the local IP address for diagnostics. this is the local IP of the interface used for the current media connection a host can have many local Ip Addresses
|
|
71
|
-
|
|
72
68
|
/**
|
|
73
69
|
* Creates a new instance of StatsAnalyzer
|
|
74
70
|
* @constructor
|
|
@@ -102,7 +98,22 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
102
98
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "statsStarted", void 0);
|
|
103
99
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "successfulCandidatePair", void 0);
|
|
104
100
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "localIpAddress", void 0);
|
|
101
|
+
// Returns the local IP address for diagnostics. this is the local IP of the interface used for the current media connection a host can have many local Ip Addresses
|
|
105
102
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "receiveSlotCallback", void 0);
|
|
103
|
+
/**
|
|
104
|
+
* emits started/stopped events for local/remote media by checking
|
|
105
|
+
* if given values are increasing or not. The previousValue, currentValue
|
|
106
|
+
* params can be any numerical value like number of receive packets or
|
|
107
|
+
* decoded frames, etc.
|
|
108
|
+
*
|
|
109
|
+
* @private
|
|
110
|
+
* @param {string} mediaType
|
|
111
|
+
* @param {number} previousValue - value to compare
|
|
112
|
+
* @param {number} currentValue - value to compare (must be same type of value as previousValue)
|
|
113
|
+
* @param {boolean} isLocal - true if stats are for local media being sent out, false for remote media being received
|
|
114
|
+
* @memberof StatsAnalyzer
|
|
115
|
+
* @returns {void}
|
|
116
|
+
*/
|
|
106
117
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "emitStartStopEvents", function (mediaType, previousValue, currentValue, isLocal) {
|
|
107
118
|
if (mediaType !== 'audio' && mediaType !== 'video' && mediaType !== 'share') {
|
|
108
119
|
throw new Error("Unsupported mediaType: ".concat(mediaType));
|
|
@@ -136,9 +147,20 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
136
147
|
});
|
|
137
148
|
}
|
|
138
149
|
});
|
|
150
|
+
/**
|
|
151
|
+
* extracts the local Ip address from the statsResult object by looking at stats results candidates
|
|
152
|
+
* and matches that ID with the successful candidate pair. It looks at the type of local candidate it is
|
|
153
|
+
* and then extracts the IP address from the relatedAddress or address property based on conditions known in webrtc
|
|
154
|
+
* note, there are known incompatibilities and it is possible for this to set undefined, or for the IP address to be the public IP address
|
|
155
|
+
* for example, firefox does not set the relayProtocol, and if the user is behind a NAT it might be the public IP
|
|
156
|
+
* @private
|
|
157
|
+
* @param {string} successfulCandidatePairId - The ID of the successful candidate pair.
|
|
158
|
+
* @param {Object} candidates - the stats result candidates
|
|
159
|
+
* @returns {void}
|
|
160
|
+
*/
|
|
139
161
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "extractAndSetLocalIpAddressInfoForDiagnostics", function (successfulCandidatePairId, candidates) {
|
|
140
162
|
var newIpAddress = '';
|
|
141
|
-
if (successfulCandidatePairId && !(0,
|
|
163
|
+
if (successfulCandidatePairId && !(0, _lodash.isEmpty)(candidates)) {
|
|
142
164
|
var localCandidate = candidates[successfulCandidatePairId];
|
|
143
165
|
if (localCandidate) {
|
|
144
166
|
if (localCandidate.candidateType === 'host') {
|
|
@@ -163,6 +185,16 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
163
185
|
}
|
|
164
186
|
_this.localIpAddress = newIpAddress;
|
|
165
187
|
});
|
|
188
|
+
/**
|
|
189
|
+
* Processes remote and local candidate result and stores
|
|
190
|
+
* @private
|
|
191
|
+
* @param {*} result
|
|
192
|
+
* @param {*} type
|
|
193
|
+
* @param {boolean} isSender
|
|
194
|
+
* @param {boolean} isRemote
|
|
195
|
+
*
|
|
196
|
+
* @returns {void}
|
|
197
|
+
*/
|
|
166
198
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "parseCandidate", function (result, type, isSender, isRemote) {
|
|
167
199
|
var _this$successfulCandi;
|
|
168
200
|
if (!result || !result.id) {
|
|
@@ -273,7 +305,7 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
273
305
|
key: "sendMqaData",
|
|
274
306
|
value: function sendMqaData() {
|
|
275
307
|
var _this3 = this;
|
|
276
|
-
var newMqa = (0,
|
|
308
|
+
var newMqa = (0, _lodash.cloneDeep)(_config.emptyMqaInterval);
|
|
277
309
|
|
|
278
310
|
// Fill in empty stats items for lastMqaDataSent
|
|
279
311
|
(0, _keys.default)(this.statsResults).forEach(function (mediaType) {
|
|
@@ -289,14 +321,14 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
289
321
|
});
|
|
290
322
|
|
|
291
323
|
// Create stats the first level, totals for senders and receivers
|
|
292
|
-
var audioSender = (0,
|
|
293
|
-
var audioShareSender = (0,
|
|
294
|
-
var audioReceiver = (0,
|
|
295
|
-
var audioShareReceiver = (0,
|
|
296
|
-
var videoSender = (0,
|
|
297
|
-
var videoShareSender = (0,
|
|
298
|
-
var videoReceiver = (0,
|
|
299
|
-
var videoShareReceiver = (0,
|
|
324
|
+
var audioSender = (0, _lodash.cloneDeep)(_config.emptyAudioTransmit);
|
|
325
|
+
var audioShareSender = (0, _lodash.cloneDeep)(_config.emptyAudioTransmit);
|
|
326
|
+
var audioReceiver = (0, _lodash.cloneDeep)(_config.emptyAudioReceive);
|
|
327
|
+
var audioShareReceiver = (0, _lodash.cloneDeep)(_config.emptyAudioReceive);
|
|
328
|
+
var videoSender = (0, _lodash.cloneDeep)(_config.emptyVideoTransmit);
|
|
329
|
+
var videoShareSender = (0, _lodash.cloneDeep)(_config.emptyVideoTransmit);
|
|
330
|
+
var videoReceiver = (0, _lodash.cloneDeep)(_config.emptyVideoReceive);
|
|
331
|
+
var videoShareReceiver = (0, _lodash.cloneDeep)(_config.emptyVideoReceive);
|
|
300
332
|
(0, _mqaUtil.getAudioSenderMqa)({
|
|
301
333
|
audioSender: audioSender,
|
|
302
334
|
statsResults: this.statsResults,
|
|
@@ -356,8 +388,8 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
356
388
|
|
|
357
389
|
// Add stats for individual streams
|
|
358
390
|
(0, _keys.default)(this.statsResults).forEach(function (mediaType) {
|
|
359
|
-
if (mediaType.
|
|
360
|
-
var audioSenderStream = (0,
|
|
391
|
+
if (mediaType.startsWith('audio-send')) {
|
|
392
|
+
var audioSenderStream = (0, _lodash.cloneDeep)(_config.emptyAudioTransmitStream);
|
|
361
393
|
(0, _mqaUtil.getAudioSenderStreamMqa)({
|
|
362
394
|
audioSenderStream: audioSenderStream,
|
|
363
395
|
statsResults: _this3.statsResults,
|
|
@@ -365,9 +397,9 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
365
397
|
mediaType: mediaType
|
|
366
398
|
});
|
|
367
399
|
newMqa.audioTransmit[0].streams.push(audioSenderStream);
|
|
368
|
-
_this3.lastMqaDataSent[mediaType].send = (0,
|
|
369
|
-
} else if (mediaType.
|
|
370
|
-
var _audioSenderStream = (0,
|
|
400
|
+
_this3.lastMqaDataSent[mediaType].send = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].send);
|
|
401
|
+
} else if (mediaType.startsWith('audio-share-send')) {
|
|
402
|
+
var _audioSenderStream = (0, _lodash.cloneDeep)(_config.emptyAudioTransmitStream);
|
|
371
403
|
(0, _mqaUtil.getAudioSenderStreamMqa)({
|
|
372
404
|
audioSenderStream: _audioSenderStream,
|
|
373
405
|
statsResults: _this3.statsResults,
|
|
@@ -375,9 +407,9 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
375
407
|
mediaType: mediaType
|
|
376
408
|
});
|
|
377
409
|
newMqa.audioTransmit[1].streams.push(_audioSenderStream);
|
|
378
|
-
_this3.lastMqaDataSent[mediaType].send = (0,
|
|
379
|
-
} else if (mediaType.
|
|
380
|
-
var audioReceiverStream = (0,
|
|
410
|
+
_this3.lastMqaDataSent[mediaType].send = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].send);
|
|
411
|
+
} else if (mediaType.startsWith('audio-recv')) {
|
|
412
|
+
var audioReceiverStream = (0, _lodash.cloneDeep)(_config.emptyAudioReceiveStream);
|
|
381
413
|
(0, _mqaUtil.getAudioReceiverStreamMqa)({
|
|
382
414
|
audioReceiverStream: audioReceiverStream,
|
|
383
415
|
statsResults: _this3.statsResults,
|
|
@@ -385,9 +417,9 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
385
417
|
mediaType: mediaType
|
|
386
418
|
});
|
|
387
419
|
newMqa.audioReceive[0].streams.push(audioReceiverStream);
|
|
388
|
-
_this3.lastMqaDataSent[mediaType].recv = (0,
|
|
389
|
-
} else if (mediaType.
|
|
390
|
-
var _audioReceiverStream = (0,
|
|
420
|
+
_this3.lastMqaDataSent[mediaType].recv = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].recv);
|
|
421
|
+
} else if (mediaType.startsWith('audio-share-recv')) {
|
|
422
|
+
var _audioReceiverStream = (0, _lodash.cloneDeep)(_config.emptyAudioReceiveStream);
|
|
391
423
|
(0, _mqaUtil.getAudioReceiverStreamMqa)({
|
|
392
424
|
audioReceiverStream: _audioReceiverStream,
|
|
393
425
|
statsResults: _this3.statsResults,
|
|
@@ -395,9 +427,10 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
395
427
|
mediaType: mediaType
|
|
396
428
|
});
|
|
397
429
|
newMqa.audioReceive[1].streams.push(_audioReceiverStream);
|
|
398
|
-
_this3.lastMqaDataSent[mediaType].recv = (0,
|
|
399
|
-
} else if (mediaType.
|
|
400
|
-
|
|
430
|
+
_this3.lastMqaDataSent[mediaType].recv = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].recv);
|
|
431
|
+
} else if (mediaType.startsWith('video-send-layer')) {
|
|
432
|
+
// We only want the stream-specific stats we get with video-send-layer-0, video-send-layer-1, etc.
|
|
433
|
+
var videoSenderStream = (0, _lodash.cloneDeep)(_config.emptyVideoTransmitStream);
|
|
401
434
|
(0, _mqaUtil.getVideoSenderStreamMqa)({
|
|
402
435
|
videoSenderStream: videoSenderStream,
|
|
403
436
|
statsResults: _this3.statsResults,
|
|
@@ -405,9 +438,9 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
405
438
|
mediaType: mediaType
|
|
406
439
|
});
|
|
407
440
|
newMqa.videoTransmit[0].streams.push(videoSenderStream);
|
|
408
|
-
_this3.lastMqaDataSent[mediaType].send = (0,
|
|
409
|
-
} else if (mediaType.
|
|
410
|
-
var _videoSenderStream = (0,
|
|
441
|
+
_this3.lastMqaDataSent[mediaType].send = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].send);
|
|
442
|
+
} else if (mediaType.startsWith('video-share-send')) {
|
|
443
|
+
var _videoSenderStream = (0, _lodash.cloneDeep)(_config.emptyVideoTransmitStream);
|
|
411
444
|
(0, _mqaUtil.getVideoSenderStreamMqa)({
|
|
412
445
|
videoSenderStream: _videoSenderStream,
|
|
413
446
|
statsResults: _this3.statsResults,
|
|
@@ -415,9 +448,9 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
415
448
|
mediaType: mediaType
|
|
416
449
|
});
|
|
417
450
|
newMqa.videoTransmit[1].streams.push(_videoSenderStream);
|
|
418
|
-
_this3.lastMqaDataSent[mediaType].send = (0,
|
|
419
|
-
} else if (mediaType.
|
|
420
|
-
var videoReceiverStream = (0,
|
|
451
|
+
_this3.lastMqaDataSent[mediaType].send = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].send);
|
|
452
|
+
} else if (mediaType.startsWith('video-recv')) {
|
|
453
|
+
var videoReceiverStream = (0, _lodash.cloneDeep)(_config.emptyVideoReceiveStream);
|
|
421
454
|
(0, _mqaUtil.getVideoReceiverStreamMqa)({
|
|
422
455
|
videoReceiverStream: videoReceiverStream,
|
|
423
456
|
statsResults: _this3.statsResults,
|
|
@@ -425,9 +458,9 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
425
458
|
mediaType: mediaType
|
|
426
459
|
});
|
|
427
460
|
newMqa.videoReceive[0].streams.push(videoReceiverStream);
|
|
428
|
-
_this3.lastMqaDataSent[mediaType].recv = (0,
|
|
429
|
-
} else if (mediaType.
|
|
430
|
-
var _videoReceiverStream = (0,
|
|
461
|
+
_this3.lastMqaDataSent[mediaType].recv = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].recv);
|
|
462
|
+
} else if (mediaType.startsWith('video-share-recv')) {
|
|
463
|
+
var _videoReceiverStream = (0, _lodash.cloneDeep)(_config.emptyVideoReceiveStream);
|
|
431
464
|
(0, _mqaUtil.getVideoReceiverStreamMqa)({
|
|
432
465
|
videoReceiverStream: _videoReceiverStream,
|
|
433
466
|
statsResults: _this3.statsResults,
|
|
@@ -435,7 +468,7 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
435
468
|
mediaType: mediaType
|
|
436
469
|
});
|
|
437
470
|
newMqa.videoReceive[1].streams.push(_videoReceiverStream);
|
|
438
|
-
_this3.lastMqaDataSent[mediaType].recv = (0,
|
|
471
|
+
_this3.lastMqaDataSent[mediaType].recv = (0, _lodash.cloneDeep)(_this3.statsResults[mediaType].recv);
|
|
439
472
|
}
|
|
440
473
|
});
|
|
441
474
|
newMqa.intervalMetadata.peerReflexiveIP = this.statsResults.connectionType.local.ipAddress;
|
|
@@ -451,9 +484,12 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
451
484
|
name: _constants.MEDIA_DEVICES.MICROPHONE
|
|
452
485
|
});
|
|
453
486
|
}
|
|
454
|
-
|
|
487
|
+
var existingVideoSender = (0, _keys.default)(this.statsResults).find(function (item) {
|
|
488
|
+
return item.includes('video-send');
|
|
489
|
+
});
|
|
490
|
+
if (existingVideoSender) {
|
|
455
491
|
newMqa.intervalMetadata.peripherals.push({
|
|
456
|
-
information: this.statsResults[
|
|
492
|
+
information: this.statsResults[existingVideoSender].trackLabel || _constants._UNKNOWN_,
|
|
457
493
|
name: _constants.MEDIA_DEVICES.CAMERA
|
|
458
494
|
});
|
|
459
495
|
}
|
|
@@ -577,9 +613,9 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
577
613
|
this.statsResults[type] = {};
|
|
578
614
|
}
|
|
579
615
|
if (isSender && !this.statsResults[type].send) {
|
|
580
|
-
this.statsResults[type].send = (0,
|
|
616
|
+
this.statsResults[type].send = (0, _lodash.cloneDeep)(emptySender);
|
|
581
617
|
} else if (!isSender && !this.statsResults[type].recv) {
|
|
582
|
-
this.statsResults[type].recv = (0,
|
|
618
|
+
this.statsResults[type].recv = (0, _lodash.cloneDeep)(emptyReceiver);
|
|
583
619
|
}
|
|
584
620
|
switch (getStatsResult.type) {
|
|
585
621
|
case 'outbound-rtp':
|
|
@@ -627,9 +663,20 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
627
663
|
_this6.successfulCandidatePair = report;
|
|
628
664
|
}
|
|
629
665
|
});
|
|
666
|
+
var videoSenderIndex = 0;
|
|
630
667
|
statsItem.report.forEach(function (result) {
|
|
631
668
|
if (types.includes(result.type)) {
|
|
632
|
-
|
|
669
|
+
// if the video sender has multiple streams in the report, it is a new stream object.
|
|
670
|
+
if (type === 'video-send' && result.type === 'outbound-rtp') {
|
|
671
|
+
var newType = "video-send-layer-".concat(videoSenderIndex);
|
|
672
|
+
_this6.parseGetStatsResult(result, newType, isSender);
|
|
673
|
+
videoSenderIndex += 1;
|
|
674
|
+
_this6.statsResults[newType].direction = statsItem.currentDirection;
|
|
675
|
+
_this6.statsResults[newType].trackLabel = statsItem.localTrackLabel;
|
|
676
|
+
_this6.statsResults[newType].csi = statsItem.csi;
|
|
677
|
+
} else {
|
|
678
|
+
_this6.parseGetStatsResult(result, type, isSender);
|
|
679
|
+
}
|
|
633
680
|
}
|
|
634
681
|
});
|
|
635
682
|
if (this.statsResults[type]) {
|
|
@@ -660,21 +707,6 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
660
707
|
this.statsResults[type].send.totalAudioEnergy = result.totalAudioEnergy;
|
|
661
708
|
}
|
|
662
709
|
}
|
|
663
|
-
|
|
664
|
-
/**
|
|
665
|
-
* emits started/stopped events for local/remote media by checking
|
|
666
|
-
* if given values are increasing or not. The previousValue, currentValue
|
|
667
|
-
* params can be any numerical value like number of receive packets or
|
|
668
|
-
* decoded frames, etc.
|
|
669
|
-
*
|
|
670
|
-
* @private
|
|
671
|
-
* @param {string} mediaType
|
|
672
|
-
* @param {number} previousValue - value to compare
|
|
673
|
-
* @param {number} currentValue - value to compare (must be same type of value as previousValue)
|
|
674
|
-
* @param {boolean} isLocal - true if stats are for local media being sent out, false for remote media being received
|
|
675
|
-
* @memberof StatsAnalyzer
|
|
676
|
-
* @returns {void}
|
|
677
|
-
*/
|
|
678
710
|
}, {
|
|
679
711
|
key: "compareLastStatsResult",
|
|
680
712
|
value:
|
|
@@ -693,7 +725,7 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
693
725
|
return key.startsWith(keyPrefix);
|
|
694
726
|
}).reduce(function (prev, cur) {
|
|
695
727
|
var _this7$statsResults$c;
|
|
696
|
-
return prev + (((_this7$statsResults$c = _this7.statsResults[cur]) === null || _this7$statsResults$c === void 0 ? void 0 : _this7$statsResults$c.recv[value]) || 0);
|
|
728
|
+
return prev + (((_this7$statsResults$c = _this7.statsResults[cur]) === null || _this7$statsResults$c === void 0 ? void 0 : _this7$statsResults$c[keyPrefix.includes('send') ? 'send' : 'recv'][value]) || 0);
|
|
697
729
|
}, 0);
|
|
698
730
|
};
|
|
699
731
|
var getPreviousStatsTotals = function getPreviousStatsTotals(keyPrefix, value) {
|
|
@@ -701,7 +733,7 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
701
733
|
return key.startsWith(keyPrefix);
|
|
702
734
|
}).reduce(function (prev, cur) {
|
|
703
735
|
var _this7$lastStatsResul;
|
|
704
|
-
return prev + (((_this7$lastStatsResul = _this7.lastStatsResults[cur]) === null || _this7$lastStatsResul === void 0 ? void 0 : _this7$lastStatsResul.recv[value]) || 0);
|
|
736
|
+
return prev + (((_this7$lastStatsResul = _this7.lastStatsResults[cur]) === null || _this7$lastStatsResul === void 0 ? void 0 : _this7$lastStatsResul[keyPrefix.includes('send') ? 'send' : 'recv'][value]) || 0);
|
|
705
737
|
}, 0);
|
|
706
738
|
};
|
|
707
739
|
|
|
@@ -728,23 +760,31 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
728
760
|
var currentAudioPacketsReceived = getCurrentStatsTotals('audio-recv', 'totalPacketsReceived');
|
|
729
761
|
var previousAudioPacketsReceived = getPreviousStatsTotals('audio-recv', 'totalPacketsReceived');
|
|
730
762
|
this.emitStartStopEvents('audio', previousAudioPacketsReceived, currentAudioPacketsReceived, false);
|
|
763
|
+
var currentTotalPacketsSent = getCurrentStatsTotals('video-send', 'totalPacketsSent');
|
|
764
|
+
var previousTotalPacketsSent = getPreviousStatsTotals('video-send', 'totalPacketsSent');
|
|
765
|
+
var currentFramesEncoded = getCurrentStatsTotals('video-send', 'framesEncoded');
|
|
766
|
+
var previousFramesEncoded = getPreviousStatsTotals('video-send', 'framesEncoded');
|
|
767
|
+
var currentFramesSent = getCurrentStatsTotals('video-send', 'framesSent');
|
|
768
|
+
var previousFramesSent = getPreviousStatsTotals('video-send', 'framesSent');
|
|
769
|
+
var doesVideoSendExist = (0, _keys.default)(this.lastStatsResults).some(function (item) {
|
|
770
|
+
return item.includes('video-send');
|
|
771
|
+
});
|
|
731
772
|
|
|
732
773
|
// Video Transmit
|
|
733
|
-
if (
|
|
774
|
+
if (doesVideoSendExist) {
|
|
734
775
|
// compare video stats sent
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video RTP packets sent", _currentStats.totalPacketsSent);
|
|
776
|
+
|
|
777
|
+
if (this.meetingMediaStatus.expected.sendVideo && (currentTotalPacketsSent === previousTotalPacketsSent || currentTotalPacketsSent === 0)) {
|
|
778
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video RTP packets sent", currentTotalPacketsSent);
|
|
739
779
|
} else {
|
|
740
|
-
if (this.meetingMediaStatus.expected.sendVideo && (
|
|
741
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video Frames Encoded",
|
|
780
|
+
if (this.meetingMediaStatus.expected.sendVideo && (currentFramesEncoded === previousFramesEncoded || currentFramesEncoded === 0)) {
|
|
781
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video Frames Encoded", currentFramesEncoded);
|
|
742
782
|
}
|
|
743
|
-
if (this.meetingMediaStatus.expected.sendVideo && (
|
|
744
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video Frames sent",
|
|
783
|
+
if (this.meetingMediaStatus.expected.sendVideo && (currentFramesSent === previousFramesSent || currentFramesSent === 0)) {
|
|
784
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video Frames sent", currentFramesSent);
|
|
745
785
|
}
|
|
746
786
|
}
|
|
747
|
-
this.emitStartStopEvents('video',
|
|
787
|
+
this.emitStartStopEvents('video', previousFramesSent, currentFramesSent, true);
|
|
748
788
|
}
|
|
749
789
|
|
|
750
790
|
// Video Receive
|
|
@@ -756,19 +796,19 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
756
796
|
if (this.lastStatsResults['video-share-send']) {
|
|
757
797
|
// compare share stats sent
|
|
758
798
|
|
|
759
|
-
var
|
|
760
|
-
var
|
|
761
|
-
if (this.meetingMediaStatus.expected.sendShare && (
|
|
762
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share RTP packets sent",
|
|
799
|
+
var _currentStats = this.statsResults['video-share-send'].send;
|
|
800
|
+
var _previousStats = this.lastStatsResults['video-share-send'].send;
|
|
801
|
+
if (this.meetingMediaStatus.expected.sendShare && (_currentStats.totalPacketsSent === _previousStats.totalPacketsSent || _currentStats.totalPacketsSent === 0)) {
|
|
802
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share RTP packets sent", _currentStats.totalPacketsSent);
|
|
763
803
|
} else {
|
|
764
|
-
if (this.meetingMediaStatus.expected.sendShare && (
|
|
765
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames getting encoded",
|
|
804
|
+
if (this.meetingMediaStatus.expected.sendShare && (_currentStats.framesEncoded === _previousStats.framesEncoded || _currentStats.framesEncoded === 0)) {
|
|
805
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames getting encoded", _currentStats.framesEncoded);
|
|
766
806
|
}
|
|
767
807
|
if (this.meetingMediaStatus.expected.sendShare && (this.statsResults['video-share-send'].send.framesSent === this.lastStatsResults['video-share-send'].send.framesSent || this.statsResults['video-share-send'].send.framesSent === 0)) {
|
|
768
808
|
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames sent", this.statsResults['video-share-send'].send.framesSent);
|
|
769
809
|
}
|
|
770
810
|
}
|
|
771
|
-
this.emitStartStopEvents('share',
|
|
811
|
+
this.emitStartStopEvents('share', _previousStats.framesSent, _currentStats.framesSent, true);
|
|
772
812
|
}
|
|
773
813
|
|
|
774
814
|
// Share receive
|
|
@@ -980,18 +1020,6 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
980
1020
|
this.statsResults[mediaType][sendrecvType].concealedSamples = result.concealedSamples || 0;
|
|
981
1021
|
}
|
|
982
1022
|
}
|
|
983
|
-
|
|
984
|
-
/**
|
|
985
|
-
* extracts the local Ip address from the statsResult object by looking at stats results candidates
|
|
986
|
-
* and matches that ID with the successful candidate pair. It looks at the type of local candidate it is
|
|
987
|
-
* and then extracts the IP address from the relatedAddress or address property based on conditions known in webrtc
|
|
988
|
-
* note, there are known incompatibilities and it is possible for this to set undefined, or for the IP address to be the public IP address
|
|
989
|
-
* for example, firefox does not set the relayProtocol, and if the user is behind a NAT it might be the public IP
|
|
990
|
-
* @private
|
|
991
|
-
* @param {string} successfulCandidatePairId - The ID of the successful candidate pair.
|
|
992
|
-
* @param {Object} candidates - the stats result candidates
|
|
993
|
-
* @returns {void}
|
|
994
|
-
*/
|
|
995
1023
|
}, {
|
|
996
1024
|
key: "compareSentAndReceived",
|
|
997
1025
|
value:
|
|
@@ -1035,5 +1063,4 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
1035
1063
|
}]);
|
|
1036
1064
|
return StatsAnalyzer;
|
|
1037
1065
|
}(_eventsScope.default);
|
|
1038
|
-
exports.StatsAnalyzer = StatsAnalyzer;
|
|
1039
1066
|
//# sourceMappingURL=index.js.map
|