Fehler 2000 tritt auf, wenn BigBlueButton keine WebSocket-Verbindung zum internen Medienserver (bbb-webrtc-sfu) aufbauen kann. Ohne diese Verbindung ist die Übertragung von Webcam-Bild und Bildschirmfreigabe nicht möglich. Der Fehler wird angezeigt, bevor eine Medien-Sitzung überhaupt gestartet werden kann.
Wie äußert sich der Fehler?
Betroffene Teilnehmer und Präsentatoren sehen eine Fehlermeldung mit dem Hinweis auf Fehlercode 2000, sobald sie versuchen, ihre Kamera zu aktivieren oder ihren Bildschirm zu teilen. Die Aktion schlägt sofort fehl – es wird keine Verbindung hergestellt. Audio (VoIP) funktioniert in der Regel weiterhin, da dieses über einen anderen Dienst (FreeSWITCH) läuft.
Mögliche Ursachen
- Dienst nicht gestartet: Der Prozess
bbb-webrtc-sfuist abgestürzt oder wurde nicht gestartet, z. B. wegen einer fehlerhaften Konfigurationsdatei (production.yml) oder falscher Dateiberechtigungen. - SETSCHEDULER-Fehler in Containern: In LXD/LXC-Umgebungen fehlt dem Dienst häufig die Berechtigung
SYS_NICE, die fürCPUSchedulingPolicy=fifobenötigt wird. Dies verhindert den Start des Dienstes. - nginx-Proxy falsch konfiguriert: Die WebSocket-Weiterleitung von
/bbb-webrtc-sfuan Port 3008 ist nicht korrekt eingerichtet – fehlendeUpgrade– oderConnection-Header lassen den Handshake scheitern. - Doppelter Reverse-Proxy: Wenn BBB hinter einem vorgelagerten Proxy betrieben wird, können Header wie
OriginoderHostverloren gehen oder verändert werden.bbb-webrtc-sfuprüft den Origin-Header und lehnt abweichende Verbindungen ab. - NAT ohne
announcedIp(BBB 2.5+): Auf Servern hinter NAT muss die öffentliche IP-Adresse explizit in der Konfiguration von mediasoup eingetragen sein. - FreeSWITCH-SIP-IP nicht gesetzt: Das Diagnoseprogramm
bbb-conf --checkmeldet in diesem Fall: „bbb-webrtc-sfu will try to connect to null”.
Lösungen
Für Teilnehmer
- Seite neu laden: Drücken Sie F5 oder laden Sie die Meeting-Seite im Browser neu. Kurzzeitige Verbindungsunterbrechungen können sich so von selbst lösen.
- Anderen Browser oder Gerät verwenden: Testen Sie, ob der Fehler auf einem anderen Gerät oder in einem anderen Browser (z. B. Firefox statt Chrome) ebenfalls auftritt. Tritt er nur bei Ihnen auf, liegt das Problem möglicherweise an einer Browser-Erweiterung oder einer Firewall auf Ihrem Gerät.
- Netzwerkverbindung prüfen: Stellen Sie sicher, dass Ihre Internetverbindung stabil ist und keine ausgehenden WebSocket-Verbindungen (Port 443, WSS) blockiert werden – dies kann bei einigen Unternehmens- oder Schulfirewalls der Fall sein.
- Meeting-Veranstalter informieren: Tritt der Fehler bei mehreren Teilnehmern gleichzeitig auf, handelt es sich um ein serverseitiges Problem. Wenden Sie sich in diesem Fall an den Administrator Ihres BBB-Servers.
Für Administratoren
- Dienststatus prüfen: Überprüfen Sie, ob
bbb-webrtc-sfuläuft und ob Port 3008 erreichbar ist.
sudo bbb-conf --status
sudo systemctl status bbb-webrtc-sfu.service
sudo journalctl -u bbb-webrtc-sfu.service --no-pager | tail -50
ss -tlnp | grep 3008- Vollständige Diagnose ausführen: Das BBB-Diagnosetool gibt Hinweise auf häufige Fehlkonfigurationen, z. B. eine nicht gesetzte FreeSWITCH-SIP-IP.
sudo bbb-conf --check- SETSCHEDULER-Fehler in LXD/LXC beheben: Falls der Dienst in einem Container nicht startet, deaktivieren Sie die Echtzeit-Scheduling-Richtlinie.
mkdir -p /etc/systemd/system/bbb-webrtc-sfu.service.d
cat > /etc/systemd/system/bbb-webrtc-sfu.service.d/override.conf <<EOF
[Service]
CPUSchedulingPolicy=other
Nice=-10
EOF
systemctl daemon-reload
sudo bbb-conf --restart- Dateiberechtigungen korrigieren (BBB 2.5+): Falsche Eigentümer oder Zugriffsrechte auf
production.ymlverhindern das Einlesen der Konfiguration.
sudo chmod 755 /etc/bigbluebutton/bbb-webrtc-sfu
sudo chown bigbluebutton:root /etc/bigbluebutton/bbb-webrtc-sfu
sudo chmod 600 /etc/bigbluebutton/bbb-webrtc-sfu/production.yml
sudo chown bigbluebutton:root /etc/bigbluebutton/bbb-webrtc-sfu/production.yml
sudo systemctl restart bbb-webrtc-sfu- nginx-WebSocket-Proxy prüfen: Die Datei
/etc/bigbluebutton/nginx/bbb-webrtc-sfu.nginxmuss die folgenden Header enthalten.
location /bbb-webrtc-sfu {
proxy_pass http://127.0.0.1:3008;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header Origin https://$host;
}
sudo nginx -t && sudo systemctl reload nginx- NAT-Konfiguration (BBB 2.5+): Auf Servern hinter NAT muss die öffentliche IP-Adresse als
announcedIpeingetragen sein.
export SERVER_IPv4=$(dig +short myip.opendns.com @resolver1.opendns.com)
yq e -i '.mediasoup.webrtc.listenIps[0].ip = "0.0.0.0"' \
/etc/bigbluebutton/bbb-webrtc-sfu/production.yml
yq e -i ".mediasoup.webrtc.listenIps[0].announcedIp = \"$SERVER_IPv4\"" \
/etc/bigbluebutton/bbb-webrtc-sfu/production.yml
sudo bbb-conf --restartWeitere Informationen
Fehler 2000 unterscheidet sich von Fehler 2001: Bei 2000 kann der Browser keine WebSocket-Verbindung zum SFU-Dienst aufbauen (der Dienst ist unerreichbar). Bei 2001 ist die Verbindung zum SFU selbst erfolgreich, aber der dahinterliegende Medienserver (Kurento oder mediasoup) ist offline. Der verwandte Fehlercode 1001 beschreibt dagegen einen allgemeinen WebSocket-Verbindungsabbruch zur BBB-Anwendung.
Versionshinweise: In BBB 2.3–2.4 war Kurento der primäre Medienserver; ab BBB 2.5 ist mediasoup der Standard. Ab BBB 2.6 wurde CPUSchedulingPolicy=fifo eingeführt, was SETSCHEDULER-Fehler in Container-Umgebungen häufiger werden ließ. BBB 2.7 aktualisierte Node.js auf v18 – Versionskonflikte können ebenfalls zu einem Startfehler des Dienstes führen.
