#!/bin/bash
|
|
|
|
if [ -f /etc/default/freeswitch ]; then
|
|
. /etc/default/freeswitch
|
|
fi
|
|
|
|
if [ -f /etc/sysconfig/freeswitch ]; then
|
|
. /etc/sysconfig/freeswitch
|
|
fi
|
|
|
|
RETVAL=1
|
|
USER=${FS_USER:-freeswitch}
|
|
BIN_FILE=${FS_BIN:-/usr/bin/freeswitch}
|
|
PID_FILE=${FS_PID:-/var/run/freeswitch/kazoo-freeswitch.pid}
|
|
CFG_FILE=${FS_CONFIG:-/etc/kazoo/freeswitch}
|
|
export HOME=${FS_HOME:-/var/lib/kazoo-freeswitch}
|
|
|
|
if [ -z "${FREESWITCH_ARGS}" ]; then
|
|
FREESWITCH_ARGS="-nonat -conf ${CFG_FILE} -db /var/lib/kazoo-freeswitch/db -log /var/log/freeswitch -cache /var/lib/kazoo-freeswitch/cache -sounds /usr/share/kazoo-freeswitch/sounds -storage /var/lib/kazoo-freeswitch/storage"
|
|
fi
|
|
|
|
prepare() {
|
|
mkdir -p /var/log/freeswitch
|
|
chown -R ${USER} /var/log/freeswitch
|
|
mkdir -p /var/lib/kazoo-freeswitch/{db,cache,storage}
|
|
chown -R ${USER} /var/lib/kazoo-freeswitch
|
|
mkdir -p /usr/share/kazoo-freeswitch/sounds
|
|
chown -R ${USER} /usr/share/kazoo-freeswitch/sounds
|
|
mkdir -p /var/run/freeswitch
|
|
chown -R ${USER} /var/run/freeswitch
|
|
if [ -e ${PID_FILE} ]; then
|
|
rm -rf ${PID_FILE}
|
|
fi
|
|
RETVAL=$?
|
|
}
|
|
|
|
start() {
|
|
cd ${HOME}
|
|
|
|
if fs_cli -x 'status' > /dev/null 2>&1; then
|
|
echo "FreeSWITCH is already running!"
|
|
return
|
|
fi
|
|
|
|
/usr/bin/epmd -daemon
|
|
|
|
set -- ${BIN_FILE} ${FREESWITCH_ARGS} ${FREESWITCH_PARAMS} "$@"
|
|
if [ "$(whoami)" == "${USER}" ]; then
|
|
exec "$@"
|
|
else
|
|
exec sudo -u ${USER} "$@"
|
|
fi
|
|
RETVAL=$?
|
|
|
|
if [ ${RETVAL} -ne 0 ]; then
|
|
echo "Failed to start FreeSWITCH!"
|
|
RETVAL=1
|
|
fi
|
|
}
|
|
|
|
stop() {
|
|
cd ${HOME}
|
|
${BIN_FILE} -stop > /dev/null 2>&1
|
|
killproc freeswitch
|
|
RETVAL=$?
|
|
}
|
|
|
|
status() {
|
|
fs_cli -x 'status' && fs_cli -x 'erlang status'
|
|
RETVAL=$?
|
|
}
|
|
|
|
restart() {
|
|
stop
|
|
start
|
|
}
|
|
|
|
pause() {
|
|
fs_cli -x 'fsctl pause'
|
|
}
|
|
|
|
resume() {
|
|
fs_cli -x 'fsctl resume'
|
|
}
|
|
|
|
case "$1" in
|
|
prepare)
|
|
prepare
|
|
;;
|
|
background)
|
|
shift
|
|
start "-ncwait" $@
|
|
;;
|
|
start)
|
|
shift
|
|
start $@
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
status)
|
|
status
|
|
;;
|
|
restart)
|
|
restart
|
|
;;
|
|
pause)
|
|
pause
|
|
;;
|
|
resume)
|
|
resume
|
|
;;
|
|
*)
|
|
echo "Usage: freeswitch {prepare|start|background|stop|restart|status|pause|resume}"
|
|
;;
|
|
esac
|
|
|
|
exit ${RETVAL}
|