Building a Discord Caller (Voice Relay) Bot in Go

TL;DR AI
2 min readKey summary
The article describes go-discord-caller, a Go bot that relays one user's voice into multiple Discord channels.
Discord voice uses a WebSocket gateway for control and UDP with Opus for audio transport, and DAVE adds MLS-based E2EE.
The project uses disgo for Discord integration and godave (a CGO wrapper for libdave) to handle DAVE; CGO complicates builds.
Audio flows from a caller VoiceReceiver through buffered Go channels to multiple VoiceProvider speaker bots, with per-guild isolation and simple persisted state.
