UNPKG

@observertc/client-monitor-js

Version:

ObserveRTC Client Integration Javascript Library

98 lines (97 loc) 3.27 kB
import { IcePathKind } from "../monitors/IceCandidatePairMonitor"; import { PeerConnectionMonitor } from "../monitors/PeerConnectionMonitor"; import { Detector } from "./Detector"; export type IceDisconnectedIssuePayload = { peerConnectionId: string; transportId: string; iceState?: string; dtlsState?: string; selectedCandidatePairId?: string; disconnectedForMs: number; iceGeneration: number; durationInMs?: number; }; export type IceConnectionFailedIssuePayload = { peerConnectionId: string; transportId: string; dtlsState?: string; selectedCandidatePairId?: string; disconnectedForMs?: number; iceGeneration: number; durationInMs?: number; }; export type IceTransportStalledIssuePayload = { peerConnectionId: string; transportId: string; iceState?: string; candidatePairState?: string; selectedCandidatePairId?: string; direction: 'inbound'; stalledForMs: number; outboundBytesDelta?: number; inboundBytesDelta?: number; currentRoundTripTime?: number; lastPacketReceivedTimestamp?: number; iceGeneration: number; durationInMs?: number; }; export type UnstableIcePathIssuePayload = { peerConnectionId: string; pathKey: string; transportId?: string; switches: number; windowInMs: number; kind: IcePathKind; durationInMs?: number; }; export type IceRestartRecommendationReason = 'ice-failed' | 'ice-disconnected' | 'transport-stalled' | 'never-established'; export type IceRestartRecommendedEventPayload = { peerConnectionId: string; transportId?: string; reason: IceRestartRecommendationReason; conditionDurationInMs: number; iceGeneration: number; recommendationCount: number; iceState?: string; dtlsState?: string; selectedCandidatePairId?: string; }; export type IceRestartOutcome = 'detected' | 'recovered' | 'failed'; export type IceRestartClientEventPayload = { peerConnectionId: string; transportId: string; iceGeneration: number; outcome: IceRestartOutcome; iceState?: string; evidence: 'ice-username-fragment-changed'; timestamp: number; }; export declare class IceConnectivityDetector implements Detector { readonly peerConnection: PeerConnectionMonitor; static readonly DISCONNECTED_ISSUE_TYPE = "ice-disconnected"; static readonly FAILED_ISSUE_TYPE = "ice-connection-failed"; static readonly STALLED_ISSUE_TYPE = "ice-transport-stalled"; static readonly UNSTABLE_PATH_ISSUE_TYPE = "unstable-ice-path"; readonly name = "ice-connectivity-detector"; disabled: boolean; private readonly _states; private readonly _unstablePaths; private _establishmentRecommendedAt?; private _establishmentRecommendations; constructor(peerConnection: PeerConnectionMonitor); private get config(); update(): void; private _checkPathStability; private _getState; private _checkIceRestart; private _usernameFragmentOf; private _checkIceState; private _checkInboundStall; private _checkRestartRecommendation; private _checkEstablishmentRecommendation; private _recommendRestart; private _notifyRestart; private _resolveAll; private _resolveIssue; private _issueKey; }