Krise :( Asterisk hinter FW+NAT, Client @Home FW+NAT

Ulimuc

Neuer User
Mitglied seit
30 Okt 2004
Beiträge
31
Punkte für Reaktionen
0
Punkte
0
Hi,
wer kann mir BITTE BITTE weiterhelfen:
Also folgende Konfiguration:
1.) Netzwerk im Office, feste öffentliche IP-Adresse, Router+Firewall+Nat
Router IP: 192.168.11.100 (intern fest vergeben)
Asterisk IP: 192.168.11.200 (intern fest vergeben)
Es funktioniert alles intern, ich kann auch rausrufen per Nikotel, ISDN und angerufen werden.. alles wunderbar

2.) Netzwerk zu Hause
Dial-In (DSL), keine öffentliche IP,Router+Firewall+Nat
Router: 192.168.11.100
PC mit X-Lite: 192.168.11.25
Ich kann über Nikotel raustelefonieren, über Nikotel-Nummer angerufen werden. Ich kann mich NICHT in mein Asterisk mit fester IP einloggen. Wähle ich dann trotzdem kommt beim Asterisk(!) folgende Meldung:
Nov 20 09:00:07 WARNING[5126]: chan_sip.c:497 retrans_pkt: Maximum retries exceeded on call 4474DCA3-B460-4AE9-B4B1-3DCC4DBAC1D3@192.168.11.25 for seqno 8789 (Response)

Müsste da nicht meine öffentliche IP vom Dial-In stehen ?

Meine Sip.conf:
Code:
[88]
type = friend
username = 88
secret = 1234567890
host = dynamic
qualify = 1200
context = default
callerid = "88" = <88>
mailbox = 88
dtmfmode=rfc2833
nat = no

Wenn ich * neu starte und asterisk -r aufrufe kommt:

Nov 20 10:08:02 NOTICE[5126]: chan_sip.c:5887 sip_poke_noanswer: Peer '88' is now UNREACHABLE!
pbx*CLI> database show
/SIP/Registry/15 : 192.168.11.160:5060:1200:15
/SIP/Registry/88 : 62.245.162.206:5060:1200:88

Wie kann der 88'er noch in der Datenbank stehen, wenn er eine Zeile weiter oben nicht mehr erreichbar ist ?




Was muss ich tun ? Ich nehme an, dass alle Ports ok sind, sonst würde das mit Nikotel auch nicht gehen, oder liege ich da falsch ?

Gruss

Uli
 
Ich denke, das Hauptproblem ist, dass Du zu Hause und im Büro dasselbe Subnetz verwendest. Damit handelst Du Dir evtl. zusätzliche Probleme ein.

Bei NAT sollte das aber egal sein, du müsstest in der Friend Definition aber nat=yes setzen, damit der * die Antworten an die öffentliche IP schickt, statt an die interne.

jo
 
Hi,

ich habe das Subnetz zu Hause auf 192.168.0.x geändert... Einloggen geht nicht im Office

meine sip.conf

Code:
[general]
port = 5060
bindaddr = 192.168.11.200
externip = 82.xxx.xxx.xxx
context = default
tos = reliability
srvlookup = yes
insecure = very
nat = yes
maxexpirey = 1200
defaultexpirey = 20
register => XXXX:[email protected]/sssss
register => vvvvv:[email protected]/vvvvv
disallow = all
allow=ulaw
canreinvite=yes
nat=no
insecure = very
qualify=yes
language=de


[88]
type = friend
username = 88
secret = 012345678
host = dynamic
qualify = 1200
context = default
callerid = "88" = <88>
mailbox = 88
nat = yes

Danke für Hilfe

Uli
 
Hmm, sieht soweit gut aus. Was sagt denn "sip show peers" auf der * console?

Hast du die 88 in der extensions.conf definiert?

context = default macht manchmal undefinierbare Probleme, evtl mal gegen einen anderen existenten context austauschen.

Weiterhin könntest Du im X-Lite log auf Deiner Seite verfolgen, was mit den Paketen beim Verbindungsaufbau passiert.

Kannst du extensions im default context mit extension@ip anrufen? Das sollte auch ohne Anmeldung funktionieren. X-Lite muss dazu für IP Dialing konfiguriert werden.

jo
 
Hi,

hier die extension.conf

(Viel aus Cut & Paste aus anderen Beiträgen. funzt aber)
Code:
[general]
static = yes
writeprotect = no
nat = yes

