Asterisk hinter dyndns

joschi05fan

Neuer User
Mitglied seit
8 Feb 2006
Beiträge
73
Punkte für Reaktionen
0
Punkte
0
Hallo,

im Kurs ist ja die rede von einem vserver, der ja nun eine feste IP hat. Wenn ich aber einen Rechner habe, der keine feste IP hat, sondern über eine dyndns - adresse ansprechbar ist, muss ich dann meine sip wie folgt konfigurieren:

Code:
[general]
context=default
bindport=5060
binaddr=***.dyndns.org
srvlookup=yes

und wie muss ich die clients einstellen, die von extern auf den server zugreifen?

Als domain dann den dyndns namen?
 
Zuletzt bearbeitet:
nein, dann arbeitest Du mit externhost bzw externip (je nach Asterisk-Version) Schau mal auf www.voip-info.org da wird das gut erklärt.

Die Angabe der Domain bei den Clients ist übrigens überflüssig und kann problemlos weggelassen werden.
 
danke für den Tip

danke für den tip. hat leider nicht den gewünschten erfolg gebracht.
vielleicht hast du noch eine idee für folgendes problem:

ich habe einen asterisk server in einem heimnetzwerk, der mit einer dyndns adresse erreichbar ist.
man kann sich von extern per softphone mit dem asterisk verbinden, aber nicht mit einem hardphone.
das softphone und das hardphone sind im gleichen raum. das softphone ist am asterisk angemeldet das hardphone nicht.
btw: das softphone ist ein x-lite und das hardphone ein bt100
ich habe dann mal testweise bei dem hardphone ein qualify=yes in die sip.conf eingetragen, und unter sip show peers kommt dann diese meldung:
Code:
105/105                    (Unspecified)    D          0        Unmonitored
104/104                    192.168.1.19     D          5060     Unmonitored
103/103                    85.16.86.208     D   N      5060     UNKNOWN
102/102                    85.16.86.208     D   N      62136    Unmonitored
die ports sind in den routern alle freigegeben, so das es daran nicht liegen kann.
 
da sind doch 2 Geräte von extern angemeldet? 102 & 103
 
ja, die 102 ist das softphone, das ich erreichen kann, und die 103 das hardphone, das nicht erreichbar ist.
folgende fehlermeldung mit verbose 4 auf der cli
Code:
Jul 25 15:07:43 WARNING[6056]: cdr.c:443 ast_cdr_free: CDR on channel 'SIP/102-08191e88' not posted
Jul 25 15:07:43 WARNING[6056]: cdr.c:445 ast_cdr_free: CDR on channel 'SIP/102-08191e88' lacks end
    -- Executing Dial("SIP/102-08191e88", "SIP/103|55|tTo") in new stack
[COLOR="Red"]Jul 25 15:07:43 NOTICE[6056]: app_dial.c:1049 dial_exec_full: Unable to create channel of type 'SIP' (cause 3 - No route to destination)[/COLOR]
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing DeadAGI("SIP/102-08191e88", "call_log.agi|h") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/call_log.agi
+++++ CALL LOG HUNGUP: |1153832863.0|SIP/102-08191e88|h|2006-07-25 15:07:52|min: |
    -- AGI Script call_log.agi completed, returning 0
    -- Executing DeadAGI("SIP/102-08191e88", "VD_hangup.agi|PRI-----NODEBUG-----3-----CHANUNAVAIL----------") in new stack

die 103 kann auch extern telefonieren, aber nicht intern.
 
zeig mal den sip.conf Teil der 103 und einen Screenshot der Gerätekonfiguration
 
die sip.conf

Code:
[103]
disallow=all
allow=ulaw
allow=alaw
type=friend
username=103
secret=103
host=dynamic
defaultip=192.168.1.80
dualify=1000
mailbox=103
nat=yes
canreinvite=yes
tos=lowdelay

die konfiguration des phones sind angehängt.
 

Anhänge

  • Konfig_bt100.png
    Konfig_bt100.png
    175.6 KB · Aufrufe: 24
  • config_bt100_2.png
    config_bt100_2.png
    195 KB · Aufrufe: 12
  • config_bt100_3.png
    config_bt100_3.png
    162.3 KB · Aufrufe: 8
  • config_bt100_4.png
    config_bt100_4.png
    154.6 KB · Aufrufe: 7
nimm die "defaultip=" raus und setze "canreinvite=no"

Wo hast Du diesen Unfug her?

Und außerdem heißt es qualify und nicht dualify :wink:
 
es klappt

den unfug her :noidea:
aus einer beschreibung für einen dialer den wir einsetzen wollen.

aber nun klappt es :D

