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.
kamailio/misc/examples/obsoleted/sip2jabd

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