Re: [PATCH] include destination into dlr lookup
Alexander Malysh <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Alan, good catch ;) it's just a stupid bug in smsc_smpp module... see attached patch that I will commit to cvs asap. Alan McNatty wrote: > Hi Alex, > > One of the problems in the past with the DLR search using destination > address is that it has been contrary to SMPP v3.4 specs. In section 2.11 > Message Types we can note: > > 'The destination address will be taken from the source address of the > original short message which generated the delivery receipt.' > > We should actually be searching and matching the source address of the > original message (not destination address as per your patch) to comply > with specification. So this may also need to be configurable by SMSC > connection so as to remain spec compliant and work for all. > > Cheers, > Alan > > > > On Sun, 2004-09-26 at 07:28, Alexander Malysh wrote: >> Hi, >> >> attched you can find patch that includes destination address into dlr >> lookup. This patch implements include all necessary changes for all dlr >> storage types. Additionally this patch changes my email addr. from >> @centrium.de to @kannel.org and does some cleanup for sql query >> generation. >> >> What this patch try to do is pretty simple and I hope to be generic >> approach (picked from dlr.c): >> /* >> * It's not possible to use the whole destination in sql query, so we >> just * strip country prefix and do DB lookup like 'like "%striped-dst"' >> and so * increase probability to find a right DB entry. >> * Example: for Germany dst=+491711234567 striped=1711234567 >> * Example2: for Germany dst=01711234567 striped=1711234567 >> */ >> >> This approach was used at centrium for years and workes just fine... >> >> Comments/votes please! >> >> P.S. Patch is only compile tested, but should work (changes are trivial >> ;)). -- Thanks, Alex
smsc_smpp_dlr.diff
(text/x-diff, 599 B)
Index: gw/smsc/smsc_smpp.c
===================================================================
RCS file: /home/cvs/gateway/gw/smsc/smsc_smpp.c,v
retrieving revision 1.73
diff -a -u -r1.73 smsc_smpp.c
--- gw/smsc/smsc_smpp.c 3 Sep 2004 12:42:32 -0000 1.73
+++ gw/smsc/smsc_smpp.c 26 Sep 2004 22:05:14 -0000
@@ -1080,7 +1080,7 @@
dlrmsg = dlr_find(smpp->conn->id,
tmp, /* smsc message id */
- pdu->u.deliver_sm.destination_addr, /* destination */
+ pdu->u.deliver_sm.source_addr, /* destination */
dlrstat);
octstr_destroy(msgid);