Asterisk hinter 2 Routern

Bauerhorst

Neuer User
Mitglied seit
4 Nov 2005
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen.

Ich wollte fragen, ob es möglich ist volgendes Scenario zu verwirklichen.

Asterisk läuft auf einem Rechner im lokalen Netz (192.168.0.9 - Adresse des Servers)
In diesem Netz sind einige Rechner und ISDN mir dem Asterisk verbunden. Außerdem ist mein Haus mit zwei Nachbarn über 100 MBit vernetzt.

Nun sollen sich auch Leute von außen auf dem Asterisk mit ihren Telefonen anmelden können. Dies funktioniert über eine DSL Leitung ohne Probleme (Portforwarding + Dyndns).
Da die Bandbreite meiner DSL Leitung (16 KB/s Upload) für mehrere Telefonate nicht ausreicht wollte ich die Leitung meines Nachbarn (32 KB/s Upload) mitbenutzen.

Nun zur Problematik:
Solange sich die Telefone über meinen Router (Router A) einwählen klappt alles wunderbar, wenn sie sich aber über Router B einwählen klappt es nicht mehr.
Dasselbe Problem hatten wir schon einmal, als wir das ganze mit einem Webserver versucht hatten. Beim Webserver war die Lösung, dass ich dem Server eine zweite IP Adresse zugewiesen habe (192.168.0.19 auf eth0:0) und beim Apache einen neuen Virtualhost eingerichtet habe, der auf dieser Adresse lauscht.
Ich weiß jedoch nicht, wieich etwas ähnliches mit dem Asterisk hinbekomme, da ich dort noch keine ähnliche Funktion gefunden habe.
 
welche clients melden sich den bei dir an, bzw mit welchem protokoll?

du kannst zb bei der SIP.conf einstallellen, auf welchen adressen der * Server lauschen soll. "bindaddr=0.0.0.0" heist, er soll auf allen IPs lauschen.
 
Zuletzt bearbeitet von einem Moderator:
Die Clients melden sich über SIP an.

bindadr=0.0.0.0 habe ich in der sip.conf stehen.

Meine Vermutung ist aber, dass der Asterisk - wie auch der Apache früher - nicht weiß, an welchen Router er die Pakete zurückschicken soll.
Zum Beispiel wenn sich ein Client an Router B anmelden will über routerb.dyndns.org . Dann leitet Router B die anfrage weiter an die IP 192.168.0.19 . Asterisk erhält die Anfrage und möchte sie beantworten, weiß aber nicht ob er sie Antwort an Router A oder Router B schicken soll, da sich kurz vorher ein anderer Cleint über routera.dyndns.org -> Router A -> 192.168.0.9 angemeldet hat. Da der erste Cleint bereits erfolgreich über Router A angemeldet ist sendet Asterisk die Antwort für den zweiten Cleint ebenfalls an Router A, was die Anmeldung durcheinanderbringt, da dieser sich über Router B anmeldet.

Bei dem Apache konnte ich das ganze über einen zusätzlichen VirtualHost lösen.

Würde es vielleicht funktionieren, wenn ich das bindadr=0.0.0.0 in general durch bindadr=192.168.0.9 und bindadr=192.168.0.19 bei den einzelnen Cleints in der sip.conf ersetze?
 
Interessantes Setup, ich glaube es gibt leider nichts ähnlich für den Asterisk wie deine Virtualhost Lösung vom Apache zumindest ist mir nichts bekannt.
Das heisst ja aber noch nichts. Vielleicht geht da was mit vorgelagertem Stunserver oder Sipproxy.:noidea:
 
Die zwei Adressen sollten schon in zwei verschiedenen Subnetzen sein, sonst klappt es nie mit dem Routing.

jo
 
Da stimme ich roolo voll und ganz zu. Das Problem wird sicher nicht bindaddr sein, mit 0.0.0.0 deckst du ja alle network interfaces ab.
Bei externip sieht es da schon schwieriger aus Asterisk müsste je nach dem ob der Anruf über Router A oder B reinkommt die passende externe IP setzen.
 
stinkstifel schrieb:
Bei externip sieht es da schon schwieriger aus Asterisk müsste je nach dem ob der Anruf über Router A oder B reinkommt ...

stimmt, das ist das Hauptproblem.

Entweder lässt man Asterisk zwei mal laufen oder man verzichtet mutig auf externip und localnet (soll ja meistens auch ohne gehen)
 
Wie wäre es wenn du 2 * Server einsetzt und sie mit iax verbindest, dann kannst du den einen für den einen Router nehmen und den anderen für den anderen. Im Dialplan kannst du ja einfach alle gespräche an deinen "primären" * server weiterleiten und dort entscheiden was du damit machen willst. dann brauchst du für den 2 * server nicht einmal teure hardware zb kannst du den auf nem Linksysrouter installieren (funktioniert wirklich), wenn du keine großartigen codeckonvertierungen machnen musst, müsste dessen CPU power auch dafür ausreichen. ansonsten halt n alter pentium1 oder so (son router wäre halt wegen stromverbrauch besser). Probier aber vorher noch ob du die router die du gerade einsetzt nicht doch mit 2 verschiedenen subnetzen konfigurieren kannst, und es dann vielleicht doch klappt.
 
Zuletzt bearbeitet von einem Moderator:
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.