#! /bin/sh
#
### BEGIN INIT INFO
# Provides:          iaxmodem
# Required-Start:    $syslog $local_fs $network
# Required-Stop:     $syslog $local_fs $network
# Should-Start:      asterisk
# Should-Stop:       asterisk
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Software modem with IAX2 connectivity
# Description:       Use this software modem with Asterisk or another
#                    IPBX with IAX2 connectivity to send and receive
#                    faxes over VoIP.
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/iaxmodem
NAME=iaxmodem
DESC=iaxmodem

test -x $DAEMON || exit 0

set -e

case "$1" in
  start)
	echo -n "Starting $DESC: "
	start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
		--exec $DAEMON
	echo "$NAME."
	;;
  stop)
	echo -n "Stopping $DESC: "
	start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/$NAME.pid \
		--exec $DAEMON
	echo "$NAME."
	;;
  reload)
	echo -n "Reloading $DESC: "
	if [ -e /var/run/$NAME.pid ]; then
	    kill -HUP $(cat /var/run/$NAME.pid)
	    echo "$NAME."
	else
	    echo "$NAME not running!"
	    exit 1
	fi
	;;
  restart|force-reload)
	echo -n "Restarting $DESC: "
	start-stop-daemon --stop --quiet --pidfile \
		/var/run/$NAME.pid --exec $DAEMON
	sleep 1
	start-stop-daemon --start --quiet --pidfile \
		/var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
	echo "$NAME."
	;;
  status)
	if [ -s /var/run/$NAME.pid ]; then
	    RUNNING=$(cat /var/run/$NAME.pid)
	    if [ -d /proc/$RUNNING ]; then
		if [ $(readlink /proc/$RUNNING/exe) = $DAEMON ]; then
		    echo "$NAME is running."
		    exit 0
		fi
	    fi

	    # No such PID, or executables don't match
	    echo "$NAME is not running, but pidfile existed."
	    rm /var/run/$NAME.pid
	    exit 1
	else
	    rm -f /var/run/$NAME.pid
	    echo "$NAME not running."
	    exit 1
	fi
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|restart|reload|force-reload|status}" >&2
	exit 1
	;;
esac

exit 0
