aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMychaela N. Falconia <falcon@freecalypso.org>2023-09-25 05:13:49 +0000
committerMychaela N. Falconia <falcon@freecalypso.org>2023-09-25 05:13:49 +0000
commit02c49373f37dc1e16b33c4cee18625d7a70bf290 (patch)
treedaf93b55d4c08b718fb939bbf05d3f7b93d39e37 /include
parent8de4ea6567eab63d2cbefc2b0ebbbce4b548dcc3 (diff)
SMS over GSUP: correctly route GSUP responses to MT SMS
When OsmoMSC is used with OsmoHLR rather than a GSUP-to-MAP gateway, MT-forwardSM.req GSUP messages delivering MT SMS will be coming from a separate SMSC relayed via OsmoHLR, rather than from OsmoHLR itself. When we reply to these messages, in order for these replies to reach the MT-sending SMSC via OsmoHLR, we need to save source_name from the request and regurgitate it into destination_name in our response messages. Implement this logic. Related: OS#6135 Change-Id: I436e333035b8f6e27f86a49fe293ea48ea07a013
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/msc/gsm_04_11.h3
-rw-r--r--include/osmocom/msc/transaction.h3
2 files changed, 5 insertions, 1 deletions
diff --git a/include/osmocom/msc/gsm_04_11.h b/include/osmocom/msc/gsm_04_11.h
index 19aaa3a5e..17a31ecdd 100644
--- a/include/osmocom/msc/gsm_04_11.h
+++ b/include/osmocom/msc/gsm_04_11.h
@@ -28,7 +28,8 @@ int gsm411_send_sms(struct gsm_network *net,
int gsm411_send_rp_data(struct gsm_network *net, struct vlr_subscr *vsub,
size_t sm_rp_oa_len, const uint8_t *sm_rp_oa,
size_t sm_rp_ud_len, const uint8_t *sm_rp_ud,
- bool sm_rp_mmts_ind);
+ bool sm_rp_mmts_ind, const uint8_t *gsup_source_name,
+ size_t gsup_source_name_len);
void gsm411_sapi_n_reject(struct msc_a *msc_a);
diff --git a/include/osmocom/msc/transaction.h b/include/osmocom/msc/transaction.h
index a5a2e84ea..aa529e494 100644
--- a/include/osmocom/msc/transaction.h
+++ b/include/osmocom/msc/transaction.h
@@ -149,6 +149,9 @@ struct gsm_trans {
bool sm_rp_mmts_ind;
struct gsm_sms *sms;
+
+ uint8_t *gsup_source_name;
+ size_t gsup_source_name_len;
} sms;
struct {
/**