jetzt ist noch ein problem mit dem dialer, aber auch diese problem wird zu beheben sein.

Danke noch mal für deine Hilfe!
 
doch nicht

hallo,

zu früh gefreut....
aber ich habe nun noch ein Problem erkannt:
Der "entfernte" Rechner hat ab und an Probleme mit DSL Abstürzen, sprich die DSL Leitung ist plötzlich disconnectet. Nach jedem neuconnect bekommt er ja nun eine neue IP zugewiesen. Diese IP ist dann aber dem Asterisk nicht bekannt.
Gibt es nun eine Möglichkeit, das ich
a) dem Endgerät (entweder dem X-Lite oder dem Grandstream BT100) sage, es soll in bestimmten Abständen seine IP Adresse dem Asterisk mitteilen

oder

b) dem Asterisk sage, er soll für dieses Endgerät eine dyndns Adresse benutzen.
 
Das Engerät registriert sich beim Asterisk.
Wenn Du kein Lastproblem hast dann verkürze die Registrierungsdauer des Clients.
Bt101 hat default meine ich 1 h, nimm z.B. 2 min, dann ist Totzeit relativ kurz.
 
Problem peer "unreachable"

hallo,

ich habe das jetzt mal ausprobiert. das problem besteht leider weiterhin. ich habe dann mal spaßeshalber mein x-lite, das im gleichen netz wie der asterisk ist, so konfiguriert, das es über die dyndns - adresse auf den asterisk zugreifen soll, und dort habe ich das gleiche problem.
x-lite sagt mir, es ist "logged in" und ich kann auch raustelefonieren, aber ich kann das x-lite nicht erreichen.
 
joschi05fan schrieb:
das im gleichen netz wie der asterisk ist, so konfiguriert, das es über die dyndns - adresse auf den asterisk zugreifen soll, und dort habe ich das

Heißt das gleiches Subnet? Das ist sinnfrei da die WAN-IP des Asterisk zu nehmen.

Beschreibe doch mal verständlich Deine Konfiguration. z.B. so
Asterisik im LAN A - NAT-Router - Internet - NAT-Router - SIP-Client im LAN B

dann die entsprechende configs dazu.

Ansonsten bleibt es ein stochern im Nebel.
 
Meine Konfiguration

also, im groben sieht es so aus:

Asterisk im Lokalen Netz A, als DMZ Rechner im Router eingestellt und über eine dyndns adresse aus dem Internet zu erreichen.

Zwei Clients (ein X-Lite und ein Grandstream BT100) im Lokalen Netz B, hinter einer FritzBox

Die Clients sollen über die Dyndns Adresse Zugang zum Asterisk haben.

Zur Zeit sieht es so aus, das die Clients sich am Asterisk einloggen (zumindest deuten die Statusmeldungen daraufhin), Asterisk die Clients dann aber nicht erreichen kann.
Die Clients können raus telefonieren über den Asterisk, aber sich nicht intern anrufen, oder aber angerufen werden.

Meine Sip.conf
Code:
[general]
externhost=XXXXX.dyndns.org
externrefresh=300
localnet=192.168.1.0/255.255.255.0
context = default
srvlookup=yes
videosupport=yes
maxexpire=300

register => username:[email protected]

;----------------------------------------------------------------------------
; Nikotel
;----------------------------------------------------------------------------
[63.214.186.6]
type=peer
username=username
secret=password
host=calamar0.nikotel.com
fromuser=username
fromdomain=nikotel.de
context=from_nikotel
canreinvite=no
insecure=very
promiscredir=yes
qualify=no
disallow=all
allow=gsm

[102]
disallow=all
allow=ulaw
allow=alaw
type=friend
username=102
secret=102
host=dynamic
qualify=1000
mailbox=102
nat=yes
canreinvite=no
tos=lowdelay

[103]
disallow=all
allow=ulaw
allow=alaw
type=friend
username=103
secret=103
host=dynamic
qualify=1000
mailbox=103
nat=yes
canreinvite=no
tos=lowdelay

Brauchst du noch weitere conf dateien, damit sich der Nebel lichtet?
 
externhost, externrefresh ist falsch siehe Doko
externip=foo.dyndns.org
localnet=192.168.1.0/255.255.255.0
NAT=yes
Portforwarding am NAT Router zum Asterisk-Server für UDP/5060 und rtp-Ports aktiviert?

Bei den Clienst STUN aktiviert?
Da die Clients im LAN stehen müssen Sie sich mit ihrer WAN-IP beim Asterisk anmelden.

Welchen src-port benutzen die Clients, 5060 geht ja wohl nicht da die Fritzbox da lauert und die Pakete einkassiert?


