Fehler 1012: ICE-Verbindung wurde unerwartet geschlossen

Fehler 1012 bedeutet, dass eine bestehende WebRTC-Audioverbindung in BigBlueButton unerwartet getrennt wurde. Anders als Fehler, die beim Verbindungsaufbau auftreten, war die Audioübertragung hier bereits aktiv – und ist dann mitten in der Konferenz abgebrochen.

Wie äußert sich der Fehler?

Sie nehmen erfolgreich an einer Konferenz teil und haben Audio aktiviert. Plötzlich erscheint im Audiodialog eine Fehlermeldung mit dem Code 1012 – ICE connection closed. Die Audioverbindung ist unterbrochen; Sie können weder hören noch sprechen. Der Fehler tritt also nicht beim Beitreten auf, sondern während einer laufenden Sitzung.

Mögliche Ursachen

WebRTC-Audiositzungen werden über das ICE-Protokoll (Interactive Connectivity Establishment) aufrechterhalten. Beide Seiten – Ihr Browser und der BBB-Server – senden regelmäßig kleine Prüfpakete, um zu bestätigen, dass der Verbindungsweg noch funktioniert. Bleiben diese Bestätigungen aus, schließt das System die Verbindung und meldet Fehler 1012. Häufige Auslöser sind:

  • NAT-Binding-Timeout: Viele Router und Firewalls verwerfen UDP-Verbindungseinträge nach 30 Sekunden bis 5 Minuten Inaktivität (z. B. wenn Sie stummgeschaltet sind). Danach erreichen die Prüfpakete den Server nicht mehr.
  • Netzwechsel während der Sitzung: Ein Wechsel von WLAN zu mobilem Internet oder das Verbinden/Trennen eines VPNs macht bestehende Verbindungswege ungültig.
  • Instabile Internetverbindung: Anhaltender Paketverlust verhindert, dass die regelmäßigen Prüfpakete (sog. ICE Consent Refreshes) den Server erreichen.
  • TURN-Server-Ausfall: Wenn Sie sich hinter einer restriktiven Firewall befinden und die Verbindung über einen TURN-Relay-Server läuft, führt ein Ausfall dieses Servers zum Verbindungsabbruch.
  • Serverprobleme: Ein Absturz oder Neustart von BBB-Diensten (FreeSWITCH, mediasoup) während der Sitzung beendet alle aktiven Audioverbindungen sofort.

Lösungen

Für Teilnehmer

  1. Audio erneut beitreten: Schließen Sie den Audiodialog und klicken Sie im Konferenzraum erneut auf „Audio beitreten”. In vielen Fällen baut sich die Verbindung problemlos neu auf.
  2. Seite neu laden: Drücken Sie F5 bzw. Cmd+R, um den Browser-Tab zu aktualisieren und alle Verbindungen neu aufzubauen.
  3. Netzwerkverbindung prüfen: Stellen Sie sicher, dass Ihre Internetverbindung stabil ist. Wechseln Sie wenn möglich von WLAN auf LAN oder umgekehrt.
  4. VPN deaktivieren: Ein aktives VPN kann Netzwechsel erzwingen oder UDP-Verbindungen blockieren. Deaktivieren Sie das VPN testweise und versuchen Sie es erneut.
  5. Anderen Browser testen: Probieren Sie einen anderen Browser (z. B. Firefox statt Chrome), da sich die WebRTC-Implementierungen unterscheiden und unterschiedlich mit Netzwerkunterbrechungen umgehen.
  6. Telefoneinwahl als Alternative: Falls Audio wiederholt abbricht, wählen Sie sich über die Telefoneinwahlnummer ein, sofern Ihr BBB-Administrator diese bereitstellt.

Für Administratoren

  1. TURN-Server mit TCP/443 einrichten: Eine TURN-Verbindung über TCP-Port 443 ist deutlich robuster gegenüber NAT-Timeouts als direkte UDP-Verbindungen, da TCP-Firewalls den Verbindungsstatus zuverlässiger verwalten. Konfigurieren Sie in /etc/bigbluebutton/turn-stun-servers.xml einen TURN-Eintrag mit transport=tcp.
  2. TURN-Allocation-Lifetime erhöhen: Setzen Sie in /etc/turnserver.conf den Wert max-allocate-lifetime auf mindestens 3600 Sekunden, damit TURN-Sitzungen nicht nach 10 Minuten ablaufen.
  3. TCP-ICE-Transport in mediasoup aktivieren (BBB 2.5+): Tragen Sie in /etc/bigbluebutton/bbb-webrtc-sfu/production.yml ein:
mediasoup:
  webrtc:
    enableUdp: true
    enableTcp: true
    preferUdp: true
  1. FreeSWITCH-Status prüfen: Häufige Abstürze von FreeSWITCH können wiederkehrende 1012-Fehler verursachen. Prüfen Sie den Dienststatus und die Logs:
sudo systemctl status freeswitch
sudo journalctl -u freeswitch --since "1 hour ago" | grep -i "crash\|segfault\|killed"
  1. mediasoup-Worker-Gesundheit überwachen: Prüfen Sie, ob mediasoup-Worker-Prozesse abstürzen:
sudo journalctl -u bbb-webrtc-sfu --since "1 hour ago" | grep -i "error\|crash\|worker"
  1. Nach Konfigurationsänderungen BBB neu starten:
sudo bbb-conf --restart

Weitere Informationen

Fehler 1012 ist Teil einer Gruppe von ICE-bezogenen Fehlercodes. Verwandte Fehler beim Verbindungsaufbau sind 1009 (ICE-Verbindung fehlgeschlagen), 1010 (ICE-Verbindung getrennt) und 1011 (ICE-Verbindungsaufbau abgebrochen). Der Hauptunterschied zu 1012: Jene Fehler treten auf, bevor Audio funktioniert; 1012 tritt auf, nachdem die Verbindung bereits stand.

Versionshinweis: Ab BBB 2.5 (mediasoup) lässt sich die Toleranzschwelle für Verbindungsabbrüche über den Parameter iceConsentTimeout in /etc/bigbluebutton/bbb-webrtc-sfu/production.yml anpassen. Ab BBB 2.6 wird coturn standardmäßig installiert, was NAT-Timeout-Probleme in den meisten Umgebungen deutlich reduziert.