Re: smpp, cimd2 support for expired DLR
Iwan Iwanowicz <[email protected]> Sun, 30 Oct 2016 17:36:10 +0100
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <CAAkd-G9AsGpvjHNzPPoFy4oMPkR5L3ZRUe50z+qR6tx1_8DAQw@mail.gmail.com> |
Hi, Thanks for review. Fixed version in attachment. Best regards Marcin 'Iwan' K-k 2016-10-26 16:43 GMT+02:00 <[email protected]>: > Hi, > > patch looks mostly ok except this part: > > + if ( dlr_mask < -1 || dlr_mask > 255 ) { /* 11111111 */ > > Why 255 ? > > Max dlr-msk what we have: > #define DLR_UNKNOWN 0x40|DLR_FAIL > > => 66 > > Please fix and if no objections I will commit it. > > Thanks, > Alex > > > Am 02.10.2016 um 21:07 schrieb Iwan Iwanowicz <[email protected]>: > > Hi, > > Please take a look on smpp and cimd2 patch so now those protocols can > support DLR_EXPIRED. > > Best regards > Marcin 'Iwan' K-k. > <kannel_smpp_cimd2_expiration.patch> > > >
kannel_smpp_cimd2_expiration.patch
(application/octet-stream, 1.2 KB)
Index: gw/smsbox.c
===================================================================
--- gw/smsbox.c (wersja 5173)
+++ gw/smsbox.c (kopia robocza)
@@ -2187,7 +2187,7 @@
msg->sms.dlr_url = octstr_create("");
}
- if ( dlr_mask < -1 || dlr_mask > 63 ) { /* 00111111 */
+ if ( dlr_mask < -1 || dlr_mask > 66 ) { /* 01000010 */
returnerror = octstr_create("DLR-Mask field misformed, rejected");
goto field_error;
}
Index: gw/smsc/smsc_cimd2.c
===================================================================
--- gw/smsc/smsc_cimd2.c (wersja 5173)
+++ gw/smsc/smsc_cimd2.c (kopia robocza)
@@ -2100,6 +2100,8 @@
switch(st_code)
{
case 2: /* validity period expired */
+ code = DLR_EXPIRED;
+ break;
case 3: /* delivery failed */
case 6: /* last no response */
case 7: /* message cancelled */
Index: gw/smsc/smsc_smpp.c
===================================================================
--- gw/smsc/smsc_smpp.c (wersja 5173)
+++ gw/smsc/smsc_smpp.c (kopia robocza)
@@ -1477,6 +1477,8 @@
dlrstat = DLR_SUCCESS;
break;
case 3: /* EXPIRED */
+ dlrstat = DLR_EXPIRED;
+ break;
case 4: /* DELETED */
case 5: /* UNDELIVERABLE */
case 7: /* UNKNOWN */