Das ist sonst so OK, tos hat da nichts zu suchen, canreinvite ist egal wenn NAT=yes, qualify=yes ist wichtig.
[102]
disallow=all
allow=ulaw
allow=alaw
type=friend
username=102
secret=102
host=dynamic
qualify=1000
mailbox=102
nat=yes
 
wieso ist externhost und externrefresh falsch??
jetzt bin ich ein wenig verwirrt :noidea:
betateilchen schrieb:
nein, dann arbeitest Du mit externhost bzw externip (je nach Asterisk-Version) Schau mal auf www.voip-info.org da wird das gut erklärt.

an der fritzbox sind alle ports weitergeleitet.
da asterisk in der dmz steht, braucht doch hier kein portforwarding eingestellt sein, oder?
wo stelle ich den src port bei den clients ein? ich habe da keine einstellung gefunden.
nein, STUN ist nicht aktiviert. muss ich bei stun nicht zwingend einen stunserver angeben? welcher wäre das in meinem fall? die gleiche adresse wie der asterisk, oder kann ich im asterisk auch noch STUN aktivieren?
 
In der Doku (z.B. sip.conf) steht warum man externhost und externrefresh nicht nehmen sollte "Not recommended for production environments! Use externip instead"

Fritzbox, Portweiterleitung ist hier fehl am Platz.

Ich bin mir nicht sicher ob die Fritzbox (ich benutze sowas nicht) nicht alles mit 5060 wegfischt, deswegen der Vorschlag beim Client einen anderen SoucrePort einstellen.

Asterik, Hat Asterisk eine LAN IP und spricht er über einen NAT-Router mit dem Internet, dann müssen die Ports weitergeleitet werden.

Die Clients brauchen die WAN-IP des NAT-Routers. Entweder ist die statisch oder bei dynamisch geht z.B. ein STUN-Server um das rauszufinden. Nein, Asterisk ist kein STUN-Server
 
ja, da ich aber ja keine statische ip habe, und ich nicht jeden tag die sip.conf ändern möchte, habe ich halt externhost benutzt.
ja, asterisk hat eine lan ip, steht aber in der dmz des routers. müssen dann die port trotzdem weitergeleitet werden?
(auch mit der weiterleitung funzt das nicht)
wenn ich den clients die dyndns adresse des asterisk mitteile, dann sollte das doch klappen,denn auch hier ist es so, das ich nicht bei jedem ip wechsel das endgerät neu konfigurieren möchte. darum bin ich ja auch erst auf die id mit dyndns gekommen.
gibt es denn beliebige stun server, die man nutzen kann?
 
externhost hast Du benutzt weil Du die Doku nicht gelesen hast!

Klar, dynamische IP ist ein Elend
Asterisk, ja Protforwading für 5060 und die rtp Ports
Ergänzung: DMZ ist ein buzz Wort, ich weiß nicht was Dein Router daraus macht. Es ist auch fehlkonfiguriert, man leitet nur die Ports weiter die auf dem Rechner benötigt werden.

Der Client muss sich am Asterisk mit der WAN-IP seines Routers anmelden, NICHT mit der WAN-IP des Asterisk-Servers
Wie soll Asterisk sonst den Client erreichen, wenn er nicht die WAN-IP des Routers hat, wo der SIP-Client steht.

In fast allen Clients ist irgendein STUN eingetragen, einfach mal probieren oder googeln.

Sobald Du eine dynmaische IP hast brauchst Du Hilfsmittel um diese IP zu ermitteln.
dyndsn, STUN sind solche Möglichkeiten.
 
Zuletzt bearbeitet:
www.voip-wiki.org schrieb:
externip = IP_Address or a hostname : Address that we're going to put in SIP messages if we're behind a NAT. If a hostname is used as the value, then the IP address associated with the hostname is looked up only once during the reading of the sip.conf. If you want support for a hostname associated with a dynamic IP address, use externhost.
darum habe ich externhost benutzt, nur so ... aber lassen wir die diskusion, da es relativ unwichtig ist, ob ich die doko gelesen habe, oder aber voip-wiki.
das problem wird dadurch nicht behoben.
so sieht die ausgabe der cli aus, wenn ich sip show peers eingebe::
Code:
103/103                    85.16.86.2       D   N      5060     UNREACHABLE
102/102                    84.129.119.81    D   N      34959    UNREACHABLE
beide clients haben sich mit der ihrer wan ip angemeldet, aber wie du siehst, sagt asterisk "unreachable"
asterisk kann, so würde ich das jetzt interpretieren, nicht die wan ip auflösen, und dann den client finden.
 
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.