Hi, ok I see the reason for dlr_status... but it's not dlr_status field that we forward... should we rename it to cmd_status then ?
Thanks, Alexander Malysh Am 06.12.2009 um 20:58 schrieb Alejandro Guerrieri: > 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/us...@kannel.org/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. > > <Re: [PATCH] Pass meta-data from message to dlrs.eml> > > Regards, > -- > Alejandro Guerrieri > aguerri...@kannel.org > > > > 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 >>> aguerri...@kannel.org >>> >>> <kannel-dlr-meta-data.diff.zip> >>> >> >