Fehler 2021 tritt auf, wenn der BigBlueButton-Medienserver (mediasoup ab BBB 2.5 oder Kurento in älteren Versionen) keine eigenen ICE-Kandidaten ermitteln kann. Im Gegensatz zu Fehler 1011, bei dem der Browser des Teilnehmers das Problem verursacht, liegt die Ursache hier ausschließlich auf der Serverseite: Der Medienserver kann seine Netzwerkadressen nicht bestimmen und daher keine gültige Verbindung aufbauen. Audio, Video und Bildschirmfreigabe sind in diesem Fall für alle Teilnehmer betroffen.
Wie äußert sich der Fehler?
Betroffene Nutzer sehen eine Fehlermeldung mit dem Code 2021, wenn sie versuchen, dem Audio beizutreten oder eine Kamera bzw. Bildschirmfreigabe zu starten. Da die ICE-Kandidaten serverseitig fehlen, kann keine WebRTC-Verbindung zustande kommen – die Verbindungsversuche scheitern bei allen Teilnehmern gleichzeitig. Einzelne Nutzer sind in der Regel nicht betroffen; handelt es sich um ein Problem nur bei einzelnen Personen, liegt eher Fehler 1011 (browserseitige ICE-Kandidatensammlung) vor.
Mögliche Ursachen
- Fehlende oder falsche
announcedIp-Konfiguration (BBB 2.5+): mediasoup bindet RTP-Sockets an alle Interfaces (0.0.0.0), muss aber explizit mitgeteilt bekommen, welche öffentliche IP-Adresse es nach außen kommunizieren soll. Fehlt dieser Eintrag oder ist eine private IP eingetragen, schlägt die ICE-Kandidatensammlung fehl. - Falsche
externalAddressodernetworkInterfaces(BBB ≤ 2.4, Kurento): Mehrere Netzwerkinterfaces (Docker-Bridge, VPN, Loopback) veranlassen libnice, an einem falschen Interface zu binden. - Nicht erreichbarer STUN-Server: Ist die STUN-Server-IP in der Kurento-Konfiguration veraltet oder durch eine Firewall blockiert, laufen STUN-Binding-Anfragen ins Leere und es werden nur Host-Kandidaten gesammelt, die extern nicht erreichbar sind.
- UDP-Ports serverseitig gesperrt: mediasoup benötigt UDP-Ports 16384–32768 (ab BBB 2.7: 32768–65535) für den RTP-Datenverkehr. Sind diese Ports durch eine Firewall blockiert, können keine erreichbaren ICE-Kandidaten erstellt werden.
- Fehlendes IPv6 in der mediasoup-Konfiguration (Dual-Stack-Server): Verbinden sich Clients über IPv6, der Server aber hat keine IPv6-Einträge unter
listenIps, stehen keine passenden ICE-Kandidaten zur Verfügung.
Lösungen
Für Teilnehmer
Da es sich um einen serverseitigen Fehler handelt, können Teilnehmer das Problem selbst nicht beheben. Folgende Schritte können dennoch sinnvoll sein:
- Seite im Browser neu laden und erneut versuchen, dem Audio beizutreten.
- Prüfen, ob andere Teilnehmer denselben Fehler erhalten – wenn ja, handelt es sich eindeutig um ein Serverproblem.
- Den Serveradministrator oder den technischen Support informieren und den Fehlercode 2021 nennen.
Für Administratoren
1. announcedIp für mediasoup setzen (BBB 2.5+ – häufigste Ursache)
Die öffentliche IP des Servers ermitteln und in die mediasoup-Konfiguration eintragen:
PUBLIC_IP=$(curl -s https://api.ipify.org)
yq w -i /etc/bigbluebutton/bbb-webrtc-sfu/production.yml \
mediasoup.webrtc.listenIps[0].ip "0.0.0.0"
yq w -i /etc/bigbluebutton/bbb-webrtc-sfu/production.yml \
mediasoup.webrtc.listenIps[0].announcedIp "$PUBLIC_IP"
yq w -i /etc/bigbluebutton/bbb-webrtc-sfu/production.yml \
mediasoup.plainRtp.listenIp.ip "0.0.0.0"
yq w -i /etc/bigbluebutton/bbb-webrtc-sfu/production.yml \
mediasoup.plainRtp.listenIp.announcedIp "$PUBLIC_IP"
sudo bbb-conf --restart2. Kurento-Konfiguration korrigieren (BBB ≤ 2.4)
Primäres Netzwerkinterface ermitteln und in der Kurento-Konfiguration eintragen:
# Primäres Interface ermitteln:
ip route get 8.8.8.8 | awk '{print $5; exit}'
sudo nano /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini
# Folgende Werte setzen:
# externalAddress=ÖFFENTLICHE_IP
# networkInterfaces=eth0 (durch tatsächliches Interface ersetzen)
sudo systemctl restart kurento-media-server3. UDP-Ports in der Firewall freigeben
# Für BBB 2.7+:
sudo ufw allow 32768:65535/udp
# Für ältere BBB-Versionen:
sudo ufw allow 16384:32768/udp4. Allgemeine Überprüfung mit bbb-conf
sudo bbb-conf --checkDie Ausgabe zeigt häufig Konfigurationsprobleme im Netzwerkbereich direkt an.
Abgrenzung zu Fehler 1011
Fehler 2021 und Fehler 1011 beschreiben beide ein Scheitern der ICE-Kandidatensammlung, unterscheiden sich aber grundlegend in der betroffenen Seite: Bei Fehler 1011 kann der Browser des Teilnehmers keine Kandidaten sammeln – mögliche Ursachen sind strenge Firewall-Regeln auf Clientseite, fehlender STUN-Zugang oder Browser-Berechtigungsprobleme. Bei Fehler 2021 ist es der Medienserver selbst, der keine Kandidaten ermitteln kann. Da der Server für alle Verbindungen zuständig ist, sind typischerweise alle Teilnehmer gleichzeitig betroffen. Diese Unterscheidung ist für die Fehlersuche entscheidend: Tritt der Fehler nur bei einzelnen Nutzern auf, ist 1011 wahrscheinlicher; tritt er bei allen auf, spricht das klar für 2021.
