@vonage/client-sdk - v2.9.0
    Preparing search index...

    Type Alias ConnectivityReport

    The outcome of VonageClient.connectivityReport: a short real test call over the exact route a call takes. It is plain JSON, versioned by schemaVersion, so it can be attached to a support ticket as it is. Absent fields mean "not measured".

    type ConnectivityReport = {
        durationMs: number;
        environment: {
            apiHost?: string;
            deviceModel?: string;
            networkType?: string;
            osFamily?: string;
            osRevision?: string;
            sdkName?: string;
            sdkVersion: string;
            wsHost?: string;
        };
        failedAt?: ConnectivityStage;
        https: {
            durationMs?: number;
            error?: string;
            httpStatus?: number;
            status: CheckStatus;
            target?: string;
        };
        issues: ConnectivityIssue[];
        media: {
            candidates?: { host: number; relay: number; srflx: number };
            codec?: string;
            durationMs?: number;
            error?: string;
            legId?: string;
            remote?: { ip: string; port: number; protocol: string };
            status: CheckStatus;
            timing?: {
                connectedMs?: number;
                iceCheckingMs?: number;
                iceConnectedMs?: number;
                iceGatheringCompleteMs?: number;
                legCreatedMs?: number;
                offerMs?: number;
            };
        };
        microphone: {
            capturing?: boolean;
            error?: string;
            heardSound?: boolean;
            permission?: string;
            status: CheckStatus;
        };
        quality: {
            jitterMs?: StatSummary;
            lossPct?: StatSummary;
            mos?: StatSummary;
            rttMs?: StatSummary;
            sampleCount: number;
            samples: {
                atMs: number;
                jitterMs: number;
                lossPct: number;
                micLevel: number;
                mos: number;
                receivedLevel: number;
                rttMs?: number;
            }[];
            status: CheckStatus;
            totals?: {
                bytesReceived: number;
                bytesSent: number;
                packetsLost: number;
                packetsReceived: number;
                packetsSent: number;
                uplinkPacketsLost: number;
            };
            uplinkJitterMs?: StatSummary;
            uplinkLossPct?: StatSummary;
        };
        reportId: string;
        schemaVersion: number;
        session: {
            connection: string;
            lastFailure?: string;
            reconnectAttempts?: number;
            sessionId?: string;
            socketState: string;
            status: CheckStatus;
            userId?: string;
            userName?: string;
        };
        startedAtMs: number;
        verdict: "pass"
        | "warn"
        | "fail";
    }
    Index
    durationMs: number
    environment: {
        apiHost?: string;
        deviceModel?: string;
        networkType?: string;
        osFamily?: string;
        osRevision?: string;
        sdkName?: string;
        sdkVersion: string;
        wsHost?: string;
    }

    The first stage that failed.

    https: {
        durationMs?: number;
        error?: string;
        httpStatus?: number;
        status: CheckStatus;
        target?: string;
    }
    media: {
        candidates?: { host: number; relay: number; srflx: number };
        codec?: string;
        durationMs?: number;
        error?: string;
        legId?: string;
        remote?: { ip: string; port: number; protocol: string };
        status: CheckStatus;
        timing?: {
            connectedMs?: number;
            iceCheckingMs?: number;
            iceConnectedMs?: number;
            iceGatheringCompleteMs?: number;
            legCreatedMs?: number;
            offerMs?: number;
        };
    }

    Type Declaration

    • Optionalcandidates?: { host: number; relay: number; srflx: number }
    • Optionalcodec?: string
    • OptionaldurationMs?: number
    • Optionalerror?: string
    • OptionallegId?: string
    • Optionalremote?: { ip: string; port: number; protocol: string }
    • status: CheckStatus
    • Optionaltiming?: {
          connectedMs?: number;
          iceCheckingMs?: number;
          iceConnectedMs?: number;
          iceGatheringCompleteMs?: number;
          legCreatedMs?: number;
          offerMs?: number;
      }

      Milliseconds since the media test started.

    microphone: {
        capturing?: boolean;
        error?: string;
        heardSound?: boolean;
        permission?: string;
        status: CheckStatus;
    }
    quality: {
        jitterMs?: StatSummary;
        lossPct?: StatSummary;
        mos?: StatSummary;
        rttMs?: StatSummary;
        sampleCount: number;
        samples: {
            atMs: number;
            jitterMs: number;
            lossPct: number;
            micLevel: number;
            mos: number;
            receivedLevel: number;
            rttMs?: number;
        }[];
        status: CheckStatus;
        totals?: {
            bytesReceived: number;
            bytesSent: number;
            packetsLost: number;
            packetsReceived: number;
            packetsSent: number;
            uplinkPacketsLost: number;
        };
        uplinkJitterMs?: StatSummary;
        uplinkLossPct?: StatSummary;
    }
    reportId: string
    schemaVersion: number
    session: {
        connection: string;
        lastFailure?: string;
        reconnectAttempts?: number;
        sessionId?: string;
        socketState: string;
        status: CheckStatus;
        userId?: string;
        userName?: string;
    }
    startedAtMs: number
    verdict: "pass" | "warn" | "fail"