Bootscript für Asterisk

VOIPdani

Mitglied
Mitglied seit
8 Aug 2005
Beiträge
432
Punkte für Reaktionen
0
Punkte
0
Hi!

Damit sich mein * nach einem Stromausfall wieder von selbst hochfährt brauche ich wohl ein Bootscript. Ich habe eiche octoBRI von Junghanns im Einsatz und muss daher auch vorher die Kartentreiben laden. Zurzeit mache ich das so:

Ich wechsle ins Verzeichnis usr/src/bristuff-0.2.0-RC8o/qozap und führe dort
modprobe zaptel
insmod qozap.ko ports=124
ztcfg -vv
aus.

Danach starte ich meinen * über asterisk -vvvvvgcddd

Wie verpacke ich das ganze ich ein Script um die Treiber und * automatisch zu starten?

In welchem Verzeichnis muss ich dieses Bootscript abspeichern? Wie gesagt ich muss bevor ich modprobe ... ausführe ins Verzeichnis usr/src/bristuff-0.2.0-RC8o/qozap wechseln.

Gruß, Daniela
 
Bootskripte gehören idR nach /etc/init.d/
Dort sollte normalerweise auch ein skeleton-Skript rumliegen. Alternativ sollte es in Deinem Asterisk-Verzeichnis ein Verzeichnis "contrib" mit Unterverzeichnis "init.d" geben wo schon fertige Startskripte drin sind. Da kannst Du dann in dem mit "start" gekennzeichneten Abschnitt als erstes Deine Befehle reinschreiben. (Wobei Du wenn Du die Module wirklich korrekt installiert hast, das modprobe eigentlich aus jedem Verzeichnis ausführen können solltest).
Jedenfalls: das editierte init-skript gehört dann nach /etc/init.d.

Je nach verwendeter Linux-Distribution kannst Du dann entweder mit irgendwelchen tools (update-rc.d, yast, redhat-config-irgendwas) das ganze einrichten oder Du machst einfach einen link von rc2.d (und ggf. noch von rc5.d) nach ../init.d/asterisk, also:
cd /etc/rc2.d; ln -s ../init.d/asterisk S99asterisk

Das sollte dann tun.
 
Hallo VOIPdani

wenn du uns jetzt noch netterweise verrätst welches Betriebssytem du verwendest, kann man dir evtl. helfen.

Aber normalerweise schreibst ein script, und speicherst es in /etc/init.d/ ab und verlinkst es im jeweiligen Runlevelstartdings. Aber näheres gibts, wenn du näheres erzählst.

grüße
kperas
 
Ich verwende Suse Linux Professional 9.2 und bin ein ziemlicher newbie was Scripte angeht.
 
Gib mal bitte in der Shell "runlevel" ein und sag mir was deine Suse da hin schreibt.
 
N 5
 
Hallo, das solltest Du dir zwar eigentlich selber zammsuchen können, aber ich hab heute eine guten Tag. hier also das script zum laden der Treiber:

Code:
#! /bin/sh
cd usr/src/bristuff-0.2.0-RC8o/qozap
modprobe zaptel
insmod qozap.ko ports=124
ztcfg -vv

Un das script zum starten von Asterisk:

Code:
#! /bin/sh
asterisk -vvvvvgddd

Das "-c" beim * start lass weg und log dich dann mit asterisk -r auf die Console ein.

Die beiden Scripte speicherst Du in /etc/init.d und machst sie ausführbar mit "chmod +x <script>"
Dann gehts du nach /etc/init.d/rc5.d und legst einen link z.B. so an:
ln-s ../<script> S99zaptel ------wobei natürlich <script> dein script ist.

und natürlich das ganze noch fürn Asterisk: (auch in /etc/init.d/rc5.de)
ln -s ../<script>

Alles klar?

Grüße nach Österreich
kperas
 
Also bei mir sieht das so aus:

/etc/init.d/asterisk
Code:
#!/bin/sh
ASTERISK_BIN=/usr/sbin/safe_asterisk
PID_FILE=/var/run/asterisk/asterisk.pid
test -x $ASTERISK_BIN || { echo "$ASTERISK_BIN not installed";
   if [ "$1" = "stop" ]; then exit 0;
   else exit 5; fi; }

. /etc/rc.status
case "$1" in
    start)
        echo -n "Starting ASTERISK "
        modprobe zaptel && insmod /lib/modules/`uname -r`/misc/zaphfc.ko modes=1 && ztcfg -v
        export TERM="linux"
        sleep 2
        $ASTERISK_BIN
        rc_status -v
        ;;
    status)
        echo -n "checking status of ASTERISK daemon"
        checkproc -p ${PID_FILE} ${ASTERISK_BIN}
        rc_status -v
        ;;
    restart)
        $0 stop
        $0 start
        rc_status -v
        ;;
    stop)
        echo -n "Shutting down ASTERISK "
        $ASTERISK_BIN -rx 'stop now'
        sleep 2
        rmmod zaphfc
        rmmod zaptel
        rc_status -v
        ;;
    *)
        echo "Usage: $0 (start|stop|restart|status)"
        exit 1
        ;;
esac

Ich starte asterisk über safe_asterisk, die Module werden auch im script geladen, evtl. anpassen (bei mir nur eine HFC karte im NT modus).

in /usr/sbin/safe_asterisk kannst Du weitere Anpassungen vornehmen, z.b. Asterisk unter anderm User starten oder email für Meldungen angeben.

Über den Runleveleditor von Suse kannst Du einstellen, dass das das Script automatisch beim booten startet.
 
Danke für eure Hilfe!

Mein * startet sich jetzt von selbst beim Systemstart.
 
Wie hast Du es jetzt letztendlich gemacht?
 
So wie du es mir empfohlen hast.

Hallo, das solltest Du dir zwar eigentlich selber zammsuchen können, aber ich hab heute eine guten Tag. hier also das script zum laden der Treiber:


#! /bin/sh
cd usr/src/bristuff-0.2.0-RC8o/qozap
modprobe zaptel
insmod qozap.ko ports=124
ztcfg -vv


Un das script zum starten von Asterisk:

! /bin/sh
asterisk -vvvvvgddd


Das "-c" beim * start lass weg und log dich dann mit asterisk -r auf die Console ein.

Die beiden Scripte speicherst Du in /etc/init.d und machst sie ausführbar mit "chmod +x <script>"
Dann gehts du nach /etc/init.d/rc5.d und legst einen link z.B. so an:
ln-s ../<script> S99zaptel ------wobei natürlich <script> dein script ist.

und natürlich das ganze noch fürn Asterisk: (auch in /etc/init.d/rc5.de)
ln -s ../<script>

Danke
 
Da sich mein * oft erhängte starte ich es per:

#!/bin/sh
asterisk -rx 'stop now'
sleep 2
rmmod zaphfc
rmmod zaptel
killall -9 mpg123

modprobe zaptel
insmod /etc/asterisk/zaphfc.ko modes=1
ztcfg -v
sleep 2

asterisk

nächtlich neu
 
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.