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 */