WebRTCCall represents an active call between the local user and one or
more remote participants. Instances are never constructed directly by
applications — they are returned by
SignalWire.dial for outbound
calls, or surfaced through the inbound-call flow once the user has
registered.
The class owns every aspect of an in-progress call: signaling
(RTCPeerConnection, Verto messages), local and remote media streams,
participant roster, layout, recording/streaming state, and network-quality
telemetry. State is exposed in two complementary forms — a snapshot getter
(e.g. locked)
for one-shot reads and an observable (e.g.
locked$) for reactive
UI binding. Event streams that have no snapshot equivalent end in $ only
(e.g. memberJoined$,
signalingEvent$).
The available control methods depend on the capabilities granted by the server
at join time — inspect capabilities$ before exposing a
control in your UI. Calling hangup ends the call locally and
transitions status$ to disconnected; the instance is then safe
to release.
DestroyableCallManagerActive client session created by SignalWire. Provides the signaling
transport and authentication context for the call.
Media and behavior options for this call (audio/video constraints,
recovery, etc.). See CallOptions.
Initialization payload supplied by the SDK when constructing the call. Carries direction, remote address, and any inbound-call metadata.
Optional pre-resolved Address for the destination. When omitted, the
address is derived from the dial string or inbound signaling.
WebRTCCall
Unique identifier for this call.
Destination URI this call was placed to.
Observable of the address associated with this call.
Observable that emits true when answered, false when rejected.
Media options provided when answering. Used internally by the VertoManager.
Observable indicating whether the call is bandwidth-constrained.
Observable of all call-related event payloads (join, leave, member updates, layout changes, etc.).
Observable of call state-change events.
Observable of call-updated events.
Observable of the call’s capability flags.
Observable that emits when the instance is destroyed
Whether this call is 'inbound' or 'outbound'.
Observable stream of errors from media, signaling, and peer connection layers.
Address URI of the caller.
Display name of the caller.
Simple boolean health indicator derived from stats monitor.
Observable of the current layout name.
Observable of layout-changed event payloads.
Observable of layout layer positions for all participants.
Observable of available layout names.
Observable of layout-changed events.
Observable of the RMS audio level of the local microphone, 0..1. Emits at ~30fps while a mic track is active. Engages the local audio pipeline on first subscription.
Observable of the current local microphone gain (0..200, where 100 = unity).
Observable that is true while the local participant is speaking (RMS level above the VAD threshold, with hold time to avoid flicker).
Observable of the local media stream (camera/microphone).
Observable indicating whether the call room is locked.
Observable of the current audio/video send/receive directions.
Observable that emits when server-pushed media params are applied.
Observable of member-joined events, emitted when a remote participant joins the call.
Observable of member-left events, emitted when a participant leaves the call.
Observable of member-talking events (speech start/stop).
Observable of member-updated events (mute, volume, etc.).
Observable of custom metadata associated with the call.
Observable of current network health issues (empty array = healthy).
Rolling history of raw network metrics (RTT, jitter, packet loss, bitrate).
Observable of the server node ID handling this call.
Observable of the participants list, emits on join/leave/update.
Observable of the current participant ID list for the call.
Observable of simplified quality level (excellent/good/fair/poor/critical).
Observable of MOS quality score (1-5) computed from stats metrics.
Observable indicating whether raise-hand priority is active.
Observable indicating whether the call is being recorded.
Observable of recovery events (keyframe requested, ICE restart, etc.).
Observable of the recovery pipeline state machine.
Observable of the aggregate remote audio level, 0..1 RMS.
Observable of the remote media stream from the far end.
Underlying RTCPeerConnection, for advanced use cases.
Observable of the local (self) participant.
Observable of the local participant’s member ID.
Observable of raw signaling events as plain objects.
Observable of the current call status (e.g. 'ringing', 'connected').
Observable indicating whether the call is being streamed.
Display name of the callee.
Observable of custom user variables associated with the call.
Observable of raw WebRTC message payloads received on this call.
Accepts an inbound call, optionally overriding media options for the answer.
Destroys the call, releasing all resources and subscriptions.
Disable push-to-talk; mic gain returns to the configured value.
Enable push-to-talk: while setPushToTalkActive has been called with false, the microphone gain is forced to 0; calling setPushToTalkActive with true restores the configured gain.
Executes a raw JSON-RPC request on the client session.
Executes a Verto RPC method targeting a specific participant.
Hangs up the call and releases all resources.
Notify the recovery manager that a verto.modify signaling exchange failed.
Rejects an inbound call, preventing media negotiation.
Force an ICE restart / re-INVITE.
Request a video keyframe via RTCP PLI/FIR.
Sends DTMF digits on the call.
Toggle browser automatic gain control on the local mic at runtime.
Toggle echo cancellation on the local mic at runtime.
Sets the call layout and participant positions.
Set the local microphone gain as a percentage applied before transmission.
Replaces the call’s custom metadata.
Toggle browser noise suppression on the local mic at runtime.
While push-to-talk is enabled, sets the talk state. true = transmitting, false = silent. No-op if push-to-talk has not been enabled.
Not yet implemented. Status tracked via recording$.
Not yet implemented. Status tracked via streaming$.
Subscribe to a custom signaling event type on this call.
Toggles the hold state of the call (pauses/resumes local media transmission).
Toggles whether incoming audio is received.
Toggles whether incoming video is received.
Toggles the call lock state, preventing or allowing new participants from joining.
Transfers the call to another destination.
Merges values into the call’s custom metadata (unlike setMeta which replaces).