From e452c9b4d3cd58e5500fd957b35bcc1faef619dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 18 Oct 2026 15:43:47 +0200 Subject: [PATCH] README: ServerQuery, Gruppe Bridge, Query-Flood --- README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b7e02f6..df85eed 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,11 @@ im Spiel kommt jeder externe Sprecher einzeln an (Lautstärke-Kategorie „Disco - Ein Raum ist aktiv, sobald auf mindestens zwei Seiten jemand ist. - Bots verbinden sich nur, wenn der Raum aktiv ist und auf ihrer Seite jemand sitzt; danach bleiben sie `lingerSeconds` (Standard 15) verbunden. -- TeamSpeak: ein Beobachter-Client ist dauerhaft verbunden (1 Slot), Raum-Clients nur bei Bedarf. - Fehlende Channels legt die Bridge unter `parentChannel` an (braucht Rechte zum Anlegen). +- TeamSpeak: eine ServerQuery über SSH (Port 10022) sieht alle Clients und Channels und belegt keinen + Slot. Raum-Clients verbinden sich nur bei Bedarf. Fehlende Channels legt die Query unter `parentChannel` an. +- Rechte: Servergruppe „Bridge“ (Kopie von „Normal“) plus `b_channel_create_permanent`, `b_channel_create_child`, + `b_channel_create_modify_with_codec_opusvoice`, `b_client_ignore_antiflood`, `i_client_talk_power` 75. + Darin: die Identität des Query-Logins und alle Raum-Identitäten. Kein Serveradmin nötig. - Discord: ein Bot pro Raum (ein Bot kann pro Server nur in einem Voice-Channel sein). Fehlende Channels legt der Bot in `category` an. Einladen mit `https://discord.com/oauth2/authorize?client_id=APP_ID&scope=bot&permissions=70255632` @@ -48,6 +51,11 @@ Vorlage: `bridge/config.example.yml`. Die echte `config.yml` enthält Bot-Tokens - **TeamSpeak 6 (mhsl.eu)**: verlangt Security-Level 15, Nicknames höchstens 30 Zeichen. Schnelle Reconnects lösen den Flood-Schutz aus (IP-Bann), deshalb Backoff beim Verbinden. Den Bot-Identitäten am besten `b_client_ignore_antiflood` geben. +- **TeamSpeak-Query-Flood**: Die Query sperrt die IP schon nach wenigen schnellen Befehlen (Instanz-Bann, + nicht in der Bann-Liste des Servers, läuft nach einigen Minuten ab). Die Bridge hält mindestens 1 s Abstand; + sauberer ist es, ihre IP in `query_ip_allowlist.txt` des TS-Servers einzutragen. +- **UIDs**: ts3j rechnet die UID einer Identität anders als der TS6-Server. Eigene Clients erkennt die Bridge + deshalb an ihrer Client-ID, nicht an der UID. - **Discord**: Die ersten Pakete nach dem Beitritt schlagen beim Entschlüsseln fehl („Decrypt failed“), bis DAVE die Schlüssel ausgehandelt hat. Das ist normal. - Mit `-Dvoicebridge.ts3debug=true` loggt ts3j das TeamSpeak-Protokoll (Fehlercodes vom Server).