[Gelöst] Fehler in der IP-Adresszuordnung, Ruf geht ins leere - Bitte um Hilfe

techblaster

Neuer User
Mitglied seit
25 Apr 2008
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
Hallöchen nochmal alle miteinander,
zu meiner Frage von vor 2 Tagen die ich erfolgreich selbst lösen konnte kommt nun ein richtig schweres Problem hintendran.
Es geht um folgendes: Ich habe einen VServer mit fester IP im Internet. Darauf läuft ein Debian Squeeze, hier habe ich Asterisk in der Version 2.x installiert. Dieser läuft mittlerweile auch recht passabel und ohne wirkliche Fehler bis auf einer und der ist folgenschwer...In der sip.conf habe ich insegsamt 3 Nebenstellen definiert, welche sich auf dem asterisk anmelden dürfen, 1 und 2 sind Softphones, Nr. 3 ist ein IP-Telefon hier zu Hause.
Alle 3 Nebenstellen sind also hier bei mir im heimischen Intranet angesiedelt. UDP Port 5060 und den eigens definierten RTP-Portbereich habe ich im Router bereits freigegeben. MIt den Softphones gibt es keine Verbindungsprobleme, aber bei dem IP-Telefon nutzt der Asterisk ständig die interne ip des Telefons um von extern eine Verbindung darauf aufzubauen. Die Folge ist, dass der Anruf auf dieses IP-Telefon nach ca. 5-10 Sekunden mit einem Fehler abgebrochen wird. Bei den Softphones funktioniert die Adressauflösung so wie sie soll, nämlich mit meiner externen IP meines Hausanschlusses gegen die IP meines VServers.

Nun meine Frage, wie kann ich Asterisk beibringen, daß er nicht meine interne Adresse des IP-Telefons (192.168.0.3) zur Kontaktaufnahme nutzen soll, sondern meine externe IP? Ich verstehe auch nicht so ganz, wie er überhaupt die interne Adresse bekommt, da der sämtliche Datenverkehr ja über die externe IP abgewickelt wird. Kann mir bitte jemand helfen? Solange ich das nicht hinbekomme kann das Telefon nur für Anrufe genutzt werden, nicht jedoch aber um Anrufe darauf entgegen zu nehmen.

Rufaufbau von Softphone 1 zu IP-Telefon 3 Auszug aus Sip-Debug:

Code:
<--- SIP read from UDP:178.25.36.XXX:5060 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 88.198.182.XXX:5060;branch=z9hG4bK0e7f9875;rport
From: "Yann-PC" <sip:[email protected]>;tag=as239fc7da
To: <sip:[email protected]>;tag=eead66cd72210b03
Call-ID: [email][email protected][/email]:5060
CSeq: 102 CANCEL
User-Agent: Grandstream HT286 1.0.7.19
Contact: <sip:[email protected]>
Allow: INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE
Supported: replaces
Content-Length: 0

<------------->


178.25.36.XXX: Ist meine gegenwärtige IP von meinem ISP zu Hause
88.198.182.XXX: Ist die fest zugewiesene IP meines Servers im Netz

Auszug aus der sip.conf:
Code:
[1]
type=friend
host=dynamic
secret=XXX
context=1
videosupport=yes

[2]
type=friend
host=dynamic
secret=XXX
context=2
videosupport=yes

[3]
type=friend
host=dynamic
secret=XXX
canreinvite=no
context=3
nat=yes


[general]
bindport = 5060
videosupport=yes
bindaddr = 0.0.0.0
context = error
qualify=no
disallow=all
allow=alaw
allow=ulaw
allow=g729
allow=gsm
allow=slinear
srvlookup=yes
allowguest=no
localnet=88.198.182.XXX/255.255.255.255
register => 250XXXX:[email protected]/2507XXX
 
Zuletzt bearbeitet:
Ich denke, der Fehler liegt in der Konfiguration des IP-Telefons. Möglicherweise ist dort kein STUN aktiviert.

Außerdem sollten alle SIP-Clients mit anderen SIP Ports arbeiten, sonst könnte es zu Problemen mit NAT kommen. Ich mache das immer so, dass die Clients intern mit Standardport arbeiten und nach extern auf verschiedene Ports geforwardet werden, z.B. 5062 -5063. Das erspart die problematische Freigabe des Ports 5060.

jo
 
Hallo rollo,

vielen Dank für Deine Antwort.

Deine Vermutung trifft zu, STUN ist am IP-Telefon nicht aktiviert. Würde ich dies einschalten wollen muss ich dort eine Adresse angeben, aber ich weiß gar nicht ob asterisk standardmässig mit STUN umgehen kann? Kann ich dort einfach nur die Server-IP eintragen?
Den SIP Port des IP-Telefons habe ich nun auf 5061 angehoben und in der Firewall einen Bereich freigegeben, so wie Du es vorgeschlagen hast. Ein weiterer Auszug aus der Asterisk-Konsole zeigt auch, dass der neue Port greift, jedoch die IP wieder falsch maskiert wurde...hmmm

Code:
--- (8 headers 0 lines) ---
Transmitting (NAT) to 178.25.36.XXX:5061:
ACK sip:[email protected]:5061 SIP/2.0
V
ia: SIP/2.0/UDP 88.198.182.XXX:5060;branch=z9hG4bK26bfa5d9;rport
Max-Forwards: 70
From: "Yann-PC" <sip:[email protected]>;tag=as73a266e5
To: <sip:[email protected]:5061>;tag=1c2e9191dc9c4391
Contact: <sip:[email protected]:5060>
Call-ID: [email][email protected][/email]:5060
CSeq: 102 ACK
User-Agent: Asterisk PBX 1.8.3.3
Content-Length: 0


