Skip to content

Voice

Voice channels coordinate who is present and how peers should connect; the server does not carry media. A joining client supplies a peer_id. In-memory state tracks each user and mute flag, while channel serialization exposes a username/muted summary.

Join, leave, mute, and unmute changes are broadcast to viewers of the channel. Disconnect cleanup removes the connection from voice state. Because this state is ephemeral, a process restart clears active voice sessions and clients must rejoin.

Actual audio capture, WebRTC/media negotiation, device management, and reconnection are client responsibilities.