Skip to main content

@dialstack/sdk-dev / webrtc/src / Call

Class: Call

Defined in: sdk/webrtc/src/call.ts:111

Constructors

Constructor

TypeScript
new Call(init): Call;

Defined in: sdk/webrtc/src/call.ts:191

Parameters

init

CallInit

Returns

Call

Properties

direction

TypeScript
readonly direction: CallDirection;

Defined in: sdk/webrtc/src/call.ts:115


duration

TypeScript
duration: number = 0;

Defined in: sdk/webrtc/src/call.ts:121


from

TypeScript
readonly from: string;

Defined in: sdk/webrtc/src/call.ts:116


fromName

TypeScript
readonly fromName: string | null;

Defined in: sdk/webrtc/src/call.ts:117


id

TypeScript
id: string;

Defined in: sdk/webrtc/src/call.ts:114


isMuted

TypeScript
isMuted: boolean = false;

Defined in: sdk/webrtc/src/call.ts:120


peerConnection

TypeScript
readonly peerConnection: RTCPeerConnection;

Defined in: sdk/webrtc/src/call.ts:122


state

TypeScript
state: CallState;

Defined in: sdk/webrtc/src/call.ts:119


to

TypeScript
readonly to: string;

Defined in: sdk/webrtc/src/call.ts:118

Accessors

audioInputDeviceId

Get Signature

TypeScript
get audioInputDeviceId(): string | null;

Defined in: sdk/webrtc/src/call.ts:239

The selected mic, or null for the OS default.

Returns

string | null


canSendDtmf

Get Signature

TypeScript
get canSendDtmf(): boolean;

Defined in: sdk/webrtc/src/call.ts:150

Whether DTMF can be sent on this call — the gate the softphone UI uses for its in-call keypad. False when the audio sender exposes no .dtmf (e.g. a connected call that never got a usable sender). Only meaningful once the call is active — the sender is attached during answer/offer negotiation (attachDtmfSender). sendDtmf() still throws if called anyway. Both web and native go through the same sender: web via the browser RTCDTMFSender, native via react-native-webrtc's RTCRtpSender.dtmf (provided by the DialStack fork).

Returns

boolean


effectiveAudioInputDeviceId

Get Signature

TypeScript
get effectiveAudioInputDeviceId(): string | null;

Defined in: sdk/webrtc/src/call.ts:247

The device actually captured. May differ from audioInputDeviceId at acquisition, where the constraint is ideal — how a caller detects a substitution.

Returns

string | null


isConnected

Get Signature

TypeScript
get isConnected(): boolean;

Defined in: sdk/webrtc/src/call.ts:137

Whether the call is a live, connected conversation — answered and not ended. Hold is a media modifier, not a separate lifecycle, so BOTH active and held count as connected; trying/ringing (not yet up) and ended do not. This is the single source of truth for "is this call transferable / bridgeable / controllable" — every such gate (transfer, completeTransfer, the in-call control row, isCallActive) reads it so the rule can't drift between call sites.

Returns

boolean


isHeld

Get Signature

TypeScript
get isHeld(): boolean;

Defined in: sdk/webrtc/src/call.ts:124

Returns

boolean


remoteMediaStream

Get Signature

TypeScript
get remoteMediaStream(): MediaStream;

Defined in: sdk/webrtc/src/call.ts:544

Returns

MediaStream

Methods

acceptRemoteAnswer()

TypeScript
acceptRemoteAnswer(sdp): Promise<void>;

Defined in: sdk/webrtc/src/call.ts:676

Parameters

sdp

string

Returns

Promise<void>


acceptRemoteProvisionalAnswer()

TypeScript
acceptRemoteProvisionalAnswer(sdp): Promise<boolean>;

Defined in: sdk/webrtc/src/call.ts:639

Parameters

sdp

string

Returns

Promise<boolean>


addRemoteCandidate()

TypeScript
addRemoteCandidate(
candidate,
sdpMid,
sdpMLineIndex): Promise<void>;

Defined in: sdk/webrtc/src/call.ts:682

Parameters

candidate

string

sdpMid

string | null

sdpMLineIndex

number | null

Returns

Promise<void>


answer()

