diff options
author | Stefan Sperling <ssperling@sysmocom.de> | 2018-03-13 21:11:49 +0100 |
---|---|---|
committer | Stefan Sperling <ssperling@sysmocom.de> | 2018-03-13 21:13:27 +0100 |
commit | 3a74128ccce5f044eca6a208476383082af90b0f (patch) | |
tree | 69202352d3de758bfb30dbc45b8627a23d2ea4ae /src | |
parent | 621c729d8d557c82d92b12fe1d1df872697bbd6e (diff) |
restore sending of optional MM info messages
Since commit 2483f1b050496eda7f8707327204251c57212906 the function
gsm48_tx_mm_info() was not called anymore. No MM info messages were
transmitted to phones even if MM info messages were enabled via VTY.
With this commit, we call gsm48_tx_mm_info() after successfully
processing an IMSI ATTACH location update.
Change-Id: Ice5963d84253eb8c803cd2dfa8b25a4db5382827
Related: OS#2850
Diffstat (limited to 'src')
-rw-r--r-- | src/libmsc/gsm_04_08.c | 10 | ||||
-rw-r--r-- | src/libvlr/vlr_lu_fsm.c | 4 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index 08f1517e1..f604b8732 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -3575,6 +3575,15 @@ static int msc_vlr_tx_common_id(void *msc_conn_ref) return msc_tx_common_id(conn); } +/* VLR asks us to transmit MM info. */ +static int msc_vlr_tx_mm_info(void *msc_conn_ref) +{ + struct gsm_subscriber_connection *conn = msc_conn_ref; + if (!conn->network->send_mm_info) + return 0; + return gsm48_tx_mm_info(conn); +} + /* VLR asks us to transmit a CM Service Reject */ static int msc_vlr_tx_cm_serv_rej(void *msc_conn_ref, enum vlr_proc_arq_result result) { @@ -3741,6 +3750,7 @@ static const struct vlr_ops msc_vlr_ops = { .tx_cm_serv_rej = msc_vlr_tx_cm_serv_rej, .set_ciph_mode = msc_vlr_set_ciph_mode, .tx_common_id = msc_vlr_tx_common_id, + .tx_mm_info = msc_vlr_tx_mm_info, .subscr_update = msc_vlr_subscr_update, .subscr_assoc = msc_vlr_subscr_assoc, }; diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c index 9a4a23912..908e0e3ca 100644 --- a/src/libvlr/vlr_lu_fsm.c +++ b/src/libvlr/vlr_lu_fsm.c @@ -1257,6 +1257,10 @@ static void lu_fsm_wait_lu_compl(struct osmo_fsm_inst *fi, uint32_t event, /* TODO: Set_Notification_Type 23.078 */ /* TODO: Notify_gsmSCF 23.078 */ /* TODO: Authenticated Radio Contact Established -> ARC */ + + if (lfp->type == VLR_LU_TYPE_IMSI_ATTACH) + lfp->vlr->ops.tx_mm_info(lfp->msc_conn_ref); + lu_fsm_success(fi); break; case VLR_ULA_E_LU_COMPL_FAILURE: |