#!/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) # Handle zappseudo in the wrong place. [ -e /dev/zappseudo ] && [ ! -d /dev/zap -o ! -e /dev/zap/pseudo ] && mkdir -p /dev/zap && ln -s /dev/zappseudo /dev/zap/pseudo [ -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