- основной Gateway управляет состоянием приложения;
- Miscord Voice Gateway выполняет voice handshake и WebRTC-сигнализацию.
Требования
- приложение установлено на сервер с областью
bot; - роль приложения имеет права
VIEW_CHANNEL,CONNECTиSPEAK; - при установке включён intent
GUILD_VOICE_STATES(1 << 7); - Gateway-сессия идентифицирована Bot Token.
Запрос на подключение
Отправьте opcode4 в основной Gateway:
channel_id: null.
Если проверка прав и лимита канала прошла, основной Gateway отправит два события:
Voice Gateway handshake
Подключитесь кwss:// + endpoint. Сервер первым отправляет opcode 8 Hello с heartbeat_interval.
Ответьте opcode 0 Identify:
2 Ready содержит ssrc, список ice_servers, участников и транспорт webrtc.
Выберите протокол:
5 Speaking. Heartbeat отправляется opcode 3, подтверждение приходит opcode 6.
WebRTC-сигнализация
SDP и ICE передаются в том же Voice WebSocket как Miscord media extension:answer, ice_candidate и request_offer. Меньший user_id создаёт offer, что предотвращает одновременные конфликтующие предложения.
Готовый Music Bot
Пример очереди, slash-команд, YouTube-резолвера и Opus/WebRTC-передачи.