Fehler 1008: Audio-Weiterleitung fehlgeschlagen

Fehler 1008 tritt auf, nachdem die WebRTC-Audioverbindung zu BigBlueButton erfolgreich aufgebaut und der Echo-Test bestanden wurde. In dem Moment, in dem das System den Anruf vom Echo-Test in den eigentlichen Konferenzraum weiterleiten soll, schlägt diese Übergabe fehl oder läuft in ein Timeout. Als Ergebnis bleibt der Teilnehmer ohne Audioverbindung zur Konferenz, obwohl der Echo-Test noch funktioniert hat.

Wie äußert sich der Fehler?

Direkt nach dem Echo-Test – also nachdem Sie auf „Ja, ich kann mich hören” geklickt haben – erscheint im Browser eine Fehlermeldung mit dem Code 1008. Die Audioverbindung zur Konferenz kommt nicht zustande, obwohl der Echo-Test selbst noch funktioniert hatte. Eine erneute Verbindung über die Audio-Schaltfläche ist in der Regel notwendig.

Mögliche Ursachen

  • FreeSWITCH nicht erreichbar oder abgestürzt: Der interne Telefonie-Dienst FreeSWITCH läuft nicht oder ist nicht über den zuständigen Steuerkanal (ESL, Port 8021) ansprechbar. BigBlueButton kann den Weiterleitungsbefehl dann nicht übermitteln.
  • Ungültige Voice-Bridge-Nummer: Bei Meetings, die über die BBB-API mit einem eigenen voiceBridge-Parameter angelegt wurden, muss diese Nummer genau fünfstellig sein. Ist das nicht der Fall, findet FreeSWITCH keinen passenden Dialplan-Eintrag und die Weiterleitung läuft in ein Timeout.
  • Race Condition (langsame Verbindung): Wenn der Teilnehmer auf „Ja” klickt, bevor die Verbindung im Echo-Test vollständig aufgebaut ist, versucht das System die Weiterleitung zu früh. Dieses Problem wurde in BBB 2.2 behoben, kann aber auf sehr langsamen Verbindungen noch vorkommen.
  • FreeSWITCH-Datenbankkorruption: Eine beschädigte interne SQLite-Datenbank von FreeSWITCH (dieselbe Ursache wie bei Fehler 1006) kann dazu führen, dass Anrufweiterleitungen nicht korrekt verarbeitet werden.
  • Container-Einschränkungen (SETSCHEDULER): In Docker- oder ähnlichen Container-Umgebungen können CPU-Scheduling-Restriktionen dazu führen, dass FreeSWITCH zwar gestartet ist, aber die Dialplan-Verarbeitung beeinträchtigt ist.

Lösungen

Für Teilnehmer

  1. Schließen Sie das Audio-Dialogfeld und klicken Sie erneut auf die Schaltfläche „Audio beitreten” in der Werkzeugleiste.
  2. Warten Sie beim Echo-Test, bis Sie Ihre eigene Stimme klar hören können, bevor Sie auf „Ja, ich kann mich hören” klicken. Klicken Sie nicht zu früh.
  3. Überprüfen Sie Ihre Internetverbindung. Eine instabile oder sehr langsame Verbindung erhöht die Wahrscheinlichkeit dieses Fehlers. Wechseln Sie gegebenenfalls in ein stabileres Netzwerk.
  4. Aktualisieren Sie die Seite (F5 bzw. Strg+R) und versuchen Sie es erneut.
  5. Tritt der Fehler dauerhaft auf, informieren Sie den Moderator oder den Systemadministrator, da die Ursache in diesem Fall auf der Serverseite liegt.

Für Administratoren

  1. Status von FreeSWITCH und ESL prüfen: Stellen Sie sicher, dass FreeSWITCH läuft und der Steuerkanal auf Port 8021 erreichbar ist:
    sudo systemctl status freeswitch
    sudo ss -tlnp | grep 8021
    Ist der Port nicht belegt, starten Sie den Dienst neu: sudo systemctl restart freeswitch
  2. Voice-Bridge-Nummer validieren: Falls Meetings über die BBB-API mit einem eigenen voiceBridge-Parameter erstellt werden, muss dieser Wert genau fünfstellig sein. Passen Sie Ihre API-Integration entsprechend an.
  3. FreeSWITCH-Datenbank auf Korruption prüfen: Durchsuchen Sie das FreeSWITCH-Log nach Datenbankfehlern:
    sudo grep -E "(SQL ERR|CORE_DB|unsupported file format)" /opt/freeswitch/var/log/freeswitch/freeswitch.log | tail -20
    Wenn Fehler gefunden werden, stoppen Sie FreeSWITCH, löschen Sie die Datenbankdateien und starten Sie den Dienst neu.
  4. Container-Scheduling korrigieren (falls zutreffend): Wenn BBB in einem Container betrieben wird, fügen Sie in der systemd-Unit von FreeSWITCH CPUSchedulingPolicy=other hinzu und laden Sie den Daemon neu.
  5. Akka-Apps-Log auf ESL-Verbindungsfehler prüfen:
    sudo journalctl -u bbb-apps-akka -n 100 | grep -i "freeswitch\|esl\|error"
    sudo journalctl -u bbb-fsesl-akka -n 100 | grep -i "error\|exception"
  6. Vollständigen Neustart und Systemcheck durchführen:
    sudo bbb-conf --clean
    sudo bbb-conf --check

Weitere Informationen

Fehler 1008 steht in engem Zusammenhang mit Fehler 1006 (FreeSWITCH-Registrierungsfehler), da beide häufig auf dieselben Serverprobleme – insbesondere einen nicht erreichbaren ESL-Kanal oder eine beschädigte Datenbank – zurückzuführen sind. Wenn Fehler 1008 zusammen mit Fehler 1006 auftritt, prüfen Sie zuerst den Gesamtzustand von FreeSWITCH.

Technische Details (für Fortgeschrittene)

Der BBB-Audiofluss sieht folgende Schritte vor: Der Browser baut eine WebRTC/SIP-Verbindung zu FreeSWITCH auf. FreeSWITCH leitet den Anruf zunächst in den Echo-Test-Dialplan. Nach Bestätigung durch den Teilnehmer sendet der BBB-HTML5-Client ein Signal an bbb-apps-akka, das FreeSWITCH über den ESL (Event Socket Layer, Port 8021) anweist, den Anruf auf die fünfstellige Voice-Bridge-Nummer des Meetings zu transferieren. Fehler 1008 tritt auf, wenn dieser Transfer-Befehl nicht ausgeführt werden kann oder ein Timeout erreicht wird. Vor BBB 2.2 wurde die Statusübermittlung per DTMF-Tönen durchgeführt, was bei Websocket-Reconnects zu FreeSWITCH-Abstürzen führen konnte. Ab BBB 2.2 erfolgt dies über interne Nachrichten (PR #8648), was die Häufigkeit von Fehler 1008 deutlich reduziert hat. Ab BBB 2.6 werden FreeSWITCH-Datenbanken im Arbeitsspeicher gehalten, wodurch datenbankbedingte 1008-Fehler weitgehend entfallen.