TypeScript
answer(): void;

Defined in: sdk/webrtc/src/call.ts:410

Returns

void


attendedTransfer()

TypeScript
attendedTransfer(destination): Promise<Call>;

Defined in: sdk/webrtc/src/call.ts:504

Attended (consultative) transfer, step 1: hold this call and dial destination as a consult leg. Resolves with the consult Call. Once the consult party answers, call completeTransfer() on THIS call to bridge them; or hang up the consult and resume() to abandon the transfer.

Parameters

destination

string

Returns

Promise<Call>


completeTransfer()

TypeScript
completeTransfer(): void;

Defined in: sdk/webrtc/src/call.ts:515

Attended transfer, step 2: bridge the remote party to the consult leg's party. Valid once the consult call (started via attendedTransfer) is answered; this call is held at that point. On success both calls end with reason 'transferred'.

Returns

void


dispose()

TypeScript
dispose(): void;

Defined in: sdk/webrtc/src/call.ts:756

Returns

void


handleServerMessage()

TypeScript
handleServerMessage(msg): void;

Defined in: sdk/webrtc/src/call.ts:710

Parameters

msg

ServerMessage

Returns

void


hangup()

TypeScript
hangup(): void;

Defined in: sdk/webrtc/src/call.ts:444

Returns

void


hold()

TypeScript
hold(): void;

Defined in: sdk/webrtc/src/call.ts:449

Returns

void


mute()

TypeScript
mute(): void;

Defined in: sdk/webrtc/src/call.ts:464

Returns

void


off()

TypeScript
off<K>(event, handler?): void;

Defined in: sdk/webrtc/src/call.ts:402

Type Parameters

K

K extends keyof CallEventMap

Parameters

event

K

handler?

Listener<K>

Returns

void


on()

TypeScript
on<K>(event, handler): void;

Defined in: sdk/webrtc/src/call.ts:393

Type Parameters

K

K extends keyof CallEventMap

Parameters

event

K

handler

Listener<K>

Returns

void


prepareAnswerForOffer()

TypeScript
prepareAnswerForOffer(sdp): Promise<void>;

Defined in: sdk/webrtc/src/call.ts:564

Parameters

sdp

string

Returns

Promise<void>


reject()

TypeScript
reject(reason?): void;

Defined in: sdk/webrtc/src/call.ts:440

Parameters

reason?

RejectReason = 'decline'

Returns

void


resume()

TypeScript
resume(): void;

Defined in: sdk/webrtc/src/call.ts:458

Returns

void


sendDtmf()

TypeScript
sendDtmf(
digits,
duration?,
interToneGap?): void;

Defined in: sdk/webrtc/src/call.ts:476

Parameters

digits

string

duration?

number = 100

interToneGap?

number = 70

Returns

void


setAudioInputDevice()

TypeScript
setAudioInputDevice(deviceId): Promise<void>;

Defined in: sdk/webrtc/src/call.ts:253

Internal — the phone-level setter broadcasts this to every live call.

Parameters

deviceId

string | null

Returns

Promise<void>


setAudioOutputDevice()

TypeScript
setAudioOutputDevice(deviceId): void;

Defined in: sdk/webrtc/src/call.ts:371

Route this call's ringback tone to deviceId (null = OS default).

Parameters

deviceId

string | null

Returns

void


startOutbound()

TypeScript
startOutbound(): Promise<RTCSessionDescriptionInit>;

Defined in: sdk/webrtc/src/call.ts:548

Returns

Promise<RTCSessionDescriptionInit>


transfer()

TypeScript
transfer(destination): void;

Defined in: sdk/webrtc/src/call.ts:493

Blind transfer: immediately redirect the remote party to destination. Fire-and-forget — on success the call ends with reason 'transferred'; on failure a non-fatal error is emitted and the call stays active. The call must be active.

Parameters

destination

string

Returns

void


unmute()

TypeScript
unmute(): void;

Defined in: sdk/webrtc/src/call.ts:470

Returns

void


whenLocalMediaReady()

TypeScript
whenLocalMediaReady(): Promise<void>;

Defined in: sdk/webrtc/src/call.ts:214

Returns

Promise<void>