> 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. # CallSelfParticipant > Self participant interface with control methods Extends CallParticipant with methods for controlling the local participant Self participant interface with control methods Extends CallParticipant with methods for controlling the local participant ## **Extends** * [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant) ## **Properties** **`screenShareStatus`** `ScreenShareStatus` — required Current screen-share status for this participant. See [`ScreenShareStatus`](/docs/browser-sdk/v4/reference/type-aliases/screen-share-status). --- **`screenShareStatus$`** `Observable` — required Observable of current screen-share status for this participant. See [`ScreenShareStatus`](/docs/browser-sdk/v4/reference/type-aliases/screen-share-status). --- **`studioAudio`** `boolean` — required Whether studio-audio processing is enabled for this participant. --- **`studioAudio$`** `Observable` — required Observable of whether studio-audio processing is enabled for this participant. --- #### Inherited from CallParticipant **`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 the local 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** ### addAdditionalDevice() ```ts addAdditionalDevice(options): Promise ``` #### Parameters **`options`** `MediaOptions` — required Per-operation options (media options, device-select options, or capture override depending on context). See [`MediaOptions`](/docs/browser-sdk/v4/reference/interfaces/media-options). --- #### Returns `Promise` --- ### addAudioInputDevice() ```ts addAudioInputDevice(options?): Promise ``` #### Parameters **`options`** `{ constraints?: MediaTrackConstraints; stream?: MediaStream; }` Per-operation options (media options, device-select options, or capture override depending on context). See [`MediaTrackConstraints`](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints) and [`MediaStream`](https://developer.mozilla.org/en-US/docs/Web/API/MediaStream). --- #### Returns `Promise` --- ### addInputDevices() ```ts addInputDevices(options?): Promise ``` #### Parameters **`options`** `MediaOptions` Per-operation options (media options, device-select options, or capture override depending on context). See [`MediaOptions`](/docs/browser-sdk/v4/reference/interfaces/media-options). --- #### Returns `Promise` --- ### addVideoInputDevice() ```ts addVideoInputDevice(options?): Promise ``` #### Parameters **`options`** `{ constraints?: MediaTrackConstraints; stream?: MediaStream; }` Per-operation options (media options, device-select options, or capture override depending on context). See [`MediaTrackConstraints`](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints) and [`MediaStream`](https://developer.mozilla.org/en-US/docs/Web/API/MediaStream). --- #### Returns `Promise` --- ### disableStudioAudio() ```ts disableStudioAudio(): Promise ``` #### Returns `Promise` --- ### enableStudioAudio() ```ts enableStudioAudio(): Promise ``` #### Returns `Promise` --- ### end() ```ts end(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`end`](/docs/browser-sdk/v4/reference/interfaces/call-participant#end) --- ### mute() ```ts mute(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`mute`](/docs/browser-sdk/v4/reference/interfaces/call-participant#mute) --- ### muteVideo() ```ts muteVideo(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`muteVideo`](/docs/browser-sdk/v4/reference/interfaces/call-participant#mutevideo) --- ### remove() ```ts remove(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`remove`](/docs/browser-sdk/v4/reference/interfaces/call-participant#remove) --- ### removeAdditionalDevice() ```ts removeAdditionalDevice(id): Promise ``` #### Parameters **`id`** `string` — required Unique participant ID, assigned by the media server. --- #### Returns `Promise` --- ### selectAudioInputDevice() ```ts selectAudioInputDevice(device, options?): void ``` #### Parameters **`device`** `MediaDeviceInfo` — required Media device to use for this participant. See [`MediaDeviceInfo`](https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo). --- **`options`** `SelectDeviceOptions` Per-operation options (media options, device-select options, or capture override depending on context). See [`SelectDeviceOptions`](/docs/browser-sdk/v4/reference/interfaces/select-device-options). --- #### Returns `void` --- ### selectAudioOutputDevice() ```ts selectAudioOutputDevice(device, options?): void ``` #### Parameters **`device`** `MediaDeviceInfo` — required Media device to use for this participant. See [`MediaDeviceInfo`](https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo). --- **`options`** `SelectDeviceOptions` Per-operation options (media options, device-select options, or capture override depending on context). See [`SelectDeviceOptions`](/docs/browser-sdk/v4/reference/interfaces/select-device-options). --- #### Returns `void` --- ### selectVideoInputDevice() ```ts selectVideoInputDevice(device, options?): void ``` #### Parameters **`device`** `MediaDeviceInfo` — required Media device to use for this participant. See [`MediaDeviceInfo`](https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo). --- **`options`** `SelectDeviceOptions` Per-operation options (media options, device-select options, or capture override depending on context). See [`SelectDeviceOptions`](/docs/browser-sdk/v4/reference/interfaces/select-device-options). --- #### Returns `void` --- ### setAudioInputDeviceConstraints() ```ts setAudioInputDeviceConstraints(constraints): Promise ``` #### Parameters **`constraints`** `MediaTrackConstraints` — required Media-track constraints applied to this participant's input. See [`MediaTrackConstraints`](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints). --- #### Returns `Promise` — whether the constraints reached the media the call is sending. --- ### setAudioInputSensitivity() ```ts setAudioInputSensitivity(value): Promise ``` #### Parameters **`value`** `number` — required New value for the property being set. --- #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`setAudioInputSensitivity`](/docs/browser-sdk/v4/reference/interfaces/call-participant#setaudioinputsensitivity) --- ### setAudioInputVolume() ```ts setAudioInputVolume(value): Promise ``` #### Parameters **`value`** `number` — required New value for the property being set. --- #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`setAudioInputVolume`](/docs/browser-sdk/v4/reference/interfaces/call-participant#setaudioinputvolume) --- ### setAudioOutputVolume() ```ts setAudioOutputVolume(value): Promise ``` #### Parameters **`value`** `number` — required New value for the property being set. --- #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`setAudioOutputVolume`](/docs/browser-sdk/v4/reference/interfaces/call-participant#setaudiooutputvolume) --- ### setInputDevicesConstraints() ```ts setInputDevicesConstraints(constraints): Promise ``` #### Parameters **`constraints`** `{ audio: MediaTrackConstraints; video: MediaTrackConstraints; }` — required Media-track constraints applied to this participant's input. See [`MediaTrackConstraints`](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints). --- #### Returns `Promise` — whether the constraints reached the media the call is sending. --- ### setMeta() ```ts setMeta(meta): Promise ``` #### Parameters **`meta`** `Record` — required Arbitrary metadata bag for the local participant, if any. --- #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`setMeta`](/docs/browser-sdk/v4/reference/interfaces/call-participant#setmeta) --- ### 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` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`setPosition`](/docs/browser-sdk/v4/reference/interfaces/call-participant#setposition) --- ### setVideoInputDeviceConstraints() ```ts setVideoInputDeviceConstraints(constraints): Promise ``` #### Parameters **`constraints`** `MediaTrackConstraints` — required Media-track constraints applied to this participant's input. See [`MediaTrackConstraints`](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints). --- #### Returns `Promise` — whether the constraints reached the media the call is sending. --- ### startScreenShare() ```ts startScreenShare(options?): Promise ``` #### Parameters **`options`** `ScreenShareOptions` Pass `{ audio: true }` to also request the shared surface's audio. Defaults to video only. See [`ScreenShareOptions`](/docs/browser-sdk/v4/reference/interfaces/screen-share-options). --- #### Returns `Promise` --- ### stopScreenShare() ```ts stopScreenShare(): Promise ``` #### Returns `Promise` --- ### toggleAudioInputAutoGain() ```ts toggleAudioInputAutoGain(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`toggleAudioInputAutoGain`](/docs/browser-sdk/v4/reference/interfaces/call-participant#toggleaudioinputautogain) --- ### toggleDeaf() ```ts toggleDeaf(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`toggleDeaf`](/docs/browser-sdk/v4/reference/interfaces/call-participant#toggledeaf) --- ### toggleEchoCancellation() ```ts toggleEchoCancellation(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`toggleEchoCancellation`](/docs/browser-sdk/v4/reference/interfaces/call-participant#toggleechocancellation) --- ### toggleHandraise() ```ts toggleHandraise(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`toggleHandraise`](/docs/browser-sdk/v4/reference/interfaces/call-participant#togglehandraise) --- ### toggleLowbitrate() ```ts toggleLowbitrate(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`toggleLowbitrate`](/docs/browser-sdk/v4/reference/interfaces/call-participant#togglelowbitrate) --- ### toggleMute() ```ts toggleMute(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`toggleMute`](/docs/browser-sdk/v4/reference/interfaces/call-participant#togglemute) --- ### toggleMuteVideo() ```ts toggleMuteVideo(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`toggleMuteVideo`](/docs/browser-sdk/v4/reference/interfaces/call-participant#togglemutevideo) --- ### toggleNoiseSuppression() ```ts toggleNoiseSuppression(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`toggleNoiseSuppression`](/docs/browser-sdk/v4/reference/interfaces/call-participant#togglenoisesuppression) --- ### unmute() ```ts unmute(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`unmute`](/docs/browser-sdk/v4/reference/interfaces/call-participant#unmute) --- ### unmuteVideo() ```ts unmuteVideo(): Promise ``` #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`unmuteVideo`](/docs/browser-sdk/v4/reference/interfaces/call-participant#unmutevideo) --- ### updateMeta() ```ts updateMeta(meta): Promise ``` #### Parameters **`meta`** `Record` — required Arbitrary metadata bag for the local participant, if any. --- #### Returns `Promise` #### Inherited from [`CallParticipant`](/docs/browser-sdk/v4/reference/interfaces/call-participant).[`updateMeta`](/docs/browser-sdk/v4/reference/interfaces/call-participant#updatemeta) > Self participant interface with control methods Extends CallParticipant with methods for controlling the local participant