mirror of https://github.com/sipwise/kamailio.git
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.
218 lines
4.5 KiB
218 lines
4.5 KiB
#!/bin/sh
|
|
#
|
|
# 3w-xxxx: Starts the sip2jab process
|
|
#
|
|
# Version: @(#) /etc/rc.d/init.d/3w-xxxx
|
|
#
|
|
# chkconfig: 2345 20 85
|
|
# description: controls execution of SIP2Jabber gateway
|
|
# processname: sip2jab
|
|
# config: /etc/use_jabs.cfg
|
|
|
|
# User "dcm" is used if is the script is run by root
|
|
|
|
# JABBER
|
|
JDIR="/home/dcm/jabber-1.4.2"
|
|
JABBERD="${JDIR}/jabberd/jabberd"
|
|
JICQEXT="${JDIR}/icqv7ext.sh"
|
|
CONF="${JDIR}/conf/single.xml"
|
|
JUID="dcm"
|
|
JPID="${JDIR}/spool/jabbers.pid"
|
|
JOUT="${JDIR}/spool/jabberd.log"
|
|
|
|
# SER
|
|
BIN=sip2jab
|
|
HM=/home/dcm/sip_router
|
|
ETC=$HM/etc/use_jabs.cfg
|
|
USR="dcm"
|
|
GRP="dcm"
|
|
MYDIR=$HM/core
|
|
CORE=$MYDIR/core
|
|
|
|
RETVAL=0
|
|
|
|
############ ==== #############
|
|
|
|
# Test if Jabber exists
|
|
test -f ${JABBERD} -a -f ${CONF} || exit 0
|
|
|
|
# Source function library.
|
|
. /etc/rc.d/init.d/functions
|
|
|
|
# Get config.
|
|
. /etc/sysconfig/network
|
|
|
|
# Check that networking is up.
|
|
[ "${NETWORKING}" = "no" ] && exit 0
|
|
|
|
# Current user
|
|
CRT_USER=`whoami`
|
|
|
|
### Stop Jabber server
|
|
stop_jab() {
|
|
echo "Stopping ICQ transport - external component ..."
|
|
killproc ${JICQEXT}
|
|
# echo
|
|
echo "Stopping Jabber server ..."
|
|
killproc ${JABBERD}
|
|
RETVAL=$?
|
|
# echo
|
|
# kill `cat ${JPID}`
|
|
# echo " OK."
|
|
}
|
|
|
|
### Start Jabber server
|
|
start_jab() {
|
|
if [ -f ${JPID} ]
|
|
then
|
|
echo "Cleaning Jabber from a previous dirty crash ..."
|
|
stop_jab
|
|
sleep 1
|
|
rm -f ${JPID}
|
|
fi
|
|
|
|
if [ `id -u` = 0 ]
|
|
then
|
|
#### Run by root
|
|
echo "Starting Jabber server ..."
|
|
su - ${JUID} -c "cd ${JDIR}; ${JABBERD} -B -c ${CONF} > /dev/null 2>&1" > /dev/null 2>&1
|
|
# echo
|
|
sleep 2
|
|
echo "Starting ICQ transport - external component ..."
|
|
su - ${JUID} -c "cd ${JDIR}; ${JICQEXT} > /dev/null 2>&1 &" > /dev/null 2>&1
|
|
RETVAL=$?
|
|
# echo
|
|
else
|
|
### Run by other users
|
|
echo "Starting Jabber server ..."
|
|
cd ${JDIR}
|
|
${JABBERD} -B -c ${CONF} > /dev/null 2>&1
|
|
# echo
|
|
sleep 2
|
|
echo "Starting ICQ transport - external component ..."
|
|
${JICQEXT} > /dev/null 2>&1 &
|
|
RETVAL=$?
|
|
# echo
|
|
fi
|
|
|
|
sleep 1
|
|
### Checking if processes are started
|
|
if [ `ps auxw | grep ${JABBERD} | head --lines=1 | awk '{print $11}'` = ${JABBERD} ]
|
|
then
|
|
echo "Jabber server: [[ STARTED ]]"
|
|
else
|
|
echo "Jabber server: [[ NOT STARTED ]]"
|
|
fi
|
|
if [ `ps auxw | grep ${JICQEXT} | head --lines=1 | awk '{print $11}'` != "grep" ]
|
|
then
|
|
echo "ICQ transport: [[ STARTED ]]"
|
|
else
|
|
echo "ICQ transport: [[ NOT STARTED ]]"
|
|
fi
|
|
}
|
|
|
|
### Stop SER
|
|
stop_ser() {
|
|
echo -n "Stopping SIP router ..."
|
|
killproc ${BIN}
|
|
RETVAL=$?
|
|
echo
|
|
# killall ser
|
|
# echo " [ OK ]"
|
|
}
|
|
|
|
### Start SER
|
|
start_ser() {
|
|
echo "Starting SIP router ..."
|
|
if [ `id -u` = 0 ]
|
|
then
|
|
#### Run by root
|
|
su - ${USR} -c "cd ${HM}; ${HM}/${BIN} -f ${ETC} -w ${MYDIR}" > /dev/null 2>&1
|
|
RETVAL=$?
|
|
else
|
|
#### Run by other users
|
|
#cd $MYDIR
|
|
|
|
# core timestamping moved to sercheck; -jiri
|
|
# if [ -f $CORE ] ; then
|
|
# chmod a+r $CORE
|
|
# DATE=`date "+%Y-%m-%d--%H-%M"`
|
|
# mv $CORE $CORE.$DATE
|
|
# ( cd ../sip_router; tar cf - . ) | gzip > ser.$DATE.tgz
|
|
# fi
|
|
|
|
cd ${HM}
|
|
${HM}/${BIN} -f ${ETC} -w ${MYDIR}
|
|
RETVAL=$?
|
|
|
|
# man setuid: If uid is different from the old effective uid,
|
|
# the process will be forbidden from eaving core dumps.
|
|
# -> don't set uid, we want to collect core dumps
|
|
# -u $USR -g $GRP
|
|
fi
|
|
|
|
sleep 1
|
|
### Checking if processes are started
|
|
if [ `ps auxw | grep ${HM}/${BIN} | head --lines=1 | awk '{print $11}'` = ${HM}/${BIN} ]
|
|
then
|
|
echo "SIP router: [[ STARTED ]]"
|
|
else
|
|
echo "SIP router: [[ NOT STARTED ]]"
|
|
fi
|
|
}
|
|
|
|
### Check
|
|
check_run() {
|
|
### Checking if Jabber server is running
|
|
if [ `ps auxw | grep ${JABBERD} | head --lines=1 | awk '{print $11}'` = ${JABBERD} ]
|
|
then
|
|
echo "Jabber server: [[ RUNNING ]]"
|
|
else
|
|
echo "Jabber server: [[ NOT RUNNING ]]"
|
|
fi
|
|
### Checking if ICQ transport is running
|
|
if [ `ps auxw | grep ${JICQEXT} | head --lines=1 | awk '{print $11}'` != "grep" ]
|
|
then
|
|
echo "ICQ transport: [[ RUNNING ]]"
|
|
else
|
|
echo "ICQ transport: [[ NOT RUNNING ]]"
|
|
fi
|
|
### Checking if SIP router is running
|
|
if [ `ps auxw | grep ${HM}/${BIN} | head --lines=1 | awk '{print $11}'` = ${HM}/${BIN} ]
|
|
then
|
|
echo "SIP router: [[ RUNNING ]]"
|
|
else
|
|
echo "SIP router: [[ NOT RUNNING ]]"
|
|
fi
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
start_jab
|
|
start_ser
|
|
;;
|
|
stop)
|
|
stop_ser
|
|
stop_jab
|
|
;;
|
|
restart)
|
|
echo "Restarting SIP2Jabber ..."
|
|
stop_ser
|
|
stop_jab
|
|
sleep 2
|
|
echo
|
|
start_jab
|
|
start_ser
|
|
;;
|
|
check)
|
|
check_run
|
|
;;
|
|
*)
|
|
N=$0
|
|
echo "Usage: $N {start|stop|restart|check}" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
echo
|
|
exit $RETVAL
|