Patch: smsc_smpp.c

"Nikos Balkanas" <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <002301ca5bb0$0e26dc80$02b2a8c0@tardis>
Hi,

This is another one in my series of trivial patches. This part of the configuration has caused a lot of confusion in manual configuring dest-addr-ton over the years, with users prefixing their numbers with '+' instead of using the configuration.

BR,
Nikos
smsc_smpp.diff (application/octet-stream, 3.1 KB)
Index: gw/smsc/smsc_smpp.c
===================================================================
RCS file: /home/cvs/gateway/gw/smsc/smsc_smpp.c,v
retrieving revision 1.123
diff -a -u -r1.123 smsc_smpp.c
--- gw/smsc/smsc_smpp.c	2 Sep 2009 13:10:50 -0000	1.123
+++ gw/smsc/smsc_smpp.c	2 Nov 2009 11:28:33 -0000
@@ -764,17 +764,19 @@
         octstr_duplicate(msg->sms.binfo) : octstr_duplicate(smpp->service_type);
 
     /* Check for manual override of source ton and npi values */
-    if(smpp->source_addr_ton > -1 && smpp->source_addr_npi > -1) {
+    if (smpp->source_addr_ton > -1) {
         pdu->u.submit_sm.source_addr_ton = smpp->source_addr_ton;
-        pdu->u.submit_sm.source_addr_npi = smpp->source_addr_npi;
-        debug("bb.sms.smpp", 0, "SMPP[%s]: Manually forced source addr ton = %d, source add npi = %d",
-              octstr_get_cstr(smpp->conn->id), smpp->source_addr_ton,
-              smpp->source_addr_npi);
-    } else {
-        /* setup default values */
+        debug("bb.sms.smpp", 0, "SMPP[%s]: Manually forced source-addr-ton = %d", octstr_get_cstr(smpp->conn->id), smpp->source_addr_ton);
+    }
+    else
         pdu->u.submit_sm.source_addr_ton = GSM_ADDR_TON_NATIONAL; /* national */
-        pdu->u.submit_sm.source_addr_npi = GSM_ADDR_NPI_E164; /* ISDN number plan */
+
+    if (smpp->source_addr_npi > -1) {
+        pdu->u.submit_sm.source_addr_npi = smpp->source_addr_npi;
+        debug("bb.sms.smpp", 0, "SMPP[%s]: Manually forced source-addr-npi = %d", octstr_get_cstr(smpp->conn->id), smpp->source_addr_npi);
     }
+    else
+        pdu->u.submit_sm.source_addr_npi = GSM_ADDR_NPI_E164; /* ISDN number plan */
 
     if (pdu->u.submit_sm.source_addr && smpp->autodetect_addr) {
         /* lets see if its international or alphanumeric sender */
@@ -813,17 +815,20 @@
         }
     }
 
-    /* Check for manual override of destination ton and npi values */
-    if (smpp->dest_addr_ton > -1 && smpp->dest_addr_npi > -1) {
+/* Check for manual override of destination ton and npi values */
+     if (smpp->dest_addr_ton > -1) {
         pdu->u.submit_sm.dest_addr_ton = smpp->dest_addr_ton;
-        pdu->u.submit_sm.dest_addr_npi = smpp->dest_addr_npi;
-        debug("bb.sms.smpp", 0, "SMPP[%s]: Manually forced dest addr ton = %d, dest add npi = %d",
-              octstr_get_cstr(smpp->conn->id), smpp->dest_addr_ton,
-              smpp->dest_addr_npi);
-    } else {
+        debug("bb.sms.smpp", 0, "SMPP[%s]: Manually forced dest-addr-ton = %d", octstr_get_cstr(smpp->conn->id), smpp->dest_addr_ton);
+     }
+     else
         pdu->u.submit_sm.dest_addr_ton = GSM_ADDR_TON_NATIONAL; /* national */
-        pdu->u.submit_sm.dest_addr_npi = GSM_ADDR_NPI_E164; /* ISDN number plan */
-    }
+     if (smpp->dest_addr_npi > -1) {
+        pdu->u.submit_sm.dest_addr_npi = smpp->dest_addr_npi;
+        debug("bb.sms.smpp", 0, "SMPP[%s]: Manually forced dest-addr-npi = %d", octstr_get_cstr(smpp->conn->id), smpp->dest_addr_npi);
+      }
+      else
+         pdu->u.submit_sm.dest_addr_npi = GSM_ADDR_NPI_E164; /* ISDN number plan */
+
 
     /*
      * if its a international number starting with +, lets remove the
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.