The config group for smsc looks like this:
group = smsc
smsc = smpp
host = "xxxxxx"
port = "xxxx"
smsc-id = "xxxxx"
throughput = 40
denied-smsc-id = "*"
allowed-smsc-id = "xxxxx"
smsc-username = "xxxxxx"
smsc-password = "xxxxxxx"
system-type = "xxxxxxx"
connect-allow-ip = "*.*.*.*"
transceiver-mode = true
reconnect-delay = 10
max-pending-submits=5
# validityperiod=720
validityperiod=60
# connection-timeout = 0
esm_class=3 # default 0
The "esm_class" define the ESM CLASS value, if not present, will assume
the default value 0x00000000. I have working this perfectly..
BEGIN DIFF
******************************************************************************
diff -ruh /Users/alvaro/Desktop/gateway-1.4.3/gw/smsc/smsc_smpp.c /
Users/alvaro/Desktop/gateway-1.4.3-0.3/gw/smsc/smsc_smpp.c
--- /Users/alvaro/Desktop/gateway-1.4.3/gw/smsc/smsc_smpp.c 2009-01-12
13:46:50.000000000 -0300
+++ /Users/alvaro/Desktop/gateway-1.4.3-0.3/gw/smsc/smsc_smpp.c 2009-03-18
15:16:56.000000000 -0400
@@ -165,6 +165,7 @@
long connection_timeout;
long wait_ack;
int wait_ack_action;
+ int esm_class_default;
SMSCConn *conn;
} SMPP;
@@ -217,7 +218,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)
+ long wait_ack, int wait_ack_action, int
esm_class_default)
{
SMPP *smpp;
@@ -258,6 +259,7 @@
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;
@@ -846,9 +848,13 @@
/*
* set the esm_class field
- * default is store and forward, plus udh and rpi if requested
- */
- pdu->u.submit_sm.esm_class =
ESM_CLASS_SUBMIT_STORE_AND_FORWARD_MODE;
+ * 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;
if (octstr_len(msg->sms.udhdata))
pdu->u.submit_sm.esm_class = pdu->u.submit_sm.esm_class |
ESM_CLASS_SUBMIT_UDH_INDICATOR;
@@ -2007,6 +2013,7 @@
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;
@@ -2138,6 +2145,10 @@
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,
@@ -2145,7 +2156,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);
+ service_type, connection_timeout, wait_ack,
wait_ack_action, esm_class_default);
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 /Users/alvaro/Desktop/gateway-1.4.3/gwlib/cfg.def /Users/
alvaro/Desktop/gateway-1.4.3-0.3/gwlib/cfg.def
--- /Users/alvaro/Desktop/gateway-1.4.3/gwlib/cfg.def 2009-01-12
13:46:55.000000000 -0300
+++ /Users/alvaro/Desktop/gateway-1.4.3-0.3/gwlib/cfg.def 2009-03-18
11:55:31.000000000 -0400
@@ -342,6 +342,7 @@
OCTSTR(flow-control)
OCTSTR(wait-ack)
OCTSTR(wait-ack-expire)
+ OCTSTR(esm_class)
OCTSTR(no-sender)
OCTSTR(no-coding)
OCTSTR(window)
******************************************************************************
END DIFF