diff options
author | Mychaela N. Falconia <falcon@freecalypso.org> | 2023-09-25 05:13:49 +0000 |
---|---|---|
committer | Mychaela N. Falconia <falcon@freecalypso.org> | 2023-09-25 05:13:49 +0000 |
commit | 02c49373f37dc1e16b33c4cee18625d7a70bf290 (patch) | |
tree | daf93b55d4c08b718fb939bbf05d3f7b93d39e37 /include | |
parent | 8de4ea6567eab63d2cbefc2b0ebbbce4b548dcc3 (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.h | 3 | ||||
-rw-r--r-- | include/osmocom/msc/transaction.h | 3 |
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 { /** |