Telekom DeutschlandLAN IP Voice/Data: Aktives Gespräch bricht ab, wenn die 3CX nach SRV-Änderung den Registrar wechselt

GastSolutions

Customer
Mitglied seit
11. Mai 2020
Beiträge
10
Hallo zusammen,

ich hatte einen Gesprächsabbruch am Telekom-Anschluss und konnte ihn mitschneiden. Das Fehlerbild "Gespräch bricht bei Re-Registrierung ab" taucht hier schon öfter auf, z. B. in https://www.3cx.de/forum/threads/companyflex-re-registrierung-gespräche-brechen-ab.122349/ und im gesperrten US-Thread https://www.3cx.com/community/threads/131670/. Bei mir ist die Ursache aber eine andere als das dort diskutierte Timing des Expires.

Umgebung
  • 3CX v20 Update 9 (20.0.9.995), selbst gehostet unter Linux
  • Telekom DeutschlandLAN IP Voice/Data, zwei Trunks (je eine Rufnummer), integrierte Vorlage telekomcallandsurf.pv.xml
  • Transport TCP, Host tel.t-online.de (Auflösung per NAPTR/SRV)
  • Die 3CX hängt am zugehörigen Telekom-Internetanschluss, hinter NAT
  • Von der Telekom vergebenes Expires: 1620 s

Ablauf laut Mitschnitt (Zeiten relativ zum Mitschnittbeginn)
  1. Ein ausgehendes Gespräch läuft. Der Trunk ist über eine bestehende TCP-Verbindung am P-CSCF 217.0.148.6 registriert.
  2. 120,079 s: Der planmäßige Refresh (CSeq 4, Expires 1620) geht an 217.0.148.6 -> 200 OK. Der Refresh selbst ist also erfolgreich.
  3. Gleichzeitig löst die 3CX tel.t-online.de neu auf. Die _sip._tcp-SRV-Antwort enthält jetzt nur noch:
    Code:
    hmb026-l01-mav-pc-ra-001.edns.t-ipnet.de -> 217.0.130.69  (Prio 10)
    hno002-f01-mav-pc-rb-001.edns.t-ipnet.de -> 217.0.147.198 (Prio 20)
    nes008-f01-mav-pc-rb-001.edns.t-ipnet.de -> 217.0.147.6   (Prio 30)
    Der aktuelle Registrar 217.0.148.6 ist nicht mehr dabei.
  4. 120,163 s: Die 3CX setzt intern für den Trunk fail_code "forced unregister".
  5. 120,254 s: Die 3CX meldet die bestehende Registrierung bei 217.0.148.6 ab (Contact ...;expires=0). 401 stale nonce, Wiederholung, 200 OK um 120,482 s.
  6. 120,417 s: Parallel registriert sich die 3CX über eine neue TCP-Verbindung bei 217.0.130.69 (neue Call-ID und rinstance; Expires 500 -> 423 Min-Expires 1620 -> 401 -> 200 OK).
  7. 120,487 s, 5 ms nach bestätigter Abmeldung: Die Telekom schickt über die alte Verbindung ein BYE für das laufende Gespräch:
    Code:
    BYE sip:[email protected]:5065;transport=TCP SIP/2.0
    Reason: SIP;cause=504;text="CC_IMS_LOCAL_CLEAN_UP"
  8. Die 3CX bestätigt das BYE und legt intern auf. Im Anrufprotokoll steht, die Gegenstelle habe aufgelegt.

Das RTP lief bis zum BYE sauber in beide Richtungen. Netz und Audio hatten also keine Probleme. Ein zweites Gespräch zur selben Gegenstelle direkt danach lief über 217.0.130.69 problemlos.

Fazit
Das Gespräch geht nicht wegen einer fehlgeschlagenen oder verspäteten Registrierung verloren. Die 3CX meldet selbst die Registrierung ab, an der der aktive Dialog hängt, weil der Registrar nicht mehr in der aktuellen SRV-Liste steht. Das IMS der Telekom räumt dann alle Sessions dieser Registrierung ab, was IMS-konform ist. Eine Verkürzung des Re-Register-Intervalls hilft hier vermutlich nicht, sie würde die DNS-Neuauflösung nur häufiger auslösen.

Fragen
  1. Ist es so gewollt, dass die 3CX die bestehende Registrierung (expires=0) abmeldet, wenn der Registrar aus der SRV-Antwort verschwindet, auch wenn darüber Gespräche laufen?
  2. Lässt sich das ändern? Zum Beispiel neu registrieren, ohne die alte Registrierung abzumelden, oder den Wechsel erst nach Ende der aktiven Gespräche vornehmen?
  3. Gibt es dafür einen Parameter im Trunk bzw. in der Vorlage?

Einen festen Outbound-Proxy einzutragen halte ich nicht für eine Lösung, weil die Telekom ihre P-CSCFs rotiert.

Der bereinigte SIP-/DNS-Auszug (Trunk <-> Telekom, 119,9 - 121,0 s) hängt als Textdatei an.

Danke und Gruß
Andreas

Hinweis: Das im Feld "System" ausgewählte System ist nicht die betroffene Anlage.
 

Anhänge

Statistik des Forums

Themen
44.909
Beiträge
234.113
Mitglieder
78.581
Neuestes Mitglied
DevilOfHell