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

Asterisk reload via cron

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von weistedv, 2 Feb. 2006.

  1. weistedv

    weistedv Neuer User

    Registriert seit:
    27 Apr. 2005
    Beiträge:
    44
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    da immer wieder unsere Verbindung zu Nikotel einschläft und immer nach einem Reload wieder funzt dacht ich mir, ich mach mal nen cron job, der das für mich macht:

    */15 * * * * asterisk -rx reload > /dev/null 2>&1

    Nun wird der Job auch alle 15 mins ausgeführt. Aber ob sich asterisk nun neu lädt weiß ich nicht genau. In der Asterisk Console sehe ich nichts.

    In /var/log/messages steht:

    Feb 2 15:45:01 ast01 /usr/sbin/cron[9753]: (root) CMD (asterisk -rx reload > /dev/null 2>&1)

    Mach ich den reload in der Shell, so sehe ich auch was in der Asterisk Konsole.
    An was kann das liegen?!
     
  2. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    Ich würde anstatt so einem sinnlosen cronjob mal eher versuchen, den Asterisk so zu konfigurieren, daß die nikotel-Verbindung stabil läuft. Bei mir funktioniert die seit 1 1/2 Jahren problemlos - auch ohne einen viertelstündlichen reload. Und wenn schon, würde ich nicht den ganzen Asterisk neu laden, sondern nur den SIP channel.
     
  3. weistedv

    weistedv Neuer User

    Registriert seit:
    27 Apr. 2005
    Beiträge:
    44
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich würd gern eine stabile Nikotelanbindugn haben und es nihct über den Cronjob lösen. Ich find die Idee auch nicht besonders.

    Ich such mal die ganze Nikotel Config aus den Konfigurationsdateien zusammen.

    Nur mal kurz nochmal zum Problem. Wir telefonieren hier im Büro mit 4 Snom 360 zu Handynummern über Nikotel. Das funzt wunderbar.

    Dann haben wir vor einem halben Jahr einen Anlagenanschluss zu Nikotel portieren lassen. Also einen Nummernblock (21119-0 bis 21119-21). Wir sind über diese Nummern erreichbar. Nach einer gewissen zeit kann man eine dieser Nummern anrufen uns es passiert gar nichts. Der Anrufer bekommt kein Freizeichen oder irgendwas...einfach nichts...

    Setz ich ein reload ab funzt es wieder...manchmal 5 mins und manchmal auch eine halbe Stunde. Über diese Nummern kommen ca. 50-100 Telefonate am Tag.

    An der gleichen Anlage hängt übrigens noch ein T-COM ISDN Anschluss via Fritz C4. Die meisten Kunden nehmen dann diese Nummer und sagen uns, dass die Nummer mal wieder nicht erreichbar ist ... ;)

    Jedenfalls trag ich mal fix unserere Nikotel Config zusammen...
     
  4. weistedv

    weistedv Neuer User

    Registriert seit:
    27 Apr. 2005
    Beiträge:
    44
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Also hier meine sip.conf (Alles was mit Nikotel zu tun hat):

    Code:
    [general]
    language=de
    context=incoming                                                                                                                        ; Default context for incoming calls
    realm=ast01.domain.de                                                                                                     		   	    ; Realm for digest authentication
    port=5060                                                                                                                               ; UDP Port to bind to (SIP standard port is 5060)
    register=user:pass:@calamar0.nikotel.com/user
    
    
    
    [user]
    secret=pass
    username=user
    fromuser=user
    type=friend
    host=calamar0.nikotel.com
    canreinvite=yes
    nat=yes
    qualify=yes
    insecure=very
    promiscredir=yes        ; required to handle the Nikotel 302 redirect message
    context=incoming
    
    
    Und hier meine extensions.conf (Alles was mit Nikotel zu tun hat):

    Code:
    [general]
    static=yes
    writeprotect=no
    
    [globals]
    alle=SIP/211190&SIP/2111912&SIP/2111913&SIP/2111914&SIP/2111915&SIP/2111917
    
    [incoming]
    exten => 300050,1,Dial(${alle},60,Ttr)
    exten => 300111,1,Dial(${alle},60,Ttr)
    exten => 300112,1,Dial(${alle},60,Ttr)
    exten => 305648,1,Dial(${alle},60,Ttr)
    exten => 305691,1,wait(8)
    exten => 305691,2,Dial(SIP/2111920,60,Ttm)
    exten => 305691,3,Hangup
    
    exten => user,1,Macro(incomingnikotel,${alle})
    
    
    
    [telefon_outgoing]
    
    exten => _21119XX,1,Dial(SIP/${EXTEN})
    
    exten => 2111911,hint,SIP/2111911                                               ; Got SUBSCRIBE for extensions without hint - Fehlermeldung weg
    exten => 2111913,hint,SIP/2111913                                               ; Got SUBSCRIBE for extensions without hint - Fehlermeldung weg
    exten => 2111914,hint,SIP/2111914                                               ; Got SUBSCRIBE for extensions without hint - Fehlermeldung weg
    exten => 2111915,hint,SIP/2111915                                               ; Got SUBSCRIBE for extensions without hint - Fehlermeldung weg
    exten => 2111917,hint,SIP/2111917                                               ; Got SUBSCRIBE for extensions without hint - Fehlermeldung weg
    exten => 2111920,hint,SIP/2111920                                               ; Got SUBSCRIBE for extensions without hint - Fehlermeldung weg
    exten => 2111921,hint,SIP/2111921                                               ; Got SUBSCRIBE for extensions without hint - Fehlermeldung weg
    
    exten => _0800XXXX.,1,SetCallerID(300111)                                       ; Ausgehende MSN festlegen
    exten => _0800XXXX.,2,Dial(CAPI/contr1/${EXTEN},60,Ttr)                         ; 0800er Nummern
    
    exten => _01805XXX.,1,SetCallerID(300111)                                       ; Ausgehende MSN festlegen
    exten => _01805XXX.,2,Dial(CAPI/contr1/${EXTEN},60,Ttr)                         ; 01805er Servicenummern
    
    exten => _03381XXX.,1,SetCallerID(300111)                                       ; Ausgehende MSN festlegen
    exten => _03381XXX.,2,Dial(CAPI/contr1/${EXTEN:5},60,Ttr)                       ; Brandenburg mit Vorwahl
    
    exten => _[1-8]XX.,1,SetCallerID(300111)                                        ; Ausgehende MSN festlegen
    exten => _[1-8]XX.,2,Dial(CAPI/contr1/${EXTEN},60,Ttr)                          ; Brandenburg ohne Vorwahl
    
    exten => _033835XX.,1,SetCallerID(300111)                                       ; Ausgehende MSN festlegen
    exten => _033835XX.,2,Dial(CAPI/contr1/${EXTEN},60,Ttr)                         ; Golzow
    
    exten => _03382XXXX.,1,SetCallerID(300111)                                      ; Ausgehende MSN festlegen
    exten => _03382XXXX.,2,Dial(CAPI/contr1/${EXTEN},60,Ttr)                        ; Lehnin
    
    exten => _01[5-7].,1,Dial(SIP/49${EXTEN-1}@user,60,Ttr)                  	 	; Funknummer ueber Nikotel
    
    
    
    [default]
    
    [macro-incomingnikotel]
    exten => s,1,Set(LANGUAGE()=de)
    ;exten => s,2,Set(CallerID()=0${CALLERID:})                            			; So soll die neue Sysntax sein. Funktioniert aber nicht...
    exten => s,2,SetCallerID(0${CALLERID:2})                                		; Alte Syntax -> i.O.
    exten => s,3,Dial(${ARG1},60,Ttm)
    exten => s,4,Voicemail(u${ARG1})                                        		; AB anmachen (u = anavailable abspielen)
    exten => s,104,Voicemail(b${ARG1})                                      		; b = busy abspielen
    exten => s,5,HangUp
    
    
    Die Nummern 30* kommen über den ISDN Anschluss rein...

    Naja, hoffentlich ist das nen Fehler in der Config und nicht ein Fehler den keiner kennt und wo es die Kombination zwischen allem ist ;)
     
  5. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    Mehrere Leute haben vor langer Zeit mal mehrere Nächte damit zugebracht, eine funktionierende Lösung für nikotel auf Asterisk zu finden (einschließlich Asterisk-Entwickler selber) Das ist auch hier im Forum irgendwo nachzulesen.

    Herausgekommen ist folgende Lösung - die seitdem bei mir problemlos funktioniert:

    Code:
    register => <username>:<passwort>@calamar0.nikotel.com
    
    [63.214.186.6]
    type=peer
    username=<username>
    secret=<passwort>
    host=calamar0.nikotel.com
    fromuser=<username>
    fromdomain=nikotel.de
    context=<incoming_context>
    canreinvite=no
    insecure=very
    promiscredir=yes
    qualify=no
    
    Einer der wichtigsten Punkte war die Tatsache, daß als Contextname die IP zu verwenden ist. Auf diese Eigenart bin ich übrigens auch in meinem Asterisk-Einsteigerkurs hier im Forum in einem Extra-Beitrag speziell eingegangen.
     
  6. weistedv

    weistedv Neuer User

    Registriert seit:
    27 Apr. 2005
    Beiträge:
    44
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Moin moin,
    besten Dank ich werds mal versuchen ;)
     
  7. weistedv

    weistedv Neuer User

    Registriert seit:
    27 Apr. 2005
    Beiträge:
    44
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    leider

    bring leider kein Erfolg nach kuzer zeit ist die nikotel-nummer wieder nicht erreichbar bis ich reload eingebe dann geht es wieder nen paar minuten

    Rene
     
  8. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    Kann es sein, daß Dein Asterisk hinter einer Firewall steht, die die Verbindung zu nikotel einfach dichtmacht ? Wenn nämlich die Registrierung zu nikotel erstmal hergestellt ist und dann kein Anruf erfolgt, gibt es für ca 3700 Sekunden (also über eine Stunde) keinen Traffic zwischen Nikotel und Deinem Asterisk. Da machen viele SPI Firewalls den Port einfach wieder dicht und dann bist Du - logischerweise - von außen solange nicht mehr erreichbar, bis diese Zeit abgelaufen ist und der Asterisk die Registrierung erneuert.
     
  9. weistedv

    weistedv Neuer User

    Registriert seit:
    27 Apr. 2005
    Beiträge:
    44
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Holla,

    da wir eine VDSL Leitung mit 5 IP's haben, hab mir jetzt mal ein Snom 360 genommen und dem eine IP verpasst. Also ohne Lancom Firewall. Das funzt nun also.

    Ich hab das ganze auch mal im Lancom Forum gepostet. Mal schauen, was die sagen, was das sein kann. Es muss ja nun offensichtlich was mit dem SPI der Firewall zusammenhängen... hmmm :(
     
  10. andreas

    andreas Mitglied

    Registriert seit:
    29 März 2004
    Beiträge:
    485
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Gibt es irgend einen Grund, warum Du dem Asterisk nicht die öffentliche IP gegeben hast?
     
  11. weistedv

    weistedv Neuer User

    Registriert seit:
    27 Apr. 2005
    Beiträge:
    44
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    auf dem Asterisk läuft noch nen samba, mysql, apache für cti. wollte das nicht öffentlich hängen. dann hatte ich qos regeln im lancom definiert. die firewall auf dem asterisk server hatte ich deaktiviert. ich könnte ja nun eine 2te nic einbauen und dieser die externe ip geben. dann würde ich auf dem lokalen interface das standardgateway löschen und nur noch über die externe ip mit dem inet kommunizieren. muesste dann nur wieder die firewall auf dem externen interface aktivieren und sip durchlassen.

    das waer doch eine lösung, oder?!
     
  12. weistedv

    weistedv Neuer User

    Registriert seit:
    27 Apr. 2005
    Beiträge:
    44
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    wie ich sehe, hast du auch einen Lancom 1811. Hast du den Asterisk dahinter?!

    LG, René
     
  13. andreas

    andreas Mitglied

    Registriert seit:
    29 März 2004
    Beiträge:
    485
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Auch, ich habe einen Rechner in einem RZ und einen Asterisk hinter meinem Lancom an einer öffentlichen IP. Mehrere SIP-Telefone habe ich auch im Privaten Netz, hinter dem Lancom. Ich hab keinerlei Schwierigkeiten. Vielleicht solltest Du für den Anfang im Lancom mal den Port 5060 auf deinen Asterisk weiter leiten, ansonsten gib ihm halt den öffentliche IP, wenn Du die schon hast. Die Firewall im Lancom sollte reichen, einen Zugriff auf den SQL, Apache und was auch immer, wirksam zu verhindern.
     
  14. weistedv

    weistedv Neuer User

    Registriert seit:
    27 Apr. 2005
    Beiträge:
    44
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich hab UDP Port 5060 über inverses NAT auf meinen Asterisk geleitet.
    Ich kann auch die Firewall ganz aus machen...selbst das funzt nicht.
    Dann hab ich noch ne regel vom asterisk ins inet und zum asterisk ins inet mit allow-all gesetzt. Naja, das hat auch nichts gebracht.

    Hab mir heut Vormittag mal einen neuen Asterisk (1.2.4) aufgesetzt...das gleiche. Bin nun also entgültig am Punkt, dass es der Lancom ist.

    Wie macht man es nun am besten?!

    1. Den Asterisk in die DMZ legen?
    2. 2te NIC für öffentliche IP rein?
    3. Den Asterisk neben den Lancom? D.h. eigene IP-Tables FW?

    Ich bin also ganz frei, was den Ort angeht ;) Hab auch schon eine neue HFC Karte drin und mich damit abgefunden den neuen Server zu nehmen (Will dann auch gleich Sachen wie Realtime testen, deswegend ein neues System...).