For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Log inSign up
Support
GuidesReferenceClick-to-Call
GuidesReferenceClick-to-Call
  • Core
    • Overview
  • Entities
    • SignalWire
    • Address
    • Participant
    • ClientPreferences
    • SelfCapabilities
    • SelfParticipant
      • addAdditionalDevice
      • addAudioInputDevice
      • addInputDevices
      • addressId$
      • addVideoInputDevice
      • audioMuted$
      • autoGain$
      • deaf$
      • denoise$
      • destroy
      • destroyed$
      • disableStudioAudio
      • echoCancellation$
      • enableStudioAudio
      • end
      • handraised$
      • inputSensitivity$
      • inputVolume$
      • isAudience
      • isTalking$
      • lowbitrate$
      • meta$
      • mute
      • muteVideo
      • name$
      • nodeId$
      • noiseSuppression$
      • outputVolume$
      • position$
      • remove
      • removeAdditionalDevice
      • screenShareStatus$
      • selectAudioInputDevice
      • selectAudioOutputDevice
      • selectVideoInputDevice
      • setAudioInputDeviceConstraints
      • setAudioInputSensitivity
      • setAudioInputVolume
      • setAudioOutputVolume
      • setInputDevicesConstraints
      • setMeta
      • setPosition
      • setVideoInputDeviceConstraints
      • startScreenShare
      • stopScreenShare
      • studioAudio$
      • toggleAudioInputAutoGain
      • toggleDeaf
      • toggleEchoCancellation
      • toggleHandraise
      • toggleLowbitrate
      • toggleMute
      • toggleMuteVideo
      • toggleNoiseSuppression
      • type$
      • unmute
      • unmuteVideo
      • updateMeta
      • userId$
      • videoMuted$
      • visible$
    • User
    • WebRTCCall
  • Web Components
    • Overview
    • sw-audio-level
    • sw-call-controls
    • sw-call-dialpad
    • sw-call-media
    • sw-call-provider
    • sw-call-status
    • sw-call-widget
    • sw-click-to-call
    • sw-device-selector
    • sw-directory
    • sw-local-camera
    • sw-participant-controls
    • sw-participants
    • sw-self-media
    • sw-ui-alert
    • sw-ui-background
    • sw-ui-call-layout
    • sw-ui-content-drawer
    • sw-ui-control-bar
    • sw-ui-dialpad
    • sw-ui-dropup
    • sw-ui-icon
    • sw-ui-modal
    • sw-ui-responsive-container
    • sw-ui-split-button
    • sw-ui-transcript-view
LogoLogoSignalWire Docs
Log inSign up
Support
On this page
  • Extends
  • Implements
  • Properties
  • Accessors
  • Methods
Entities

SelfParticipant

|View as Markdown|Open in Claude|
Was this page helpful?
Edit this page
Previous

addAdditionalDevice

Next
Built with

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).

Extends

  • Participant

Implements

  • CallSelfParticipant

Properties

capabilities
SelfCapabilities

Capabilities for this participant. Contains all capability flags as both observables and values.

id
stringRequired

Unique member ID of this participant.

Accessors

addressId$

Observable of the participant’s address ID.

audioMuted$

Observable indicating whether the participant’s audio is muted.

autoGain$

Observable indicating whether auto-gain control is enabled.

deaf$

Observable indicating whether the participant is deafened.

denoise$

Observable indicating whether noise reduction is active.

destroyed$

Observable that emits when the instance is destroyed

echoCancellation$

Observable indicating whether echo cancellation is enabled.

handraised$

Observable indicating whether the participant has raised their hand.

inputSensitivity$

Observable of the conference-only microphone energy/gate sensitivity level for this member.

inputVolume$

Observable of the participant’s server-side microphone input volume as reported by the mix engine.

isAudience

Whether the participant is an audience member (view-only).

isTalking$

Observable indicating whether the participant is currently speaking.

lowbitrate$

Observable indicating whether low-bitrate mode is active.

meta$

Observable of custom metadata for this participant.

name$

Observable of the participant’s display name.

nodeId$

Observable of the server node ID for this participant.

noiseSuppression$

Observable indicating whether noise suppression is enabled.

outputVolume$

Observable of the participant’s server-side speaker output volume as reported by the mix engine (FreeSWITCH channel write volume).

position$

Observable of the participant’s layout position.

screenShareStatus$

Observable of the current screen share status.

studioAudio$

Observable indicating whether studio audio (raw/unprocessed audio) mode is enabled.

type$

Observable of the participant type (e.g. 'member', 'screen').

userId$

Observable of the participant’s user ID.

videoMuted$

Observable indicating whether the participant’s video is muted.

visible$

Observable indicating whether the participant is visible in the layout.

Methods

addAdditionalDevice

Adds an additional media input device to the call.

addAudioInputDevice

Adds or replaces the primary audio input device with optional constraints or stream.

addInputDevices

Adds or replaces primary input devices (audio and/or video).

addVideoInputDevice

Adds or replaces the primary video input device with optional constraints or stream.

destroy

Destroys the participant, releasing all subscriptions and references.

disableStudioAudio

Disables studio audio mode by restoring all audio processing to enabled. Sets echoCancellation, noiseSuppression, and autoGainControl to true.

enableStudioAudio

Enables studio audio mode by disabling all audio processing. Sets echoCancellation, noiseSuppression, and autoGainControl to false.

end

Ends the call for this participant.

mute

Mutes local audio. Falls back to local device mute if the server RPC fails.

muteVideo

Mutes local video. Falls back to local device mute if the server RPC fails.

remove

Removes this participant from the call.

removeAdditionalDevice

Removes an additional media input device by ID.

selectAudioInputDevice

Selects the audio input device for future calls. Optionally saves as a preference.

selectAudioOutputDevice

Selects the audio output device. Optionally saves as a preference.

selectVideoInputDevice

Selects the video input device for future calls. Optionally saves as a preference.

setAudioInputDeviceConstraints

Updates the audio input track constraints for the active call.

setAudioInputSensitivity

Adjusts the conference-only microphone energy gate / sensitivity level for this member.

setAudioInputVolume

Sets the server-side microphone volume on this participant’s bridged call leg.

setAudioOutputVolume

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.

setInputDevicesConstraints

Updates both audio and video input track constraints for the active call.

setMeta

Replaces custom metadata for this participant.

setPosition

Sets the participant’s position in the video layout.

setVideoInputDeviceConstraints

Updates the video input track constraints for the active call.

startScreenShare

Starts sharing the local screen.

stopScreenShare

Stops the current screen share.

toggleAudioInputAutoGain

Toggles automatic gain control. Exits studio mode if active.

toggleDeaf

Toggles the deafened state (mutes/unmutes incoming audio).

toggleEchoCancellation

Toggles echo cancellation. Exits studio mode if active.

toggleHandraise

Toggles the hand-raised state.

toggleLowbitrate

Participant.toggleLowbitrate

toggleMute

Toggles the participant’s audio mute state.

toggleMuteVideo

Toggles the participant’s video mute state.

toggleNoiseSuppression

Toggles noise suppression. Exits studio mode if active.

unmute

Unmutes local audio. Falls back to local device unmute if the server RPC fails.

unmuteVideo

Unmutes local video. Falls back to local device unmute if the server RPC fails.

updateMeta

Merges values into custom metadata (unlike setMeta which replaces).