luci/contrib/package/asterisk-xip/files/asterisk.init
2009-01-08 16:21:52 +00:00

125 lines
2.7 KiB
Bash
Executable file

#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=50
STOP=50
DEST=
OPTIONS=""
DEFAULT=$DEST/etc/default/asterisk
UCILIB=$DEST/usr/lib/asterisk/uci
EXTRAPARAM=$1
export EXTRA_COMMANDS="console check down"
export EXTRA_HELP="\
console Start asterisk console
check Test asterisk uci config
down Force asterisk to stop"
reboot_ata() {
cd /tmp
wget -q http://ata.lan/admin/reboot -O - >&- 2>&-
}
load_ucilib() . ${UCILIB}/asteriskuci
start_uci() {
load_ucilib
start_uci_asterisk $DEST
}
restart_uci() {
load_ucilib
restart_uci_asterisk $DEST
}
stop_uci() {
load_ucilib
stop_uci_asterisk $DEST
}
reload_uci() {
load_ucilib
reload_uci_asterisk "$DEST"
}
start() {
[ -f $DEFAULT ] && . $DEFAULT
case ${ENABLE_ASTERISK-no} in
uci) start_uci ;;
yes)
[ -d /var/run ] || mkdir -p /var/run
[ -d $DEST/var/log/asterisk ] || mkdir -p $DEST/var/log/asterisk
[ -d $DEST/var/spool/asterisk ] || mkdir -p $DEST/var/spool/asterisk
[ -d /var/spool/asterisk ] || mkdir -p /var/spool/asterisk
[ -h $DEST/usr/lib/asterisk/astdb ] || ln -sf /var/spool/asterisk/astdb $DEST/usr/lib/asterisk/astdb
$DEST/usr/sbin/asterisk $OPTIONS -f 2>&1 > $DEST/var/log/asterisk/asterisk_proc &
( sleep 5; reboot_ata ) &
;;
*) return 1 ;;
esac
}
stop() {
[ -f $DEFAULT ] && . $DEFAULT
case ${ENABLE_ASTERISK} in
uci) stop_uci ;;
*) [ -f /var/run/asterisk.pid ] && kill $(cat /var/run/asterisk.pid) 2>&- >&-
esac
}
console() {
[ -f $DEFAULT ] && . $DEFAULT
case ${ENABLE_ASTERISK} in
uci) $DEST/usr/sbin/asterisk $UCIOPTIONS -C /tmp/asterisk/asterisk.conf -r ;;
yes) $DEST/usr/sbin/asterisk $OPTIONS -r ;;
esac
}
check() {
load_ucilib
setup_asterisk "$DEST" test "$EXTRAPARAM"
}
reload() {
[ -f $DEFAULT ] && . $DEFAULT
case ${ENABLE_ASTERISK-no} in
uci) reload_uci ;;
yes) restart ;;
esac
}
restart() {
[ -f $DEFAULT ] && . $DEFAULT
case ${ENABLE_ASTERISK-no} in
uci) restart_uci ;;
yes)
if [ -r /var/run/asterisk.ctl ] ; then
if $DEST/usr/sbin/asterisk -r -x "restart gracefully" 2>&- >&- ; then
echo "Restarting when convenient"
return 0
fi
fi
stop
start
esac
}
down() {
if [ -r /var/run/asterisk.ctl ] ; then
[ -f $DEFAULT ] && . $DEFAULT
case ${ENABLE_ASTERISK} in
uci) $DEST/usr/sbin/asterisk -C /tmp/asterisk/asterisk.conf -r -x "stop now" 2>&- >&- ;;
*) $DEST/usr/sbin/asterisk $OPTIONS -r -x "stop now" 2>&- >&-
esac
[ -f /var/run/asterisk.pid ] && sleep 1
fi
[ -f /var/run/asterisk.pid ] && kill $(cat /var/run/asterisk.pid) 2>&- >&-
[ -f /var/run/asterisk.pid ] && sleep 2
[ -f /var/run/asterisk.pid ] && kill -9 $(cat /var/run/asterisk.pid) 2>&- >&-
}
# vim:ts=2 sw=2