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. > > >
