Hi all. I have been looking for a way to route SMSs by receiver to
multiple smsboxes for redundancy and load balancing. It seems it can't
be done at this point. I first thought it would make sense that if two
smsboxes identified themselves by the same id, bearerbox would use
both connections to send SMSs. But looking at the source:
./gw/bb_boxc.c, boxc_receiver thread, when an admin sms with
cmd_identify arrives, the connection from which such sms arrived is
added to the smsbox_by_id, overwriting the previously connection, if
had been one:

static void boxc_receiver(void *arg)
{
 ....
if (msg_type(msg) == admin && msg->admin.command == cmd_identify) {
....
                    /* add this identified smsbox to the dictionary */
                    /* XXX check for equal boxc_id in Dict, otherwise
we overwrite it */
                    dict_put(smsbox_by_id, conn->boxc_id, conn);
                    debug("bb.boxc", 0, "boxc_receiver: got boxc_id
<%s> from <%s>",

Even if this connection was closed, the sms would not be sent to a
previous connection with same id, since is not in the msbox_by_id.
Have I understood correctly? Is there any way to have routing by
receiver to multiple boxes?

Thanks

--
Juan

Reply via email to