> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # CallParticipant > Base participant interface for call participants Defines the full public contract for participant objects exposed by Call Base participant interface for call participants Defines the full public contract for participant objects exposed by Call ## **Extended by** * [`CallSelfParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-self-participant) ## **Properties** **`addressId`** `string | undefined` — required User-address ID, if this participant is a known user. --- **`addressId$`** `Observable` — required Observable of user-address ID, if this participant is a known user. --- **`audioMuted`** `boolean` — required Whether this participant's audio is muted. --- **`audioMuted$`** `Observable` — required Observable of whether this participant's audio is muted. --- **`autoGain`** `boolean` — required Whether automatic gain control is enabled on this participant's microphone. --- **`autoGain$`** `Observable` — required Observable of whether automatic gain control is enabled on this participant's microphone. --- **`callId`** `string | undefined` — required Call ID for this participant's leg — the participant's own call context, not necessarily the local call's ID. --- **`deaf`** `boolean` — required Whether this participant is deafened (does not receive other participants' audio). --- **`deaf$`** `Observable` — required Observable of whether this participant is deafened (does not receive other participants' audio). --- **`denoise`** `boolean` — required Whether noise suppression is enabled on this participant's microphone. --- **`denoise$`** `Observable` — required Observable of whether noise suppression is enabled on this participant's microphone. --- **`echoCancellation`** `boolean` — required Whether echo cancellation is enabled on this participant's microphone. --- **`echoCancellation$`** `Observable` — required Observable of whether echo cancellation is enabled on this participant's microphone. --- **`handraised`** `boolean` — required Whether this participant has their hand raised. --- **`handraised$`** `Observable` — required Observable of whether this participant has their hand raised. --- **`id`** `string` — required Unique participant ID, assigned by the media server. --- **`inputSensitivity`** `number | undefined` — required Microphone input sensitivity, or `undefined` if not adjustable. --- **`inputSensitivity$`** `Observable` — required Observable of microphone input sensitivity, or `undefined` if not adjustable. --- **`inputVolume`** `number | undefined` — required Microphone input volume, or `undefined` if not adjustable. --- **`inputVolume$`** `Observable` — required Observable of microphone input volume, or `undefined` if not adjustable. --- **`isAudience`** `boolean` — required Whether this participant is an audience member rather than an active participant. --- **`isTalking`** `boolean` — required Whether the media server currently detects voice activity from this participant. --- **`isTalking$`** `Observable` — required Observable of whether the media server currently detects voice activity from this participant. --- **`lowbitrate`** `boolean` — required Whether low-bitrate mode is enabled for this participant. --- **`lowbitrate$`** `Observable` — required Observable of whether low-bitrate mode is enabled for this participant. --- **`meta`** `Record | undefined` — required Arbitrary metadata bag for this participant, if any. --- **`meta$`** `Observable | undefined>` — required Observable of the call-level metadata bag. --- **`name`** `string | undefined` — required Display name of this participant. --- **`name$`** `Observable` — required Observable of display name of this participant. --- **`nodeId`** `string | undefined` — required ID of the media node hosting this participant. --- **`nodeId$`** `Observable` — required Observable of the media node ID currently hosting the call. --- **`noiseSuppression`** `boolean` — required Whether noise suppression is enabled on this participant's microphone. --- **`noiseSuppression$`** `Observable` — required Observable of whether noise suppression is enabled on this participant's microphone. --- **`outputVolume`** `number | undefined` — required Speaker output volume for this participant, or `undefined` if not adjustable. --- **`outputVolume$`** `Observable` — required Observable of speaker output volume for this participant, or `undefined` if not adjustable. --- **`position`** `LayoutLayer | undefined` — required Current layout position of this participant, or `undefined` if not yet placed. See [`LayoutLayer`](/docs/browser-sdk/v4/reference/interfaces/layout-layer). --- **`position$`** `Observable` — required Observable of current layout position of this participant, or `undefined` if not yet placed. See [`LayoutLayer`](/docs/browser-sdk/v4/reference/interfaces/layout-layer). --- **`userId`** `string | undefined` — required User ID associated with this participant, if known. --- **`userId$`** `Observable` — required Observable of user ID associated with this participant, if known. --- **`target`** `MemberTarget` — required The member's own RPC target triple. Throws [`ParticipantNotReadyError`](/docs/browser-sdk/v4/reference/errors/participant-not-ready-error) until the member's call context has been received. --- **`type`** `string | undefined` — required Participant type (e.g. `member`, `audience`). --- **`type$`** `Observable` — required Observable of participant type (e.g. `member`, `audience`). --- **`videoMuted`** `boolean` — required Whether this participant's video is muted. --- **`videoMuted$`** `Observable` — required Observable of whether this participant's video is muted. --- **`visible`** `boolean` — required Whether this participant is currently visible in the layout. --- **`visible$`** `Observable` — required Observable of whether this participant is currently visible in the layout. --- ## **Methods** ### end() ```ts end(): Promise ``` #### Returns `Promise` --- ### mute() ```ts mute(): Promise ``` #### Returns `Promise` --- ### muteVideo() ```ts muteVideo(): Promise ``` #### Returns `Promise` --- ### remove() ```ts remove(): Promise ``` #### Returns `Promise` --- ### setAudioInputSensitivity() ```ts setAudioInputSensitivity(value): Promise ``` #### Parameters **`value`** `number` — required New value for the property being set. --- #### Returns `Promise` --- ### setAudioInputVolume() ```ts setAudioInputVolume(value): Promise ``` #### Parameters **`value`** `number` — required New value for the property being set. --- #### Returns `Promise` --- ### setAudioOutputVolume() ```ts setAudioOutputVolume(value): Promise ``` #### Parameters **`value`** `number` — required New value for the property being set. --- #### Returns `Promise` --- ### setMeta() ```ts setMeta(meta): Promise ``` #### Parameters **`meta`** `Record` — required Arbitrary metadata bag for this participant, if any. --- #### Returns `Promise` --- ### setPosition() ```ts setPosition(value): Promise ``` #### Parameters **`value`** `VideoPosition` — required New value for the property being set. See [`VideoPosition`](/docs/browser-sdk/v4/reference/type-aliases/video-position). --- #### Returns `Promise` --- ### toggleAudioInputAutoGain() ```ts toggleAudioInputAutoGain(): Promise ``` #### Returns `Promise` --- ### toggleDeaf() ```ts toggleDeaf(): Promise ``` #### Returns `Promise` --- ### toggleEchoCancellation() ```ts toggleEchoCancellation(): Promise ``` #### Returns `Promise` --- ### toggleHandraise() ```ts toggleHandraise(): Promise ``` #### Returns `Promise` --- ### toggleLowbitrate() ```ts toggleLowbitrate(): Promise ``` #### Returns `Promise` --- ### toggleMute() ```ts toggleMute(): Promise ``` #### Returns `Promise` --- ### toggleMuteVideo() ```ts toggleMuteVideo(): Promise ``` #### Returns `Promise` --- ### toggleNoiseSuppression() ```ts toggleNoiseSuppression(): Promise ``` #### Returns `Promise` --- ### unmute() ```ts unmute(): Promise ``` #### Returns `Promise` --- ### unmuteVideo() ```ts unmuteVideo(): Promise ``` #### Returns `Promise` --- ### updateMeta() ```ts updateMeta(meta): Promise ``` #### Parameters **`meta`** `Record` — required Arbitrary metadata bag for this participant, if any. --- #### Returns `Promise` > Base participant interface for call participants Defines the full public contract for participant objects exposed by Call