#!/bin/bash
#
# Startup script for OpenSER/SER mediaproxy.
#
# chkconfig: - 85 15
# description: OpenSER/SER mediaproxy.
#
# processname: mediaproxy
# pidfile: /var/run/mediaproxy.pid /var/run/proxydispatcher.pid
# config: /etc/mediaproxy.ini

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

mediaproxy=/usr/share/mediaproxy/mediaproxy.py
proxydispatcher=/usr/share/mediaproxy/proxydispatcher.py
prog=mediaproxy
mediaproxy_pidfile=/var/run/mediaproxy.pid
dispatcher_pidfile=/var/run/proxydispatcher.pid
RETVAL=0
PROXY_OPTIONS=""
DISPATCHER_OPTIONS=""

[ -f /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

start_mediaproxy() {
	echo -n $"Starting mediaproxy: "
	daemon --check mediaproxy $mediaproxy $PROXY_OPTIONS
	RETVAL=$?
	echo
	[ $RETVAL = 0 ] && touch /var/lock/subsys/mediaproxy
}
start_dispatcher() {
	echo -n $"Starting proxy dispatcher: "
	daemon --check proxydispatcher $proxydispatcher $DISPATCHER_OPTIONS
	RETVAL=$?
	echo
	[ $RETVAL = 0 ] && touch /var/lock/subsys/proxydispatcher
}

stop_mediaproxy() {
	if [ -f $mediaproxy_pidfile ]; then
		echo -n $"Stopping mediaproxy: "
		killproc mediaproxy -TERM
		RETVAL=$?
		echo
		[ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog $mediaproxy_pidfile
	else
		status mediaproxy
	fi
}

stop_dispatcher() {
	if [ -f $dispatcher_pidfile ]; then
		echo -n $"Stopping proxy dispatcher: "
		killproc proxydispatcher -TERM
		RETVAL=$?
		echo
		[ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog $dispatcher_pidfile
	else
		status proxydispatcher
	fi
}

# See how we were called.
case "$1" in
	start)
		start_mediaproxy
		start_dispatcher
		;;
	stop)
		stop_dispatcher
		stop_mediaproxy
		;;
	status)
		status mediaproxy
		status proxydispatcher
		;;
	restart)
		stop_dispatcher
		stop_mediaproxy
		start_mediaproxy
		start_dispatcher
		;;
	reload)
		stop_dispatcher 
		stop_mediaproxy 
		start_mediaproxy
		start_dispatcher
		;;
	condrestart)
		if [ -f $mediaproxy_pidfile ] ; then
			stop_mediaproxy
			start_mediaproxy
		fi
		if [ -f $dispatcher_pidfile ] ; then
			stop_dispatcher
			start_dispatcher
		fi
		;;
	*)
		echo $"Usage: $prog {start|stop|restart|condrestart|status|help}"
		exit 1
esac

exit $RETVAL
