2x Asterisk über IAX koppeln / dyn. IPs

Chrille26

Neuer User
Mitglied seit
23 Apr 2006
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Hallo,

nachdem mein erster Asterisk seit geraumer Zeit ganz ordentlich läuft, hapert es nun am nächsten Schritt: Der Verbindung von zwei Asterisk über IAX. Beide Asterisk hängen jeweils an einem DSL-Anschluss mit 24h-Zwangstrennung.

iax.conf Server 1:
Code:
[general]
;Asterisk1
bindport=4569
bindaddr=0.0.0.0
iaxcompat=yes
bandwidth=low
disallow=all
allow=gsm
allow=alaw
allow=ulaw
jitterbuffer=no
forcejitterbuffer=no
tos=lowdelay
autokill=yes

register => iax_standort1:[email protected]

[iax_standort2]
type=friend
secret=passwort
context=iaxbridge
callerid=98
host=dynamic
qualify=yes

iax.conf Server 2:
Code:
[general]
;Asterisk2
bindport=4569
bindaddr=0.0.0.0
iaxcompat=yes
bandwidth=low
disallow=all
allow=gsm
allow=alaw
allow=ulaw
jitterbuffer=no
forcejitterbuffer=no
tos=lowdelay
autokill=yes

register => iax_standort2:[email protected]

[iax_standort1]
type=friend
secret=passwort
context=iaxbridge
callerid=99
host=dynamic
qualify=yes

Starten beide Server funktioniert auch alles wunderbar. Erfolgt dann aber z. B. bei Server1 die Zwangstrennung mit neuer IP, dann kann sich Server2 nicht mehr an Server1 registrieren. Ein Reload auf Server2 behebt dann das Problem. Scheinbar kommt also an irgendeiner Stelle der IP-Wechsel von Server1 nicht richtig über. In der Folge funktionieren Anrufe zwischen den Servern auch nicht mehr, da ich im Dial-String den iax.conf-Eintrag
Code:
Dial(IAX2/iax_standort1
benutzt habe. Nach Änderung des Dial-String auf
Code:
Dial(IAX2/standort1:[email protected]
telefonieren die Server dann aber scheinbar trotz fehlerhafter Registrierung miteinander. Vielleicht hat hier jemand eine Idee?
- Ist die Verbindung, so wie ich sie konfiguriert habe, überhaupt sinnig?
- Kann ich auch einfach mit dem "langen" Dial-Befehl arbeiten? Oder hat das Nachteile?
- Wenn ich mit dem ausführlichen Dial-Befehl arbeite, kann ich dann diese ganzen Registrierungen lassen? Ich möchte ja nicht, dass die Server unnötig Traffic generieren? Wäre dann
Code:
host=standort1.dyndns.org
qualify=no
ein gangbarer Weg, damit die Server sich gar nicht mehr (außer bei Gesprächen ;-)) unterhalten?

Danke im Voraus!
 
Hallo,

überprüfe doch einfach immer mal wieder, ob die IPs noch stimmen:

Code:
#!/bin/bash

AKTUELL=`host adresse.dyndns.org | cut -f 3`
ALT=`cat /var/local/alte_ip`

if [ "$AKTUELL" != "$ALT" ]; then
        /usr/sbin/asterisk -r -x reload >/dev/null 2>/dev/null
        echo $AKTUELL >/var/local/alte_ip
fi

Also kannst Du immer, wenn sich die Adresse geändert hat, den Asterisken dazu bringen, seine Configs neu zu lesen und damit stimmt auch die IP.

Alternativ: Kopple die beiden Asterisken über OpenVPN. Ich mache das hier so und das klappt wunderbar, weil OpenVPN für die Erhaltung der Verbindung sorgt. Damit hat jeder Endpunkt eine feste IP und Asterisk ist zufrieden.

Hawedieehre.
Fant
 
Hallo Fant,

erstmal danke für dein Script. Das hätte ich warscheinlich auch mal gebraucht.
Habs dann aber doch über die VPN Lösung gemacht. War für mich auch das einzig
richtige da auch die inneren Postfixe miteinander über SMTP kommunizieren müssen
und ich nicht jedes einzelne Protokoll für sich verschlüsseln wollte. Weiteres
Schmankerln war das Natting Problem.

MfG
Kasoft
 
Sers Kasoft,

freut mich, daß ich helfen konnte. ;-)

Deiner Signatur entnehme ich, daß Du offenbar mehrere (VIELE...) Asterisken miteinander verbunden hast. Wie hast Du das Problem gelöst, daß aufgrund einer Fehlkonfiguration in einem Asterisken unter Umständen der falsche Server die gehende Verbindung aufbaut? Ich habe hier mit zwei und bald drei anderen Asterisken eine IAX-Verbindung über VPNs. Wenn da also einer murkst, dann könnte das Problem auftreten.

Ich habe jetzt wild mit Contexts jongliert, hast Du eine elegantere Möglichkeit?

Hawedieehre.
Fant
 
Kostenlos!

Statistik des Forums

Themen
248,887
Beiträge
2,303,971
Mitglieder
378,564
Neuestes Mitglied
warumdas