Hi
list.
we added a patch to
Kannel to enable message retry and backoff. it was quite simple really, but I'm
pretty sure it can mess things up, so I would like to get suggestions as to how
to properly handle this . it goes something like this :
- we add to the
message structure to integers, retry and delay.
- whenever
smscconn_send() is called on a message, and before it stores that message in the
driver's queue it will increment the retry field by one, and add to the delay
field a configured number of seconds (we set it currently to 60) times the
number of retries (this achieving the backoff effect).
- sms_router(),
before calling smsc_rout() we do this :
<snip>
if (msg->sms.retry >
BB_SMSCCONN_MAX_RETRY)
{
warning(2, "Message has too many retries - consider it a failure");
bb_smscconn_send_failed(NULL, msg, SMSCCONN_FAILED_DISCARDED);
ret = 0;
continue;
}
warning(2, "Message has too many retries - consider it a failure");
bb_smscconn_send_failed(NULL, msg, SMSCCONN_FAILED_DISCARDED);
ret = 0;
continue;
}
if (msg->sms.delay +
msg->sms.time > time(NULL))
{
debug("bb.sms", 0, "Message is delayed - will send later, message retries %d", msg->sms.retry);
list_produce(outgoing_sms, msg);
ret = 0;
continue;
}
debug("bb.sms", 0, "Message is delayed - will send later, message retries %d", msg->sms.retry);
list_produce(outgoing_sms, msg);
ret = 0;
continue;
}
</snip>
the ret=0 emmulates
the effect of smsc_rout() returning after not founding any available
drivers.
comments please
?
--
Oded Arbel
m-Wise mobile solutions
[EMAIL PROTECTED]
Oded Arbel
m-Wise mobile solutions
[EMAIL PROTECTED]
+972-9-9581711
(116)
+972-67-340014
+972-67-340014
::..
-- Pulchritude possesses solely cutaneous profundity.
-- Pulchritude possesses solely cutaneous profundity.