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/us...@kannel.org/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 - alvarot...@gmail.com
- * (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)