Re: restarting bind causes SMS to be DISCARDED
"Hillel" <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
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