#!/bin/bash
#
# Startup script for uniloader with Freeswitch.
# - Uploads data to a QueueMetrics or QueueMetrics-Live system.
#
# chkconfig: 2345 85 15
# description: uniloader-freeswitch - QueueMetrics Data Loader.
# processname: uniloader-freeswitch
# config: /etc/sysconfig/uniloader-freeswitch
# pidfile: /var/run/uniloader-freeswitch.pid
#

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

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

loader=uniloader

queuelog=${QUEUELOG-/var/log/asterisk/queue_log}
logfile=${LOGFILE-/var/log/asterisk/uniloader-freeswitch.log}
lockfile=${LOCKFILE-/var/lock/subsys/uniloader-freeswitch}
pidfile=${PIDFILE-/var/run/uniloader-freeswitch.pid}

prog=$0
RETVAL=0

start() {
    echo -n $"Starting $prog: "
    nice $loader fsw --host "$HOST" --port "$PORT" --queuelog "$QUEUELOG" --ps-uri "$URI" --ps-login "$FUSIONUSER" --pid "$pidfile" >>$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
