Participant

View as MarkdownOpen in Claude

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

Implements

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