@dialstack/sdk-dev / webrtc/src / Call
Class: Call
Defined in: sdk/webrtc/src/call.ts:142
Constructors
Constructor
new Call(init): Call;
Defined in: sdk/webrtc/src/call.ts:242
Parameters
init
CallInit
Returns
Call
Properties
direction
readonly direction: CallDirection;
Defined in: sdk/webrtc/src/call.ts:146
duration
duration: number = 0;
Defined in: sdk/webrtc/src/call.ts:152
from
readonly from: string;
Defined in: sdk/webrtc/src/call.ts:147
fromName
readonly fromName: string | null;
Defined in: sdk/webrtc/src/call.ts:148
id
id: string;
Defined in: sdk/webrtc/src/call.ts:145
isMuted
isMuted: boolean = false;
Defined in: sdk/webrtc/src/call.ts:151
peerConnection
readonly peerConnection: RTCPeerConnection;
Defined in: sdk/webrtc/src/call.ts:153
state
state: CallState;
Defined in: sdk/webrtc/src/call.ts:150
to
readonly to: string;
Defined in: sdk/webrtc/src/call.ts:149
Accessors
audioInputDeviceId
Get Signature
get audioInputDeviceId(): string | null;
Defined in: sdk/webrtc/src/call.ts:330
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:181
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:338
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:168
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:155
Returns
boolean
localMediaStream
Get Signature
get localMediaStream(): MediaStream;
Defined in: sdk/webrtc/src/call.ts:766
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:757
Returns
MediaStream
Methods
acceptRemoteAnswer()
acceptRemoteAnswer(sdp): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:938
Parameters
sdp
string
Returns
Promise<void>
acceptRemoteProvisionalAnswer()
acceptRemoteProvisionalAnswer(sdp): Promise<boolean>;
Defined in: sdk/webrtc/src/call.ts:901
Parameters
sdp
string
Returns
Promise<boolean>
addRemoteCandidate()
addRemoteCandidate(
candidate,
sdpMid,
sdpMLineIndex
): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:944
Parameters
candidate
string
sdpMid
string | null
sdpMLineIndex
number | null
Returns
Promise<void>
answer()
answer(): void;
Defined in: sdk/webrtc/src/call.ts:528
Returns
void
attachConference()
attachConference(conference): void;
Defined in: sdk/webrtc/src/call.ts:777
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:702
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:723
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:1018
Returns
void
endLocally()
endLocally(reason): void;
Defined in: sdk/webrtc/src/call.ts:1032
Internal
End the call here without waiting for the server, because the
socket it lived on is gone. Emits ended like a server end, so every owner
tears down the same way.
Parameters
reason
Returns
void
handleActionError()
handleActionError(reqId): void;
Defined in: sdk/webrtc/src/call.ts:503
Internal
The server's error reply to one of this call's actions.
Parameters
reqId
string
Returns
void
handleServerMessage()
handleServerMessage(msg): void;
Defined in: sdk/webrtc/src/call.ts:972
Parameters
msg
ServerMessage
Returns
void
hangup()
hangup(): void;
Defined in: sdk/webrtc/src/call.ts:573
Returns
void
hold()
hold(): void;
Defined in: sdk/webrtc/src/call.ts:580
Returns
void
holdAfterResume()
holdAfterResume(): void;
Defined in: sdk/webrtc/src/call.ts:613
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:625
Returns
void
off()
off<K>(event, handler?): void;
Defined in: sdk/webrtc/src/call.ts:520
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:511
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:298
Parameters
report
(e) => void
Returns
void
ownsRequest()
ownsRequest(reqId): boolean;
Defined in: sdk/webrtc/src/call.ts:498
Internal
Whether reqId names an action frame this call sent.
Parameters
reqId
string
Returns
boolean
prepareAnswerForOffer()
prepareAnswerForOffer(sdp): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:805
Parameters
sdp
string
Returns
Promise<void>
reject()
reject(reason?): void;
Defined in: sdk/webrtc/src/call.ts:564
Parameters
reason?
RejectReason = 'decline'
Returns
void
resume()
resume(): void;
Defined in: sdk/webrtc/src/call.ts:619
Returns
void
sendDtmf()
sendDtmf(
digits,
duration?,
interToneGap?
): void;
Defined in: sdk/webrtc/src/call.ts:669
Parameters
digits
string
duration?
number = 100
interToneGap?
number = 70
Returns
void
setAudioInputDevice()
setAudioInputDevice(deviceId): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:344
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:469
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:599
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:789
Returns
Promise<RTCSessionDescriptionInit>
transfer()
transfer(destination): void;
Defined in: sdk/webrtc/src/call.ts:686
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:629
Returns
void
whenLocalMediaReady()
whenLocalMediaReady(): Promise<void>;
Defined in: sdk/webrtc/src/call.ts:305
Returns
Promise<void>