@webex/plugin-meetings 3.7.0 → 3.8.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/dist/annotation/annotation.types.d.ts +42 -0
- package/dist/annotation/constants.d.ts +31 -0
- package/dist/annotation/index.d.ts +117 -0
- package/dist/annotation/index.js +17 -0
- package/dist/annotation/index.js.map +1 -1
- package/dist/breakouts/breakout.d.ts +8 -0
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/collection.d.ts +5 -0
- package/dist/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/breakouts/events.d.ts +8 -0
- package/dist/breakouts/index.d.ts +5 -0
- package/dist/breakouts/index.js +1 -1
- package/dist/breakouts/request.d.ts +22 -0
- package/dist/breakouts/utils.d.ts +15 -0
- package/dist/common/browser-detection.d.ts +9 -0
- package/dist/common/collection.d.ts +48 -0
- package/dist/common/config.d.ts +2 -0
- package/dist/common/errors/captcha-error.d.ts +15 -0
- package/dist/common/errors/intent-to-join.d.ts +16 -0
- package/dist/common/errors/join-forbidden-error.js +52 -0
- package/dist/common/errors/join-forbidden-error.js.map +1 -0
- package/dist/common/errors/join-meeting.d.ts +17 -0
- package/dist/common/errors/{webinar-registration-error.js → join-webinar-error.js} +12 -12
- package/dist/common/errors/join-webinar-error.js.map +1 -0
- package/dist/common/errors/media.d.ts +15 -0
- package/dist/common/errors/multistream-not-supported-error.js +53 -0
- package/dist/common/errors/multistream-not-supported-error.js.map +1 -0
- package/dist/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/common/errors/parameter.d.ts +15 -0
- package/dist/common/errors/password-error.d.ts +15 -0
- package/dist/common/errors/permission.d.ts +14 -0
- package/dist/common/errors/reclaim-host-role-error.js +149 -0
- package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/common/errors/reconnection-in-progress.js +33 -0
- package/dist/common/errors/reconnection-in-progress.js.map +1 -0
- package/dist/common/errors/reconnection.d.ts +15 -0
- package/dist/common/errors/stats.d.ts +15 -0
- package/dist/common/errors/webex-errors.d.ts +93 -0
- package/dist/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/common/events/events-scope.d.ts +17 -0
- package/dist/common/events/events.d.ts +12 -0
- package/dist/common/events/trigger-proxy.d.ts +2 -0
- package/dist/common/events/util.d.ts +2 -0
- package/dist/common/logs/logger-config.d.ts +2 -0
- package/dist/common/logs/logger-proxy.d.ts +2 -0
- package/dist/common/logs/request.d.ts +36 -0
- package/dist/common/queue.d.ts +34 -0
- package/dist/config.d.ts +72 -0
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +1088 -0
- package/dist/constants.js +68 -6
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.d.ts +4 -0
- package/dist/controls-options-manager/enums.d.ts +15 -0
- package/dist/controls-options-manager/index.d.ts +136 -0
- package/dist/controls-options-manager/types.d.ts +43 -0
- package/dist/controls-options-manager/util.d.ts +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +16 -11
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interpretation/collection.d.ts +5 -0
- package/dist/interpretation/index.d.ts +5 -0
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.d.ts +5 -0
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.d.ts +2 -0
- package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/locus-info/fullState.d.ts +2 -0
- package/dist/locus-info/hostUtils.d.ts +2 -0
- package/dist/locus-info/index.d.ts +322 -0
- package/dist/locus-info/index.js +14 -3
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.d.ts +2 -0
- package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/locus-info/parser.d.ts +272 -0
- package/dist/locus-info/selfUtils.d.ts +2 -0
- package/dist/locus-info/selfUtils.js +35 -17
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/MediaConnectionAwaiter.js +1 -0
- package/dist/media/MediaConnectionAwaiter.js.map +1 -1
- package/dist/media/index.d.ts +34 -0
- package/dist/media/properties.d.ts +93 -0
- package/dist/media/properties.js +30 -16
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.d.ts +2 -0
- package/dist/mediaQualityMetrics/config.d.ts +241 -0
- package/dist/mediaQualityMetrics/config.js +502 -0
- package/dist/mediaQualityMetrics/config.js.map +1 -0
- package/dist/meeting/brbState.js +167 -0
- package/dist/meeting/brbState.js.map +1 -0
- package/dist/meeting/effectsState.js +260 -0
- package/dist/meeting/effectsState.js.map +1 -0
- package/dist/meeting/in-meeting-actions.d.ts +167 -0
- package/dist/meeting/in-meeting-actions.js +13 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +1825 -0
- package/dist/meeting/index.js +1331 -1051
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/meeting/locusMediaRequest.js +11 -6
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.d.ts +178 -0
- package/dist/meeting/muteState.js +1 -6
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +295 -0
- package/dist/meeting/request.js +51 -29
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.d.ts +11 -0
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/state.d.ts +9 -0
- package/dist/meeting/util.d.ts +119 -0
- package/dist/meeting/util.js +103 -67
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting/voicea-meeting.d.ts +16 -0
- package/dist/meeting-info/collection.d.ts +20 -0
- package/dist/meeting-info/index.d.ts +69 -0
- package/dist/meeting-info/meeting-info-v2.d.ts +123 -0
- package/dist/meeting-info/meeting-info-v2.js +115 -45
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.d.ts +22 -0
- package/dist/meeting-info/util.d.ts +2 -0
- package/dist/meeting-info/utilv2.d.ts +2 -0
- package/dist/meeting-info/utilv2.js +6 -2
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +40 -0
- package/dist/meetings/index.d.ts +390 -0
- package/dist/meetings/index.js +107 -55
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.d.ts +4 -0
- package/dist/meetings/meetings.types.js +2 -0
- package/dist/meetings/meetings.types.js.map +1 -1
- package/dist/meetings/request.d.ts +27 -0
- package/dist/meetings/util.d.ts +18 -0
- package/dist/meetings/util.js +1 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +160 -0
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +17 -0
- package/dist/member/member.types.js.map +1 -0
- package/dist/member/types.d.ts +32 -0
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.d.ts +2 -0
- package/dist/member/util.js +39 -28
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +29 -0
- package/dist/members/index.d.ts +353 -0
- package/dist/members/request.d.ts +114 -0
- package/dist/members/types.d.ts +25 -0
- package/dist/members/util.d.ts +215 -0
- package/dist/members/util.js +4 -2
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +276 -0
- package/dist/metrics/config.js.map +1 -0
- package/dist/metrics/constants.d.ts +70 -0
- package/dist/metrics/constants.js +6 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +45 -0
- package/dist/multistream/mediaRequestManager.d.ts +119 -0
- package/dist/multistream/receiveSlot.d.ts +68 -0
- package/dist/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/multistream/remoteMedia.d.ts +72 -0
- package/dist/multistream/remoteMedia.js +30 -15
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.d.ts +49 -0
- package/dist/multistream/remoteMediaManager.d.ts +300 -0
- package/dist/multistream/sendSlotManager.d.ts +69 -0
- package/dist/multistream/sendSlotManager.js +24 -0
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.d.ts +70 -0
- package/dist/networkQualityMonitor/index.js +13 -19
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/peer-connection-manager/index.js +671 -0
- package/dist/peer-connection-manager/index.js.map +1 -0
- package/dist/peer-connection-manager/util.js +109 -0
- package/dist/peer-connection-manager/util.js.map +1 -0
- package/dist/personal-meeting-room/index.d.ts +47 -0
- package/dist/personal-meeting-room/request.d.ts +14 -0
- package/dist/personal-meeting-room/util.d.ts +2 -0
- package/dist/reachability/clusterReachability.d.ts +109 -0
- package/dist/reachability/clusterReachability.js +12 -15
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.d.ts +105 -0
- package/dist/reachability/index.js +461 -136
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/reachability.types.js +7 -0
- package/dist/reachability/reachability.types.js.map +1 -0
- package/dist/reachability/request.d.ts +39 -0
- package/dist/reachability/request.js +21 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.d.ts +8 -0
- package/dist/reactions/constants.d.ts +3 -0
- package/dist/reactions/reactions.d.ts +4 -0
- package/dist/reactions/reactions.type.d.ts +52 -0
- package/dist/reconnection-manager/index.d.ts +136 -0
- package/dist/recording-controller/enums.d.ts +7 -0
- package/dist/recording-controller/enums.js +8 -4
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +207 -0
- package/dist/recording-controller/index.js +18 -9
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +14 -0
- package/dist/recording-controller/util.js +13 -9
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/collection.js +62 -0
- package/dist/roap/collection.js.map +1 -0
- package/dist/roap/handler.js +275 -0
- package/dist/roap/handler.js.map +1 -0
- package/dist/roap/index.d.ts +86 -0
- package/dist/roap/index.js +15 -15
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +39 -0
- package/dist/roap/request.js +45 -79
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/state.js +126 -0
- package/dist/roap/state.js.map +1 -0
- package/dist/roap/turnDiscovery.d.ts +155 -0
- package/dist/roap/turnDiscovery.js +3 -6
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/util.js +75 -0
- package/dist/roap/util.js.map +1 -0
- package/dist/rtcMetrics/constants.d.ts +4 -0
- package/dist/rtcMetrics/index.d.ts +61 -0
- package/dist/statsAnalyzer/global.d.ts +36 -0
- package/dist/statsAnalyzer/global.js +126 -0
- package/dist/statsAnalyzer/global.js.map +1 -0
- package/dist/statsAnalyzer/index.d.ts +217 -0
- package/dist/statsAnalyzer/index.js +1013 -0
- package/dist/statsAnalyzer/index.js.map +1 -0
- package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
- package/dist/statsAnalyzer/mqaUtil.js +179 -0
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -0
- package/dist/transcription/index.d.ts +64 -0
- package/dist/types/annotation/index.d.ts +5 -0
- package/dist/types/common/errors/join-forbidden-error.d.ts +15 -0
- package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
- package/dist/types/common/errors/multistream-not-supported-error.d.ts +17 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/config.d.ts +1 -0
- package/dist/types/constants.d.ts +53 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/locus-info/index.d.ts +2 -1
- package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
- package/dist/types/meeting/brbState.d.ts +54 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
- package/dist/types/meeting/index.d.ts +64 -14
- package/dist/types/meeting/locusMediaRequest.d.ts +6 -3
- package/dist/types/meeting/request.d.ts +14 -3
- package/dist/types/meeting/request.type.d.ts +6 -0
- package/dist/types/meeting/util.d.ts +3 -3
- package/dist/types/meeting-info/meeting-info-v2.d.ts +30 -5
- package/dist/types/meetings/index.d.ts +20 -2
- package/dist/types/meetings/meetings.types.d.ts +8 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/types.d.ts +7 -0
- package/dist/types/members/util.d.ts +2 -0
- package/dist/types/metrics/constants.d.ts +6 -1
- package/dist/types/multistream/sendSlotManager.d.ts +8 -1
- package/dist/types/reachability/clusterReachability.d.ts +1 -10
- package/dist/types/reachability/index.d.ts +83 -36
- package/dist/types/reachability/reachability.types.d.ts +64 -0
- package/dist/types/reachability/request.d.ts +5 -1
- package/dist/types/recording-controller/enums.d.ts +5 -2
- package/dist/types/recording-controller/index.d.ts +1 -0
- package/dist/types/recording-controller/util.d.ts +2 -1
- package/dist/types/roap/request.d.ts +1 -13
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +217 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
- package/dist/webinar/collection.d.ts +16 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +390 -7
- package/dist/webinar/index.js.map +1 -1
- package/package.json +23 -22
- package/src/annotation/index.ts +16 -0
- package/src/common/errors/join-forbidden-error.ts +26 -0
- package/src/common/errors/join-webinar-error.ts +24 -0
- package/src/common/errors/multistream-not-supported-error.ts +30 -0
- package/src/config.ts +1 -0
- package/src/constants.ts +61 -3
- package/src/index.ts +5 -3
- package/src/locus-info/index.ts +20 -3
- package/src/locus-info/selfUtils.ts +24 -6
- package/src/media/MediaConnectionAwaiter.ts +2 -0
- package/src/media/properties.ts +34 -13
- package/src/meeting/brbState.ts +169 -0
- package/src/meeting/in-meeting-actions.ts +25 -0
- package/src/meeting/index.ts +443 -87
- package/src/meeting/locusMediaRequest.ts +11 -8
- package/src/meeting/muteState.ts +1 -6
- package/src/meeting/request.ts +30 -12
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +32 -13
- package/src/meeting-info/meeting-info-v2.ts +83 -12
- package/src/meeting-info/utilv2.ts +17 -3
- package/src/meetings/index.ts +79 -20
- package/src/meetings/meetings.types.ts +10 -0
- package/src/meetings/util.ts +2 -1
- package/src/member/index.ts +9 -0
- package/src/member/types.ts +8 -0
- package/src/member/util.ts +34 -24
- package/src/members/util.ts +1 -0
- package/src/metrics/constants.ts +6 -1
- package/src/multistream/remoteMedia.ts +28 -15
- package/src/multistream/sendSlotManager.ts +31 -0
- package/src/reachability/clusterReachability.ts +5 -15
- package/src/reachability/index.ts +311 -75
- package/src/reachability/reachability.types.ts +85 -0
- package/src/reachability/request.ts +55 -31
- package/src/recording-controller/enums.ts +5 -2
- package/src/recording-controller/index.ts +17 -4
- package/src/recording-controller/util.ts +20 -5
- package/src/roap/index.ts +14 -13
- package/src/roap/request.ts +30 -44
- package/src/roap/turnDiscovery.ts +2 -4
- package/src/webinar/index.ts +235 -9
- package/test/unit/spec/annotation/index.ts +46 -1
- package/test/unit/spec/locus-info/index.js +292 -60
- package/test/unit/spec/locus-info/selfConstant.js +7 -0
- package/test/unit/spec/locus-info/selfUtils.js +101 -1
- package/test/unit/spec/media/properties.ts +15 -0
- package/test/unit/spec/meeting/brbState.ts +114 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +15 -1
- package/test/unit/spec/meeting/index.js +851 -107
- package/test/unit/spec/meeting/locusMediaRequest.ts +18 -11
- package/test/unit/spec/meeting/muteState.js +0 -24
- package/test/unit/spec/meeting/request.js +3 -26
- package/test/unit/spec/meeting/utils.js +73 -28
- package/test/unit/spec/meeting-info/meetinginfov2.js +46 -4
- package/test/unit/spec/meeting-info/utilv2.js +26 -0
- package/test/unit/spec/meetings/index.js +159 -18
- package/test/unit/spec/meetings/utils.js +10 -0
- package/test/unit/spec/member/util.js +52 -11
- package/test/unit/spec/members/utils.js +95 -0
- package/test/unit/spec/multistream/remoteMedia.ts +11 -7
- package/test/unit/spec/reachability/clusterReachability.ts +7 -0
- package/test/unit/spec/reachability/index.ts +383 -9
- package/test/unit/spec/reachability/request.js +48 -12
- package/test/unit/spec/recording-controller/index.js +61 -5
- package/test/unit/spec/recording-controller/util.js +39 -3
- package/test/unit/spec/roap/index.ts +48 -1
- package/test/unit/spec/roap/request.ts +51 -109
- package/test/unit/spec/roap/turnDiscovery.ts +202 -147
- package/test/unit/spec/webinar/index.ts +504 -0
- package/dist/common/errors/webinar-registration-error.js.map +0 -1
- package/src/common/errors/webinar-registration-error.ts +0 -27
@@ -2,42 +2,11 @@
|
|
2
2
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
3
3
|
*/
|
4
4
|
import { Defer } from '@webex/common';
|
5
|
+
import { IP_VERSION } from '../constants';
|
5
6
|
import ReachabilityRequest, { ClusterList } from './request';
|
6
|
-
import {
|
7
|
+
import { ClusterReachabilityResult, ClientMediaPreferences, ReachabilityMetrics, ReachabilityReportV0, ReachabilityReportV1, ReachabilityResults, ReachabilityResultsForBackend, GetClustersTrigger } from './reachability.types';
|
8
|
+
import { ClusterReachability } from './clusterReachability';
|
7
9
|
import EventsScope from '../common/events/events-scope';
|
8
|
-
export type ReachabilityMetrics = {
|
9
|
-
reachability_public_udp_success: number;
|
10
|
-
reachability_public_udp_failed: number;
|
11
|
-
reachability_public_tcp_success: number;
|
12
|
-
reachability_public_tcp_failed: number;
|
13
|
-
reachability_public_xtls_success: number;
|
14
|
-
reachability_public_xtls_failed: number;
|
15
|
-
reachability_vmn_udp_success: number;
|
16
|
-
reachability_vmn_udp_failed: number;
|
17
|
-
reachability_vmn_tcp_success: number;
|
18
|
-
reachability_vmn_tcp_failed: number;
|
19
|
-
reachability_vmn_xtls_success: number;
|
20
|
-
reachability_vmn_xtls_failed: number;
|
21
|
-
};
|
22
|
-
/**
|
23
|
-
* This is the type that matches what backend expects us to send to them. It is a bit weird, because
|
24
|
-
* it uses strings instead of booleans and numbers, but that's what they require.
|
25
|
-
*/
|
26
|
-
export type TransportResultForBackend = {
|
27
|
-
reachable?: 'true' | 'false';
|
28
|
-
latencyInMilliseconds?: string;
|
29
|
-
clientMediaIPs?: string[];
|
30
|
-
untested?: 'true';
|
31
|
-
};
|
32
|
-
export type ReachabilityResultForBackend = {
|
33
|
-
udp: TransportResultForBackend;
|
34
|
-
tcp: TransportResultForBackend;
|
35
|
-
xtls: TransportResultForBackend;
|
36
|
-
};
|
37
|
-
export type ReachabilityResultsForBackend = Record<string, ReachabilityResultForBackend>;
|
38
|
-
export type ReachabilityResults = Record<string, ClusterReachabilityResult & {
|
39
|
-
isVideoMesh?: boolean;
|
40
|
-
}>;
|
41
10
|
/**
|
42
11
|
* @class Reachability
|
43
12
|
* @export
|
@@ -49,6 +18,8 @@ export default class Reachability extends EventsScope {
|
|
49
18
|
clusterReachability: {
|
50
19
|
[key: string]: ClusterReachability;
|
51
20
|
};
|
21
|
+
minRequiredClusters?: number;
|
22
|
+
orpheusApiVersion?: number;
|
52
23
|
reachabilityDefer?: Defer;
|
53
24
|
vmnTimer?: ReturnType<typeof setTimeout>;
|
54
25
|
publicCloudTimer?: ReturnType<typeof setTimeout>;
|
@@ -73,6 +44,8 @@ export default class Reachability extends EventsScope {
|
|
73
44
|
xtls: number;
|
74
45
|
};
|
75
46
|
};
|
47
|
+
startTime: any;
|
48
|
+
totalDuration: any;
|
76
49
|
protected lastTrigger?: string;
|
77
50
|
/**
|
78
51
|
* Creates an instance of Reachability.
|
@@ -82,11 +55,13 @@ export default class Reachability extends EventsScope {
|
|
82
55
|
constructor(webex: object);
|
83
56
|
/**
|
84
57
|
* Fetches the list of media clusters from the backend
|
58
|
+
* @param {string} trigger - explains the reason for starting reachability, used by Orpheus
|
59
|
+
* @param {Object} previousReport - last reachability report
|
85
60
|
* @param {boolean} isRetry
|
86
61
|
* @private
|
87
62
|
* @returns {Promise<{clusters: ClusterList, joinCookie: any}>}
|
88
63
|
*/
|
89
|
-
getClusters(isRetry?: boolean): Promise<{
|
64
|
+
getClusters(trigger: GetClustersTrigger, previousReport?: any, isRetry?: boolean): Promise<{
|
90
65
|
clusters: ClusterList;
|
91
66
|
joinCookie: any;
|
92
67
|
}>;
|
@@ -98,6 +73,39 @@ export default class Reachability extends EventsScope {
|
|
98
73
|
* @memberof Reachability
|
99
74
|
*/
|
100
75
|
gatherReachability(trigger: string): Promise<ReachabilityResults>;
|
76
|
+
/**
|
77
|
+
* Gets the last join cookie we got from Orpheus
|
78
|
+
*
|
79
|
+
* @returns {Promise<Object>} join cookie
|
80
|
+
*/
|
81
|
+
getJoinCookie(): Promise<any>;
|
82
|
+
/**
|
83
|
+
* Returns the reachability report that needs to be attached to the ROAP messages
|
84
|
+
* that we send to the backend.
|
85
|
+
*
|
86
|
+
* @returns {Promise<Object>}
|
87
|
+
*/
|
88
|
+
getReachabilityReport(): Promise<{
|
89
|
+
joinCookie: any;
|
90
|
+
reachability?: ReachabilityReportV1;
|
91
|
+
} | {
|
92
|
+
reachability: ReachabilityReportV0;
|
93
|
+
}>;
|
94
|
+
/**
|
95
|
+
* This method is called when we don't succeed in reaching the minimum number of clusters
|
96
|
+
* required by Orpheus. It sends the results to Orpheus and gets a new list that it tries to reach again.
|
97
|
+
* @returns {Promise<ReachabilityResults>} reachability results
|
98
|
+
* @public
|
99
|
+
* @memberof Reachability
|
100
|
+
*/
|
101
|
+
gatherReachabilityFallback(): Promise<void>;
|
102
|
+
/**
|
103
|
+
* Stops all reachability checks that are in progress
|
104
|
+
* @public
|
105
|
+
* @memberof Reachability
|
106
|
+
* @returns {void}
|
107
|
+
*/
|
108
|
+
stopReachability(): void;
|
101
109
|
/**
|
102
110
|
* Returns statistics about last reachability results. The returned value is an object
|
103
111
|
* with a flat list of properties so that it can be easily sent with metrics
|
@@ -142,6 +150,13 @@ export default class Reachability extends EventsScope {
|
|
142
150
|
* @memberof Reachability
|
143
151
|
*/
|
144
152
|
private getUnreachableClusters;
|
153
|
+
/**
|
154
|
+
* Gets the number of reachable clusters from last run reachability check
|
155
|
+
* @returns {number} reachable clusters count
|
156
|
+
* @private
|
157
|
+
* @memberof Reachability
|
158
|
+
*/
|
159
|
+
private getNumberOfReachableClusters;
|
145
160
|
/**
|
146
161
|
* Make a log of unreachable clusters.
|
147
162
|
* @returns {undefined}
|
@@ -165,6 +180,7 @@ export default class Reachability extends EventsScope {
|
|
165
180
|
private areAllResultsReady;
|
166
181
|
/**
|
167
182
|
* Resolves the promise returned by gatherReachability() method
|
183
|
+
* @param {boolean} checkMinRequiredClusters - if true, it will check if we have reached the minimum required clusters and do a fallback if needed
|
168
184
|
* @returns {void}
|
169
185
|
*/
|
170
186
|
private resolveReachabilityPromise;
|
@@ -192,9 +208,10 @@ export default class Reachability extends EventsScope {
|
|
192
208
|
/**
|
193
209
|
* Sends a metric with all the statistics about how long reachability took
|
194
210
|
*
|
211
|
+
* @param {boolean} aborted true if the reachability checks were aborted
|
195
212
|
* @returns {void}
|
196
213
|
*/
|
197
|
-
protected sendMetric(): Promise<void>;
|
214
|
+
protected sendMetric(aborted?: boolean): Promise<void>;
|
198
215
|
/**
|
199
216
|
* Starts all the timers used for various timeouts
|
200
217
|
*
|
@@ -214,10 +231,40 @@ export default class Reachability extends EventsScope {
|
|
214
231
|
* @returns {void}
|
215
232
|
*/
|
216
233
|
private resetResultCounters;
|
234
|
+
/**
|
235
|
+
* Clears the timer
|
236
|
+
*
|
237
|
+
* @param {string} timer name of the timer to clear
|
238
|
+
* @returns {void}
|
239
|
+
*/
|
240
|
+
private clearTimer;
|
241
|
+
/**
|
242
|
+
* Aborts current checks that are in progress
|
243
|
+
*
|
244
|
+
* @returns {void}
|
245
|
+
*/
|
246
|
+
private abortCurrentChecks;
|
217
247
|
/**
|
218
248
|
* Performs reachability checks for all clusters
|
219
249
|
* @param {ClusterList} clusterList
|
220
250
|
* @returns {Promise<void>} promise that's resolved as soon as the checks are started
|
221
251
|
*/
|
222
252
|
private performReachabilityChecks;
|
253
|
+
/**
|
254
|
+
* Returns the clientMediaPreferences object that needs to be sent to the backend
|
255
|
+
* when joining a meeting
|
256
|
+
*
|
257
|
+
* @param {boolean} isMultistream
|
258
|
+
* @param {IP_VERSION} ipver
|
259
|
+
* @returns {Object}
|
260
|
+
*/
|
261
|
+
getClientMediaPreferences(isMultistream: boolean, ipver?: IP_VERSION): Promise<ClientMediaPreferences>;
|
262
|
+
/**
|
263
|
+
* Returns the reachability report that needs to be attached to the ROAP messages
|
264
|
+
* that we send to the backend.
|
265
|
+
* It may return undefined, if reachability is not needed to be attached to ROAP messages (that's the case for v1 or Orpheus API)
|
266
|
+
*
|
267
|
+
* @returns {Promise<ReachabilityReportV0>} object that needs to be attached to Roap messages
|
268
|
+
*/
|
269
|
+
getReachabilityReportToAttachToRoap(): Promise<ReachabilityReportV0 | undefined>;
|
223
270
|
}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import { IP_VERSION } from '../constants';
|
2
|
+
export type TransportResult = {
|
3
|
+
result: 'reachable' | 'unreachable' | 'untested';
|
4
|
+
latencyInMilliseconds?: number;
|
5
|
+
clientMediaIPs?: string[];
|
6
|
+
};
|
7
|
+
export type ClusterReachabilityResult = {
|
8
|
+
udp: TransportResult;
|
9
|
+
tcp: TransportResult;
|
10
|
+
xtls: TransportResult;
|
11
|
+
};
|
12
|
+
export type ReachabilityMetrics = {
|
13
|
+
reachability_public_udp_success: number;
|
14
|
+
reachability_public_udp_failed: number;
|
15
|
+
reachability_public_tcp_success: number;
|
16
|
+
reachability_public_tcp_failed: number;
|
17
|
+
reachability_public_xtls_success: number;
|
18
|
+
reachability_public_xtls_failed: number;
|
19
|
+
reachability_vmn_udp_success: number;
|
20
|
+
reachability_vmn_udp_failed: number;
|
21
|
+
reachability_vmn_tcp_success: number;
|
22
|
+
reachability_vmn_tcp_failed: number;
|
23
|
+
reachability_vmn_xtls_success: number;
|
24
|
+
reachability_vmn_xtls_failed: number;
|
25
|
+
};
|
26
|
+
/**
|
27
|
+
* This is the type that matches what backend expects us to send to them. It is a bit weird, because
|
28
|
+
* it uses strings instead of booleans and numbers, but that's what they require.
|
29
|
+
*/
|
30
|
+
export type TransportResultForBackend = {
|
31
|
+
reachable?: 'true' | 'false';
|
32
|
+
latencyInMilliseconds?: string;
|
33
|
+
clientMediaIPs?: string[];
|
34
|
+
untested?: 'true';
|
35
|
+
};
|
36
|
+
export type ReachabilityResultForBackend = {
|
37
|
+
udp: TransportResultForBackend;
|
38
|
+
tcp: TransportResultForBackend;
|
39
|
+
xtls: TransportResultForBackend;
|
40
|
+
};
|
41
|
+
export type ReachabilityResultsForBackend = Record<string, ReachabilityResultForBackend>;
|
42
|
+
export type ReachabilityResults = Record<string, ClusterReachabilityResult & {
|
43
|
+
isVideoMesh?: boolean;
|
44
|
+
}>;
|
45
|
+
export type ReachabilityReportV0 = ReachabilityResultsForBackend;
|
46
|
+
export type ReachabilityReportV1 = {
|
47
|
+
version: 1;
|
48
|
+
result: {
|
49
|
+
usedDiscoveryOptions: {
|
50
|
+
'early-call-min-clusters': number;
|
51
|
+
};
|
52
|
+
metrics: {
|
53
|
+
'total-duration-ms': number;
|
54
|
+
};
|
55
|
+
tests: Record<string, ReachabilityResultForBackend>;
|
56
|
+
};
|
57
|
+
};
|
58
|
+
export interface ClientMediaPreferences {
|
59
|
+
ipver: IP_VERSION;
|
60
|
+
joinCookie: any;
|
61
|
+
preferTranscoding: boolean;
|
62
|
+
reachability?: ReachabilityReportV1;
|
63
|
+
}
|
64
|
+
export type GetClustersTrigger = 'startup' | 'early-call/no-min-reached';
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { IP_VERSION } from '../constants';
|
2
|
+
import { GetClustersTrigger } from './reachability.types';
|
2
3
|
export interface ClusterNode {
|
3
4
|
isVideoMesh: boolean;
|
4
5
|
udp: Array<string>;
|
@@ -22,12 +23,15 @@ declare class ReachabilityRequest {
|
|
22
23
|
/**
|
23
24
|
* Gets the cluster information
|
24
25
|
*
|
26
|
+
* @param {string} trigger that's passed to Orpheus
|
25
27
|
* @param {IP_VERSION} ipVersion information about current ip network we're on
|
28
|
+
* @param {Object} previousReport last reachability result
|
26
29
|
* @returns {Promise}
|
27
30
|
*/
|
28
|
-
getClusters: (ipVersion?: IP_VERSION) => Promise<{
|
31
|
+
getClusters: (trigger: GetClustersTrigger, ipVersion?: IP_VERSION, previousReport?: any) => Promise<{
|
29
32
|
clusters: ClusterList;
|
30
33
|
joinCookie: any;
|
34
|
+
discoveryOptions?: Record<string, any>;
|
31
35
|
}>;
|
32
36
|
/**
|
33
37
|
* gets remote SDP For Clusters
|
@@ -1,7 +1,10 @@
|
|
1
|
-
declare enum RecordingAction {
|
1
|
+
export declare enum RecordingAction {
|
2
2
|
Start = "Start",
|
3
3
|
Stop = "Stop",
|
4
4
|
Pause = "Pause",
|
5
5
|
Resume = "Resume"
|
6
6
|
}
|
7
|
-
export
|
7
|
+
export declare enum RecordingType {
|
8
|
+
Premise = "premise",
|
9
|
+
Cloud = "cloud"
|
10
|
+
}
|
@@ -1,10 +1,11 @@
|
|
1
1
|
import { SELF_POLICY } from '../constants';
|
2
|
-
import RecordingAction from './enums';
|
2
|
+
import { RecordingAction } from './enums';
|
3
3
|
declare const _default: {
|
4
4
|
canUserStart: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
5
5
|
canUserPause: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
6
6
|
canUserResume: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
7
7
|
canUserStop: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
8
|
+
isPremiseRecordingEnabled: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
8
9
|
deriveRecordingStates: (action: RecordingAction) => {
|
9
10
|
recording: boolean;
|
10
11
|
paused: boolean;
|
@@ -1,19 +1,9 @@
|
|
1
1
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
2
|
-
import { IP_VERSION } from '../constants';
|
3
2
|
import { LocusMediaRequest } from '../meeting/locusMediaRequest';
|
4
3
|
/**
|
5
4
|
* @class RoapRequest
|
6
5
|
*/
|
7
6
|
export default class RoapRequest extends StatelessWebexPlugin {
|
8
|
-
/**
|
9
|
-
* Returns reachability data.
|
10
|
-
* @param {Object} localSdp
|
11
|
-
* @returns {Object}
|
12
|
-
*/
|
13
|
-
attachReachabilityData(localSdp: any): Promise<{
|
14
|
-
localSdp: any;
|
15
|
-
joinCookie: any;
|
16
|
-
}>;
|
17
7
|
/**
|
18
8
|
* Sends a ROAP message
|
19
9
|
* @param {Object} options
|
@@ -22,15 +12,13 @@ export default class RoapRequest extends StatelessWebexPlugin {
|
|
22
12
|
* @param {String} options.mediaId
|
23
13
|
* @param {String} options.correlationId
|
24
14
|
* @param {String} options.meetingId
|
25
|
-
* @param {IP_VERSION} options.ipVersion only required for offers
|
26
15
|
* @returns {Promise} returns the response/failure of the request
|
27
16
|
*/
|
28
17
|
sendRoap(options: {
|
29
18
|
roapMessage: any;
|
30
19
|
locusSelfUrl: string;
|
31
20
|
mediaId: string;
|
32
|
-
|
33
|
-
ipVersion?: IP_VERSION;
|
21
|
+
isMultistream: boolean;
|
34
22
|
locusMediaRequest?: LocusMediaRequest;
|
35
23
|
}): Promise<{
|
36
24
|
mediaConnections: any;
|
@@ -0,0 +1,36 @@
|
|
1
|
+
declare const STATS_DEFAULT: {
|
2
|
+
encryption: string;
|
3
|
+
bandwidth: {
|
4
|
+
systemBandwidth: number;
|
5
|
+
sentPerSecond: number;
|
6
|
+
encodedPerSecond: number;
|
7
|
+
helper: {
|
8
|
+
audioBytesSent: number;
|
9
|
+
videoBytestSent: number;
|
10
|
+
};
|
11
|
+
speed: number;
|
12
|
+
};
|
13
|
+
results: {};
|
14
|
+
connectionType: {
|
15
|
+
systemNetworkType: string;
|
16
|
+
systemIpAddress: string;
|
17
|
+
local: {
|
18
|
+
candidateType: any[];
|
19
|
+
transport: any[];
|
20
|
+
ipAddress: any[];
|
21
|
+
networkType: any[];
|
22
|
+
};
|
23
|
+
remote: {
|
24
|
+
candidateType: any[];
|
25
|
+
transport: any[];
|
26
|
+
ipAddress: any[];
|
27
|
+
networkType: any[];
|
28
|
+
};
|
29
|
+
};
|
30
|
+
resolutions: {};
|
31
|
+
internal: {
|
32
|
+
remote: {};
|
33
|
+
candidates: {};
|
34
|
+
};
|
35
|
+
};
|
36
|
+
export default STATS_DEFAULT;
|
@@ -0,0 +1,217 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import EventsScope from '../common/events/events-scope';
|
3
|
+
import { ReceiveSlot } from '../multistream/receiveSlot';
|
4
|
+
export declare const EVENTS: {
|
5
|
+
MEDIA_QUALITY: string;
|
6
|
+
LOCAL_MEDIA_STARTED: string;
|
7
|
+
LOCAL_MEDIA_STOPPED: string;
|
8
|
+
REMOTE_MEDIA_STARTED: string;
|
9
|
+
REMOTE_MEDIA_STOPPED: string;
|
10
|
+
};
|
11
|
+
type ReceiveSlotCallback = (csi: number) => ReceiveSlot | undefined;
|
12
|
+
type MediaStatus = {
|
13
|
+
actual?: any;
|
14
|
+
expected?: any;
|
15
|
+
};
|
16
|
+
/**
|
17
|
+
* Stats Analyzer class that will emit events based on detected quality
|
18
|
+
*
|
19
|
+
* @export
|
20
|
+
* @class StatsAnalyzer
|
21
|
+
* @extends {EventsScope}
|
22
|
+
*/
|
23
|
+
export declare class StatsAnalyzer extends EventsScope {
|
24
|
+
config: any;
|
25
|
+
correlationId: any;
|
26
|
+
lastEmittedStartStopEvent: any;
|
27
|
+
lastMqaDataSent: any;
|
28
|
+
lastStatsResults: any;
|
29
|
+
meetingMediaStatus: any;
|
30
|
+
mqaInterval: NodeJS.Timeout;
|
31
|
+
mqaSentCount: any;
|
32
|
+
networkQualityMonitor: any;
|
33
|
+
mediaConnection: any;
|
34
|
+
statsInterval: NodeJS.Timeout;
|
35
|
+
statsResults: any;
|
36
|
+
statsStarted: any;
|
37
|
+
successfulCandidatePair: any;
|
38
|
+
localIpAddress: string;
|
39
|
+
receiveSlotCallback: ReceiveSlotCallback;
|
40
|
+
/**
|
41
|
+
* Creates a new instance of StatsAnalyzer
|
42
|
+
* @constructor
|
43
|
+
* @public
|
44
|
+
* @param {Object} config SDK Configuration Object
|
45
|
+
* @param {Function} receiveSlotCallback Callback used to access receive slots.
|
46
|
+
* @param {Object} networkQualityMonitor class for assessing network characteristics (jitter, packetLoss, latency)
|
47
|
+
* @param {Object} statsResults Default properties for stats
|
48
|
+
*/
|
49
|
+
constructor(config: any, receiveSlotCallback?: ReceiveSlotCallback, networkQualityMonitor?: object, statsResults?: object);
|
50
|
+
/**
|
51
|
+
* Resets cumulative stats arrays.
|
52
|
+
*
|
53
|
+
* @public
|
54
|
+
* @memberof StatsAnalyzer
|
55
|
+
* @returns {void}
|
56
|
+
*/
|
57
|
+
resetStatsResults(): void;
|
58
|
+
/**
|
59
|
+
* sets mediaStatus status for analyzing metrics
|
60
|
+
*
|
61
|
+
* @public
|
62
|
+
* @param {Object} status for the audio and video
|
63
|
+
* @memberof StatsAnalyzer
|
64
|
+
* @returns {void}
|
65
|
+
*/
|
66
|
+
updateMediaStatus(status: MediaStatus): void;
|
67
|
+
/**
|
68
|
+
* captures MQA data from media connection
|
69
|
+
*
|
70
|
+
* @public
|
71
|
+
* @memberof StatsAnalyzer
|
72
|
+
* @returns {void}
|
73
|
+
*/
|
74
|
+
sendMqaData(): void;
|
75
|
+
/**
|
76
|
+
* updated the media connection when changed
|
77
|
+
*
|
78
|
+
* @private
|
79
|
+
* @memberof StatsAnalyzer
|
80
|
+
* @param {RoapMediaConnection} mediaConnection
|
81
|
+
* @returns {void}
|
82
|
+
*/
|
83
|
+
updateMediaConnection(mediaConnection: any): void;
|
84
|
+
/**
|
85
|
+
* Returns the local IP address for diagnostics.
|
86
|
+
* this is the local IP of the interface used for the current media connection
|
87
|
+
* a host can have many local Ip Addresses
|
88
|
+
* @returns {string | undefined} The local IP address.
|
89
|
+
*/
|
90
|
+
getLocalIpAddress(): string;
|
91
|
+
/**
|
92
|
+
* Starts the stats analyzer on interval
|
93
|
+
*
|
94
|
+
* @public
|
95
|
+
* @memberof StatsAnalyzer
|
96
|
+
* @param {RoapMediaConnection} mediaConnection
|
97
|
+
* @returns {Promise}
|
98
|
+
*/
|
99
|
+
startAnalyzer(mediaConnection: any): any;
|
100
|
+
/**
|
101
|
+
* Cleans up the analyzer when done
|
102
|
+
*
|
103
|
+
* @public
|
104
|
+
* @memberof StatsAnalyzer
|
105
|
+
* @returns {void}
|
106
|
+
*/
|
107
|
+
stopAnalyzer(): any;
|
108
|
+
/**
|
109
|
+
* Parse a single result of get stats
|
110
|
+
*
|
111
|
+
* @private
|
112
|
+
* @param {*} getStatsResult
|
113
|
+
* @param {String} type
|
114
|
+
* @param {boolean} isSender
|
115
|
+
* @returns {void}
|
116
|
+
* @memberof StatsAnalyzer
|
117
|
+
*/
|
118
|
+
private parseGetStatsResult;
|
119
|
+
/**
|
120
|
+
* Filters the get stats results for types
|
121
|
+
* @private
|
122
|
+
* @param {Array} statsItem
|
123
|
+
* @param {String} type
|
124
|
+
* @param {boolean} isSender
|
125
|
+
* @returns {void}
|
126
|
+
*/
|
127
|
+
filterAndParseGetStatsResults(statsItem: any, type: string, isSender: boolean): void;
|
128
|
+
/**
|
129
|
+
* parse the audio
|
130
|
+
* @param {String} result
|
131
|
+
* @param {boolean} type
|
132
|
+
* @returns {void}
|
133
|
+
*/
|
134
|
+
parseAudioSource(result: any, type: any): void;
|
135
|
+
/**
|
136
|
+
* emits started/stopped events for local/remote media by checking
|
137
|
+
* if given values are increasing or not. The previousValue, currentValue
|
138
|
+
* params can be any numerical value like number of receive packets or
|
139
|
+
* decoded frames, etc.
|
140
|
+
*
|
141
|
+
* @private
|
142
|
+
* @param {string} mediaType
|
143
|
+
* @param {number} previousValue - value to compare
|
144
|
+
* @param {number} currentValue - value to compare (must be same type of value as previousValue)
|
145
|
+
* @param {boolean} isLocal - true if stats are for local media being sent out, false for remote media being received
|
146
|
+
* @memberof StatsAnalyzer
|
147
|
+
* @returns {void}
|
148
|
+
*/
|
149
|
+
emitStartStopEvents: (mediaType: string, previousValue: number, currentValue: number, isLocal: boolean) => void;
|
150
|
+
/**
|
151
|
+
* compares current and previous stats to check if packets are not sent
|
152
|
+
*
|
153
|
+
* @private
|
154
|
+
* @memberof StatsAnalyzer
|
155
|
+
* @returns {void}
|
156
|
+
*/
|
157
|
+
private compareLastStatsResult;
|
158
|
+
/**
|
159
|
+
* Does a `getStats` on all the transceivers and parses the results
|
160
|
+
*
|
161
|
+
* @private
|
162
|
+
* @memberof StatsAnalyzer
|
163
|
+
* @returns {Promise}
|
164
|
+
*/
|
165
|
+
private getStatsAndParse;
|
166
|
+
/**
|
167
|
+
* Processes OutboundRTP stats result and stores
|
168
|
+
* @private
|
169
|
+
* @param {*} result
|
170
|
+
* @param {*} mediaType
|
171
|
+
* @returns {void}
|
172
|
+
*/
|
173
|
+
private processOutboundRTPResult;
|
174
|
+
/**
|
175
|
+
* Processes InboundRTP stats result and stores
|
176
|
+
* @private
|
177
|
+
* @param {*} result
|
178
|
+
* @param {*} mediaType
|
179
|
+
* @returns {void}
|
180
|
+
*/
|
181
|
+
private processInboundRTPResult;
|
182
|
+
/**
|
183
|
+
* extracts the local Ip address from the statsResult object by looking at stats results candidates
|
184
|
+
* and matches that ID with the successful candidate pair. It looks at the type of local candidate it is
|
185
|
+
* and then extracts the IP address from the relatedAddress or address property based on conditions known in webrtc
|
186
|
+
* 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
|
187
|
+
* for example, firefox does not set the relayProtocol, and if the user is behind a NAT it might be the public IP
|
188
|
+
* @private
|
189
|
+
* @param {string} successfulCandidatePairId - The ID of the successful candidate pair.
|
190
|
+
* @param {Object} candidates - the stats result candidates
|
191
|
+
* @returns {void}
|
192
|
+
*/
|
193
|
+
extractAndSetLocalIpAddressInfoForDiagnostics: (successfulCandidatePairId: string, candidates: {
|
194
|
+
[key: string]: Record<string, unknown>;
|
195
|
+
}) => void;
|
196
|
+
/**
|
197
|
+
* Processes remote and local candidate result and stores
|
198
|
+
* @private
|
199
|
+
* @param {*} result
|
200
|
+
* @param {*} type
|
201
|
+
* @param {boolean} isSender
|
202
|
+
* @param {boolean} isRemote
|
203
|
+
*
|
204
|
+
* @returns {void}
|
205
|
+
*/
|
206
|
+
parseCandidate: (result: any, type: any, isSender: boolean, isRemote: boolean) => void;
|
207
|
+
/**
|
208
|
+
*
|
209
|
+
* @private
|
210
|
+
* @param {*} result
|
211
|
+
* @param {*} type
|
212
|
+
* @returns {void}
|
213
|
+
* @memberof StatsAnalyzer
|
214
|
+
*/
|
215
|
+
compareSentAndReceived(result: any, type: any): void;
|
216
|
+
}
|
217
|
+
export {};
|
@@ -0,0 +1,48 @@
|
|
1
|
+
export declare const getAudioReceiverMqa: ({ audioReceiver, statsResults, lastMqaDataSent, baseMediaType, }: {
|
2
|
+
audioReceiver: any;
|
3
|
+
statsResults: any;
|
4
|
+
lastMqaDataSent: any;
|
5
|
+
baseMediaType: any;
|
6
|
+
}) => void;
|
7
|
+
export declare const getAudioReceiverStreamMqa: ({ audioReceiverStream, statsResults, lastMqaDataSent, mediaType, }: {
|
8
|
+
audioReceiverStream: any;
|
9
|
+
statsResults: any;
|
10
|
+
lastMqaDataSent: any;
|
11
|
+
mediaType: any;
|
12
|
+
}) => void;
|
13
|
+
export declare const getAudioSenderMqa: ({ audioSender, statsResults, lastMqaDataSent, baseMediaType }: {
|
14
|
+
audioSender: any;
|
15
|
+
statsResults: any;
|
16
|
+
lastMqaDataSent: any;
|
17
|
+
baseMediaType: any;
|
18
|
+
}) => void;
|
19
|
+
export declare const getAudioSenderStreamMqa: ({ audioSenderStream, statsResults, lastMqaDataSent, mediaType, }: {
|
20
|
+
audioSenderStream: any;
|
21
|
+
statsResults: any;
|
22
|
+
lastMqaDataSent: any;
|
23
|
+
mediaType: any;
|
24
|
+
}) => void;
|
25
|
+
export declare const getVideoReceiverMqa: ({ videoReceiver, statsResults, lastMqaDataSent, baseMediaType, }: {
|
26
|
+
videoReceiver: any;
|
27
|
+
statsResults: any;
|
28
|
+
lastMqaDataSent: any;
|
29
|
+
baseMediaType: any;
|
30
|
+
}) => void;
|
31
|
+
export declare const getVideoReceiverStreamMqa: ({ videoReceiverStream, statsResults, lastMqaDataSent, mediaType, }: {
|
32
|
+
videoReceiverStream: any;
|
33
|
+
statsResults: any;
|
34
|
+
lastMqaDataSent: any;
|
35
|
+
mediaType: any;
|
36
|
+
}) => void;
|
37
|
+
export declare const getVideoSenderMqa: ({ videoSender, statsResults, lastMqaDataSent, baseMediaType }: {
|
38
|
+
videoSender: any;
|
39
|
+
statsResults: any;
|
40
|
+
lastMqaDataSent: any;
|
41
|
+
baseMediaType: any;
|
42
|
+
}) => void;
|
43
|
+
export declare const getVideoSenderStreamMqa: ({ videoSenderStream, statsResults, lastMqaDataSent, mediaType, }: {
|
44
|
+
videoSenderStream: any;
|
45
|
+
statsResults: any;
|
46
|
+
lastMqaDataSent: any;
|
47
|
+
mediaType: any;
|
48
|
+
}) => void;
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
3
|
+
*/
|
4
|
+
declare class WebinarCollection {
|
5
|
+
webinarInfo: any;
|
6
|
+
namespace: string;
|
7
|
+
mainIndex: string;
|
8
|
+
constructor();
|
9
|
+
set(id: any, info: any): void;
|
10
|
+
/**
|
11
|
+
* @param {String} id
|
12
|
+
* @returns {Member}
|
13
|
+
*/
|
14
|
+
get(id: string): any;
|
15
|
+
}
|
16
|
+
export default WebinarCollection;
|