[default]
include => vmailbox
include => notruf
include => parkedcalls
include => SAMSTAG|20:00-7:59|*|*|*
include => CAPIINCOME|8:00-19:59|mon-fri|*|*
include => Nikotel
include => CAPIOUT
include => incoming
include => 15
include => 16
include => 17
include => 18
include => 19
include => 88
[vmailbox]
;
; Mit 8000 kann man die Voicemailbox anrufen.
;
exten => 8000,1,VoicemailMain
exten => 8000,2,Goto(default,s,6)


[CAPICALL]
include => parkedcalls
;include => SAMSTAG|20:00-7:59|*|*|*
include => CAPIINCOME


;Incoming Calls über SIP(Nikotel)
[nikoin]
include => parkedcalls
;include => NIKOSAMSTAG|20:00-7:59|*|*|*
include => NIKOINCOME

;Incoming Calls über SIP(Nikotel)
[sipgatein]
include => parkedcalls

[Nikotel]
exten => _99.,1,Dial(SIP/${EXTEN:2}@NikotelAccount,60,Ttr)
exten => _99.,2,Hangup

[CAPIOUT]
exten => _0.,1,Dial,CAPI/@xxxxxxx:${EXTEN:1}
exten => _0.,2,Hangup

[notruf]
exten => _1XX.,1,Dial,CAPI/@xxxxxxx:${EXTEN}
exten => _1XX.,2,Hangup
exten => _1XX.,3,Dial,CAPI/@xxxxxxx:${EXTEN}
exten => _1XX.,4,Hangup

[SIPGATEINCOME]
exten => _.,1,Answer
exten => _.,2,System(echo "${DATETIME}: ${CALLERID} wollte was von dir." | mail -s EnglAnrufbenachrichtigung [email][email protected][/email] )
exten => _.,3,BackGround(englishwelcome)
exten => _.,4,Background(nobodythere)
include => nikoin
;exten => _.,4,Dial(SIP/15&SIP/16&SIP/17&SIP/18&SIP/19,20,Ttm)           ; 30 Sekunden maximal klingeln lassen
;exten => _.,5,Voicemail(u15)                ; Anrufbeantworter
;exten => _.,102,Voicemail(b15)
;exten => _.,110,Hangup


[NIKOINCOME]
exten => _.,1,Answer
exten => _.,2,System(echo "${DATETIME}: ${CALLERID} wollte was von dir." | mail -s Anrufbenachrichtigung [email][email protected][/email])
exten => _.,3,BackGround(hallo)
exten => _.,4,Dial(SIP/15&SIP/16&SIP/17&SIP/18&SIP/19,20,Ttm)           ; 30 Sekunden maximal klingeln lassen
exten => _.,5,Voicemail(u15)                ; Anrufbeantworter
exten => _.,102,Voicemail(b15)
exten => _.,110,Hangup
[NIKOSAMSTAG]
exten => _.,1,Answer
exten => _.,2,BackGround(ausserhalb)
exten => _.,3,Voicemail(u15)
exten => _.,102,Voicemail(b15)
exten => _.,110,Hangup

[CAPIINCOME]
exten => s,1,Answer
;exten => s,2,LookupCIDName
exten => s,2,System(echo "${DATETIME}: ${CALLERID} wollte was von dir." | mail -s Anrufbenachrichtigung [email][email protected][/email] )
exten => s,3,BackGround(hallo)
exten => s,4,Dial(SIP/15&SIP/16&SIP/17&SIP/18&SIP/19,20,Ttm)           ; 30 Sekunden maximal klingeln lassen
exten => s,5,Voicemail(u15)                ; Anrufbeantworter
exten => s,102,Voicemail(b15)
exten => s,110,Hangup
[SAMSTAG]
exten => s,1,Answer
exten => s,2,System(echo "${DATETIME}: ${CALLERID} wollte was von dir." | mail -s Anrufbenachrichtigung [email][email protected][/email] )
exten => s,3,BackGround(ausserhalb)
exten => s,4,Voicemail(u15)
exten => s,102,Voicemail(b15)
exten => s,110,Hangup

[macro-ruf];
;
; Standard Extension für einen Anrufbeantworter:
;   ${ARG1} - Teilnehmer
;
exten => s,1,Dial(SIP/${ARG1},20,Ttr)           ; 30 Sekunden maximal klingeln lassen
exten => s,2,Voicemail(u${ARG1})                ; Anrufbeantworter
exten => s,102,Voicemail(b${ARG1})              ; Wenn besetzt ist, schickt Asterisk eine Voicemailnachricht mit der Info das
esetzt ist.


