@dialstack/sdk-dev / webrtc/src / Call
Class: Call
Defined in: sdk/webrtc/src/call.ts:111
Constructors
Constructor
new Call(init): Call;
Defined in: sdk/webrtc/src/call.ts:191
Parameters
init
CallInit
Returns
Call
Properties
direction
readonly direction: CallDirection;
Defined in: sdk/webrtc/src/call.ts:115
duration
duration: number = 0;
Defined in: sdk/webrtc/src/call.ts:121
from
readonly from: string;
Defined in: sdk/webrtc/src/call.ts:116
fromName
readonly fromName: string | null;
Defined in: sdk/webrtc/src/call.ts:117
id
id: string;
Defined in: sdk/webrtc/src/call.ts:114
isMuted
isMuted: boolean = false;
Defined in: sdk/webrtc/src/call.ts:120
peerConnection
readonly peerConnection: RTCPeerConnection;
Defined in: sdk/webrtc/src/call.ts:122
state
state: CallState;
Defined in: sdk/webrtc/src/call.ts:119
to
readonly to: string;
Defined in: sdk/webrtc/src/call.ts:118
Accessors
audioInputDeviceId
Get Signature
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
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
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
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
get isHeld(): boolean;
Defined in: sdk/webrtc/src/call.ts:124
Returns
boolean
remoteMediaStream
Get Signature
get remoteMediaStream(): MediaStream;
Defined in: sdk/webrtc/src/call.ts:544
Returns
MediaStream
Methods
acceptRemoteAnswer()
acceptRemoteAnswer(sdp): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:676
Parameters
sdp
string
Returns
Promise<void>
acceptRemoteProvisionalAnswer()
acceptRemoteProvisionalAnswer(sdp): Promise<boolean>;
Defined in: sdk/webrtc/src/call.ts:639
Parameters
sdp
string
Returns
Promise<boolean>
addRemoteCandidate()
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()
answer(): void;
Defined in: sdk/webrtc/src/call.ts:410
Returns
void
attendedTransfer()
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()
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()
dispose(): void;
Defined in: sdk/webrtc/src/call.ts:756
Returns
void
handleServerMessage()
handleServerMessage(msg): void;
Defined in: sdk/webrtc/src/call.ts:710
Parameters
msg
ServerMessage
Returns
void
hangup()
hangup(): void;
Defined in: sdk/webrtc/src/call.ts:444
Returns
void
hold()
hold(): void;
Defined in: sdk/webrtc/src/call.ts:449
Returns
void
mute()
mute(): void;
Defined in: sdk/webrtc/src/call.ts:464
Returns
void
off()
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()
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()
prepareAnswerForOffer(sdp): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:564
Parameters
sdp
string
Returns
Promise<void>
reject()
reject(reason?): void;
Defined in: sdk/webrtc/src/call.ts:440
Parameters
reason?
RejectReason = 'decline'
Returns
void
resume()
resume(): void;
Defined in: sdk/webrtc/src/call.ts:458
Returns
void
sendDtmf()
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()
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()
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()
startOutbound(): Promise<RTCSessionDescriptionInit>;
Defined in: sdk/webrtc/src/call.ts:548
Returns
Promise<RTCSessionDescriptionInit>
transfer()
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()
unmute(): void;
Defined in: sdk/webrtc/src/call.ts:470
Returns
void
whenLocalMediaReady()
whenLocalMediaReady(): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:214
Returns
Promise<void>