Asterisk <--> IAX2 <--> Asterisk probleme

ceicke

Neuer User
Mitglied seit
7 Jul 2005
Beiträge
65
Punkte für Reaktionen
0
Punkte
0
Hallo!

Ich habe zwei Asterisk Server welche über IAX2 miteinander verbunden werden sollen. Einer (Asterisk1) sitzt hinter einem NAT, Asterisk2 sitzt auf dem Router. Beide sind über DSL angeschlossen und haben eine dynamische IP Adresse, welche aber über dyndns mit einem DNS Eintrag verknüpft sind.
Nun ist folgende Sache: Asterisk1 kann sich per IAX2 an Asterisk2 anmelden und auch erfolgreich über den telefonieren. Asterisk2 kann sich aber nicht an Asterisk1 anmelden. Jetzt mal ein paar Konfigurationsdateien:

iax.conf Asterisk1:
Code:
[general]
register => benutzername:[email protected]
disallow=all
allow=ulaw

[bla]
type=friend
secret=secret
context=local
host=dynamic

und in der extensions.conf auf Asterisk1:
Code:
[local]
exten => _9348.,1,NoOp(Call via zeitgeist.homelinux.org)
exten => _9348.,2,Dial(IAX2/benutzername:[email protected]/${EXTEN:4},30,r)
exten => _9348.,3,Congestion

Wenn ich auf Asterisk1 "iax2 show registry" eingebe:
Code:
pound*CLI> iax2 show registry
Host                  Username    Perceived             Refresh  State
80.171.18.160:4569    benutzername    62.109.80.42:1048          60  Registered

das sieht ja auch sehr gut aus und funktioniert wie gesagt auch sehr gut.

Auf Asterisk2 sieht die iax.conf so aus:
Code:
[general]
bindport=4569
language=de
bandwidth=high
register=bla:[email protected]
jitterbuffer=no
trunkfreq=20
tos=lowdelay

[benutzername]
type=friend
secret=passwort
host=dynamic
context=default

und die extensions.conf sagt:
Code:
[default]
exten => _46.,1,NoOp(call via inmedias)
exten => _46.,2,Dial(IAX2/bla:[email protected]/${EXTEN:2},30,r)
exten => _46.,3,Congestion

und wenn ich hier "iax2 show registry" eingebe bekomme ich:
Code:
gateway*CLI> iax2 show registry
Host                  Username    Perceived             Refresh  State
62.109.80.42:4569     bla      <Unregistered>             60  Request Sent

Wieso registriert sich der nicht? Mittlerweile habe ich auf Asterisk2 den UDP Port 4569 geöffnet und im Netzwerk wo Asterisk1 hinter der NAT Firewall steht den UDP Port 4569 auf Asterisk1 weitergeleitet, leider passiert nichts.
Wenn ich z.B. einen tcpdump mache und von Asterisk2 mit der 46 eine Extension auf Asterisk1 anrufen will, dann kommen auch gar keine Pakete an, umgekehrt aber ja, da geht ja auch wie gesagt alles. Sehe ich den Wald vor lauter Bäumen nicht mehr? Hab heute nacht schon von Asterisk Konfiguration geträumt weil mich das Problem seid gestern beschäftigt.
Eigentlich müßte ich doch gar keine Ports öffnen/forwarden wenn sich die beiden Server korrekt aneinander registrieren, ist das richtig?

Danke!
Christoph
 
Führt der Router eine vor Asterisk1 eine Logdatei? Du könntest ja mal da nachsehen, ob irgendetwas von Asterisk2 da am Router hängen bleibt.
 
leider nicht... über den router habe ich auch nicht wirklich Macht und es ist immer schlimm den Verantwortlichen für den Router irgendwas einstellen/nachgucken zu lassen :-(
 
Woher bist Du dir eigentlich so sicher, dass das Port auch wirklich geöffnet ist, wenn keine Pakete durch kommen? Hat einer deiner Asterisks vielleicht noch ne Firewall, die die Pakete blocken könnte? Es sieht ja wohl nicht danach aus, als wäre das ein Asterisk-Problem, wenn keine Pakete durchkommen.
 
Es sieht ja wohl nicht danach aus, als wäre das ein Asterisk-Problem, wenn keine Pakete durchkommen.

Ja, das überlege ich auch schon die ganze Zeit. Aber wie sieht es denn aus mit den Konfigurationen die ich gepostet habe? Machen die Sinn oder habe ich mir einen Schnitzer geleistet.
Wenn ich IAX2 aber richtig verstanden habe, dann müsste es doch aber auch ohne Port Forwarding, Ports öffnen funktionieren, oder? Dann müßte es doch auch klappen das einfach nur beide Asterisk Server hinter der NAT Firewall sind und dort gut leben können... oder?
 
Ja, ein Asterisk hinter NAT ist kein Problem, solange man sich nicht an diesem anmelden möchte. Wenn alle Pakete in der NAT-Firewall hänge bleiben hat es Asterisk aber ziemlcih schwer.
Wenn es nur um ein Paar leitungen geht, die du Verbinden willst, dann bräuchten sich die Asterisks auch nicht gegenseitig registrieren. Wenn einer das kann, dann reicht das absolut!
Aus sicht von Server 2 ist dann Server 1 ein ganz normaler Client (so wie z.B. diax), der Angerufen werden kann, und der auch selber anrufe machen kann (was ja schon funzt!). Du musst einfach nur die extensions.conf und die iax.conf nach diesem Konzept anpassen.
 
Du musst einfach nur die extensions.conf und die iax.conf nach diesem Konzept anpassen.

Also nehme ich bei Asterisk2 den register krams raus... und die extensions.conf bleibt doch wie gehabt auf beiden Dingern, damit ich auf Asterisk2 über die 46 über den Asterisk1 raustelefoniere.
 
moment, in der iax.conf von Asterisk2 steht ja nun type=peer, also werden von dort anrufe angenommen und darüber auch getätigt... wie sage ich denn das jetzt in der extensions.conf vno Asterisk2 das er über diese Verbindung einen Anruf raus schicken soll? :gruebel: :noidea:
 
Asterisk1 ist ja an Asterisk2 unter dem Namen "benutzername" registriert! Du kannst ihn also über:
DIAL(IAX2/benutzername,60,r)
anrufen. Du musst allerdings auf Server 2 den "type=friends" setzen, da über diesen Account ja in beide Richtungen telefoniert werden soll.
Auf Asterisk1 muss ebenfalls die iax.conf angepasst werden:
der abschnitt [bla] muss raus, da sich ja kein Server mehr daran registrieren will.

Dort muss ein Account mit dem namen "benutzername" angelegt werden. Der typ sollte "user" sein, da nur eingehende Anrufe behandelt werden müssen. Das Passwort sollte das selbe wie das in der register-Zeile sein. Eingehende Anrufe sollten dann in dem dort angegebenen Context behandelt werden.
Ich hoffe, dass es so funzt (wenn ich keinen Denkfehler produziert habe), da ich bisher nur IAX-Clients an einen Asterisk angemeldte habe und mich an IAXtel.
Der Dial-Befehl von Server1 auf Server2 bleibt ja. Wo er steht, ist dann ja eine Frage der Clients (bzw Telefone), die Du an die Asterisk anschliesst.
 
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.