[PATCH] orig DLR bitmask passing back via DLR msg

Stipe Tolj <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Organization Kannel Software Foundation (KSF)
Message-ID <[email protected]>
Hi list,

at the moment we don't pass back the original set bitmask when a DLR 
msg->sms is send back to an smsbox connection, we "just" set the actual 
DLR even bit in msg->sms.dlr_mask.

I would like to add the original DLR bitmask that was set when MT was 
processed in the msg->sms.meta_data part, group 'dlr', name 'dlr_mask', 
to allow smsbox applications to retrieve this information without the 
need to locally store temporary data.

Please review and vote for committing.

-- 
Best Regards,
Stipe

-------------------------------------------------------------------
Kölner Landstrasse 419
40589 DÃŒsseldorf, NRW, Germany

Kannel Foundation                 tolj.org system architecture
http://www.kannel.org/            http://www.tolj.org/

mailto:stolj_{at}_kannel.org      mailto:st_{at}_tolj.org
-------------------------------------------------------------------
dlr-orig-bitmask.diff (text/plain, 1.8 KB)
Index: gw/dlr.c
===================================================================
--- gw/dlr.c	(revision 5138)
+++ gw/dlr.c	(working copy)
@@ -91,6 +91,7 @@
 #include "sms.h"
 #include "dlr.h"
 #include "dlr_p.h"
+#include "meta_data.h"
 
 /* Our callback functions */
 static struct dlr_storage *handles = NULL;
@@ -386,6 +387,7 @@
     Msg	*msg = NULL;
     struct dlr_entry *dlr = NULL;
     Octstr *dst_min = NULL;
+    Octstr *dlr_mask;
     
     if(octstr_len(smsc) == 0) {
 	warning(0, "DLR[%s]: Can't find a dlr without smsc-id", dlr_type());
@@ -438,6 +440,17 @@
          * route this msg back to originating smsbox
          */
         O_SET(msg->sms.boxc_id, dlr->boxc_id);
+        /*
+         * We will provide the DLR request bitmask in the DLR going back
+         * to the smsbox connection for processing. This allows smsbox
+         * connection type applications to avoid temporary storing and
+         * resolving data to pull up this information.
+         */
+        dlr_mask = octstr_format("%ld", dlr->mask);
+        msg->sms.meta_data = octstr_create("");
+        meta_data_set_value(msg->sms.meta_data, METADATA_DLR_GROUP,
+                            octstr_imm(METADATA_DLR_GROUP_BITMASK), dlr_mask, 1);
+        octstr_destroy(dlr_mask);
 
         time(&msg->sms.time);
         debug("dlr.dlr", 0, "DLR[%s]: created DLR message for URL <%s>",
Index: gw/meta_data.h
===================================================================
--- gw/meta_data.h	(revision 5138)
+++ gw/meta_data.h	(working copy)
@@ -69,6 +69,7 @@
 #define METADATA_DLR_GROUP_DONETIME   "donetime"
 #define METADATA_DLR_GROUP_SUBMITTIME "submittime"
 #define METADATA_DLR_GROUP_ERRORCODE  "errorcode"
+#define METADATA_DLR_GROUP_BITMASK    "dlr_mask"
 
 #define METADATA_SMPP_GROUP           "smpp"
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.