@webex/plugin-meetings 3.0.0-stream-classes.4 → 3.0.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/README.md +12 -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.d.ts +14 -0
- package/dist/common/errors/no-meeting-info.js +50 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- 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.d.ts +60 -0
- package/dist/common/errors/reclaim-host-role-errors.js +154 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- 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/{types/common → common}/errors/webex-errors.d.ts +13 -1
- package/dist/common/errors/webex-errors.js +35 -16
- 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 +3 -1
- package/dist/common/logs/request.js +8 -5
- 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 -1
- package/dist/config.js +3 -3
- package/dist/config.js.map +1 -1
- package/dist/{types/constants.d.ts → constants.d.ts} +72 -15
- package/dist/constants.js +254 -371
- 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 +8 -5
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interceptors/locusRetry.js +94 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.js +1 -2
- package/dist/interpretation/collection.js.map +1 -1
- package/dist/interpretation/index.js +2 -3
- 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/{types/locus-info → locus-info}/index.d.ts +1 -1
- package/dist/locus-info/index.js +63 -38
- 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/{types/locus-info → locus-info}/parser.d.ts +3 -2
- package/dist/locus-info/parser.js +48 -31
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +7 -6
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +15 -10
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +16 -7
- 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.d.ts +241 -0
- package/dist/mediaQualityMetrics/config.js +135 -339
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/{types/meeting → meeting}/in-meeting-actions.d.ts +4 -0
- package/dist/meeting/in-meeting-actions.js +18 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/{types/meeting → meeting}/index.d.ts +331 -44
- package/dist/meeting/index.js +2639 -1367
- package/dist/meeting/index.js.map +1 -1
- package/dist/{types/meeting → meeting}/locusMediaRequest.d.ts +1 -2
- 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 +4 -1
- package/dist/meeting/request.js +47 -32
- 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 +26 -1
- package/dist/meeting/util.js +83 -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/{types/meeting-info → meeting-info}/index.d.ts +7 -0
- package/dist/meeting-info/index.js +53 -27
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/{types/meeting-info → meeting-info}/meeting-info-v2.d.ts +1 -0
- package/dist/meeting-info/meeting-info-v2.js +52 -33
- 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 +12 -9
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/{types/meetings → meetings}/collection.d.ts +9 -0
- package/dist/meetings/collection.js +21 -5
- package/dist/meetings/collection.js.map +1 -1
- package/dist/{types/meetings → meetings}/index.d.ts +45 -16
- package/dist/meetings/index.js +166 -74
- 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 +3 -10
- package/dist/meetings/util.js.map +1 -1
- package/dist/{types/member → member}/index.d.ts +1 -0
- package/dist/member/index.js +10 -3
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.d.ts +11 -0
- package/dist/member/member.types.js +17 -0
- package/dist/member/member.types.js.map +1 -0
- package/dist/member/types.js +6 -8
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +12 -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 +25 -8
- 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/{types/members → members}/types.d.ts +1 -0
- package/dist/members/types.js +3 -4
- package/dist/members/types.js.map +1 -1
- package/dist/{types/members → members}/util.d.ts +6 -1
- package/dist/members/util.js +18 -8
- package/dist/members/util.js.map +1 -1
- package/dist/{types/metrics → metrics}/constants.d.ts +15 -0
- package/dist/metrics/constants.js +16 -3
- 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/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/multistream/remoteMediaGroup.js +7 -6
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/{types/multistream → multistream}/remoteMediaManager.d.ts +9 -1
- package/dist/multistream/remoteMediaManager.js +74 -36
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- 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/reachability/clusterReachability.d.ts +109 -0
- package/dist/reachability/clusterReachability.js +357 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.d.ts +105 -0
- package/dist/reachability/index.js +279 -436
- package/dist/reachability/index.js.map +1 -1
- package/dist/{types/reachability → reachability}/request.d.ts +1 -1
- package/dist/reachability/request.js +14 -11
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.d.ts +8 -0
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- 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/{types/reconnection-manager → reconnection-manager}/index.d.ts +10 -0
- package/dist/reconnection-manager/index.js +129 -106
- 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 +2 -1
- package/dist/roap/index.js +59 -28
- package/dist/roap/index.js.map +1 -1
- package/dist/{types/roap → roap}/request.d.ts +2 -1
- package/dist/roap/request.js +14 -22
- package/dist/roap/request.js.map +1 -1
- package/dist/{types/roap → roap}/turnDiscovery.d.ts +21 -4
- package/dist/roap/turnDiscovery.js +182 -89
- 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/{types/rtcMetrics → rtcMetrics}/index.d.ts +15 -1
- package/dist/rtcMetrics/index.js +72 -12
- 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/{types/statsAnalyzer → statsAnalyzer}/index.d.ts +28 -11
- package/dist/statsAnalyzer/index.js +371 -318
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
- package/dist/statsAnalyzer/mqaUtil.js +295 -162
- 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.d.ts +16 -0
- package/dist/webinar/collection.js +43 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +68 -0
- package/dist/webinar/index.js.map +1 -0
- package/jest.config.js +3 -0
- package/package.json +44 -24
- package/process +1 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/webex-errors.ts +19 -2
- package/src/common/logs/request.ts +5 -1
- package/src/config.ts +3 -5
- package/src/constants.ts +78 -8
- package/src/index.ts +4 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/locus-info/index.ts +52 -16
- package/src/locus-info/mediaSharesUtils.ts +16 -0
- package/src/locus-info/parser.ts +47 -21
- package/src/media/index.ts +8 -6
- package/src/media/properties.ts +17 -2
- package/src/mediaQualityMetrics/config.ts +103 -238
- package/src/meeting/in-meeting-actions.ts +8 -0
- package/src/meeting/index.ts +1692 -627
- package/src/meeting/request.ts +19 -1
- package/src/meeting/util.ts +102 -1
- package/src/meeting/voicea-meeting.ts +122 -0
- package/src/meeting-info/index.ts +47 -20
- package/src/meeting-info/meeting-info-v2.ts +32 -16
- package/src/meeting-info/util.ts +12 -9
- package/src/meeting-info/utilv2.ts +25 -15
- package/src/meetings/collection.ts +13 -0
- package/src/meetings/index.ts +112 -31
- package/src/meetings/util.ts +2 -8
- package/src/member/index.ts +9 -1
- package/src/member/member.types.ts +13 -0
- package/src/member/util.ts +14 -0
- package/src/members/index.ts +29 -2
- package/src/members/types.ts +1 -0
- package/src/members/util.ts +15 -1
- package/src/metrics/constants.ts +14 -0
- package/src/multistream/remoteMediaManager.ts +41 -4
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +221 -382
- package/src/reachability/request.ts +1 -1
- package/src/reachability/util.ts +24 -0
- package/src/reconnection-manager/index.ts +87 -83
- package/src/roap/index.ts +60 -24
- package/src/roap/request.ts +4 -17
- package/src/roap/turnDiscovery.ts +112 -39
- package/src/rtcMetrics/index.ts +71 -5
- package/src/statsAnalyzer/index.ts +430 -427
- package/src/statsAnalyzer/mqaUtil.ts +317 -168
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +7 -7
- package/test/integration/spec/journey.js +88 -106
- package/test/integration/spec/space-meeting.js +10 -10
- package/test/unit/spec/breakouts/breakout.ts +2 -1
- package/test/unit/spec/breakouts/index.ts +7 -4
- package/test/unit/spec/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/locus-info/index.js +206 -13
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +10 -0
- package/test/unit/spec/locus-info/parser.js +54 -13
- package/test/unit/spec/locus-info/selfUtils.js +1 -1
- package/test/unit/spec/media/index.ts +25 -4
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
- package/test/unit/spec/meeting/index.js +4354 -1285
- package/test/unit/spec/meeting/request.js +63 -12
- package/test/unit/spec/meeting/utils.js +145 -10
- package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
- package/test/unit/spec/meeting-info/index.js +180 -61
- package/test/unit/spec/meeting-info/meetinginfov2.js +216 -68
- package/test/unit/spec/meetings/collection.js +12 -0
- package/test/unit/spec/meetings/index.js +676 -195
- package/test/unit/spec/meetings/utils.js +35 -12
- package/test/unit/spec/member/index.js +8 -7
- package/test/unit/spec/member/util.js +32 -0
- package/test/unit/spec/members/index.js +130 -17
- package/test/unit/spec/members/utils.js +26 -0
- package/test/unit/spec/metrics/index.js +1 -2
- package/test/unit/spec/multistream/mediaRequestManager.ts +1 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +10 -2
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +505 -135
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +74 -17
- package/test/unit/spec/recording-controller/index.js +0 -1
- package/test/unit/spec/roap/index.ts +181 -61
- package/test/unit/spec/roap/request.ts +27 -3
- package/test/unit/spec/roap/turnDiscovery.ts +363 -102
- package/test/unit/spec/rtcMetrics/index.ts +57 -3
- package/test/unit/spec/stats-analyzer/index.js +1225 -12
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +4 -4
- package/test/utils/webex-test-users.js +12 -4
- package/dist/types/mediaQualityMetrics/config.d.ts +0 -365
- package/dist/types/reachability/index.d.ts +0 -158
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -24
- /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/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/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-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/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}/infoUtils.d.ts +0 -0
- /package/dist/{types/locus-info → locus-info}/mediaSharesUtils.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/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}/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}/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}/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/metrics → metrics}/index.d.ts +0 -0
- /package/dist/{types/multistream → multistream}/mediaRequestManager.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/multistream → multistream}/remoteMediaGroup.d.ts +0 -0
- /package/dist/{types/multistream → multistream}/sendSlotManager.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/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/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/rtcMetrics → rtcMetrics}/constants.d.ts +0 -0
- /package/dist/{types/statsAnalyzer → statsAnalyzer}/global.d.ts +0 -0
- /package/dist/{types/transcription → transcription}/index.d.ts +0 -0
- /package/test/unit/spec/locus-info/{selfConstant.js → lib/selfConstant.js} +0 -0
package/src/locus-info/parser.ts
CHANGED
|
@@ -3,11 +3,15 @@ import {difference} from 'lodash';
|
|
|
3
3
|
import SortedQueue from '../common/queue';
|
|
4
4
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
5
5
|
|
|
6
|
+
import Metrics from '../metrics';
|
|
7
|
+
import BEHAVIORAL_METRICS from '../metrics/constants';
|
|
8
|
+
|
|
6
9
|
const MAX_OOO_DELTA_COUNT = 5; // when we receive an out-of-order delta and the queue builds up to MAX_OOO_DELTA_COUNT, we do a sync with Locus
|
|
7
10
|
const OOO_DELTA_WAIT_TIME = 10000; // [ms] minimum wait time before we do a sync if we get out-of-order deltas
|
|
8
11
|
const OOO_DELTA_WAIT_TIME_RANDOM_DELAY = 5000; // [ms] max random delay added to OOO_DELTA_WAIT_TIME
|
|
9
12
|
|
|
10
13
|
type LocusDeltaDto = {
|
|
14
|
+
url: string;
|
|
11
15
|
baseSequence: {
|
|
12
16
|
rangeStart: number;
|
|
13
17
|
rangeEnd: number;
|
|
@@ -44,11 +48,12 @@ export default class Parser {
|
|
|
44
48
|
USE_CURRENT: 'USE_CURRENT',
|
|
45
49
|
WAIT: 'WAIT',
|
|
46
50
|
ERROR: 'ERROR',
|
|
51
|
+
LOCUS_URL_CHANGED: 'LOCUS_URL_CHANGED',
|
|
47
52
|
};
|
|
48
53
|
|
|
49
54
|
queue: SortedQueue<LocusDeltaDto>;
|
|
50
55
|
workingCopy: any;
|
|
51
|
-
syncTimer
|
|
56
|
+
syncTimer?: ReturnType<typeof setTimeout>;
|
|
52
57
|
|
|
53
58
|
/**
|
|
54
59
|
* @constructs Parser
|
|
@@ -80,7 +85,7 @@ export default class Parser {
|
|
|
80
85
|
this.status = 'IDLE';
|
|
81
86
|
this.onDeltaAction = null;
|
|
82
87
|
this.workingCopy = null;
|
|
83
|
-
this.syncTimer =
|
|
88
|
+
this.syncTimer = undefined;
|
|
84
89
|
}
|
|
85
90
|
|
|
86
91
|
/**
|
|
@@ -264,7 +269,7 @@ export default class Parser {
|
|
|
264
269
|
* @returns {string} loci comparison state
|
|
265
270
|
*/
|
|
266
271
|
private static compareDelta(current, incoming) {
|
|
267
|
-
const {LT, GT, EQ, DESYNC, USE_INCOMING, WAIT} = Parser.loci;
|
|
272
|
+
const {LT, GT, EQ, DESYNC, USE_INCOMING, WAIT, LOCUS_URL_CHANGED} = Parser.loci;
|
|
268
273
|
|
|
269
274
|
const {extractComparisonState: extract} = Parser;
|
|
270
275
|
const {packComparisonResult: pack} = Parser;
|
|
@@ -276,6 +281,13 @@ export default class Parser {
|
|
|
276
281
|
return pack(Parser.compareToAction(comparison), result);
|
|
277
282
|
}
|
|
278
283
|
|
|
284
|
+
if (incoming.url !== current.url) {
|
|
285
|
+
// when moving to/from a breakout session, the locus URL will change and also
|
|
286
|
+
// the baseSequence, making incoming and current incomparable, so use a
|
|
287
|
+
// unique comparison state
|
|
288
|
+
return pack(LOCUS_URL_CHANGED, result);
|
|
289
|
+
}
|
|
290
|
+
|
|
279
291
|
comparison = Parser.compareSequence(current.sequence, incoming.baseSequence);
|
|
280
292
|
|
|
281
293
|
switch (extract(comparison)) {
|
|
@@ -293,6 +305,10 @@ export default class Parser {
|
|
|
293
305
|
// the incoming locus has baseSequence from the future, so it is out-of-order,
|
|
294
306
|
// we are missing 1 or more locus that should be in front of it, we need to wait for it
|
|
295
307
|
comparison = WAIT;
|
|
308
|
+
|
|
309
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.LOCUS_DELTA_OUT_OF_ORDER, {
|
|
310
|
+
stack: new Error().stack,
|
|
311
|
+
});
|
|
296
312
|
}
|
|
297
313
|
break;
|
|
298
314
|
default:
|
|
@@ -657,11 +673,11 @@ export default class Parser {
|
|
|
657
673
|
* @returns {undefined}
|
|
658
674
|
*/
|
|
659
675
|
private startSyncTimer() {
|
|
660
|
-
if (this.syncTimer ===
|
|
676
|
+
if (this.syncTimer === undefined) {
|
|
661
677
|
const timeout = OOO_DELTA_WAIT_TIME + Math.random() * OOO_DELTA_WAIT_TIME_RANDOM_DELAY;
|
|
662
678
|
|
|
663
679
|
this.syncTimer = setTimeout(() => {
|
|
664
|
-
this.syncTimer =
|
|
680
|
+
this.syncTimer = undefined;
|
|
665
681
|
this.triggerSync('timer expired, blocked on out-of-order delta');
|
|
666
682
|
}, timeout);
|
|
667
683
|
}
|
|
@@ -673,9 +689,9 @@ export default class Parser {
|
|
|
673
689
|
* @returns {undefined}
|
|
674
690
|
*/
|
|
675
691
|
private stopSyncTimer() {
|
|
676
|
-
if (this.syncTimer !==
|
|
692
|
+
if (this.syncTimer !== undefined) {
|
|
677
693
|
clearTimeout(this.syncTimer);
|
|
678
|
-
this.syncTimer =
|
|
694
|
+
this.syncTimer = undefined;
|
|
679
695
|
}
|
|
680
696
|
}
|
|
681
697
|
|
|
@@ -686,7 +702,7 @@ export default class Parser {
|
|
|
686
702
|
* @returns {undefined}
|
|
687
703
|
*/
|
|
688
704
|
processDeltaEvent() {
|
|
689
|
-
const {DESYNC, USE_INCOMING, WAIT} = Parser.loci;
|
|
705
|
+
const {DESYNC, USE_INCOMING, WAIT, LOCUS_URL_CHANGED} = Parser.loci;
|
|
690
706
|
const {extractComparisonState: extract} = Parser;
|
|
691
707
|
const newLoci = this.queue.dequeue();
|
|
692
708
|
|
|
@@ -705,19 +721,29 @@ export default class Parser {
|
|
|
705
721
|
|
|
706
722
|
let needToWait = false;
|
|
707
723
|
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
724
|
+
switch (lociComparison) {
|
|
725
|
+
case DESYNC:
|
|
726
|
+
// wait for desync response
|
|
727
|
+
this.pause();
|
|
728
|
+
break;
|
|
729
|
+
|
|
730
|
+
case USE_INCOMING:
|
|
731
|
+
case LOCUS_URL_CHANGED:
|
|
732
|
+
// update working copy for future comparisons.
|
|
733
|
+
// Note: The working copy of parser gets updated in .onFullLocus()
|
|
734
|
+
// and here when USE_INCOMING or LOCUS_URL_CHANGED locus.
|
|
735
|
+
this.workingCopy = newLoci;
|
|
736
|
+
break;
|
|
737
|
+
|
|
738
|
+
case WAIT:
|
|
739
|
+
// we've taken newLoci from the front of the queue, so put it back there as we have to wait
|
|
740
|
+
// for the one that should be in front of it, before we can process it
|
|
741
|
+
this.queue.enqueue(newLoci);
|
|
742
|
+
needToWait = true;
|
|
743
|
+
break;
|
|
744
|
+
|
|
745
|
+
default:
|
|
746
|
+
break;
|
|
721
747
|
}
|
|
722
748
|
|
|
723
749
|
if (needToWait) {
|
package/src/media/index.ts
CHANGED
|
@@ -182,8 +182,10 @@ Media.createMediaConnection = (
|
|
|
182
182
|
return new MultistreamRoapMediaConnection(
|
|
183
183
|
config,
|
|
184
184
|
meetingId,
|
|
185
|
+
/* the rtc metrics objects callbacks */
|
|
185
186
|
(data) => rtcMetrics.addMetrics(data),
|
|
186
|
-
() => rtcMetrics.closeMetrics()
|
|
187
|
+
() => rtcMetrics.closeMetrics(),
|
|
188
|
+
() => rtcMetrics.sendMetricsInQueue()
|
|
187
189
|
);
|
|
188
190
|
}
|
|
189
191
|
|
|
@@ -215,10 +217,10 @@ Media.createMediaConnection = (
|
|
|
215
217
|
{
|
|
216
218
|
// TODO: RoapMediaConnection is not ready to use stream classes yet, so we pass the raw MediaStreamTrack for now SPARK-460530
|
|
217
219
|
localTracks: {
|
|
218
|
-
audio: audioStream?.
|
|
219
|
-
video: videoStream?.
|
|
220
|
-
screenShareVideo: shareVideoStream?.
|
|
221
|
-
screenShareAudio: shareAudioStream?.
|
|
220
|
+
audio: audioStream?.outputStream?.getTracks()[0],
|
|
221
|
+
video: videoStream?.outputStream?.getTracks()[0],
|
|
222
|
+
screenShareVideo: shareVideoStream?.outputStream?.getTracks()[0],
|
|
223
|
+
screenShareAudio: shareAudioStream?.outputStream?.getTracks()[0], // TODO: add type for screenShareAudio in internal-media-core SPARK-446923
|
|
222
224
|
} as unknown,
|
|
223
225
|
direction: {
|
|
224
226
|
audio: Media.getDirection(true, mediaDirection.receiveAudio, mediaDirection.sendAudio),
|
|
@@ -397,7 +399,7 @@ Media.stopStream = (stream: LocalStream) => {
|
|
|
397
399
|
stream.stop();
|
|
398
400
|
} catch (e) {
|
|
399
401
|
LoggerProxy.logger.error(
|
|
400
|
-
`Media:index#stopStream --> Unable to stop the stream with ready state
|
|
402
|
+
`Media:index#stopStream --> Unable to stop the stream with ready state => ${stream.readyState}, error: ${e}`
|
|
401
403
|
);
|
|
402
404
|
}
|
|
403
405
|
});
|
package/src/media/properties.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
RemoteStream,
|
|
9
9
|
} from '@webex/media-helpers';
|
|
10
10
|
|
|
11
|
-
import {MEETINGS,
|
|
11
|
+
import {MEETINGS, ICE_AND_DTLS_CONNECTION_TIMEOUT, QUALITY_LEVELS} from '../constants';
|
|
12
12
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
13
13
|
|
|
14
14
|
export type MediaDirection = {
|
|
@@ -200,7 +200,7 @@ export default class MediaProperties {
|
|
|
200
200
|
timer = setTimeout(() => {
|
|
201
201
|
this.webrtcMediaConnection.off(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
|
|
202
202
|
reject();
|
|
203
|
-
},
|
|
203
|
+
}, ICE_AND_DTLS_CONNECTION_TIMEOUT);
|
|
204
204
|
|
|
205
205
|
this.webrtcMediaConnection.on(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
|
|
206
206
|
});
|
|
@@ -259,10 +259,25 @@ export default class MediaProperties {
|
|
|
259
259
|
|
|
260
260
|
return true;
|
|
261
261
|
}
|
|
262
|
+
LoggerProxy.logger.warn(
|
|
263
|
+
`Media:properties#getCurrentConnectionType --> missing localCandidate.protocol, candidateType=${localCandidate.candidateType}`
|
|
264
|
+
);
|
|
262
265
|
|
|
263
266
|
return false;
|
|
264
267
|
});
|
|
265
268
|
|
|
269
|
+
if (foundConnectionType === 'unknown') {
|
|
270
|
+
const candidatePairStates = allStatsReports
|
|
271
|
+
.filter((report) => report.type === 'candidate-pair')
|
|
272
|
+
.map((report) => report.state);
|
|
273
|
+
|
|
274
|
+
LoggerProxy.logger.warn(
|
|
275
|
+
`Media:properties#getCurrentConnectionType --> all candidate pair states: ${JSON.stringify(
|
|
276
|
+
candidatePairStates
|
|
277
|
+
)}`
|
|
278
|
+
);
|
|
279
|
+
}
|
|
280
|
+
|
|
266
281
|
return foundConnectionType;
|
|
267
282
|
}
|
|
268
283
|
}
|
|
@@ -44,28 +44,28 @@ export const emptyAudioReceive = {
|
|
|
44
44
|
stunPackets: 0,
|
|
45
45
|
transportType: 'UDP',
|
|
46
46
|
},
|
|
47
|
-
streams: [
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
47
|
+
streams: [],
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const emptyAudioReceiveStream = {
|
|
51
|
+
common: {
|
|
52
|
+
codec: 'opus',
|
|
53
|
+
concealedFrames: 0,
|
|
54
|
+
csi: [],
|
|
55
|
+
maxConcealRunLength: 0,
|
|
56
|
+
optimalBitrate: 0,
|
|
57
|
+
optimalFrameRate: 0,
|
|
58
|
+
receivedBitrate: 0,
|
|
59
|
+
receivedFrameRate: 0,
|
|
60
|
+
renderedFrameRate: 0,
|
|
61
|
+
requestedBitrate: 0,
|
|
62
|
+
requestedFrameRate: 0,
|
|
63
|
+
rtpEndToEndLost: 0,
|
|
64
|
+
maxRtpJitter: 0,
|
|
65
|
+
meanRtpJitter: 0,
|
|
66
|
+
rtpPackets: 0,
|
|
67
|
+
ssci: 0,
|
|
68
|
+
},
|
|
69
69
|
};
|
|
70
70
|
|
|
71
71
|
export const emptyAudioTransmit = {
|
|
@@ -98,20 +98,20 @@ export const emptyAudioTransmit = {
|
|
|
98
98
|
stunPackets: 0,
|
|
99
99
|
transportType: 'UDP',
|
|
100
100
|
},
|
|
101
|
-
streams: [
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
101
|
+
streams: [],
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export const emptyAudioTransmitStream = {
|
|
105
|
+
common: {
|
|
106
|
+
codec: 'opus',
|
|
107
|
+
csi: [],
|
|
108
|
+
requestedBitrate: 0,
|
|
109
|
+
requestedFrames: 0,
|
|
110
|
+
rtpPackets: 0,
|
|
111
|
+
ssci: 0,
|
|
112
|
+
transmittedBitrate: 0,
|
|
113
|
+
transmittedFrameRate: 0,
|
|
114
|
+
},
|
|
115
115
|
};
|
|
116
116
|
|
|
117
117
|
export const emptyVideoReceive = {
|
|
@@ -143,39 +143,39 @@ export const emptyVideoReceive = {
|
|
|
143
143
|
stunPackets: 0, // Not avaliable
|
|
144
144
|
transportType: 'UDP',
|
|
145
145
|
},
|
|
146
|
-
streams: [
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
146
|
+
streams: [],
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export const emptyVideoReceiveStream = {
|
|
150
|
+
common: {
|
|
151
|
+
codec: 'H264',
|
|
152
|
+
concealedFrames: 0, // Not avaliable
|
|
153
|
+
csi: [],
|
|
154
|
+
maxConcealRunLength: 0, // Not avaliable
|
|
155
|
+
optimalBitrate: 0,
|
|
156
|
+
optimalFrameRate: 0,
|
|
157
|
+
receivedBitrate: 0,
|
|
158
|
+
receivedFrameRate: 0,
|
|
159
|
+
renderedFrameRate: 0, // Not avaliable
|
|
160
|
+
requestedBitrate: 0,
|
|
161
|
+
requestedFrameRate: 0,
|
|
162
|
+
rtpEndToEndLost: 0,
|
|
163
|
+
rtpJitter: 0,
|
|
164
|
+
rtpPackets: 0,
|
|
165
|
+
ssci: 0, // Not avaliable
|
|
166
|
+
},
|
|
167
|
+
h264CodecProfile: 'BP',
|
|
168
|
+
isActiveSpeaker: true,
|
|
169
|
+
optimalFrameSize: 0, // Not avaliable
|
|
170
|
+
receivedFrameSize: 0,
|
|
171
|
+
receivedHeight: 0,
|
|
172
|
+
receivedKeyFrames: 0,
|
|
173
|
+
receivedKeyFramesForRequest: 0,
|
|
174
|
+
receivedKeyFramesSourceChange: 0,
|
|
175
|
+
receivedKeyFramesUnknown: 0,
|
|
176
|
+
receivedWidth: 0,
|
|
177
|
+
requestedFrameSize: 0,
|
|
178
|
+
requestedKeyFrames: 0,
|
|
179
179
|
};
|
|
180
180
|
|
|
181
181
|
export const emptyVideoTransmit = {
|
|
@@ -208,177 +208,42 @@ export const emptyVideoTransmit = {
|
|
|
208
208
|
stunPackets: 0, // Dont have access to it
|
|
209
209
|
transportType: 'UDP', // TODO: need to calculate
|
|
210
210
|
},
|
|
211
|
-
streams: [
|
|
212
|
-
{
|
|
213
|
-
common: {
|
|
214
|
-
codec: 'H264',
|
|
215
|
-
csi: [],
|
|
216
|
-
duplicateSsci: 0, // Not Avaliable
|
|
217
|
-
requestedBitrate: 0, // TODO: from remote SDP
|
|
218
|
-
requestedFrames: 0, // TODO: from remote SDP
|
|
219
|
-
rtpPackets: 0, // same as rtp packets
|
|
220
|
-
ssci: 0,
|
|
221
|
-
transmittedBitrate: 0, // TODO: get in the candidate pair
|
|
222
|
-
transmittedFrameRate: 0, // TODO: from track info
|
|
223
|
-
},
|
|
224
|
-
h264CodecProfile: 'BP', // TODO: from localSDP
|
|
225
|
-
isAvatar: false, // Not Avaliable
|
|
226
|
-
isHardwareEncoded: false, // Not Avaliable
|
|
227
|
-
localConfigurationChanges: 2, // Not Avaliable
|
|
228
|
-
maxFrameQp: 0, // Not Avaliable
|
|
229
|
-
maxNoiseLevel: 0, // Not Avaliable
|
|
230
|
-
minRegionQp: 0, // Not Avaliable
|
|
231
|
-
remoteConfigurationChanges: 0, // Not Avaliable
|
|
232
|
-
requestedFrameSize: 0, // TODO: from remote SDP
|
|
233
|
-
requestedKeyFrames: 0, // outbound Fir request
|
|
234
|
-
transmittedFrameSize: 0, // Not Avaliable
|
|
235
|
-
transmittedHeight: 0,
|
|
236
|
-
transmittedKeyFrames: 0, // Key frames encoded
|
|
237
|
-
transmittedKeyFramesClient: 0, // Not Avaliable
|
|
238
|
-
transmittedKeyFramesConfigurationChange: 0, // Not Avaliable
|
|
239
|
-
transmittedKeyFramesFeedback: 0, // Not Avaliable
|
|
240
|
-
transmittedKeyFramesLocalDrop: 0, // Not Avaliable
|
|
241
|
-
transmittedKeyFramesOtherLayer: 0, // Not Avaliable
|
|
242
|
-
transmittedKeyFramesPeriodic: 0, // Not Avaliable
|
|
243
|
-
transmittedKeyFramesSceneChange: 0, // Not Avaliable
|
|
244
|
-
transmittedKeyFramesStartup: 0, // Not Avaliable
|
|
245
|
-
transmittedKeyFramesUnknown: 0, // Not Avaliable
|
|
246
|
-
transmittedWidth: 0,
|
|
247
|
-
},
|
|
248
|
-
],
|
|
249
|
-
};
|
|
250
|
-
|
|
251
|
-
export const emptyVideoShareReceive = {
|
|
252
|
-
common: {
|
|
253
|
-
common: {
|
|
254
|
-
direction: 'inactive',
|
|
255
|
-
isMain: false, // Not avaliable
|
|
256
|
-
mariFecEnabled: true, // Not avaliable
|
|
257
|
-
mariQosEnabled: true, // Not avaliable
|
|
258
|
-
multistreamEnabled: true, // Not avaliable
|
|
259
|
-
},
|
|
260
|
-
dtlsBitrate: 0, // Not avaliable
|
|
261
|
-
dtlsPackets: 0, // Not avaliable
|
|
262
|
-
fecBitrate: 0, // Not avaliable
|
|
263
|
-
fecPackets: 0, // Not avaliable
|
|
264
|
-
maxBitrate: 0,
|
|
265
|
-
mediaHopByHopLost: 0,
|
|
266
|
-
rtcpBitrate: 0, // Not avaliable
|
|
267
|
-
rtcpPackets: 0, // Not avaliable
|
|
268
|
-
rtpBitrate: 0,
|
|
269
|
-
rtpHopByHopLost: 0,
|
|
270
|
-
rtpPackets: 0,
|
|
271
|
-
rtpRecovered: 0, // Not avaliable
|
|
272
|
-
rtxBitrate: 0, // Not avaliable
|
|
273
|
-
rtxPackets: 0, // Not avaliable
|
|
274
|
-
srtcpUnprotectErrors: 0, // Not avaliable
|
|
275
|
-
srtpUnprotectErrors: 0, // Not avaliable
|
|
276
|
-
stunBitrate: 0, // Not avaliable
|
|
277
|
-
stunPackets: 0, // Not avaliable
|
|
278
|
-
transportType: 'UDP',
|
|
279
|
-
},
|
|
280
|
-
streams: [
|
|
281
|
-
{
|
|
282
|
-
common: {
|
|
283
|
-
codec: 'H264',
|
|
284
|
-
concealedFrames: 0, // Not avaliable
|
|
285
|
-
csi: [],
|
|
286
|
-
maxConcealRunLength: 0, // Not avaliable
|
|
287
|
-
optimalBitrate: 0,
|
|
288
|
-
optimalFrameRate: 0,
|
|
289
|
-
receivedBitrate: 0,
|
|
290
|
-
receivedFrameRate: 0,
|
|
291
|
-
renderedFrameRate: 0, // Not avaliable
|
|
292
|
-
requestedBitrate: 0,
|
|
293
|
-
requestedFrameRate: 0,
|
|
294
|
-
rtpEndToEndLost: 0,
|
|
295
|
-
rtpJitter: 0,
|
|
296
|
-
rtpPackets: 0,
|
|
297
|
-
ssci: 0, // Not avaliable
|
|
298
|
-
},
|
|
299
|
-
h264CodecProfile: 'BP',
|
|
300
|
-
isActiveSpeaker: true,
|
|
301
|
-
optimalFrameSize: 0, // Not avaliable
|
|
302
|
-
receivedFrameSize: 0,
|
|
303
|
-
receivedHeight: 0,
|
|
304
|
-
receivedKeyFrames: 0,
|
|
305
|
-
receivedKeyFramesForRequest: 0,
|
|
306
|
-
receivedKeyFramesSourceChange: 0,
|
|
307
|
-
receivedKeyFramesUnknown: 0,
|
|
308
|
-
receivedWidth: 0,
|
|
309
|
-
requestedFrameSize: 0,
|
|
310
|
-
requestedKeyFrames: 0,
|
|
311
|
-
},
|
|
312
|
-
],
|
|
211
|
+
streams: [],
|
|
313
212
|
};
|
|
314
213
|
|
|
315
|
-
export const
|
|
316
|
-
// sceen sharing
|
|
214
|
+
export const emptyVideoTransmitStream = {
|
|
317
215
|
common: {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
dtlsPackets: 0, // Not avaliable
|
|
328
|
-
fecBitrate: 0, // Not avaliable
|
|
329
|
-
fecPackets: 0, // TODO: check inbound-rtp// Not avaliable
|
|
330
|
-
maxBitrate: 0, // Currently hardcoded
|
|
331
|
-
queueDelay: 0, // outboundRtp.totalPacketSentDelay // TODO: check if totalInterFrameDelay/ packetSentDelay/ jitterBufferDalay
|
|
332
|
-
remoteJitter: 0, // remoteInboundRtp.jitter
|
|
333
|
-
remoteLossRate: 0, // comparedResults.lossRate
|
|
334
|
-
remoteReceiveRate: 0, // compareResults.packetsLost
|
|
335
|
-
roundTripTime: 0, // compareResults.roundTripTime
|
|
336
|
-
rtcpBitrate: 0, // Dont have access to it
|
|
337
|
-
rtcpPackets: 0, // Dont have access to rtcp
|
|
338
|
-
rtpBitrate: 0, // Dont have access
|
|
339
|
-
rtpPackets: 0, // outboundRtp.packetsSent
|
|
340
|
-
rtxBitrate: 0, // Dont have access to it
|
|
341
|
-
rtxPackets: 0, // Dont have access to it
|
|
342
|
-
stunBitrate: 0, // Dont have access to it
|
|
343
|
-
stunPackets: 0, // Dont have access to it
|
|
344
|
-
transportType: 'UDP', // TODO: need to calculate
|
|
216
|
+
codec: 'H264',
|
|
217
|
+
csi: [],
|
|
218
|
+
duplicateSsci: 0, // Not Avaliable
|
|
219
|
+
requestedBitrate: 0, // TODO: from remote SDP
|
|
220
|
+
requestedFrames: 0, // TODO: from remote SDP
|
|
221
|
+
rtpPackets: 0, // same as rtp packets
|
|
222
|
+
ssci: 0,
|
|
223
|
+
transmittedBitrate: 0, // TODO: get in the candidate pair
|
|
224
|
+
transmittedFrameRate: 0, // TODO: from track info
|
|
345
225
|
},
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
transmittedFrameSize: 0, // Not Avaliable
|
|
370
|
-
transmittedHeight: 0,
|
|
371
|
-
transmittedKeyFrames: 0, // Key frames encoded
|
|
372
|
-
transmittedKeyFramesClient: 0, // Not Avaliable
|
|
373
|
-
transmittedKeyFramesConfigurationChange: 0, // Not Avaliable
|
|
374
|
-
transmittedKeyFramesFeedback: 0, // Not Avaliable
|
|
375
|
-
transmittedKeyFramesLocalDrop: 0, // Not Avaliable
|
|
376
|
-
transmittedKeyFramesOtherLayer: 0, // Not Avaliable
|
|
377
|
-
transmittedKeyFramesPeriodic: 0, // Not Avaliable
|
|
378
|
-
transmittedKeyFramesSceneChange: 0, // Not Avaliable
|
|
379
|
-
transmittedKeyFramesStartup: 0, // Not Avaliable
|
|
380
|
-
transmittedKeyFramesUnknown: 0, // Not Avaliable
|
|
381
|
-
transmittedWidth: 0,
|
|
382
|
-
},
|
|
383
|
-
],
|
|
226
|
+
h264CodecProfile: 'BP', // TODO: from localSDP
|
|
227
|
+
isAvatar: false, // Not Avaliable
|
|
228
|
+
isHardwareEncoded: false, // Not Avaliable
|
|
229
|
+
localConfigurationChanges: 2, // Not Avaliable
|
|
230
|
+
maxFrameQp: 0, // Not Avaliable
|
|
231
|
+
maxNoiseLevel: 0, // Not Avaliable
|
|
232
|
+
minRegionQp: 0, // Not Avaliable
|
|
233
|
+
remoteConfigurationChanges: 0, // Not Avaliable
|
|
234
|
+
requestedFrameSize: 0, // TODO: from remote SDP
|
|
235
|
+
requestedKeyFrames: 0, // outbound Fir request
|
|
236
|
+
transmittedFrameSize: 0, // Not Avaliable
|
|
237
|
+
transmittedHeight: 0,
|
|
238
|
+
transmittedKeyFrames: 0, // Key frames encoded
|
|
239
|
+
transmittedKeyFramesClient: 0, // Not Avaliable
|
|
240
|
+
transmittedKeyFramesConfigurationChange: 0, // Not Avaliable
|
|
241
|
+
transmittedKeyFramesFeedback: 0, // Not Avaliable
|
|
242
|
+
transmittedKeyFramesLocalDrop: 0, // Not Avaliable
|
|
243
|
+
transmittedKeyFramesOtherLayer: 0, // Not Avaliable
|
|
244
|
+
transmittedKeyFramesPeriodic: 0, // Not Avaliable
|
|
245
|
+
transmittedKeyFramesSceneChange: 0, // Not Avaliable
|
|
246
|
+
transmittedKeyFramesStartup: 0, // Not Avaliable
|
|
247
|
+
transmittedKeyFramesUnknown: 0, // Not Avaliable
|
|
248
|
+
transmittedWidth: 0,
|
|
384
249
|
};
|
|
@@ -71,12 +71,14 @@ interface IInMeetingActions {
|
|
|
71
71
|
canShareDesktop?: boolean;
|
|
72
72
|
canShareContent?: boolean;
|
|
73
73
|
canTransferFile?: boolean;
|
|
74
|
+
canChat?: boolean;
|
|
74
75
|
canDoVideo?: boolean;
|
|
75
76
|
canAnnotate?: boolean;
|
|
76
77
|
canUseVoip?: boolean;
|
|
77
78
|
supportHQV?: boolean;
|
|
78
79
|
supportHDV?: boolean;
|
|
79
80
|
canShareWhiteBoard?: boolean;
|
|
81
|
+
enforceVirtualBackground?: boolean;
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
/**
|
|
@@ -209,6 +211,8 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
|
209
211
|
|
|
210
212
|
canTransferFile = null;
|
|
211
213
|
|
|
214
|
+
canChat = null;
|
|
215
|
+
|
|
212
216
|
canDoVideo = null;
|
|
213
217
|
|
|
214
218
|
canAnnotate = null;
|
|
@@ -217,6 +221,8 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
|
217
221
|
|
|
218
222
|
supportHQV = null;
|
|
219
223
|
|
|
224
|
+
enforceVirtualBackground = null;
|
|
225
|
+
|
|
220
226
|
supportHDV = null;
|
|
221
227
|
|
|
222
228
|
canShareWhiteBoard = null;
|
|
@@ -288,9 +294,11 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
|
288
294
|
canShareDesktop: this.canShareDesktop,
|
|
289
295
|
canShareContent: this.canShareContent,
|
|
290
296
|
canTransferFile: this.canTransferFile,
|
|
297
|
+
canChat: this.canChat,
|
|
291
298
|
canDoVideo: this.canDoVideo,
|
|
292
299
|
canAnnotate: this.canAnnotate,
|
|
293
300
|
canUseVoip: this.canUseVoip,
|
|
301
|
+
enforceVirtualBackground: this.enforceVirtualBackground,
|
|
294
302
|
supportHQV: this.supportHQV,
|
|
295
303
|
supportHDV: this.supportHDV,
|
|
296
304
|
canShareWhiteBoard: this.canShareWhiteBoard,
|