#!/bin/sh
# $Id: asterisk.init,v 1.2 2003/09/19 14:32:28 dude Exp $
#
# asterisk    This shell script takes care of starting and stopping Asterisk.
#
# chkconfig: 2345 40 60
# description: Asterisk PBX and telephony daemon.
# processname: asterisk
# pidfile: /var/run/asterisk/asterisk.pid

# Source function library.
. /etc/rc.d/init.d/functions

[ -f /etc/sysconfig/asterisk ] && . /etc/sysconfig/asterisk
[ -x /usr/sbin/asterisk ] || exit 0
[ -d /etc/asterisk ] || exit 0

RETVAL=0

prog="asterisk"

start() {
	ulimit -c unlimited
	ulimit -n 65535
	if [ "$ZTDUMMY" = "auto" -o -z "$ZTDUMMY" ]; then
		DUMMY_DRIVER="ztdummy"
		/sbin/rmmod ${DUMMY_DRIVER} > /dev/null 2>&1
		ZTDEV_SANGOMA_USB="`/sbin/lsusb -v | grep Sangoma`"
		if [ -n "$ZTDEV_SANGOMA_USB" ]; then
			DUMMY_DRIVER="wanpipe-voicetime"
		fi
		ZTDEV_SANGOMA="`/sbin/lspci | grep Sangoma`"
		ZTDEV_DIGIUM="`/sbin/lspci | grep -E '(Digium|Tiger Jet|Xilinx|Jens Scoenfeld)'`"
		if [ -n "$ZTDEV_SANGOMA" -o -n "$ZTDEV_DIGIUM" ]; then
			ZTDUMMY="true"
		else
			ZTDUMMY="false"
		fi
		if [ ! -e /proc/zaptel/1 ]; then
			ZTDUMMY="true"
		fi
	fi
	[ -n "$DUMMY_DRIVER" -a "$ZTDUMMY" != "false" ] && /sbin/modprobe $DUMMY_DRIVER
	chown asterisk:asterisk /dev/tty9 > /dev/null 2>&1
	chown -R asterisk:asterisk /dev/zap* > /dev/null 2>&1
	chown -R asterisk:asterisk /var/log/asterisk > /dev/null 2>&1
	chown -R asterisk:asterisk /var/log/astguiclient > /dev/null 2>&1
	[ -n "$ZTCFG" -a "$ZTCFG" != "false" ] && /usr/sbin/ztcfg > /dev/null 2>&1
	# Start daemons.
	echo -n $"Starting $prog: "
	daemon --user asterisk /usr/sbin/safe_asterisk
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/asterisk
	echo
	return $RETVAL
}

stop() {
	# Stop daemons.
	echo -n $"Shutting down $prog: "
	killproc asterisk
	RETVAL=$?
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/asterisk
	echo
	return $RETVAL
}

restart() {
	stop
	start
}

# See how we were called.
case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart)
	restart
	;;
  reload)
	[ -f /var/lock/subsys/asterisk ] && /usr/sbin/asterisk -rx "reload" || :
	;;
  extreload)
	[ -f /var/lock/subsys/asterisk ] && /usr/sbin/asterisk -rx "extensions reload" || :
	;;
  condrestart)
	[ -f /var/lock/subsys/asterisk ] && restart || :
	;;
  status)
	status asterisk
	;;
  *)
	echo "Usage: asterisk {start|stop|restart|condrestart|status}"
	exit 1
esac

exit $?
