Troubleshooting¶
Zugang zur FreeSwitch-Konsole¶
Passwort nicht aendern
Das ESL-Passwort voicebot2024 wird auch von der Platform API für die ESL-Verbindung genutzt. Eine Änderung muss an beiden Stellen gleichzeitig erfolgen.
Diagnose-Befehle¶
Gateway-Status pruefen¶
# Alle Gateways anzeigen
sofia status
# Erwartete Ausgabe:
# external-ipv4 sip:mod_sofia@46.4.96.105:5060 RUNNING (0)
# internal sip:mod_sofia@[::]:5060 RUNNING (0)
# Gateway-Details eines Profils
sofia status profile internal
# Registrierte Extensions
sofia status profile internal reg
| Status | Bedeutung |
|---|---|
REGED |
Gateway ist registriert (1&1) |
NOREG |
Kein Register nötig (Plusnet) — kein Fehler! |
FAIL_WAIT |
Registrierung fehlgeschlagen, wartet auf Retry |
TRYING |
Registrierung läuft |
SIP-Trace¶
# SIP-Trace einschalten (KURZZEITIG!)
sofia global siptrace on
# SIP-Trace ausschalten
sofia global siptrace off
SIP-Trace nur kurzzeitig
SIP-Trace erzeugt enorme Datenmengen im Log. Nur für gezielte Fehlersuche einschalten und sofort danach wieder deaktivieren. Bei Vergessen kann die Festplatte volllaufen.
Audio-Debug¶
# Audio-Debug fuer einen aktiven Call
uuid_debug_media <call-uuid> both on
# Aktive Calls anzeigen
show calls
show channels
Log-Analyse¶
# FreeSwitch-Logs im Container
docker logs voicebot-fs --tail 100 -f
# Platform API Logs (SIP-Modul)
docker logs xynap-platform-api --tail 100 -f | grep -i sip
# LiveKit-Logs
docker logs livekit --tail 100 -f
docker logs livekit-sip --tail 100 -f
docker logs livekit-agent --tail 100 -f
Haeufige Probleme¶
1&1: 503 Service Unavailable¶
Symptom: Gateway zeigt FAIL_WAIT, Registrierung schlägt mit 503 fehl.
Ursache: 1&1 blockiert Hetzner-IPv4-Adressen.
Lösung:
- Sicherstellen, dass der Trunk dem Profil
internalzugeordnet ist (Dual-Stack mit IPv6) ext-sip-ipundext-rtp-ipiminternal-Profil müssen auf2a01:4f8:140:829d::2stehen- Outbound-Proxy muss IPv6 sein:
[2001:8d8:104:100:212:227:124:129]
# Pruefen, ob IPv6 korrekt konfiguriert ist
sofia status profile internal
# ext-sip-ip muss 2a01:4f8:140:829d::2 zeigen
1&1: 401 Unauthorized (trotz korrekter Credentials)¶
Symptom: Registrierung schlägt fehl, obwohl Benutzername und Passwort stimmen.
Ursache: Falscher Realm konfiguriert.
Lösung: Der Realm muss sip.1und1.de sein, nicht 1und1.de.
Plusnet: 408 Request Timeout¶
Symptom: Ausgehende Calls zu Plusnet brechen mit Timeout ab.
Ursache: DNS Round-Robin — INVITE und ACK landen bei verschiedenen Servern.
Lösung: Outbound-Proxy 92.197.176.16 muss gesetzt sein.
Eingehende Anrufe kommen nicht an (CallsIN = 0)¶
Symptom: Gateway zeigt REGED oder NOREG (Status OK), aber keine eingehenden Calls.
Checkliste:
-
UFW prüfen: Sind die Provider-IPs für Port 5060/udp freigeschaltet?
-
IPv6-Firewall prüfen (für 1&1):
-
FreeSwitch ACL prüfen: Ist die Provider-IP in der ACL
sip-gatewayseingetragen? -
SIP-Trace aktivieren und schauen, ob INVITEs überhaupt ankommen
Kein Audio (One-Way oder beidseitig)¶
Symptom: Call wird aufgebaut, aber kein Audio hörbar.
Ursache: Falsche ext-rtp-ip im Sofia-Profil.
Checkliste:
- ext-rtp-ip prüfen: Muss zur IP-Version des Providers passen
- Plusnet (IPv4):
ext-rtp-ip=46.4.96.105 -
1&1 (IPv6):
ext-rtp-ip=2a01:4f8:140:829d::2 -
RTP-Ports offen?
-
Audio-Debug aktivieren:
Falls keine RTP-Pakete sichtbar → Firewall-Problem. Falls RTP-Pakete ankommen aber kein Audio → Codec-Mismatch.
WebRTC: Kein Verbindungsaufbau¶
Symptom: WebRTC-Softphone verbindet sich nicht oder REGISTER schlägt fehl.
Checkliste:
-
WSS-Port 7443 erreichbar?
-
TLS-Zertifikat gültig? WebRTC erfordert ein gültiges TLS-Zertifikat.
-
JsSIP Race Condition: WebSocket muss vollständig verbunden sein, bevor REGISTER gesendet wird. Browser-Konsole auf Fehler prüfen.
-
ICE Timeout: Falls ICE-Gathering fehlschlägt, liegt es meist an restriktiven Client-Firewalls.
Platform API: xml-curl liefert leere Antwort¶
Symptom: FreeSwitch kann keine Extensions/Gateways laden. Neue Trunks erscheinen nicht.
Checkliste:
-
API erreichbar?
-
API-Logs prüfen:
-
ESL-Verbindung aktiv? Die Platform API zeigt im Log, ob die ESL-Verbindung steht.
-
Manueller xml-curl Test:
LiveKit Agent antwortet nicht¶
Symptom: Call wird an *99 / LiveKit weitergeleitet, aber kein Agent nimmt teil.
Checkliste:
-
Agent-Container läuft?
-
Agent-Logs:
-
SIP-Bridge-Logs:
-
LiveKit-Room erstellt? Prüfen, ob der SIP-Call einen Room anlegt:
Neustart-Reihenfolge¶
Bei einem vollständigen Neustart des Telefonie-Stacks diese Reihenfolge einhalten:
# 1. Platform API (muss zuerst laufen fuer xml-curl)
sudo docker compose -f /etc/xynap/stack/docker-compose.yml restart xynap-platform-api
# 2. Warten bis API antwortet
sleep 10
curl -s http://127.0.0.1:8001/api/v1/health
# 3. FreeSwitch
sudo docker compose -f /usr/local/xynap/voicebot/docker-compose.yml restart voicebot-fs
# 4. LiveKit Stack
sudo docker compose -f /usr/local/xynap/voicebot/docker-compose.yml restart livekit livekit-sip livekit-agent
Reihenfolge beachten
FreeSwitch benötigt die Platform API beim Start für Gateway-Discovery. Startet FreeSwitch vor der API, werden keine Gateways geladen. In diesem Fall hilft ein sofia profile internal restart und sofia profile external-ipv4 restart in der fs_cli.
Quick-Reference: fs_cli Befehle¶
| Befehl | Beschreibung |
|---|---|
sofia status |
Alle Profile und Gateways anzeigen |
sofia status profile internal reg |
Registrierte Clients |
sofia profile internal restart |
Internal-Profil neu laden |
sofia profile external-ipv4 restart |
External-Profil neu laden |
sofia global siptrace on/off |
SIP-Trace ein-/ausschalten |
show calls |
Aktive Calls |
show channels |
Aktive Kanäle |
uuid_debug_media <uuid> both on |
Audio-Debug für einen Call |
reloadxml |
XML-Konfiguration neu laden |
reload mod_xml_curl |
xml-curl Modul neu laden |
originate sofia/internal/1000@sip.xynap.tech &echo |
Test-Call an Extension 1000 |