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
      • addressId$
      • audioMuted$
      • autoGain$
      • deaf$
      • denoise$
      • destroy
      • destroyed$
      • echoCancellation$
      • end
      • handraised$
      • inputSensitivity$
      • inputVolume$
      • isAudience
      • isTalking$
      • lowbitrate$
      • meta$
      • mute
      • muteVideo
      • name$
      • nodeId$
      • noiseSuppression$
      • outputVolume$
      • position$
      • remove
      • setAudioInputSensitivity
      • setAudioInputVolume
      • setAudioOutputVolume
      • setMeta
      • setPosition
      • toggleAudioInputAutoGain
      • toggleDeaf
      • toggleEchoCancellation
      • toggleHandraise
      • toggleLowbitrate
      • toggleMute
      • toggleMuteVideo
      • toggleNoiseSuppression
      • type$
      • unmute
      • unmuteVideo
      • updateMeta
      • userId$
      • videoMuted$
      • visible$
    • ClientPreferences
    • SelfCapabilities
    • SelfParticipant
    • 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
  • Extended by
  • Implements
  • Constructors
  • Constructor
  • Properties
  • Accessors
  • Methods
Entities

Participant

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

addressId$

Next
Built with

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.

Extends

  • Destroyable

Extended by

  • SelfParticipant

Implements

  • CallParticipant

Constructors

Constructor

1new Participant(id, executeMethod, deviceController): Participant

Parameters

id
stringRequired

Unique identifier for this entity.

executeMethod
ExecuteMethodRequired

Function used to send execute RPC calls on this entity. See ExecuteMethod.

deviceController
DeviceControllerRequired

Device controller responsible for media-device enumeration and selection. See DeviceController.

Returns

Participant

Properties

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.

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

destroy

Destroys the participant, releasing all subscriptions and references.

end

Ends the call for this participant.

mute

Mutes the participant’s audio.

muteVideo

Mutes the participant’s video.

remove

Removes this participant from the 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.

setMeta

Replaces custom metadata for this participant.

setPosition

Sets the participant’s position in the video layout.

toggleAudioInputAutoGain

Toggles automatic gain control on the audio input.

toggleDeaf

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

toggleEchoCancellation

Toggles echo cancellation on the audio input.

toggleHandraise

Toggles the hand-raised state.

toggleLowbitrate

Toggles the participant’s low-bitrate mode.

toggleMute

Toggles the participant’s audio mute state.

toggleMuteVideo

Toggles the participant’s video mute state.

toggleNoiseSuppression

Toggles noise suppression on the audio input.

unmute

Unmutes the participant’s audio.

unmuteVideo

Unmutes the participant’s video.

updateMeta

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