diff --git a/README.md b/README.md index af17b71..96eceb3 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Edge Node (client machine) │ └── MQTT commands ◄─────────────────────────────── c2-core │ - └── discord_join ──► edge node joins Discord voice + streams Icecast + └── discord_join ──► edge node joins Discord voice + streams PulseAudio Discord User └── /join /leave /status /help ──► discord-bot ──► c2-core ──► MQTT ──► edge node @@ -204,7 +204,7 @@ Edge nodes join Discord voice channels using bot tokens managed by the server. A 1. Discord bot sends a `discord_join` command to c2-core with the target guild and channel IDs. 2. c2-core picks a free token (optionally the one requested via autocomplete), marks it `in_use`, and forwards the token + channel info to the target edge node over MQTT. 3. The edge node starts a `discord.py` bot with that token and joins the voice channel. -4. The bot streams live Icecast audio — only when radio is actively transmitting (speaking ring on = call active). +4. The bot streams live audio continuously from PulseAudio (`drb_sink.monitor` on the edge node). Icecast is for browser listening only. 5. On `/leave`, c2-core releases the token back to the pool. ## Node Lifecycle