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..



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)

Reply via email to