Asterisk reload via cron

weistedv

Neuer User
Mitglied seit
27 Apr 2005
Beiträge
44
Punkte für Reaktionen
0
Punkte
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?!
 
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.
 
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...
 
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 ;)
 
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.
 
Moin moin,
besten Dank ich werds mal versuchen ;)
 
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
 
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.
 
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 :(
 
weistedv schrieb:
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.

Gibt es irgend einen Grund, warum Du dem Asterisk nicht die öffentliche IP gegeben hast?
 
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?!
 
andreas schrieb:
Gibt es irgend einen Grund, warum Du dem Asterisk nicht die öffentliche IP gegeben hast?

Hallo,

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

LG, René
 
weistedv schrieb:
Hallo,

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

LG, René

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.
 
andreas schrieb:
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.

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...).
 

Neueste Beiträge

Statistik des Forums

Themen
245,066
Beiträge
2,223,698
Mitglieder
371,882
Neuestes Mitglied
Filby
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.