diff options
author | Pablo Neira Ayuso <pablo@gnumonks.org> | 2017-08-07 14:01:15 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2017-08-27 02:33:49 +0200 |
commit | 6ceac7c017c337d3ee1164c5852fbb5a2659d9f2 (patch) | |
tree | 6f98c64a16d1ea28bbb467fadab4a820c15ad691 /src | |
parent | 41a5327178253f3d8c60b0ec81cb2ae6b03dc59d (diff) |
libmsc: set registered_delivery field in SMPP 3.4 DELIVER_SM messages
Propagate the status report request field to the SMPP message through
the registered_delivery field, so the ESME knows that the mobile phone
is asking for explicit delivery acknowledgment is required. See SMPP 3.4
specs section 5.2.17.
Change-Id: I59af60fa89cd10ae973c5e122789e3e03e3728ee
Diffstat (limited to 'src')
-rw-r--r-- | src/libmsc/smpp_openbsc.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libmsc/smpp_openbsc.c b/src/libmsc/smpp_openbsc.c index bf63f6be9..8a1a7dabf 100644 --- a/src/libmsc/smpp_openbsc.c +++ b/src/libmsc/smpp_openbsc.c @@ -606,6 +606,10 @@ struct osmo_smpp_cmd *smpp_cmd_find_by_seqnum(struct osmo_esme *esme, return NULL; } +/* See SMPP 3.4, Section 5.2.17. registered_delivery (1 byte field). */ +#define SMPP34_NO_DELIVERY_RECEIPT 0x0 +#define SMPP34_DELIVERY_RECEIPT_REQ 0x1 + static int deliver_to_esme(struct osmo_esme *esme, struct gsm_sms *sms, struct gsm_subscriber_connection *conn) { @@ -646,7 +650,10 @@ static int deliver_to_esme(struct osmo_esme *esme, struct gsm_sms *sms, deliver.protocol_id = sms->protocol_id; deliver.priority_flag = 0; - deliver.registered_delivery = 0; + if (sms->status_rep_req) + deliver.registered_delivery = SMPP34_DELIVERY_RECEIPT_REQ; + else + deliver.registered_delivery = SMPP34_NO_DELIVERY_RECEIPT; /* Figure out SMPP DCS from TP-DCS */ dcs = sms->data_coding_scheme; |