.titleBar { margin-bottom: 5px!important; }

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

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von ceicke, 27 Juli 2005.

  1. ceicke

    ceicke Neuer User

    Registriert seit:
    7 Juli 2005
    Beiträge:
    65
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    IT-Ingenieur
    Ort:
    Hamburg
    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:passwort@zeitgeist.homelinux.org
    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:passwort@zeitgeist.homelinux.org/${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:secret@mail.inmedias.it
    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:secret@mail.inmedias.it/${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
     
  2. Hupe

    Hupe Aktives Mitglied

    Registriert seit:
    8 Apr. 2004
    Beiträge:
    2,586
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  3. ceicke

    ceicke Neuer User

    Registriert seit:
    7 Juli 2005
    Beiträge:
    65
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    IT-Ingenieur
    Ort:
    Hamburg
    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 :-(
     
  4. Hupe

    Hupe Aktives Mitglied

    Registriert seit:
    8 Apr. 2004
    Beiträge:
    2,586
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  5. ceicke

    ceicke Neuer User

    Registriert seit:
    7 Juli 2005
    Beiträge:
    65
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    IT-Ingenieur
    Ort:
    Hamburg
    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?
     
  6. Hupe

    Hupe Aktives Mitglied

    Registriert seit:
    8 Apr. 2004
    Beiträge:
    2,586
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  7. ceicke

    ceicke Neuer User

    Registriert seit:
    7 Juli 2005
    Beiträge:
    65
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    IT-Ingenieur
    Ort:
    Hamburg
    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.
     
  8. ceicke

    ceicke Neuer User

    Registriert seit:
    7 Juli 2005
    Beiträge:
    65
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    IT-Ingenieur
    Ort:
    Hamburg
    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:
     
  9. Hupe

    Hupe Aktives Mitglied

    Registriert seit:
    8 Apr. 2004
    Beiträge:
    2,586
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.