Hi,
We did not have sms-outgoing-disable-on-no-smsc set. So the SMSs should have
been re-queued.
We restarted the bearer box and SMS box process using the restart/stop
option from the script below and not via the HTTP command.
It seems I had many transmitters running at one time. When I restarted using
the script posted below. This script was posted to Kannel users.
According to the SMSC provider the problem was with Kannel not giving an
unbind command through and so
we were starting many transmitters. They also said the receiver was not
giving back an enquire_link_resp and
so was dropping, we would then restart the transmitter and receiver. Since
we were not giving back an
unbind the number of transmitters were growing.
(I wish there was a way to only restart a transmitter or receiver.)
I think with many transmitters the Kannel queue gets confused, where to send
the SMS and discards them.
Questions:
1)How does one ensure only one transmitter or receiver is up?
2)Is it wrong to restart Kannel using the script below or must you use the
http command to stop/start the smsc connection?
Have others come up with similar problems with their providers not receiving
the unbind command and/or enquire_link_resp for the receivers.?
Thanks for any advise/assistance
# This shell script takes care of starting and stopping
# the Kannel SMS & WAP gateway
# Original version Fabrice Gatille <[EMAIL PROTECTED]>
# Modified by Stephane Rosa ([EMAIL PROTECTED]) for RedHat9
# chkconfig: 2345 97 03
# description: Kannel is an SMS and WAP gateway
VERSION=`/usr/local/bin/gw-config --version`
OPTIONS="--daemonize --user kannel --pid-file /var/run/kannel/"
KANNELPATH=/usr/local/sbin
CONF=/etc/kannel.conf
CONFDIR=/etc/configurations
# Source function library & networking conf.
. /etc/init.d/functions
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
# Check that we are root ... so non-root users stop here
[ `id -u` = 0 ] || exit 1
# Various other checks
[ ${NETWORKING} = "yes" ] || exit 0
[ -x $KANNELPATH/bearerbox ] || exit 0
[ -x $KANNELPATH/smsbox ] || exit 0
[ -x $KANNELPATH/wapbox ] || exit 0
[ -f $CONF ] || exit 0
RETVAL=0; RETVAL1=0; RETVAL2=0; RETVAL3=0
prog="Kannel"
start() {
# Check that at least one group is defined for sms
# and/or wap to start the bearer. Then start boxes
# as needed.
# startsms=`egrep -se '^[ \t]*group *= *smsbox' $CONF`
# startwap=`egrep -se '^[ \t]*group *= *wapbox' $CONF`
startsms=`egrep -hse '^[ \t]*group *= *smsbox' $CONF ${CONFDIR}/*`
startwap=`egrep -hse '^[ \t]*group *= *wapbox' $CONF ${CONFDIR}/*`
if [ -n "$startsms$startwap" ]; then
echo -n "Starting Mobile Gateway Service 1 ($VERSION): "
daemon /usr/local/sbin/bearerbox ${OPTIONS}bearerbox.pid -- $CONF
RETVAL1=$?
echo
else
exit 0
fi
if [ -n "$startsms" ]; then
echo -n "Starting Mobile Gateway Service 2 ($VERSION): "
daemon /usr/local/sbin/smsbox ${OPTIONS}smsbox.pid -- $CONF
RETVAL2=$?
echo
fi
if [ -n "$startwap" ]; then
echo -n "Starting Mobile Gateway Wap service ($VERSION): "
daemon /usr/local/sbin/wapbox ${OPTIONS}wapbox.pid -- $CONF
RETVAL3=$?
echo
fi
let RETVAL=$REVAL1+$RETVAL2+$RETVAL3
if [ $RETVAL -eq 0 ]; then
sleep 2
touch /var/lock/subsys/gateway
cat /var/run/kannel/*.pid > /var/run/kannel.pid
fi
return $RETVAL
}
stop() {
echo -n "Shutting down Mobile Gateway $VERSION: "
killproc kannel
RETVAL=$?
echo
if [ $RETVAL -eq 0 ]; then
sleep 2
rm -f /var/lock/subsys/gateway
rm /var/run/kannel/*.pid
fi
return $RETVAL
}
# See how we were called.
case "$1" in
start)
# Start daemons.
start
;;
stop)
# Stop daemons
stop
;;
restart)
# Restart daemons
stop
sleep 1
start
;;
status)
status bearerbox
status smsbox
status wapbox
exit $?
;;
*)
echo "Usage: named {start|stop|status|restart}"
RETVAL=1
esac
exit $RETVAL