Delete SMS after two retries to fix out of memory issue
This commit is contained in:
@@ -73,6 +73,7 @@ modparam("dialplan|pua", "db_url", DIALPLAN_PUA_DB_URL)
|
||||
modparam("uac", "restore_mode", "none")
|
||||
|
||||
modparam("htable", "htable", "publish_sent=>size=8;autoexpire=SUBSCRIBE_EXPIRE")
|
||||
modparam("htable", "htable", "sms_retries=>size=8;autoexpire=SUBSCRIBE_EXPIRE")
|
||||
|
||||
# time interval set to 3 seconds
|
||||
modparam("rtimer", "timer", "name=sms;interval=3;mode=1;")
|
||||
@@ -348,18 +349,31 @@ route[SMS_WORKER] {
|
||||
if ($dbr(q=>rows) > 0) {
|
||||
$var(i) = 0;
|
||||
while ($var(i) < $dbr(q=>rows)) {
|
||||
$avp(id) = $dbr(q=>[$var(i),0]);
|
||||
$avp(from) = $dbr(q=>[$var(i),1]);
|
||||
$avp(to) = $dbr(q=>[$var(i),2]);
|
||||
$avp(text) = $dbr(q=>[$var(i),3]);
|
||||
if ($sht(sms_retries=>$dbr(q=>[$var(i),0])) == $null) {
|
||||
$sht(sms_retries=>$dbr(q=>[$var(i),0])) = 0;
|
||||
} else {
|
||||
$sht(sms_retries=>$dbr(q=>[$var(i),0])) = $sht(sms_retries=>$dbr(q=>[$var(i),0])) + 1;
|
||||
}
|
||||
|
||||
route(SEND_SMS);
|
||||
if ($sht(sms_retries=>$dbr(q=>[$var(i),0])) > 2) {
|
||||
xlog("Dropping SMS [$dbr(q=>[$var(i),3])] TO $dbr(q=>[$var(i),2]) after 2 retries \n");
|
||||
sql_query("sms", "delete from messages where id=$sht(sms_retries=>$dbr(q=>[$var(i),0]));");
|
||||
$sht(sms_retries=>$dbr(q=>[$var(i),0])) = $null;
|
||||
} else {
|
||||
$avp(id) = $dbr(q=>[$var(i),0]);
|
||||
$avp(from) = $dbr(q=>[$var(i),1]);
|
||||
$avp(to) = $dbr(q=>[$var(i),2]);
|
||||
$avp(text) = $dbr(q=>[$var(i),3]);
|
||||
|
||||
route(SEND_SMS);
|
||||
#!ifdef WITH_DEBUG
|
||||
xlog("ID $avp(id)\n");
|
||||
xlog("FROM $avp(from)\n");
|
||||
xlog("TO $avp(to)\n");
|
||||
xlog("TEXT $avp(text)\n");
|
||||
xlog("ID $avp(id)\n");
|
||||
xlog("FROM $avp(from)\n");
|
||||
xlog("TO $avp(to)\n");
|
||||
xlog("TEXT $avp(text)\n");
|
||||
#!endif
|
||||
}
|
||||
|
||||
$var(i) = $var(i) + 1;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user