keine ankommenden anrufe mit sipnetworks

jam4ever

Neuer User
Mitglied seit
15 Okt 2006
Beiträge
118
Punkte für Reaktionen
0
Punkte
0
Hallo Zusammen!
Ich habe relativ großes Problem...
Ich bekomme zuhause an meiner Asterisk kaum eingehende Anrufe.
Die Signalisierung der Anrufe scheint gar nicht erst bei der
Asterisk anzukommen. (Habe mal tcpdump portrange 5000-20000 gemacht,
da sehe ich auch die registrierungen aber ich bekomme keine pakete, die auf nen Anruf hinweisen könnten.)
Hier mal ein Auszug aus der sip.conf:

Code:
[general]
context=eingehend
bindport=5060
bindaddr=0.0.0.0
language=de
srvlookup=yes
callingpres=prohib
localnet=192.168.1.0/255.255.255.0
#include <actip/actip>


register => xxxxxxxx:[email protected]/xxxxxxxxx


[xxxxxxxxxxxx]
type=peer
username=xxxxxxxxx
secret=xxxxxxxx
fromuser=xxxxxxxxxxxxxxxxx
host=siplogin.de
fromdomain=siplogin.de
insecure=very
canreinvite=no
nat=yes
disallow=all
allow=ulaw
allow=alaw

Am Ende sind natürlich auch noch ein paar Telefone.
Also raustelefonieren ist okay. Nur es kommen einfach keine
eingehenden Anrufe. In actip steht "externip=aktuelleip" drin, die
durch ein kleines Script jeweils aktualisiert wird.
Die Asterisk hängt hinter einem Router. Port 5060 wird auf die Anlage durchgeleitet.
System: Debian Etch 4.0, Asterisk 1.2.24 auf nem P4 2,4 Ghz, 512MB.
Normalerweise sollte doch was ankommen.
Oder sind die einstellungen nicht optimal? Habe auch schonmal mit nat=no
probiert, aber das half auch nicht.

Bin für alle Tipps dankbar.

j4r
 
Hallo jam4ever

Befasse mich auch gerade ein wenig mit solchen Problemchen.
Kann es sein, dass Gespräche nur dann rein kommen, nachdem du vor kurzem auch eines gemacht hast?

Hab da mal noch ein Text gefunden, hoffe es bringt dich vielleicht weiter.

Viel Glück

http://www.jochem.name/Asterisk-Mini-FAQ schrieb:
Das Telefon kann Asterisk anrufen, aber ich empfange keine eingehenden Gespräche
Das NAT-Gateway ist wie alte Verwandschaft, es ist sehr vergesslich. Nach einiger Zeit ist so die Beziehung zwischen Teilnehmer A und Teilnehmer B vergessen. Dadurch, wenn Teilnehmer B Teilnehmer A anrufen möchte, sucht das NAT-Gateway nach der IP-Adresse des Senders und kann diese zu keinem Gerät im eigenen Netz zuordnen. Es verwirft das Paket und vergisst, dass es jemals zu ihm gesandt wurde.

So funktionieren NAT-Gateways. Wenn die Kommunikation von innen nach aussen aufgebaut wurde, werden Antworten wieder zurück nach innen weitergereicht. Wenn aber jemand von aussen zu jemandem innerhalb Verbindung aufnehmen möchte, so wird dies nicht funktionieren.

Lösung: Die Türen offen lassen - NAT-keep-alive
Ein SIP-Endgerät registriert sich üblicherweise an einem SIP proxy. Diese Nachricht kommt von innerhalb des NATs zu einem Server ausserhalb. Somit gibt es eine offene Verbindung im NAT-Gateway. Sobald keine weiteren Pakete mehr über diese Verbindung versendet werden, schliesst das NAT-Gateway die Verbindung und vergisst alles darüber. Der Trick ist die Pakete in Bewegung zu halten und so das NAT-Gateway dazu zu zwingen, die Verbindung offen zu halten.

Einige Endgeräte senden NAT-"keep-alive"-Pakete von selbst. X-Lite und Sipura besitzen dieses Feature. Wenn das Endgerät dazu nicht in der Lage ist, kann man Asterisk dazu bringen, dies zu tun. Mittels "qualify=yes" im Eintrag für dieses Endgerät beginnt Asterisk Pakete zu diesem Teilnehmer zu senden und hät so die Verbindung offen. Man kann sogar das Timing für Pakete zwischen Asterisk und dem Teilnehmer sehen, wenn man "sip show peers" im CLI eingibt.

Wenn Asterisk nun diesen Teilneher anrufen möchte, empfängt das NAT-Gateway die Pakte und leitet sie zum Endgerät weiter.

Folgerung: Wenn Asterisk eine öffentliche IP-Adresse besitzt und sich das Endgerät hinter einem NAT-Gateway befindet, muss die NAT-Verbindung durch regelmässiges Senden von Dummy-Paketen zwischen den beiden Teilnehmern offen gehalten werden. So ist die Verbindung offen für eingehende Gespräche.
Quelle: http://www.jochem.name/Asterisk-Mini-FAQ

Greez Stäubel
 
Hallo!
Danke erstmal für die Infos, das war mir auch schon bekannt.
Habe das Problem auch gefunden.
Ich habe per script externip=... in der sip.conf gesetzt,
nach der aktuellen externen ip. Das script hatte leider einen
Fehler, der mir dummerweise nicht aufgefallen ist.
Falls das script jemand haben will, kann ichs auch noch hier posten,
aber ich finds relativ einfach.
 
Kostenlos!

Statistik des Forums

Themen
247,209
Beiträge
2,263,820
Mitglieder
375,703
Neuestes Mitglied
oliver76556