You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

117 lines
2.0 KiB

#!/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
}
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}