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