|
|
|
@ -5,125 +5,76 @@ |
|
|
|
# chkconfig: 345 85 15 |
|
|
|
# description: Kamailio is a fast, reliable and flexible SIP Server. |
|
|
|
# processname: kamailio |
|
|
|
# pidfile: /var/run/kazoo-kamailio/kamailio.pid |
|
|
|
# config: /etc/kamailio/kamailio.cfg |
|
|
|
# pidfile: /var/run/kamailio/kazoo-kamailio.pid |
|
|
|
# config: /etc/kazoo/kamailio/kamailio.cfg |
|
|
|
# |
|
|
|
# Source function library. |
|
|
|
. /etc/rc.d/init.d/functions |
|
|
|
|
|
|
|
KAM=/usr/sbin/kamailio |
|
|
|
PROG=kamailio |
|
|
|
PID_FILE=/var/run/kazoo-kamailio/kamailio.pid |
|
|
|
LOCK_FILE=/var/lock/subsys/kazoo-kamailio |
|
|
|
RETVAL=0 |
|
|
|
DEFAULTS=/etc/default/kamailio |
|
|
|
RUN_KAMAILIO=no |
|
|
|
CFG_FILE=/etc/kazoo/kamailio/kamailio.cfg |
|
|
|
|
|
|
|
# Do not start kamailio if fork=no is set in the config file |
|
|
|
# otherwise the boot process will just stop |
|
|
|
check_fork () |
|
|
|
{ |
|
|
|
if grep -q "^[[:space:]]*fork[[:space:]]*=[[:space:]]*no.*" $CFG_FILE; then |
|
|
|
echo "Not starting $DESC: fork=no specified in config file; run /etc/init.d/kamailio debug instead" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
check_kamailio_config () |
|
|
|
{ |
|
|
|
# Check if kamailio configuration is valid before starting the server |
|
|
|
out=$($KAM -c 2>&1 > /dev/null) |
|
|
|
retcode=$? |
|
|
|
if [ "$retcode" != '0' ]; then |
|
|
|
echo "Not starting $DESC: invalid configuration file!" |
|
|
|
echo -e "\n$out\n" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
} |
|
|
|
LOCK_FILE=/var/lock/subsys/kazoo-kamailio |
|
|
|
|
|
|
|
. /etc/rc.d/init.d/functions |
|
|
|
|
|
|
|
start() { |
|
|
|
check_kamailio_config |
|
|
|
if [ "$1" != "debug" ]; then |
|
|
|
check_fork |
|
|
|
fi |
|
|
|
mkdir -p /var/run/kazoo-kamailio |
|
|
|
mkdir -p /var/run/kamailio |
|
|
|
chown kamailio -R /var/run/kazoo-kamailio |
|
|
|
chown kamailio -R /var/run/kamailio |
|
|
|
echo -n $"Starting $PROG: " |
|
|
|
daemon $KAM $OPTIONS -f $CFG_FILE >/dev/null 2>/dev/null |
|
|
|
echo -n $"Starting Kamailio: " |
|
|
|
/usr/sbin/kazoo-kamailio prepare >/dev/null 2>&1 |
|
|
|
/usr/sbin/kazoo-kamailio start >/dev/null 2>&1 |
|
|
|
RETVAL=$? |
|
|
|
echo |
|
|
|
[ $RETVAL = 0 ] && touch $LOCK_FILE && success |
|
|
|
return $RETVAL |
|
|
|
if [ ${RETVAL} -eq 0 ]; then |
|
|
|
touch ${LOCK_FILE} |
|
|
|
success $"OK" |
|
|
|
echo |
|
|
|
else |
|
|
|
failure $"Kamailio is already running or failed to start!" |
|
|
|
echo |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
stop() { |
|
|
|
echo -n $"Stopping $PROG: " |
|
|
|
killproc $KAM |
|
|
|
echo -n $"Stopping Kamailio: " |
|
|
|
/usr/sbin/kazoo-kamailio stop >/dev/null 2>&1 |
|
|
|
RETVAL=$? |
|
|
|
echo |
|
|
|
[ $RETVAL = 0 ] && rm -f $LOCK_FILE $PID_FILE |
|
|
|
if [ ${RETVAL} -eq 0 ]; then |
|
|
|
rm -f ${LOCK_FILE} ${pidfile} |
|
|
|
success $"OK" |
|
|
|
echo |
|
|
|
else |
|
|
|
failure $"Kamailio is still running!" |
|
|
|
echo |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
# Load startup options if available |
|
|
|
if [ -f $DEFAULTS ]; then |
|
|
|
. $DEFAULTS || true |
|
|
|
fi |
|
|
|
|
|
|
|
if [ "$RUN_KAMAILIO" != "yes" ]; then |
|
|
|
echo "Kamailio not yet configured. Edit /etc/default/kamailio first." |
|
|
|
exit 0 |
|
|
|
fi |
|
|
|
|
|
|
|
SHM_MEMORY=$((`echo $SHM_MEMORY | sed -e 's/[^0-9]//g'`)) |
|
|
|
PKG_MEMORY=$((`echo $PKG_MEMORY | sed -e 's/[^0-9]//g'`)) |
|
|
|
[ -z "$USER" ] && USER=kamailio |
|
|
|
[ -z "$GROUP" ] && GROUP=kamailio |
|
|
|
[ $SHM_MEMORY -le 0 ] && SHM_MEMORY=64 |
|
|
|
[ $PKG_MEMORY -le 0 ] && PKG_MEMORY=8 |
|
|
|
|
|
|
|
if test "$DUMP_CORE" = "yes" ; then |
|
|
|
# set proper ulimit |
|
|
|
ulimit -c unlimited |
|
|
|
|
|
|
|
# directory for the core dump files |
|
|
|
# COREDIR=/home/corefiles |
|
|
|
# [ -d $COREDIR ] || mkdir $COREDIR |
|
|
|
# chmod 777 $COREDIR |
|
|
|
# echo "$COREDIR/core.%e.sig%s.%p" > /proc/sys/kernel/core_pattern |
|
|
|
fi |
|
|
|
|
|
|
|
OPTIONS="-P $PID_FILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP $EXTRA_OPTIONS" |
|
|
|
status() { |
|
|
|
/usr/sbin/kazoo-kamailio status |
|
|
|
RETVAL=$? |
|
|
|
} |
|
|
|
|
|
|
|
restart() { |
|
|
|
stop |
|
|
|
start |
|
|
|
} |
|
|
|
|
|
|
|
# See how we were called. |
|
|
|
case "$1" in |
|
|
|
start|debug) |
|
|
|
start) |
|
|
|
start |
|
|
|
;; |
|
|
|
stop) |
|
|
|
stop |
|
|
|
;; |
|
|
|
status) |
|
|
|
status $KAM |
|
|
|
RETVAL=$? |
|
|
|
status |
|
|
|
;; |
|
|
|
restart) |
|
|
|
stop |
|
|
|
start |
|
|
|
check) |
|
|
|
/usr/sbin/kazoo-haproxy check |
|
|
|
;; |
|
|
|
restart|reload) |
|
|
|
restart |
|
|
|
;; |
|
|
|
condrestart) |
|
|
|
if [ -f $PID_FILE ] ; then |
|
|
|
stop |
|
|
|
start |
|
|
|
fi |
|
|
|
[ ! -e ${LOCK_FILE} ] && restart |
|
|
|
;; |
|
|
|
*) |
|
|
|
echo $"Usage: $PROG {start|stop|restart|condrestart|status|debug|help}" |
|
|
|
exit 1 |
|
|
|
echo $"Usage: $0 (start|stop|restart|status|check)" |
|
|
|
RETVAL=1 |
|
|
|
esac |
|
|
|
|
|
|
|
exit $RETVAL |
|
|
|
exit ${RETVAL} |