Geliştirici Portalı
Deneysel Bot ve uygulama platformu aktif olarak geliştiriliyor. Kendi barındırdığın sunucu desteği 13.08.2026'da yayınlandı ve buluta göre daha az özellik sunuyor. Nelerin desteklendiğine bak.
← Dokümanlar

Ses

Lavalink ve @discordjs/voice dahil ses botları kod değişikliği olmadan çalışır. GameVox, Discord'un ses gateway protokolünü birebir konuşur, ardından AEAD-RTP akışını sentetik bir eş (peer) olarak kendi yerel WebRTC SFU'suna köprüler.

Uyumlu kütüphaneler

  • Lavalink v3 + v4 (Java, önünde JDA / discord4j vb. ile JVM botları)
  • @discordjs/voice (Node)
  • discord.py ses ekleri (PyNaCl)
  • Ses modülüyle JDA
  • discord4j
  • İsteğe bağlı ses bağımlılıklarıyla Eris

Endpoint'ler

Bölge başına: bot, VOICE_SERVER_UPDATE mesajının söylediği bölgeye bağlanır.

  • compatible-voice-gateway-us.gamevox.com
  • compatible-voice-gateway-eu.gamevox.com
  • compatible-voice-gateway-ap.gamevox.com

Ana gateway, kanalın SFU konumuna göre doğru bölgeyi gönderir. Bot kütüphanen endpoint değerini bu mesajdan okur ve oraya bağlanır; elle yönlendirme gerekmez.

Bağlantı akışı

  1. Bot, ana gateway'de (gateway.gamevox.com) channel_id ile op:4 Update Voice State gönderir.
  2. Ana gateway, bir endpoint ve oturuma özel bir token ile VOICE_STATE_UPDATE + VOICE_SERVER_UPDATE gönderir.
  3. Bot wss://{endpoint}/?v=8 adresine WSS açar, {server_id, user_id, session_id, token} ile op:0 Identify gönderir.
  4. Ses gateway'i ssrc, ip, port ve desteklenen şifreleme modlarıyla op:2 Ready yanıtı verir.
  5. Bot UDP IP keşfi yapar (74 baytlık 0x0001 türünde paket → 0x0002 türünde yankı).
  6. Bot, seçtiği şifreleme moduyla op:1 Select Protocol gönderir.
  7. Ses gateway'i 32 baytlık secret_key ile op:4 Session Description yanıtı verir.
  8. Bot, anlaşılan modla AEAD şifreli olarak RTP üzerinden Opus akışı gönderir.

Şifreleme modları

Discord ile eşleşen iki AEAD-RTPSize modu desteklenir:

  • aead_aes256_gcm_rtpsize: tercih edilen. Nonce'u şifreli payload'a eklenen 4 baytlık bir sayaçtan türetilen AES-256-GCM.
  • aead_xchacha20_poly1305_rtpsize: AES-NI olmayan kütüphaneler için yedek.

Eski modlar (xsalsa20_poly1305, _lite, _suffix) sunulmaz: Discord bunları 2024'te kullanımdan kaldırdı ve büyük kütüphaneler bunları bıraktı. Bot kütüphanen eski bir moda sabitlenmişse güncelle.

Lavalink notları

Lavalink, endpoint değerini doğrudan VOICE_SERVER_UPDATE içinden okur ve UDP bağlantısını kendisi kurar. Endpoint'e ulaşılabildiği sürece (ulaşılabiliyor) Lavalink, Discord ile konuşmadığını bilmez.

Test edilen sürümler: Lavalink v3.7.x ve v4.0.x. Sürüme özel bir sorunla karşılaşırsan, CI'da senin sürümüne karşı test edebilmemiz için geliştirici portalından bildir.

Gecikme bütçesi

Köprünün eklediği hedef gecikme: gelen UDP'den SFU çıkışına kadar ölçüldüğünde 5 ms'nin altında. 5 ms'nin üzerinde müzik yanlış duyulur (nota başlangıçlarında zamanlama kayması, hi-hat titremesi). Köprü Opus'u doğrudan geçirir (transcoding yok), yani asıl sayı şifre çözme + yeniden paketleme süresidir.

Konuşma olayları

op:5 Speaking çift yönlüdür ve Discord ile aynıdır. Ses gateway'i, gelen insan konuşmacıların SSRC'lerini kullanıcı ID'lerine eşler ve botun eşleştirme yapabilmesi için {ssrc, user_id} ile op:5 gönderir.

Temiz şekilde durdurma

Ana gateway'de channel_id: null ile op:4 Update Voice State göndermek oturumu sonlandırır. Ses gateway'i UDP soketini kapatır ve sentetik SFU eşini kaldırır; insan dinleyiciler sesi hemen almayı bırakır.

Henüz desteklenmeyenler

  • DAVE / E2EE: Discord'un kanal başına uçtan uca şifreli ses modu. Henüz bir takvim yok.
  • Ses Panosu: botlar ses panosu sesleri çalamaz.
  • Sahne kanalları: veri formatı düzeyinde kabul edilir, ama ayrı bir dinleyici / konuşmacı yönetimi yok.

← Dokümanlara dön