[Gelöst] Asterisk mit mehreren Netzwerk-Interfaces

ipho

Neuer User
Mitglied seit
9 Feb 2014
Beiträge
11
Punkte für Reaktionen
0
Punkte
0
Liebe Forengemeinde,

ich versuche seit einiger Zeit, einen Asterisk-Server aufzusetzen. Der Server hat drei Netzwerkschnittstellen:

eth0: Internetzugang, per DHCP über Speedport
eth1: Zugang für Endgeräte, feste IP 192.168.178.5/24
eth2: Zugang für Endgeräte, feste IP 192.168.180.5/24

Mittlerweile kann ich mit Geräten, die sich über eth1 verbinden, telefonieren. Geräte an eth2 können sich zwar registrieren und anrufen, aber man hört keinen Ton. Woran kann das liegen? Zuletzt habe ich mit PhonerLite getestet, denselben PC erst an das eine und dann an das andere Netzwerk angeschlossen.

sip.conf
Code:
[general]
transport=udp
port=5060
nat=yes
allowguest=no
alwaysauthreject=yes

register => [email protected]:[email protected]/sip-id1
register => [email protected]:[email protected]/sip-id2

[ext_in_sipgate]
type=friend
context=ctx_in_sipgate
host=proxy.live.sipgate.de

[ext_out_1]
type=friend
username=sip-id1
fromuser=sip-id1
fromdomain=sipgate.de
secret=pw
host=sipgate.de
nat=yes
insecure=invite
qualify=yes
dtmfmode=rfc2833
disallow=all
allow=ulaw,alaw
outboundproxy=proxy.live.sipgate.de

[ext_out_2]
type=friend
username=sip-id2
fromuser=sip-id2
fromdomain=sipgate.de
secret=pw
host=sipgate.de
nat=yes
insecure=invite
qualify=yes
dtmfmode=rfc2833
disallow=all
allow=ulaw,alaw
outboundproxy=proxy.live.sipgate.de

[100]
type=friend
secret=pw
host=dynamic
qualify=yes
context=ctx_1

[101]
type=friend
secret=pw
host=dynamic
qualify=yes
context=ctx_1

[200]
type=friend
secret=pw
host=dynamic
qualify=yes
context=ctx_2

extensions.conf
Code:
[ctx_in_sipgate]
exten => sip-id2,1,Dial(SIP/200)
exten => sip-id2,n,Hangup()

[ctx_1]
exten => _X.,1,Set(CALLERID(num)=sip-id1)
exten => _X.,n,Dial(SIP/${EXTEN}@ext_out_1)
exten => _X.,n,Hangup()

[ctx_2]
exten => _X.,1,Set(CALLERID(num)=sip-id2)
exten => _X.,n,Dial(SIP/${EXTEN}@ext_out_2)
exten => _X.,n,Hangup()

Ich habe auch schon versucht, in sip.conf bindaddr und bindport zu verwenden, allerdings wird die Einstellung ignoriert. Ich kann mich weiterhin auf allen Schnittstellen mit allen Benutzern anmelden, aber nur auf eth1 ist Ton zu hören.

Vielen Dank für eure Antworten.
 
Zuletzt bearbeitet:
Ich glaube, in sip.conf fehlen im global-Context die Angaben für "localnet" deiner Schnittstellen, also
Code:
localnet=192.168.178.0/24
localnet=192.168.180.0/24
 
Ich hab mir irgendwann mal angewöhnt (inspiriert durch einen Tip den ich irgendwo gefunden habe) generell alle privaten Netzwerke als localnet zu definieren:

localnet=192.168.0.0/255.255.0.0; All RFC 1918 addresses are local networks
localnet=10.0.0.0/255.0.0.0 ; Also RFC1918
localnet=172.16.0.0/12 ; Another RFC1918 with CIDR notation
localnet=169.254.0.0/255.255.0.0 ;Zero conf local network
 
Hallo,

erst mal vielen Dank für eure Antworten. Leider war das wohl zumindest nicht das einzige Problem... Ich habe die Config von robinsonR eingefügt, aber ohne Veränderungen. Auch bindaddr für die einzelnen Extensions brachte wieder nichts. Per deny=... habe ich es zumindest hinbekommen, dass sich die Extensions nur noch von einer Schnittstelle aus anmelden können. Aber das hat nichts mit diesem Problem zu tun.

Ein weiterer interessanter Aspekt ist mir aufgefallen: Im Netz 192.168.178.0/24 (eth1) läuft zur Zeit eine FritzBox, die ins Netz des Speedports NATted. Wenn ich diese FritzBox deaktiviere, höre ich auf beiden Schnittstellen nichts mehr. Dagegen höre ich auf beiden Schnittstellen Ton, wenn ich auch im Netz 192.168.180.0/24 einen NAT-Router ins Speedport-Netz aktiviere. Es sieht also so aus, als ob die Audiopakete (nicht die Registrierung, denn die geht auch ohne NAT) falsch adressiert werden und dann grundsätzlich über eth0 zum Asterisk kommen.

Meine Asterisk-Version ist 11.7.0. Weitere Vorschläge?
 
Im SIP Debug müsste zu sehen sein, dass Asterisk die Adresse des ersten Interface als RTP Adresse angibt. Wenn diese LAN seitig nicht irgendwie geroutet wird, laufen die Pakete vom Client zum Asterisk ins Leere.

Ich meine, dass das ein generelles Problem des chan_sip ist. Da müsste sich jemand mit C Kenntnissen mal den Code ansehen. :noidea:
 
Ich hab darüber nachgedacht und bin zu dem Schluss gekommen das dies eigentlich problemlos funktionieren sollte. Ich selbst mache so etwas ähnliches dauernd, und zwar dahingehend das ich an einem Netzwerkinterface ins LAN fahre wo sich auch die Telefone befinden und am andere Netzwerkinterface (verschiedene IP Netze) häng ich ein etwaiges Mediengateway. Das ist ja vom Aufbau her nicht komplett unähnlich und funktioniert auch problemlos.

Von daher bin ich geneigt zu glauben das die Audioprobleme durch Re-Invites entstehen. Versuche mal bei all Deinen SIP Peers (also sowohl Provider als auch Telefone) ein canreinvite=no (bzw. directmedia=no, ich merk mir auswendig nie für welche asterisk Version was gilt) hinzuzufügen.
 
Zuletzt bearbeitet:
Daran hab ich noch gar nicht gedacht, aber da könntest Du Recht haben. Für 11 sind es directmedia und directrtpsetup.
 
Hallo,

das wars. Vielen Dank für den Tipp! Ich wäre nie darauf gekommen, dass mein Asterisk sich einfach aus der Affäre zieht und die Endgeräte direkt miteinander verbinden will... das kann ja nicht klappen.
 
Wenn das Thema damit gelöst ist, könntest Du bitte den Thread-Titel um das entsprechende Prefix ergänzen. Dazu den 1. Beitrag bearbeiten, Erweitert.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,206
Beiträge
2,248,029
Mitglieder
373,770
Neuestes Mitglied
TomTom55
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.