> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

# Participant

> Represents a participant in a call.

`Participant` represents a remote member on an active
[`WebRTCCall`](/docs/browser-sdk/v4/reference/webrtc-call). Instances are
created by the call when members join and removed when they leave —
applications obtain them through
[`call.participants$`](/docs/browser-sdk/v4/reference/webrtc-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`](/docs/browser-sdk/v4/reference/participant/audio-muted\$#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`](/docs/browser-sdk/v4/reference/self-capabilities) before
exposing controls in your UI. For the local participant — which adds device
selection, screen sharing, and local media stream control — use
[`SelfParticipant`](/docs/browser-sdk/v4/reference/self-participant).

## **Extends**

* `Destroyable`

## **Extended by**

* [`SelfParticipant`](/docs/browser-sdk/v4/reference/self-participant)

## **Implements**

* [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant)

## **Constructors**

### Constructor

```ts
new Participant(id, executeMethod, deviceController): Participant
```

#### Parameters

Unique identifier for this entity.

Function used to send `execute` RPC calls on this entity. See [`ExecuteMethod`](/docs/browser-sdk/v4/reference/type-aliases/execute-method).

Device controller responsible for media-device enumeration and selection. See [`DeviceController`](/docs/browser-sdk/v4/reference/interfaces/device-controller).

#### Returns

`Participant`

## **Properties**

Unique member ID of this participant.

## **Accessors**

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.

## **Methods**

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