sinch-rtc
Version:
RTC JavaScript/Web SDK
88 lines (87 loc) • 4.25 kB
TypeScript
import { Instance } from "../ocra/api";
import { Direction } from "../session/Direction";
import { Session } from "../session/Session";
import { PeerConnectionClient } from "../rtc/PeerConnectionClient";
import { JsepMessage } from "../session/jsep";
import { SymmetricKey } from "../mxp";
import { CallListener } from "./listeners/CallListener";
import { MediaController } from "../rtc/MediaController";
import CallEventsManager from "./listeners/CallEventsManagers";
import { CallDetails } from "./CallDetails";
import { MxpMessageChannel } from "../mxp/MxpMessageChannel";
import { Client } from "../mxp/models";
import { CallState } from "./models";
import { SetIceServers, RTCIceServerExtended, IceConnectionState } from "../rtc";
import { ClientEventsCollector } from "./reporting/ClientEventsCollector";
import { PeerConnectionClientObserver } from "../rtc/PeerConnectionClientObserver";
import { SinchError } from "../SinchError";
import { InternalCall } from "./InternalCall";
import { CallQualityDataCollector } from "./quality/CallQualityDataCollector";
import { CallQualityWarningControllerFactory } from "./quality/CallQualityWarningControllerFactory";
import { MxpClientEvent } from "../mxp/MxpClientEvent";
import { InternalCallListener } from "./listeners/InternalCallListener";
export declare abstract class DefaultCall<T extends Session = Session> implements InternalCall, PeerConnectionClientObserver {
requestedVideo: boolean;
private session;
private mxpChannel;
protected mediaController: MediaController;
private useRelayIceCandidatesOnly;
clientEventsCollector: ClientEventsCollector;
callQualityCollector: CallQualityDataCollector;
private iceServers?;
protected peerConnectionClient: PeerConnectionClient;
protected callEventFanout: CallEventsManager;
private publicCallListenerCallbackMapper;
private trackEvent;
private callQualityWarningEventFanout;
private publicHeaders?;
private callQualityWarningController;
p2p: boolean;
instances?: Instance[];
private callDetail;
createdAt: Date;
remoteUserDisplayName?: string;
videoPaused?: boolean;
muted?: boolean;
setIceServers: SetIceServers;
constructor(requestedVideo: boolean, session: T, mxpChannel: MxpMessageChannel, mediaController: MediaController, useRelayIceCandidatesOnly: boolean, clientEventsCollector: ClientEventsCollector, callQualityCollector: CallQualityDataCollector, warningControllerFactory: CallQualityWarningControllerFactory, iceServers?: RTCIceServerExtended[] | undefined);
answer(): Promise<void>;
sendDtmf(keys: string): void;
start: () => Promise<void>;
get localPeer(): Client;
mute(): void;
unmute(): void;
pauseVideo(): void;
resumeVideo(): void;
updateMediaController(media: MediaController): void;
private enableSenderTracks;
onTrackEvent: (track: MediaStreamTrack) => void;
onIceConnectionStateChanged(state: IceConnectionState): void;
private onInboundMessage;
inactivate(): void;
protected onLocalJsepMessage: (message: JsepMessage) => void;
protected onLocalDescription(message: JsepMessage): void;
protected withSession(action: (s: T) => void): void;
protected setPushNotificationRequestSent(): void;
get incomingStream(): MediaStream | undefined;
get outgoingStream(): MediaStream;
addListener(listener: CallListener): void;
removeListener(listener: CallListener): void;
abstract get remoteUserId(): string;
performCallEndedCleanup(): void;
private mapState;
get state(): CallState;
get id(): string;
get direction(): Direction;
setHeaders(headers: Record<string, string>): void;
get headers(): Record<string, string>;
setLegacyRelayCandidates(candidates: string[]): void;
setMxpSignalingConfiguration(sessionKey: SymmetricKey, signalingChannel: string): void;
hangup(error?: SinchError): void;
emitClientEvent(event: MxpClientEvent): void;
terminateDueToIceFailure(): void;
addInternalListener(listener: InternalCallListener): void;
removeInternalListener(listener: InternalCallListener): void;
get details(): CallDetails;
getPeerConnectionStats(): Promise<RTCStatsReport | null>;
}