#!/bin/bash
#
# Startup script for Uniloader as Unitracker.
# - Generates events that Asterisk does not provide
#   natively and feeds them to QueueMetrics.
#
# chkconfig: 2345 85 15
# description: unitracker - Feed Asterisk events into QueueMetrics.
# config: /etc/sysconfig/unitracker
# pidfile: /var/run/unitracker.pid
#

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

# Custom configuration
if [ -f /etc/sysconfig/unitracker ]; then
        . /etc/sysconfig/unitracker
fi

# No need for an absolute path
loader=uniloader

logfile=${LOGFILE-/var/log/asterisk/unitracker.log}
lockfile=${LOCKFILE-/var/lock/subsys/unitracker}
pidfile=${PIDFILE-/var/run/unitracker.pid}


prog=$0
RETVAL=0

start() {
    echo -n $"Starting $prog: "
    export AMISECRET=${AMISECRET}
    nice $loader \
        track \
        --host="${AMIHOST}" \
        --port="${AMIPORT}" \
        --login="${AMIUSER}" \
        --debugfile="${DEBUGFILE}" \
        --pid="$pidfile" \
        --moh="${ENABLEMOH-0}" \
        --parkedcalls="${ENABLEPARK-0}" \
        --outboundcalls="${ENABLEOUTBOUND-0}" \
        --outboundthreshold="${OUTBOUNDTHRESHOLD}" \
        --rewriteuniqueids="${REWRITEUNIQUES-1}" \
        --hidden-channels="${HIDDEN_CHANNELS}" >>$logfile 2>&1 &

    echo_success
    echo
    touch ${lockfile}
    return 1
}

stop() {
    echo -n $"Stopping $prog: "
    kill $(cat ${pidfile}) 2> /var/null
    sleep 1
    RETVAL=$?
    echo_success
    echo
    if [ $RETVAL = 0 ]
    then
     rm -f ${lockfile} ${pidfile}
    fi
    return $RETVAL
}

status() {
        if [ ! -f ${pidfile} ]
        then
                echo "$prog is not running"
                RETVAL=3
        else
                echo "$prog is running..."
                RETVAL=0
        fi
        return $RETVAL
}

# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
        status
        ;;
    force-reload)
        stop
        start
        ;;
  *)
        echo $"Usage: $prog {start|stop|restart|status|force-reload}"
        exit 1
esac

exit $RETVAL
