#! /bin/sh
### BEGIN INIT INFO
# Provides:          reConServer
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: reConServer SIP Conferencing
# Description:       reConServer SIP conferencing server from the reSIProcate team
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=reConServer
DESC="SIP Conferencing"
DAEMON=/usr/sbin/$NAME
USER=recon
GROUP=recon
PIDFILE="/var/run/$NAME/$NAME.pid"
#PIDFILE="/var/run/${NAME}.pid"
PIDFILE_DIR=`dirname $PIDFILE`
LOG_DIR=/var/log/reConServer

KILL_SPEC=TERM/20/KILL/5

. /lib/lsb/init-functions

test -x $DAEMON || exit 1
umask 002

# Include defaults if available
if [ -f /etc/default/$NAME ] ; then
	. /etc/default/$NAME
fi

DAEMON_OPTS="/etc/reConServer/${NAME}.config --Daemonize=true --PidFile=${PIDFILE}"

if [ ! -d "$PIDFILE_DIR" ];then
	mkdir -p "$PIDFILE_DIR"
    chown $USER:$GROUP "$PIDFILE_DIR"
fi

if [ ! -d "$LOG_DIR" ];then
        mkdir -p "$LOG_DIR"
    chown $USER:$GROUP "$LOG_DIR"
fi

set -e

case "$1" in
  start)
	echo -n "Starting $DESC: "
	start-stop-daemon --start --quiet --user $USER --chuid $USER --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS 
	echo "$NAME."
	;;
  stop)
	echo -n "Stopping $DESC: "
	start-stop-daemon --stop --quiet --oknodo --user $USER --pidfile $PIDFILE --retry=${KILL_SPEC} --exec $DAEMON
	echo "$NAME."
	;;
  status)
	echo -n "Status $DESC: "
	PID=$(cat $PIDFILE)
	kill -0 $PID
	rc=$?
	# Check exit code
	if [ "$rc" -ne 0 ]
	then
		echo "$NAME is NOT running."
		exit 7
	else
		echo "$NAME is running with PID: $PID"
	fi
	;;
  restart|force-reload)
	echo -n "Restarting $DESC: "
	#start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
	$0 stop
	#start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS
	$0 start
	echo "$NAME."
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|status|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0
