> ## Documentation Index
> Fetch the complete documentation index at: https://www.chapterjs.org/llms.txt
> Use this file to discover all available pages before exploring further.

# VoiceChannel

> A voice or stage channel: bitrate, user limit, region and status

A `VoiceChannel` is a voice or stage channel: people talk in it, and can write too. It is what `channel.isVoice()` gives.

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
import type { VoiceChannel } from 'chapterjs';

async function openGame(channel: VoiceChannel, game: string) {
  await channel.setStatus(`Playing ${game}`);
  const seats = channel.userLimit === 0 ? 'no limit' : `${channel.userLimit} seats`;
  await channel.send(`${channel} is open: ${seats}.`);
}
```

> [!NOTE]
>
> How to send, edit and read messages is in [Sending messages](https://www.chapterjs.org/messages.md).

## Properties

It also has everything of [GuildChannel](https://www.chapterjs.org/reference/channels#guildchannel) and [what channels with messages share](https://www.chapterjs.org/reference/channels#channels-with-messages).

**bitrate** `number`

The audio quality, in bits per second.

**userLimit** `number`

How many people can join; `0` means no limit.

**rtcRegion** `string | null`

The voice region of the channel; `null` when Discord picks it.

**isStage** `boolean`

Whether it is a stage channel, where a few speak and the others listen.

## Actions

### join()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
join(options?: JoinOptions): Promise<VoiceConnection>
```

Joins the voice channel, or moves the bot there from another voice channel of the server. Resolves once the bot can play. On a stage, the bot becomes a speaker when it may, and asks to speak otherwise. See [VoiceConnection](https://www.chapterjs.org/reference/voice-connection.md) and its [JoinOptions](https://www.chapterjs.org/reference/voice-connection.md#joinoptions).

[Discord documentation](https://docs.discord.com/developers/topics/voice-connections#connecting-to-voice)

### setStatus()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
setStatus(status: string | null, reason?: string): Promise<void>
```

Sets the status shown under the name of the voice channel; `null` removes it.

[Discord documentation](https://docs.discord.com/developers/resources/channel#set-voice-channel-status)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.