[incoming]
exten => _.,1,Answer
include => vmailbox
exten => _XX,2,Macro(ruf,${EXTEN})
exten => _.,3,BackGround(dasat-hallo)
exten => i,1,Playback(invalid)
exten => t,1,Hangup

[15]
exten => _XX,2,Macro(ruf,${EXTEN})
[16]
exten => _XX,2,Macro(ruf,${EXTEN})
[17]
exten => _XX,2,Macro(ruf,${EXTEN})
[18]
exten => _XX,2,Macro(ruf,${EXTEN})
[19]
exten => _XX,2,Macro(ruf,${EXTEN})

[88]
exten => _XX,2,Macro(ruf,${EXTEN})


Braucht man unter general hier auch nat ?

Hier noch das Log von xlite

Code:
© 2004 Xten Networks, Inc. All rights reserved.
X-Lite release 1103m build stamp 14262
License key: 11904465ACFA4E9FBF922FDA80937465

Established SIP protocol listen on: 192.168.0.25:5060

Discovered Blocked Firewall

SIP: 192.168.0.25:5060
RTP: 192.168.0.25:8000
NAT: 82.135.3.76

PROXY#1: 82.xxx.xxx.xxx:5060


SEND TIME: 37753390
SEND >> 82.xxx.xxx.xxx:5060
REGISTER sip:82.xxx.xxx.xxx SIP/2.0
Via: SIP/2.0/UDP 82.135.3.76:5060;rport;branch=z9hG4bK8D8DF7D6D17941EA8F9F7143FC616EF9
From: 88 <sip:[email protected]>;tag=3979369643
To: 88 <sip:[email protected]>
Contact: "88" <sip:[email protected]:5060>
Call-ID: [email][email protected][/email]
CSeq: 44754 REGISTER
Expires: 1800
Max-Forwards: 70
User-Agent: X-Lite release 1103m
Content-Length: 0


SEND TIME: 37755140
SEND >> 82.xxx.xxx.xxx:5060
REGISTER sip:82.xxx.xxx.xxx SIP/2.0
Via: SIP/2.0/UDP 82.135.3.76:5060;rport;branch=z9hG4bK8D8DF7D6D17941EA8F9F7143FC616EF9
From: 88 <sip:[email protected]>;tag=3979369643
To: 88 <sip:[email protected]>
Contact: "88" <sip:[email protected]:5060>
Call-ID: [email][email protected][/email]
CSeq: 44754 REGISTER
Expires: 1800
Max-Forwards: 70
User-Agent: X-Lite release 1103m
Content-Length: 0


und ich kann mich nicht einloggen... Time Out oder auch gar nix.. im momemt ist das Stand der Dinge:

pbx*CLI> database show
/SIP/Registry/15 : 192.168.11.160:5060:1200:15
/SIP/Registry/88 : 82.135.3.76:5060:1200:88


pbx*CLI> sip show peers
Name/username Host Mask Port Status
88/88 82.135.3.76 (D) 255.255.255.255 5060 UNREACHABLE
19/18 (Unspecified) (D) 255.255.255.255 0 UNKNOWN
18/18 (Unspecified) (D) 255.255.255.255 0 UNKNOWN
17/17 (Unspecified) (D) 255.255.255.255 0 UNKNOWN
16/16 (Unspecified) (D) 255.255.255.255 0 UNKNOWN
15/15 192.168.11.160 (D) 255.255.255.255 5060 OK (4 ms)
SipgateAccount/ 217.10.79.219 255.255.255.255 5060 Unmonitored
NikotelAccount/ 63.214.186.6 255.255.255.255 5060 Unmonitored


Gruss

Uli
 
Hi, bei mir ist so ein ähnliches Problem.
Dial-In (DSL), keine öffentliche IP,Router+Firewall+Nat
und versuche mich dann mit X-Lite aus dem internet zu Verbinden.
Rufe ich dann vom X-Lite auf Asterisk (CAPI) Telefon klingel,
kann sogar annehmen, doch nach 2 Sekunden kommt eine Fehlermeldung:

Nov 20 09:00:07 WARNING[5126]: chan_sip.c:497 retrans_pkt: Maximum retries exceeded on call [email protected] for seqno 8789 (Response)

