Hi Nikos,
Thanks again for the feedback. You hit the nail on the head - I am seeing
"WARNING: smsbox_list empty!" throughout the bearerbox log. Looks like
running sqlbox alone is not enough to truly emulate a smsbox.
So, I delved into the source for sqlbox, and from what I can see, it has
no
ACK response logic at all. It receives the DLR (or MO) from bearerbox,
writes it to the DB and then passes it to a connected smsbox. It appears
to
rely on smsbox to generate the ACK - there's logic in there to pass smsbox
messages back to bearerbox (which I assume would include the ACKs), but
nothing to handle the situation where there is no smsbox connected. In
this
case, the message gets written to the DB then simply dropped, hence the
queuing in bearerbox that I'm seeing.
So, I'm looking at two options and would very much appreciate advice on
which one would be most appropriate:
1. Configure a "dummy" smsbox to receive/ACK the messages from sqlbox but
do
nothing else them. Not sure if I can configure smsbox to do this (I'll hit
the doc), whether I'll need to patch it to provide a "ACK and drop" mode,
or
whether I should have it call a dummy destination to avoid the patching.
2. Enhance sqlbox to generate its own ACK if it doesn't have a connected
smsbox to pass the MO/DLR onto.
Any suggestions? If not, I'll probably start on #2 as it seems much
cleaner
to me and avoids the unnecessary overhead of a dummy smsbox process and
associated IPC. Who is the appropriate sqlbox owner that I should run
these
changes by? I'm sure I'm not the only one that has no need for smsbox.
Thanks,
Toby.
-----Original Message-----
From: Nikos Balkanas [mailto:[email protected]]
Sent: Monday, 9 August 2010 2:17 AM
To: Toby Phipps; 'Rene Kluwen'; [email protected]
Subject: Re: Life without smsbox
Hi,
The only way for bearerbox to remove the DLR from store is to receive an
upstream ACK (smsbox or sqlbox). That is the architectural spec. If this
is
not happenning, sqlbox has a bug. You could check for that in maximum
detail
bb (and sqlbox) logs. If there is a problem with routing or boxc ids in
bb,
you should get a lot of warnings like "Warning: smsbox-list empty!", which
will also build up DLR store queue.
BR,
Nikos
----- Original Message -----
From: "Toby Phipps" <[email protected]>
To: "'Rene Kluwen'" <[email protected]>; <[email protected]>
Sent: Sunday, August 08, 2010 3:26 PM
Subject: RE: Life without smsbox
Just a follow-up - I also tried setting "smsbox-id = sqlbox" in the
"sqlbox"
section, and sqlbox starts but I get the same results, which is that the
bearerbox store size increments by one for each DLR received, as viewed
in
the status output. For example:
SMS: received 0 (0 queued), sent 13 (0 queued), store size 85
Right now, my sqlbox.conf looks like this:
group = sqlbox
id = sqlbox
smsbox-id = sqlbox
bearerbox-port = 13100
bearerbox-host = localhost
# smsbox-port = 13200
sql-log-table = smsgw_kannel_sms_result
sql-insert-table = smsgw_kannel_sms_queue
log-file = /usr/local/kannel/log/sqlbox.log
log-level = 0
group = mysql-connection
id = sqlbox
host = localhost
username = <removed>
password = <removed>
database = <removed>
max-connections = 3
As you can see, the smsbox-port is commented out, meaning that I don't
want
sqlbox to try to talk to smsbox. I've tried with this line commented out,
or
uncommented (but pointed to a non-listening port). Both result in the
same
behaviour,
Any more ideas anyone? I'm about to start delving into the source...
Thanks,
Toby.