SelfParticipant is the local user’s view of themselves on a call. It
extends Participant — inheriting
every remote-side observable and control method — and adds the local-only
surface area: device selection, screen sharing, the local MediaStream, and
the per-call SelfCapabilities
that gate which controls the server allows. Instances are created by the call
on join and obtainable via
call.self$.
Device-related methods (selectAudio*, selectVideo*, addAudioInputDevice,
disableVideoInput, etc.) update the local capture and renegotiate the peer
connection automatically. Screen-share methods (startScreenShare,
stopScreenShare) acquire a getDisplayMedia track, publish it to the
call, and update screenShareStatus$ accordingly.
Media-processing toggles (setAutoGainControl, setEchoCancellation,
setNoiseSuppression) modify the active audio track in place.
For checking whether a given action is permitted before exposing it in the
UI, read capabilities (the underlying
SelfCapabilities instance,
which itself exposes each capability as both a snapshot and an observable).
Capabilities for this participant. Contains all capability flags as both observables and values.
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 current screen share status.
Observable indicating whether studio audio (raw/unprocessed audio) mode is enabled.
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.
Adds an additional media input device to the call.
Adds or replaces the primary audio input device with optional constraints or stream.
Adds or replaces primary input devices (audio and/or video).
Adds or replaces the primary video input device with optional constraints or stream.
Destroys the participant, releasing all subscriptions and references.
Disables studio audio mode by restoring all audio processing to enabled. Sets echoCancellation, noiseSuppression, and autoGainControl to true.
Enables studio audio mode by disabling all audio processing. Sets echoCancellation, noiseSuppression, and autoGainControl to false.
Ends the call for this participant.
Mutes local audio. Falls back to local device mute if the server RPC fails.
Mutes local video. Falls back to local device mute if the server RPC fails.
Removes this participant from the call.
Removes an additional media input device by ID.
Selects the audio input device for future calls. Optionally saves as a preference.
Selects the audio output device. Optionally saves as a preference.
Selects the video input device for future calls. Optionally saves as a preference.
Updates the audio input track constraints for the active 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.
Updates both audio and video input track constraints for the active call.
Replaces custom metadata for this participant.
Sets the participant’s position in the video layout.
Updates the video input track constraints for the active call.
Starts sharing the local screen.
Stops the current screen share.
Toggles automatic gain control. Exits studio mode if active.
Toggles the deafened state (mutes/unmutes incoming audio).
Toggles echo cancellation. Exits studio mode if active.
Toggles the hand-raised state.
Participant.toggleLowbitrate
Toggles the participant’s audio mute state.
Toggles the participant’s video mute state.
Toggles noise suppression. Exits studio mode if active.
Unmutes local audio. Falls back to local device unmute if the server RPC fails.
Unmutes local video. Falls back to local device unmute if the server RPC fails.
Merges values into custom metadata (unlike setMeta which replaces).