Re: [PATCH] Meta Data on DLR's

Alejandro Guerrieri <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
We added this because some users needed to get command_status values.  
See Dante Moreno's message on Aug 30 to user's list:

http://www.mail-archive.com/[email protected]/msg17067.html

I'm attaching the thread from devel list as well. You actually agreed  
to it then and suggested using the 0x%08lx format for it.



Regards,
--
Alejandro Guerrieri
[email protected]



On 06/12/2009, at 12:41, Alexander Malysh wrote:

> Hi Alex,
>
> sorry for delay...
>
> Patch looks OK but I don't like this part:
> +            if (msg->sms.meta_data == NULL)
> +                msg->sms.meta_data = octstr_create("");
> +            meta_data_set_value(msg->sms.meta_data, "smpp",  
> octstr_imm("dlr_status"),
> +                                octstr_format("0x%08lx", pdu- 
> >u.submit_sm_resp.command_status), 1);
>
> Why do you need to forward SMPP internal status to client? If all  
> was fine and message was accepted it's always 0 and if
> it was rejected you will receive errorcode in DLR msgdata field.
> Therefore I don't really know why you need this part?
>
> I'm +1 for this patch without dlr_status part.
>
> Thanks,
> Alexander Malysh
>
> P.S. Don't forget to rebase your patch due to recent changes in  
> dlr_pgsql.c :)
>
> Am 05.11.2009 um 23:41 schrieb Alejandro Guerrieri:
>
>> This is an expanded version of a patch I've done a couple of months  
>> ago. It adds the following functionality and fix a few things in  
>> the process:
>>
>> #1: Allows meta-data to be passed when sending a message to come  
>> back on the DLR's (internal, intermediate and final).
>>
>> ***COMPATIBILITY BREAKER***
>> A new "meta-data" field is needed on the DB table.
>> ***COMPATIBILITY BREAKER***
>>
>> This allows, for example, to set the dlr-url on the smsbox group  
>> and then pass extra parameters as meta-data (either on the ?smpp?  
>> group or you could even create your own, ?dlr? for example).
>>
>> #2: It creates a meta data value called "dlr_status" that comes  
>> back on the internal dlr generated by kannel. The loaded value is  
>> the SMPP "command_status" parameter.
>>
>> #3: It fixes/cleanup code on some dlr_<dbengine>.c, for example on  
>> many places %s was used inside octstr_format, and then  
>> octstr_get_cstr(var) was used, where using %S would be more direct:
>>
>> -        sql = octstr_format("DELETE FROM %s WHERE %s='%s' AND  
>> %s='%s' %s",
>> -                            octstr_get_cstr(fields->table),
>> -                            octstr_get_cstr(fields->field_smsc),  
>> octstr_get_cstr(smsc),
>> -                            octstr_get_cstr(fields->field_ts),  
>> octstr_get_cstr(ts), sdb_get_limit_str());
>>
>> +        sql = octstr_format("DELETE FROM %S WHERE %S='%S' AND  
>> %S='%S' %s",
>> +                            fields->table, fields->field_smsc, smsc,
>> +                            fields->field_ts, ts,  
>> sdb_get_limit_str());
>>
>> #4 There was also a "LIMIT 1" on dlr_sdb.c where  
>> sdb_get_limit_str() should be used instead.
>>
>>
>> Example usage:
>>
>> On sendsms:
>>
>> http://localhost:13013/cgi-bin/sendsms?username=kannel&password=kannel&from=12345&to=12345678&smsc=mysmsc&text=Hello&dlr-mask=31&meta-data=%3Fsmpp%3Fmy_own_field%3D1234&dlr-url=http%3A%2F%2Flocalhost%2Fx%3Fdata%3D%25D
>>
>> Notes:
>>
>> meta-data is urlencoded version of: ?smpp?my_own_field=1234
>> dlr-url is urlencoded version of: http://localhost/x?data=%D
>>
>> So, after applying, kannel would call the following url:
>>
>> http://localhost/x?md=%3Fsmpp%3Fmy_own_field%3D1234%26dlr_status%3D69%26
>>
>> The "md" parameter, once urldecoded would look like:
>>
>> ?smpp?my_own_field=1234&dlr_status=69&
>>
>> You can pass as many parameters as you want of course and they  
>> would be added to meta-data along with any other fields you've  
>> defined on your smpp-tlv groups, etc. You're not limited to ?smpp?,  
>> you can add your own meta-data groups to avoid possible conflicts.
>>
>> Regarding the dlr_status, in this example gets loaded with  
>> submit_sm_resp's command_status which was: 69 = 0x00000045 (Submit  
>> Failed).
>>
>> Please review, I'm writing the userguide part if it goes forward.
>>
>> Regards,
>> --
>> Alejandro Guerrieri
>> [email protected]
>>
>> <kannel-dlr-meta-data.diff.zip>
>>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.