Re: smpp esm_class config, go to config file

Mathieu Bruneau <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
Hi,

Since this is kind of linked to the issue I had a few days ago. (Which
i'll probably try your patch) I did a more convenient patch (easier for
people to apply)

@Alvaro: To provide patch in this format you can use the following
command on most Unix/Linux style :)

diff -ruh gateway-1.4.3/ gateway-1.4.3-esm_patch/ > esm_patch

Mathieu Bruneau

Alvaro Talavera a écrit :

In response to this problem
http://www.mail-archive.com/[email protected]/msg03528.html , i write a
patch to make the esm_class configurable from the smpp group config.

i think than this changes must appear in next versions of kannel:

CHANGES:

ADD THIS LINES.

+ gwlib/cfg.def

line 345 - ADD OCTSTR(esm_class)

+ gw/smsc/smsc_smpp.c

- line 168, ADD

int esm_class_default;

- line 221, CHANGE

long wait_ack, int wait_ack_action)

TO

long wait_ack, int wait_ack_action, int esm_class_default)

- line 262, ADD

smpp->esm_class_default = esm_class_default;

- line 853, CHANGE

pdu->u.submit_sm.esm_class =
ESM_CLASS_SUBMIT_STORE_AND_FORWARD_MODE;

TO

pdu->u.submit_sm.esm_class = smpp->esm_class_default;

- line 2009, ADD

int esm_class_default;

- line 2138, ADD (add a blank line "press enter" paste this, and
other line "press enter")

if (cfg_get_integer(&esm_class_default, grp,
octstr_imm("esm_class")) == -1)

esm_class_default = ESM_CLASS_SUBMIT_DEFAULT_SMSC_MODE;

- line 2151, CHANGE

service_type, connection_timeout, wait_ack, wait_ack_action);

TO

service_type, connection_timeout, wait_ack, wait_ack_action,
esm_class_default);

In the attachments is the modified files..
esm_patch (text/plain, 3.4 KB)
diff -ruh gateway-1.4.3/gw/smsc/smsc_smpp.c gateway-1.4.3-esm_patch/gw/smsc/smsc_smpp.c
--- gateway-1.4.3/gw/smsc/smsc_smpp.c	2009-03-18 20:38:50.000000000 +0000
+++ gateway-1.4.3-esm_patch/gw/smsc/smsc_smpp.c	2009-03-18 20:41:14.000000000 +0000
@@ -165,7 +165,6 @@
     long connection_timeout;
     long wait_ack;
     int wait_ack_action;
-	int esm_class_default;
     SMSCConn *conn; 
 } SMPP; 
  
@@ -218,7 +217,7 @@
                          Octstr *my_number, int smpp_msg_id_type, 
                          int autodetect_addr, Octstr *alt_charset, Octstr *alt_addr_charset,
                          Octstr *service_type, long connection_timeout,
-                         long wait_ack, int wait_ack_action, int esm_class_default) 
+                         long wait_ack, int wait_ack_action) 
 { 
     SMPP *smpp; 
      
@@ -259,7 +258,6 @@
     smpp->connection_timeout = connection_timeout;
     smpp->wait_ack = wait_ack;
     smpp->wait_ack_action = wait_ack_action;
-	smpp->esm_class_default = esm_class_default;
     smpp->bind_addr_ton = 0;
     smpp->bind_addr_npi = 0;
  
@@ -848,13 +846,9 @@
 
     /*
      * set the esm_class field
-	 * Alvaro Talavera - [email protected]
-	 * (original)
-	 * pdu->u.submit_sm.esm_class = ESM_CLASS_SUBMIT_STORE_AND_FORWARD_MODE;
-	 */
-	
-    debug("bb.sms.smpp",0,"esm_class set in: %i", smpp->esm_class_default);	
-	pdu->u.submit_sm.esm_class = smpp->esm_class_default;
+     * default is store and forward, plus udh and rpi if requested
+     */
+    pdu->u.submit_sm.esm_class = ESM_CLASS_SUBMIT_STORE_AND_FORWARD_MODE;
     if (octstr_len(msg->sms.udhdata))
         pdu->u.submit_sm.esm_class = pdu->u.submit_sm.esm_class |
             ESM_CLASS_SUBMIT_UDH_INDICATOR;
@@ -2013,7 +2007,6 @@
     Octstr *alt_charset;
     Octstr *alt_addr_charset;
     long connection_timeout, wait_ack, wait_ack_action;
-    int esm_class_default;
 
     my_number = alt_addr_charset = alt_charset = NULL;
     transceiver_mode = 0;
@@ -2145,10 +2138,6 @@
         
     if (wait_ack_action > 0x03 || wait_ack_action < 0)
         panic(0, "SMPP: Invalid wait-ack-expire directive in configuration.");
-	
-	/* check for esm_class */
-	if (cfg_get_integer(&esm_class_default, grp, octstr_imm("esm_class")) == -1)
-        esm_class_default = ESM_CLASS_SUBMIT_DEFAULT_SMSC_MODE;
 
     smpp = smpp_create(conn, host, port, receive_port, system_type,  
     	    	       username, password, address_range,
@@ -2156,7 +2145,7 @@
                        dest_addr_npi, enquire_link_interval, 
                        max_pending_submits, version, priority, validity, my_number, 
                        smpp_msg_id_type, autodetect_addr, alt_charset, alt_addr_charset,
-                       service_type, connection_timeout, wait_ack, wait_ack_action, esm_class_default); 
+                       service_type, connection_timeout, wait_ack, wait_ack_action); 
  
     cfg_get_integer(&smpp->bind_addr_ton, grp, octstr_imm("bind-addr-ton"));
     cfg_get_integer(&smpp->bind_addr_npi, grp, octstr_imm("bind-addr-npi"));
diff -ruh gateway-1.4.3/gwlib/cfg.def gateway-1.4.3-esm_patch/gwlib/cfg.def
--- gateway-1.4.3/gwlib/cfg.def	2009-03-18 20:38:50.000000000 +0000
+++ gateway-1.4.3-esm_patch/gwlib/cfg.def	2009-03-18 20:41:14.000000000 +0000
@@ -342,7 +342,6 @@
     OCTSTR(flow-control)
     OCTSTR(wait-ack)
     OCTSTR(wait-ack-expire)
-    OCTSTR(esm_class)
     OCTSTR(no-sender)
     OCTSTR(no-coding)
     OCTSTR(window)
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.