@dialstack/sdk-dev / webrtc/src / Call
Class: Call
Defined in: sdk/webrtc/src/call.ts:138
Constructors
Constructor
new Call(init): Call;
Defined in: sdk/webrtc/src/call.ts:231
Parameters
init
CallInit
Returns
Call
Properties
direction
readonly direction: CallDirection;
Defined in: sdk/webrtc/src/call.ts:142
duration
duration: number = 0;
Defined in: sdk/webrtc/src/call.ts:148
from
readonly from: string;
Defined in: sdk/webrtc/src/call.ts:143
fromName
readonly fromName: string | null;
Defined in: sdk/webrtc/src/call.ts:144
id
id: string;
Defined in: sdk/webrtc/src/call.ts:141
isMuted
isMuted: boolean = false;
Defined in: sdk/webrtc/src/call.ts:147
peerConnection
readonly peerConnection: RTCPeerConnection;
Defined in: sdk/webrtc/src/call.ts:149
state
state: CallState;
Defined in: sdk/webrtc/src/call.ts:146
to
readonly to: string;
Defined in: sdk/webrtc/src/call.ts:145
Accessors
audioInputDeviceId
Get Signature
get audioInputDeviceId(): string | null;
Defined in: sdk/webrtc/src/call.ts:318
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:177
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:326
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:164
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:151
Returns
boolean
localMediaStream
Get Signature
get localMediaStream(): MediaStream;
Defined in: sdk/webrtc/src/call.ts:709
The local capture (mic) stream. A local conference mixes against this rather
than opening a second getUserMedia, so every merged leg shares the one
capture the call already owns.
Returns
MediaStream
remoteMediaStream
Get Signature
get remoteMediaStream(): MediaStream;
Defined in: sdk/webrtc/src/call.ts:700
Returns
MediaStream
Methods
acceptRemoteAnswer()
acceptRemoteAnswer(sdp): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:881
Parameters
sdp
string
Returns
Promise<void>
acceptRemoteProvisionalAnswer()
acceptRemoteProvisionalAnswer(sdp): Promise<boolean>;
Defined in: sdk/webrtc/src/call.ts:844
Parameters
sdp
string
Returns
Promise<boolean>
addRemoteCandidate()
addRemoteCandidate(
candidate,
sdpMid,
sdpMLineIndex
): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:887
Parameters
candidate
string
sdpMid
string | null
sdpMLineIndex
number | null
Returns
Promise<void>
answer()
answer(): void;
Defined in: sdk/webrtc/src/call.ts:496
Returns
void
attachConference()
attachConference(conference): void;
Defined in: sdk/webrtc/src/call.ts:720
Attach (or detach, with null) the local conference this call is merged into.
While attached, the wire carries the conference's MIXED track rather than
this call's mic track, which changes what mute has to do — see mute().
Set by the conference owner (the softphone's merge action), not by the core.
Parameters
conference
ConferenceSink | null
Returns
void
attendedTransfer()
attendedTransfer(destination): Promise<Call>;
Defined in: sdk/webrtc/src/call.ts:650
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:671
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:961
Returns
void
handleServerMessage()
handleServerMessage(msg): void;
Defined in: sdk/webrtc/src/call.ts:915
Parameters
msg
ServerMessage
Returns
void
hangup()
hangup(): void;
Defined in: sdk/webrtc/src/call.ts:536
Returns
void
hold()
hold(): void;
Defined in: sdk/webrtc/src/call.ts:541
Returns
void
holdAfterResume()
holdAfterResume(): void;
Defined in: sdk/webrtc/src/call.ts:570
Re-hold a call resume() ran on in this same tick. hold()'s
state !== 'active' guard would swallow it, since the state only flips on
the server echo. Only for that unwind; use hold() everywhere else.
Returns
void
mute()
mute(): void;
Defined in: sdk/webrtc/src/call.ts:582
Returns
void
off()
off<K>(event, handler?): void;
Defined in: sdk/webrtc/src/call.ts:488
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:479
Type Parameters
K
K extends keyof CallEventMap
Parameters
event
K
handler
Listener<K>
Returns
void
onCaptureFailure()
onCaptureFailure(report): void;
Defined in: sdk/webrtc/src/call.ts:286
Parameters
report
(e) => void
Returns
void
prepareAnswerForOffer()
prepareAnswerForOffer(sdp): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:748
Parameters
sdp
string
Returns
Promise<void>
reject()
reject(reason?): void;
Defined in: sdk/webrtc/src/call.ts:532
Parameters
reason?
RejectReason = 'decline'
Returns
void
resume()
resume(): void;
Defined in: sdk/webrtc/src/call.ts:576
Returns
void
sendDtmf()
sendDtmf(
digits,
duration?,
interToneGap?
): void;
Defined in: sdk/webrtc/src/call.ts:622
Parameters
digits
string
duration?
number = 100
interToneGap?
number = 70
Returns
void
setAudioInputDevice()
setAudioInputDevice(deviceId): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:332
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:457
Route this call's ringback tone to deviceId (null = OS default).
Parameters
deviceId
string | null
Returns
void
setConferenceHold()
setConferenceHold(held): void;
Defined in: sdk/webrtc/src/call.ts:560
Hold or resume this leg as part of holding the whole conference.
hold() refuses while merged because holding ONE party silences it to the
other. Holding every leg together is the coherent version, so the caller
that does that reaches the frames through here.
Parameters
held
boolean
Returns
void
startOutbound()
startOutbound(): Promise<RTCSessionDescriptionInit>;
Defined in: sdk/webrtc/src/call.ts:732
Returns
Promise<RTCSessionDescriptionInit>
transfer()
transfer(destination): void;
Defined in: sdk/webrtc/src/call.ts:639
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:586
Returns
void
whenLocalMediaReady()
whenLocalMediaReady(): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:293
Returns
Promise<void>