[Gelöst] Invite retransmission timeout inbound

basiaf

Neuer User
Mitglied seit
12 Sep 2006
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Ich habe seit kurzem wieder eine asterisk installation im Regelbetrieb, bzw. versuche dies. Dazu habe ich meine alte funktionierende Konfiguration (Asterisk 1.2) auf den aktuellen Stand gebracht, aber leider klappt es nicht ganz.
Folgende Schematik:

0.0.0.0 <-> border router <-> Asterisk (DMZ) [10.x.x.x]

Mit asterisk sind mehrere peers und ein registry verbunden, alle nicht im localnet.
Gespräche zwischen den peers funktionieren einwandfrei. Gespräche outbound vom peer über den registry laufen auch problemlos. Bei inbound Gesprächen bekomme ich jedoch den Fehler
Code:
[Jan 12 17:28:30] WARNING[24747]: chan_sip.c:4019 retrans_pkt: Retransmission timeout reached on transmission a7efb75_14adef959ee@sslsesm02 for seqno 32422 (Critical Response) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
Packet timed out after 6399ms with no response
[Jan 12 17:28:30] WARNING[24747]: chan_sip.c:4048 retrans_pkt: Hanging up call a7efb75_14adef959ee@sslsesm02 - no reply to our critical packet (see https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions).

im debug sehe ich
Code:
Retransmitting #6 (no NAT) to $REGISTRYIP:5060:
SIP/2.0 200 OK
Via: SIP/2.0/UDP $REGISTRYIP:5060;branch=z9hG4bKosm3l11068lg1t8ts190.1;received=$REGISTRYIP
From: <sip:$ANRUFERNR@$REGISTRY;user=phone>;tag=53876
To: "SIPLineUser SIPLineUser"<sip:$REG@$REGISTRYADDR>;tag=as2be90e9b
Call-ID: a7efb75_14adef959ee@sslsesm02
CSeq: 32422 INVITE
Server: Asterisk PBX 11.15.0
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Contact: <sip:$REGISTRYNR@$ASTERISKSERVERIP:5060>
Content-Type: application/sdp
Content-Length: 186

v=0
o=root 1579744090 1579744090 IN IP4 $ASTERISKSERVERIP
s=Asterisk PBX 11.15.0
c=IN IP4 $ASTERISKSERVERIP
t=0 0
m=audio 19170 RTP/AVP 8
a=rtpmap:8 PCMA/8000
a=ptime:20
a=sendrecv

Überprüft habe ich natürlich die üblichen Verdächtigen: externip bzw. externhost mit externrefresh, localnet, nat=auto_force_rport,auto_comedia, stunaddr, rtpstart/rtpend.
Registry ist derzeit unitymedia. Habe schon mit vielen Parametern getestet (z.B. nat=force_rport), aber bislang ohne Erfolg. Irgendwelche Ideen?
 
Zuletzt bearbeitet:
Macht der Router SIP_ALG ?
Impliziert DMZ, dass Port 5060 an den Asterisk weitergegeben wird ?
Ansonsten mal einen Pakettrace auf dem Router machen (wenn das INVITE rausgeht, mal prüfen, welche IPs da drin stecken und ob der Router eine Antwort bekommt, die dann allenfalls nicht geroutet wird.
 
Danke für die schnelle Antort :)
SIP_ALG liegt nicht vor und alle ports gehen an den asterisk.
Packet trace kann ich mit dem derzeitigen Router leider nicht einfach so machen, aber ein temporärer Tausch steht auf dem Plan, wenn sich sonst nicht noch eine Lösung findet.
 
localnet und externip bzw. externhost und externrefresh sind in der sip.conf gesetzt ? (Wahrscheinlich nicht, hätte ich merken können wegen

Contact: <sip:$REGISTRYNR@$ASTERISKSERVERIP:5060>

Du schickst, wenn Deine Ersetzungen korrekt sind, Deine interne IP nach außen, damit kann das Antwortpaket nicht den Weg zurück finden.
Schau Dir als die beschriebenen Parameter für sip.conf an, das sollte helfen ...
 
Nein, die interne IP wird nicht nach aussen geschickt, das wäre ein großes Alarmsignal für mich gewesen. Wie ich eingangs geschrieben hatte, die "naheliegenden" Einstellungen bzgl. Ports und IPs habe ich alle überprüft.
 
Das ist irgendwie etwas seltsam. Die Registrierung funktioniert wohl, immerhin bekommt Asterisk ein INVITE vom Provider, also muss dieser die öffentliche Adresse kennen. Entweder dank eigener NAT-Erkennung oder weil Asterisk sie tatsächlich korrekt angibt. Dann schickt Asterisk allerdings ein OK, wobei er von no-NAT ausgeht aber trotzdem im Contact die öffentliche Adresse angibt? Jedenfalls gehen dann offensichtlich alle weiteren Pakete vom Provider ins Nirvana, das heißt, der Provider geht ab hier plötzlich von einer anderen Adresse aus :gruebel:
Noch dazu wo alles andere funktioniert, obwohl "alle [Clients?] nicht im localnet".

Kannst Du vielleicht mal Deine sip.conf und ein komplettes SIP peer debug (sip set debug peer provider) eines ankommenden, sowie eines ausgehenden Anrufs posten? Dabei bitte die IP-Adressen so maskieren, dass man wirklich eindeutig erkennen kann, was zu welchem Netzwerk gehört (und die nonce verfremden!).
 
Nachdem ich behelfsmäßig eine alte Asterisk Version genommen habe, mit der alles funktionierte (1.6.2.9), habe ich heute nochmal ein Upgrade auf 11.16.0 gemacht. Gleiche Konfiguration (!) wie mit der Vorgängerversion, alles funktioniert. Im Changelog habe ich keinen sinnvollen Zusammenhang gesehen, aber zumindest kann ich das Thema nun abhaken und die komplizierte Isolation wegen bestehender Lücken in der alten Software kann gelockert werden...
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.