Participant represents a remote member on an active
WebRTCCall. Instances are
created by the call when members join and removed when they leave —
applications obtain them through
call.participants$,
not by construction.
Each participant exposes every per-member piece of state the SDK tracks: mute
state (audio/video), microphone processing flags (auto-gain, noise
suppression, echo cancellation), display name, hand-raise, talking detection,
sensitivity/volume levels, and current layout position. State is exposed in
two complementary forms — a snapshot getter (e.g.
audioMuted)
for one-shot reads and an observable (audioMuted$) for reactive UI binding.
Control methods (muteAudio, setMeta, toggleLowbitrate, etc.) issue
server-side requests scoped to this member. Their effect depends on the
caller’s capabilities — inspect the local
SelfCapabilities before
exposing controls in your UI. For the local participant — which adds device
selection, screen sharing, and local media stream control — use
SelfParticipant.
DestroyableUnique identifier for this entity.
Function used to send execute RPC calls on this entity. See ExecuteMethod.
Device controller responsible for media-device enumeration and selection. See DeviceController.
Participant
Unique member ID of this participant.
Observable of the participant’s address ID.
Observable indicating whether the participant’s audio is muted.
Observable indicating whether auto-gain control is enabled.
Observable indicating whether the participant is deafened.
Observable indicating whether noise reduction is active.
Observable that emits when the instance is destroyed
Observable indicating whether echo cancellation is enabled.
Observable indicating whether the participant has raised their hand.
Observable of the conference-only microphone energy/gate sensitivity level for this member.
Observable of the participant’s server-side microphone input volume as reported by the mix engine.
Whether the participant is an audience member (view-only).
Observable indicating whether the participant is currently speaking.
Observable indicating whether low-bitrate mode is active.
Observable of custom metadata for this participant.
Observable of the participant’s display name.
Observable of the server node ID for this participant.
Observable indicating whether noise suppression is enabled.
Observable of the participant’s server-side speaker output volume as reported by the mix engine (FreeSWITCH channel write volume).
Observable of the participant’s layout position.
Observable of the participant type (e.g. 'member', 'screen').
Observable of the participant’s user ID.
Observable indicating whether the participant’s video is muted.
Observable indicating whether the participant is visible in the layout.
Destroys the participant, releasing all subscriptions and references.
Ends the call for this participant.
Mutes the participant’s audio.
Mutes the participant’s video.
Removes this participant from the call.
Adjusts the conference-only microphone energy gate / sensitivity level for this member.
Sets the server-side microphone volume on this participant’s bridged call leg.
Sets the server-side speaker volume on this participant’s bridged call leg (FreeSWITCH channel write volume) — what this participant hears from the mix before it reaches their client.
Replaces custom metadata for this participant.
Sets the participant’s position in the video layout.
Toggles automatic gain control on the audio input.
Toggles the deafened state (mutes/unmutes incoming audio).
Toggles echo cancellation on the audio input.
Toggles the hand-raised state.
Toggles the participant’s low-bitrate mode.
Toggles the participant’s audio mute state.
Toggles the participant’s video mute state.
Toggles noise suppression on the audio input.
Unmutes the participant’s audio.
Unmutes the participant’s video.
Merges values into custom metadata (unlike setMeta which replaces).