workano-js-sdk
Version:
Workano Communications SDK - A modern JavaScript SDK for WebRTC and VoIP integration.
198 lines • 10.8 kB
TypeScript
import 'webrtc-adapter';
import type { InvitationRejectOptions } from 'sip.js/lib/api/invitation-reject-options';
import type { InviterCancelOptions } from 'sip.js/lib/api/inviter-cancel-options';
import type { SessionByeOptions } from 'sip.js/lib/api/session-bye-options';
import type { InvitationAcceptOptions } from 'sip.js/lib/api/invitation-accept-options';
import { UserAgentState } from 'sip.js/lib/api/user-agent-state';
import { URI } from 'sip.js/lib/grammar/uri';
import { UserAgent } from 'sip.js/lib/api/user-agent';
import { SessionDialog } from 'sip.js/lib/core/dialogs/session-dialog';
import { OutgoingByeRequest, OutgoingInviteRequest, OutgoingRequest } from 'sip.js/lib/core';
import { Inviter, Invitation, Registerer } from 'sip.js/lib/api';
import Emitter from './utils/Emitter';
import Heartbeat from './utils/Heartbeat';
import type { MediaConfig, UserAgentConfigOverrides, WebRtcConfig, UserAgentOptions, PeerConnection, WazoSession } from './domain/types';
export declare const replaceLocalIpModifier: (description: Record<string, any>) => Promise<any>;
export declare const events: string[];
export declare const transportEvents: string[];
export declare class CanceledCallError extends Error {
}
export default class WebRTCClient extends Emitter {
clientId: number;
config: WebRtcConfig;
uaConfigOverrides?: UserAgentConfigOverrides;
userAgent: UserAgent | null;
registerer: Registerer | null;
hasAudio: boolean;
audio: MediaTrackConstraintSet | boolean | undefined;
audioElements: Record<string, HTMLAudioElement>;
video: MediaTrackConstraintSet | boolean | undefined;
audioStreams: Record<string, any>;
audioOutputDeviceId: string | null | undefined;
audioOutputVolume: number;
heldSessions: Record<string, any>;
connectionPromise: Promise<void> | null | undefined;
_boundOnHeartbeat: (...args: Array<any>) => any;
heartbeat: Heartbeat;
heartbeatTimeoutCb: ((...args: Array<any>) => any) | null | undefined;
heartbeatCb: ((...args: Array<any>) => any) | null | undefined;
statsIntervals: Record<string, any>;
sipSessions: Record<string, WazoSession>;
conferences: Record<string, boolean>;
skipRegister: boolean;
networkMonitoringInterval: Record<string, any>;
sessionNetworkStats: Record<string, Record<string, any>>;
forceClosed: boolean;
ON_USER_AGENT: string;
REGISTERED: string;
UNREGISTERED: string;
REGISTRATION_FAILED: string;
INVITE: string;
CONNECTED: string;
DISCONNECTED: string;
TRANSPORT_ERROR: string;
MESSAGE: string;
ACCEPTED: string;
REJECTED: string;
ON_TRACK: string;
ON_REINVITE: string;
ON_ERROR: string;
ON_SCREEN_SHARING_REINVITE: string;
ON_NETWORK_STATS: string;
ON_EARLY_MEDIA: string;
ON_PROGRESS: string;
ON_DISCONNECTED: string;
static isAPrivateIp(ip: string): boolean;
static getIceServers(ip: string): Array<{
urls: Array<string>;
}>;
constructor(config: WebRtcConfig, session?: WazoSession, uaConfigOverrides?: UserAgentConfigOverrides);
configureMedia(media: MediaConfig): void;
setMediaConstraints(media: MediaStreamConstraints): void;
createUserAgent(uaConfigOverrides?: UserAgentConfigOverrides): UserAgent;
isConnected(): boolean;
isConnecting(): boolean;
isRegistered(): boolean;
onConnect(): Promise<void>;
onDisconnect(error?: Error): Promise<void>;
register(tries?: number): Promise<void>;
_monkeyPatchRegisterer(registerer: Registerer | null | undefined): void;
unregister(): Promise<void>;
stop(): Promise<void>;
call(number: string, enableVideo?: boolean, audioOnly?: boolean, conference?: boolean, options?: {}): WazoSession | null;
answer(session: Invitation, enableVideo?: boolean): Promise<void>;
hangup(session: WazoSession): Promise<OutgoingByeRequest | null>;
getStats(session: WazoSession): Promise<RTCStatsReport | null>;
startNetworkMonitoring(session: WazoSession, interval?: number): void;
stopNetworkMonitoring(session: WazoSession): void;
reject(session: WazoSession): Promise<void>;
close(force?: boolean): Promise<void>;
getNumber(session: Inviter): string | null | undefined;
mute(session: WazoSession): void;
unmute(session: WazoSession): void;
isAudioMuted(session: WazoSession): boolean;
toggleCameraOn(session: WazoSession): void;
toggleCameraOff(session: WazoSession): void;
hold(session: WazoSession, isConference?: boolean, hadVideo?: boolean): Promise<OutgoingInviteRequest | void>;
unhold(session: WazoSession, isConference?: boolean): Promise<OutgoingInviteRequest | void>;
upgradeToVideo(session: WazoSession, constraints: Record<string, any>, isConference: boolean): Promise<MediaStream | undefined>;
downgradeToAudio(session: WazoSession): void;
getStreamFromConstraints(constraints: Record<string, any>, conference?: boolean): Promise<MediaStream | null | undefined>;
getHeldSession(sessionId: string): any;
isCallHeld(session: WazoSession): boolean;
isVideoRemotelyHeld(sessionId: string): boolean;
sendDTMF(session: WazoSession, tone: string): boolean;
message(destination: string, message: string): void;
transfer(session: WazoSession, target: string): void;
atxfer(session: WazoSession): Record<string, any>;
sendMessage(sipSession: (WazoSession | null) | undefined, body: string, contentType?: string): void;
pingServer(): OutgoingRequest | void;
getState(): UserAgentState;
getContactIdentifier(): string | null;
isFirefox(): boolean;
changeAudioOutputVolume(volume: number): void;
changeAudioOutputDevice(id: string): Promise<void>;
changeAudioInputDevice(id: string, session: WazoSession | null | undefined, force?: boolean): Promise<MediaStream | null>;
changeVideoInputDevice(id: string, session?: WazoSession): Promise<MediaStream | void>;
setVideoInputDevice(id: string): null | undefined;
changeSessionVideoInputDevice(id: string | null | undefined, session: WazoSession): Promise<MediaStream | void>;
getAudioDeviceId(): string | null | undefined;
getVideoDeviceId(): string | null;
reinvite(sipSession: WazoSession, newConstraints?: Record<string, any> | null | undefined, conference?: boolean, audioOnly?: boolean, iceRestart?: boolean): Promise<OutgoingInviteRequest | void>;
getUserMedia(constraints: Record<string, any>): Promise<MediaStream>;
getPeerConnection(sessionId: string): RTCPeerConnection | null | undefined;
getLocalStream(sessionId: string): MediaStream | null;
getLocalTracks(sessionId: string): MediaStreamTrack[];
hasLocalVideo(sessionId: string): boolean;
hasALocalVideoTrack(sessionId: string): boolean;
getLocalVideoStream(sessionId: string): MediaStream | null | undefined;
getRemoteStream(sessionId: string): MediaStream | null;
getRemoteTracks(sessionId: string): MediaStreamTrack[];
hasRemoteVideo(sessionId: string): boolean;
hasARemoteVideoTrack(sessionId: string): boolean;
getRemoteVideoStream(sessionId: string): MediaStream | null | undefined;
getRemoteVideoStreamFromPc(sessionId: string): MediaStream | null | undefined;
hasVideo(sessionId: string): boolean;
hasAVideoTrack(sessionId: string): boolean;
getSipSessionId(sipSession: WazoSession | null | undefined): string;
waitForRegister(): Promise<void>;
sessionWantsToDoVideo(session: WazoSession): boolean;
hasHeartbeat(): boolean;
startHeartbeat(): void;
stopHeartbeat(): void;
setOnHeartbeatTimeout(cb: (...args: Array<any>) => any): void;
setOnHeartbeatCallback(cb: (...args: Array<any>) => any): void;
onCallEnded(session: WazoSession): void;
attemptReconnection(): void;
storeSipSession(session: WazoSession): void;
getSipSession(id: string): WazoSession | null | undefined;
getSipSessionIds(): string[];
setLocalMediaStream(sipSessionId: string, newStream: MediaStream): void;
updateLocalStream(sipSessionId: string, newStream: MediaStream): Promise<void>;
updateRemoteStream(sessionId: string, allTracks?: boolean): void;
getMediaConfiguration(enableVideo: boolean, conference?: boolean, constraints?: Record<string, any> | null | undefined): Record<string, any>;
isConference(sessionId: string): boolean;
createAudioElementFor(sessionId: string): Promise<HTMLAudioElement>;
_onTransportError(): void;
enableLogger(logConnector: (level: any, className: string, label: any, content: string) => void): void;
_onHeartbeat(message: string | Record<string, any>): void;
_onHeartbeatTimeout(): Promise<void>;
_isWeb(): boolean;
_isVideoTrack(track: MediaStreamTrack): boolean;
_hasAudio(): boolean;
_getAudioConstraints(): MediaTrackConstraints | boolean;
_getVideoConstraints(video?: boolean): MediaTrackConstraints | boolean;
_connectIfNeeded(): Promise<any>;
_buildConfig(config: WebRtcConfig, session: WazoSession | null | undefined): Promise<WebRtcConfig>;
_createUaOptions(uaOptionsOverrides?: UserAgentConfigOverrides): UserAgentOptions;
_getRtcOptions(): {
mandatory: {
OfferToReceiveAudio: boolean;
OfferToReceiveVideo: boolean;
};
};
_setupSession(session: WazoSession): void;
_onProgress(session: WazoSession, early?: boolean): Promise<void>;
_onAccepted(session: WazoSession, sessionDialog?: SessionDialog, withEvent?: boolean, initAllTracks?: boolean): Promise<void>;
_isAudioOnly(session: WazoSession): boolean;
_setupMedias(session: WazoSession, newStream?: MediaStream | null | undefined): Promise<void>;
_cleanupMedia(session?: WazoSession): void;
_cleanupStream(stream: MediaStream): void;
_toggleAudio(session: WazoSession, muteAudio: boolean): void;
_toggleVideo(session: WazoSession, muteCamera: boolean): void;
/**
* @param pc RTCPeerConnection
*/
_getRemoteStream(pc: PeerConnection): MediaStream | null;
_cleanupRegister(): void;
_startSendingStats(session: WazoSession): void;
_stopSendingStats(session: WazoSession): void;
_makeURI(target: string): URI | undefined;
_disconnectTransport(force?: boolean): Promise<void>;
_fetchNetworkStats(sessionId: string): Promise<Record<string, any> | null | undefined>;
_accept(session: Invitation, options?: InvitationAcceptOptions): Promise<void>;
_reject(session: Invitation, options?: InvitationRejectOptions): Promise<void>;
_cancel(session: Inviter, options?: InviterCancelOptions): Promise<void>;
_bye(session: WazoSession, options?: SessionByeOptions): Promise<OutgoingByeRequest | null>;
}
//# sourceMappingURL=web-rtc-client.d.ts.map