If you're using HTTP API call, I guess you're also taking advantage of
dlr_url & dlr_mask options to get DLRs, right?

Do you store anywhere message statuses and actual dlr_url ?

The problem is you need to delete only old entries, but dlr table itself
doesn't contain a time field there.

There are only:

| smsc        | varchar(40)  | YES  | MUL | NULL    |       |
| ts          | varchar(255) | YES  |     | NULL    |       |
| destination | varchar(40)  | YES  |     | NULL    |       |
| source      | varchar(40)  | YES  |     | NULL    |       |
| service     | varchar(40)  | YES  |     | NULL    |       |
| url         | varchar(255) | YES  | UNI | NULL    |       |
| mask        | int(10)      | YES  |     | NULL    |       |
| status      | int(10)      | YES  |     | NULL    |       |
| boxc        | varchar(40)  | YES  |     | NULL    |       |
| parts_num   | bigint(20)   | YES  |     | NULL    |       |


So you can delete appropriate entries based on either Source, Destination,
SMSC, BOXC or anything else via:

For example for specific smsc:
DELETE FROM dlr WHERE smsc='smsc1';

2012/4/3 Tapan Thapa <tapan.thapa2...@gmail.com>

> Hello,
>
> I am sorry but your provided query will not work for me as i am not using
> sqlbox to send messages.
>
> I am using smsbox to send sms via HTTP API call and at bearerbox's end i
> am storing dlr under mysql so that in case bearerbox crashes due to any
> reason, i have dlr to restore from MySQL.
>
> Please suggest any query to delete dlr from dlr tables as there is no
> field through which i can delete rows in it.
>
> Regards
> Tapan Thapa
>
> On Tue, Apr 3, 2012 at 10:32 AM, spameden <spame...@gmail.com> wrote:
>
>> you can use this query:
>>
>> delete d from dlr d inner join sent_sms s ON s.dlr_url=d.url where
>> s.momt='MT' and s.time <= UNIX_TIMESTAMP('2012-04-02 08:00');
>>
>> to delete all dlr's from dlr table before 2012-04-02 08:00
>>
>> the only thing is you need to double check if sent_sms has dlr_url field
>> the same value as url field in dlr table.
>>
>>
>>
>> 2012/4/3 Tapan Thapa <tapan.thapa2...@gmail.com>
>>
>>> Hello,
>>>
>>> Let me confirm that we are getting proper delivery report from SMSC and
>>> the same is getting deleted automatically from dlr table however as we all
>>> know that we generally don't receive 100% delivery report.
>>>
>>> So we use to get 80-90% of delivery report and rest 10-20% delivery
>>> report is still available in pending state in dlr table.
>>>
>>> So my query here is, is there any way (like sql query) through which i
>>> can delete old dlr from dlr table.
>>>
>>> Thanks in advance.
>>>
>>> Regards
>>> Tapan Thapa
>>>
>>> On Tue, Apr 3, 2012 at 9:46 AM, spameden <spame...@gmail.com> wrote:
>>>
>>>> Might be something with your setup. Are you sure DLRs are receiving?
>>>>
>>>> Can you check sent_sms table, is there any DLR entries?
>>>>
>>>> About dlr table: I strongly suggest adding indexes there for speeding
>>>> things up.
>>>>
>>>> If you're inserting message into send_sms with dlr_mask!=NULL kannel
>>>> automatically adds relevant entry into dlr table to keep track of the DLR,
>>>> after DLR is received kannel deletes entry from dlr table and moves DLR
>>>> entry into sent_sms table.
>>>>
>>>> It's bit weird that your dlr table has over 8mln of entries, something
>>>> is wrong with your setup.
>>>>
>>>> Regards
>>>>
>>>>
>>>> 2012/4/3 Tapan Thapa <tapan.thapa2...@gmail.com>
>>>>
>>>>> Hello Community,
>>>>>
>>>>> I had enabled dlr-storage under kannel to store delivery report in
>>>>> mysql database and now dlr table is having more then 8 (.8 million) lacs
>>>>> records.
>>>>>
>>>>> Can any one let me know how should i delete old dlr from database for
>>>>> which i have not received the delivery report since last 10 days?
>>>>>
>>>>> Thanks in advance.
>>>>>
>>>>> Regards
>>>>> Tapan Thapa
>>>>>
>>>>
>>>>
>>>
>>
>

Reply via email to