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.
138 lines
4.4 KiB
138 lines
4.4 KiB
#!/bin/sh
|
|
#
|
|
# $Id$
|
|
#
|
|
# PLEASE configure before use !!!
|
|
#
|
|
# This script uses sipsak (http://sipsak.berlios.de) to test if a
|
|
# SIP server is still responding to requests and will send messages
|
|
# to the developers. It is configured for the iptel.org enviroment.
|
|
# PLEASE adapt it to your local enviroment.
|
|
#
|
|
|
|
NOTIFY=sr@iptel.org
|
|
SIPSAK=/home/srouter/sipsak/sipsak
|
|
SIPURI=sip:sipsak@iptel.org
|
|
LOCKDIR=/var/lock
|
|
LOCKFILE=serresponse
|
|
LOCK_TIMEOUT=240
|
|
TMP=/tmp/serresponse.$$
|
|
MAILCOMMAND=/bin/mail
|
|
HOSTN=`hostname`
|
|
RUNHOST=iptel.org
|
|
SMSSEND=/home/sms/smstools/bin/putsms
|
|
SMSDEVICE=/dev/ttyS0
|
|
SMSNUMBERS=""
|
|
|
|
############################
|
|
|
|
LOCKF=$LOCKDIR/$LOCKFILE
|
|
TMP2=$TMP.dns
|
|
TMP3=$TMP.ips
|
|
SIPSAKCMD="$SIPSAK -v -s $SIPURI"
|
|
SIPSAKNCMD="$SIPSAK -v -n -s $SIPURI"
|
|
SMSCMD="$SMSSEND -d$SMSDEVICE -b9600"
|
|
|
|
if [ -e $LOCKF ] ; then
|
|
find $LOCKDIR -name $LOCKFILE -amin +$LOCK_TIMEOUT -exec rm {} ';'
|
|
if [ ! -e $LOCKF ] ; then
|
|
echo "This is a reminder !!!" > $TMP
|
|
echo "The lockfile $LOCKF" >> $TMP
|
|
echo "was just removed because ist was older then $LOCK_TIMEOUT minutes." >> $TMP
|
|
echo "But if you receive this mail the cause of this error still exists or respawned." >> $TMP
|
|
SERR_SUBJECT="serresponse reminder"
|
|
fi
|
|
fi
|
|
|
|
if [ ! -e $LOCKF ] ; then
|
|
if [ ! -x $SIPSAK ] ; then
|
|
echo "serresponse did not find the required sipsak executable $SIPSAK" >> $TMP
|
|
SERR_SUBJECT="serresponse config failure"
|
|
elif [ ! -x $SMSSEND ]; then
|
|
echo "serresponse did not find the required SMS send executable $SMSSEND" >> $TMP
|
|
SERR_SUBJECT="serresponse config failure"
|
|
else
|
|
date >> $TMP2
|
|
echo " $SIPSAKCMD" >> $TMP2
|
|
echo "produced this output:" >> $TMP2
|
|
$SIPSAKCMD >> $TMP2 2>&1
|
|
if [ $? -eq 3 ] ; then
|
|
grep -i "Connection refused" $TMP2
|
|
if [ $? -eq 0 ] ; then
|
|
sleep 30
|
|
fi
|
|
date >> $TMP3
|
|
echo " $SIPSAKNCMD" >> $TMP3
|
|
echo "produced this output:" >> $TMP3
|
|
$SIPSAKNCMD >> $TMP3 2>&1
|
|
if [ $? -le 1 ] ; then
|
|
echo "ser did not responsed (fast enough) on the sipsak requests with fqdn in Via" >> $TMP
|
|
echo "but the test with IPs in Via succeeded." >> $TMP
|
|
echo "" >> $TMP
|
|
echo "Sending this alert is stopped for $LOCK_TIMEOUT minutes." >>$TMP
|
|
echo "If you want to re-enable alerts sooner, please remove the lock file" >> $TMP
|
|
echo "$LOCKF @ $HOSTN" >> $TMP
|
|
echo "(you presumably need to be root to do this)" >> $TMP
|
|
echo "" >> $TMP
|
|
echo "Command output of sipsak with fqdn in Via follows:" >> $TMP
|
|
cat $TMP2 >> $TMP
|
|
SERR_SUBJECT="serresponse delayed"
|
|
else
|
|
echo "ser did not responsed (fast enough) on requests with fqdn in Via" >> $TMP
|
|
echo "but also requests with IPs in Via failed." >> $TMP
|
|
echo "" >> $TMP
|
|
echo "Sending this alert is stopped for $LOCK_TIMEOUT minutes." >>$TMP
|
|
echo "If you want to re-enable alerts sooner, please remove the lock file" >> $TMP
|
|
echo "$LOCKF @ $HOSTN" >> $TMP
|
|
echo "(you presumably need to be root to do this)" >> $TMP
|
|
echo "" >> $TMP
|
|
echo "First command output with fqdn in Via:" >> $TMP
|
|
cat $TMP2 >> $TMP
|
|
echo "" >> $TMP
|
|
echo "Second command output with IPs in Via:" >> $TMP
|
|
cat $TMP3 >> $TMP
|
|
SERR_SUBJECT="serresponse failed"
|
|
fi
|
|
rm -f $TMP3
|
|
rm -f $TMP2
|
|
elif [ $? -eq 2 ] ; then
|
|
echo "The ser response test failed due to a local error on" >> $TMP
|
|
echo "host $HOSTN ." >> $TMP
|
|
echo "" >> $TMP
|
|
echo "Sending this alert is stopped for $LOCK_TIMEOUT minutes." >>$TMP
|
|
echo "If you want to re-enable alerts sooner, please remove the lock file" >> $TMP
|
|
echo "$LOCKF @ $HOSTN" >> $TMP
|
|
echo "(you presumably need to be root to do this)" >> $TMP
|
|
echo "" >> $TMP
|
|
echo "Command output of sipsak with fqdn follows:" >> $TMP
|
|
cat $TMP2 >> $TMP
|
|
rm -f $TMP2
|
|
SERR_SUBJECT="serresponse local failure"
|
|
else
|
|
rm -f $TMP2
|
|
rm -f $TMP
|
|
fi
|
|
fi
|
|
|
|
if [ -e $TMP ] ; then
|
|
if [ $HOSTN = $RUNHOST ] ; then
|
|
$MAILCOMMAND -s "$SERR_SUBJECT" $NOTIFY < $TMP
|
|
rm -f $TMP
|
|
touch $LOCKF
|
|
for i in $SMSNUMBERS; do
|
|
$SMSCMD $i "serresponse failed. please check your emails for details"
|
|
done
|
|
else
|
|
echo "unconfigured serresponse executed on ${HOSTN}." > $TMP
|
|
echo "Warning: This script if configured for the iptel.org enviroment."
|
|
echo " Please configure it to your local settings first."
|
|
echo
|
|
echo "If you do not press CTRL-C within 2 seconds an informational message"
|
|
echo "with your hostname will be sent to the ser developers."
|
|
sleep 2
|
|
$MAILCOMMAND -s "serresponse executed on ${HOSTN}" $NOTIFY < $TMP
|
|
rm -f $TMP
|
|
fi
|
|
fi
|
|
fi
|