andersrum, wenn ich von ISDN auf X-Lite anrufe, baut er die Verbindung nicht ab, aber ich bekomme keine Sprachverbindung. kein Ton.
ich probier schon seit paar Tagen eine Lösung zu finden, aber giebt kaum infos zu diesem Problem.
nat hab ich auf yes gesetzt.

Log vom X-Lite:

SEND TIME: 13957980
SEND >> 217.235.236.xxx:5060 (name.dyndns.org)
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 192.168.1.xx:5060;branch=z9hG4bK50bbd7c5;received=217.235.236.xxx
(komisch das hier die interne IP steht!)
From: "asterisk" <sip:[email protected]>;tag=as2c75571c
To: <sip:217.233.107.xx>;tag=1162940891 (IP vom X-Lite Internet)
Contact: <sip:[email protected]:5060>
Call-ID: [email protected]
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY
CSeq: 102 OPTIONS
Server: X-Lite release 1103m
Content-Length: 0

auf jendefall bekomme ich kein Ton.

ich probier noch ein bisschen, wenn ichs hinbekomme meld ich mich.
gruß Robert

Nachtrag:
nat: This variable changes the behaviour of Asterisk for clients behind a firewall. This does not solve the problem if Asterisk is behind the firewall and the client on the outside.

hab gelesen, das es keine Lösung dafür giebt, außer man baut einen VPN Tunnel auf, durch den ich dann das Nat übergehen. :(
 
Ulimuc schrieb:
Hi,

ich habe das Subnetz zu Hause auf 192.168.0.x geändert... Einloggen geht nicht im Office

meine sip.conf

Code:
[general]
port = 5060
bindaddr = 192.168.11.200
externip = 82.xxx.xxx.xxx
context = default
tos = reliability
srvlookup = yes
insecure = very
nat = yes
maxexpirey = 1200
defaultexpirey = 20
register => XXXX:[email protected]/sssss
register => vvvvv:[email protected]/vvvvv
disallow = all
allow=ulaw
canreinvite=yes
nat=no
insecure = very
qualify=yes
language=de


[88]
type = friend
username = 88
secret = 012345678
host = dynamic
qualify = 1200
context = default
callerid = "88" = <88>
mailbox = 88
nat = yes

Danke für Hilfe

Uli

Du hast unter general einmal nat=yes und nat=no; entferne mal das nat=no!

bindaddr = heisst imho, dass asterisk an einen bestimmten NIC gebunden ist - quasi an diesem horcht (falls mehrere Adapter im * verbaut sind).
Du müsstest bindaddr = 0.0.0.0 setzen und externip = verwenden um * deine öffentliche IP mitzuteilen (per dyndns-service setzen da du von deinem provider eine dynamische IP zugewiesen bekommst).
Natürlich musst du auch darauf achten, dass sämtliche ports im router auf * geforwarded werden, sowohl der sip port als auch die ports aus der rtp.conf (alles udp)!

Mit canreinvit=yes sei bitte vorsichtig! Dies bedeutet, dass * nur vermittelt und die Kommunikation nicht über die ports aus der rtp.conf läuft sondern das lokale Endgerät "seine" ports für die Kommunikation verwendet die natürlich dann auch in der firewall und im router geforwarded werden müssen (nicht auf * sondern dann auf das Endgerät) - Folge ist sonst: du hörst nix!
Daher empfehle ich dir besser canreinvit auf 'no' zu setzen und alles den * machen zu lassen!
Diese hat auch den grossen Vorteil, dass du codecs verwenden kannst wie gsm die normalerweise nur * kann und die meisten Endgeräte nicht (* braucht dann halt zwei Kanäle - einen nach draussen z.B. mit gsm und intern z.b. ulaw).
 
hi,
hab die Lösung, bei mir zuminderstens. kann jetzt mit X-Lite raus rufen, und angerufen werden mit Ton!!!!

http://www.voip-info.org/wiki-Asterisk+How+to+connect+to+FWD

externip = xxx.xxx.xxx.xxx
localnet = 192.168.0.0
localmask = 255.255.255.0

wichtig!!!
bindaddr = 0.0.0.0

So gehts bei mir wunderbar. Testet doch mal bitte bei euch. gruß Robert!

Sorry Netview, wollt bloß nochmal deine Aussage bestätigen.
danke für den guten Tipp
 
Habe ich doch in meinem Beitrag so beschrieben -oder?
 
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.