---

Bitte um weitere Vorschläge und Anregungen.
 
Was hat der Asterisk mit dem IP-Telefon zu tun? Du kannst einen beliebigen STUN-Server eintragen, z.b. stun.sipgate.net mit dem Standarport 3478 (entgegen hier immer wieder aufgestellter Behauptungen).

jo
 
Also, ich habe den STUN Server eingetragen (siehe Anhang).
Leider führt auch das nicht zum gewünschen Erfolg, in der Asterisk Konsole kommt derselbe Verbindungsversuch wie weiter oben schon beschrieben wieder auf die interne Adresse. Nach den 5-10 Sekunden erfolglosem Verbindungsversuch folgt folgender Fehler:
Code:
[Jul 15 18:36:44] WARNING[7987]: chan_sip.c:3511 retrans_pkt: Retransmission timeout reached on transmission [email][email protected][/email]:5060 for seqno 102 (Critical Request) -- See doc/sip-retransmit.txt.
Packet timed out after 31999ms with no response

screenshot.png
 
Zuletzt bearbeitet:
Sehr seltsam, Reboot des GS hast du vermutlich gemacht, damit die Änderungen übernommen werden. Ich habe leider gerade kein GS Online um das gegenzuchecken, kann mich aber nicht an solche Probleme erinnern. Du könntest mal versuchsweise die aktuelle IP des Routers in das Feld "Use NAT IP" eintragen, evtl. geht es auch mit einem DynDNS-Namen.

jo
 
Ja, ich hab das Gerät nach jeder Einstellung einmal rebootet ;)
Also die Router-IP hab ich auch mal eingetragen half leider auch nicht. Interessanterweiese, wenn sich das IP-Telefon nach Reboot neu verbindet gibt es ein kurzes Zeitfenster, dann kann ich es auch über eins meiner Softphones erreichen. Keine 30 Sekunden später ist dann aber wieder Ende Gelände.
Was ich immer ncoh nicht verstehe, warum hat der Asterisk Server Kenntnis darüber unter welcher internen IP in meinem Heimnetz das IP-Telefon zu ereichen ist? Für ihn dürfte nur meine öffentliche IP wichtig sein, oder hab ich da einen Denkfehler?
 
naja, das Ip-Telefon registriert sich mit 3@interne-ip am Asterisk, auch wenn der Weg über die exteren IP geht, das ist genau das Problem. Irgendwo scheint noch ein Fehler in der Config des Telefons zu sein. Vielleicht findest Du im Grandstream Bereich was dazu.

jo
 
Also ich würde:
- localnet aus der sip.conf entfernen
- als bindaddr die korrekte IP-Adresse des Servers setzen
- die Portangabe beim STUN-Server weglassen (ich glaube beim HT386 gab das mal ein Problem)
- qualify setzen, damit es keep-alive Pakete gibt

Vielleicht hilfts. :noidea:

Mittels sip show peers kannst Du im CLI überprüfen, unter welcher Adresse Asterisk das Telefon zu wissen glaubt.
 
Hallo rentier-s,

vielen Dank für Deine Lösungsvorschläge. Ich habe diese, wie von Dir vorgeschlagen umgesetzt.
Leider besteht das Problem immer noch. Interessanterweise gibt es aber wiedersprüchliche Ausgaben auf der Konsole:

Auszug mittels Debug:

Code:
<--- SIP read from UDP:178.25.36.XXX:5061 --->
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 88.198.182.XXX:5060;branch=z9hG4bK35558bff;rport
From: "015737658XXX" <sip:[email protected]>;tag=as2c4ef92d
To: <sip:[email protected]:5061>;tag=04b8425c97bd9bab
Call-ID: [email][email protected][/email]:5060
CSeq: 102 INVITE
User-Agent: Grandstream HT286 1.0.7.19
Content-Length: 0

<------------->

Hier sieht man sehr schön, daß wieder einmal versucht wird, die interne Adresse von extern zu erreichen was natürlich ins leere schlägt.


Auszug aus "sip show peers":

Code:
Name/username              Host                                    Dyn Forcerport ACL Port     Status
1                          (Unspecified)                            D          0        UNKNOWN
2                          (Unspecified)                            D          0        UNKNOWN
3/3                        178.25.36.XXX                        D   N      5061     OK (35 ms)
sipgate-out/2507XXX     217.10.79.9                                  N      5060     OK (22 ms)
4 sip peers [Monitored: 2 online, 2 offline Unmonitored: 0 online, 0 offline]

Softphone 1 und 2 sind gegenwärtig offline, also stimmt die Anzeige hiermit überein. Nebenstelle 3 ist das IP-Telefon. Merkwürdigerweise zeigt er hier die korrekte Adressierung (öffentliche IP meines Heimanschlusses).
Warum sind die beiden Adressen denn unterschiedlich?? Ich verstehs nicht, man man man ^^
 
Hmmm...als ich heute nochmal einen Ruftest gestartet hatte ging es ganz plötzlich wie es soll...ich verstehe es nicht ganz, ich habe mich zwar natürlich an Eure Lösungsvorschläge gehalten, aber es hat eben nicht gleich sofort geklappt...wie von Geisterhand.
Soweit so gut, trotzdem natürlich vielen Dank! :)
 
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.