.titleBar { margin-bottom: 5px!important; }

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

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von Ulimuc, 20 Nov. 2004.

  1. Ulimuc

    Ulimuc Neuer User

    Registriert seit:
    30 Okt. 2004
    Beiträge:
    31
    Zustimmungen:
    0
    Punkte für Erfolge:
    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
     
  2. rollo

    rollo IPPF-Promi

    Registriert seit:
    5 Juli 2004
    Beiträge:
    8,280
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    JO30SK
    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
     
  3. Ulimuc

    Ulimuc Neuer User

    Registriert seit:
    30 Okt. 2004
    Beiträge:
    31
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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:yyyy@calamar0.nikotel.com/sssss
    register => vvvvv:kkkkk@sipgate.co.uk/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
     
  4. rollo

    rollo IPPF-Promi

    Registriert seit:
    5 Juli 2004
    Beiträge:
    8,280
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    JO30SK
    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
     
  5. Ulimuc

    Ulimuc Neuer User

    Registriert seit:
    30 Okt. 2004
    Beiträge:
    31
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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]info@xxxx.cccc[/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]info@xxx.yyy[/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]info@xxx.yyy[/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]info@xxx.yyy[/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:88@82.xxx.xxx.xxx>;tag=3979369643
    To: 88 <sip:88@82.xxx.xxx.xxx>
    Contact: "88" <sip:88@82.135.3.76:5060>
    Call-ID: [email]1E26B67FDDD6437BB409457A40A714E7@82.xxx.xxx.xxx[/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:88@82.xxx.xxx.xxx>;tag=3979369643
    To: 88 <sip:88@82.xxx.xxx.xxx>
    Contact: "88" <sip:88@82.135.3.76:5060>
    Call-ID: [email]1E26B67FDDD6437BB409457A40A714E7@82.xxx.xxx.xxx[/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
     
  6. Dino75195

    Dino75195 Neuer User

    Registriert seit:
    3 Jan. 2005
    Beiträge:
    199
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    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 4474DCA3-B460-4AE9-B4B1-3DCC4DBAC1D3@192.168.1.xx 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:asterisk@192.168.1.xx>;tag=as2c75571c
    To: <sip:217.233.107.xx>;tag=1162940891 (IP vom X-Lite Internet)
    Contact: <sip:61@217.233.107.xx:5060>
    Call-ID: 1cbb7ec74763219c49623a48029efaa9@192.168.1.xx
    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. :(
     
  7. Netview

    Netview IPPF-Promi

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    3,366
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    Dipl.-Inf.
    Ort:
    Westerwald
    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).
     
  8. Dino75195

    Dino75195 Neuer User

    Registriert seit:
    3 Jan. 2005
    Beiträge:
    199
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    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
     
  9. Netview

    Netview IPPF-Promi

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    3,366
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    Dipl.-Inf.
    Ort:
    Westerwald
    Habe ich doch in meinem Beitrag so beschrieben -oder?