restore sending of optional MM info messages

Since commit 2483f1b050 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
This commit is contained in:
Stefan Sperling 2018-03-13 21:11:49 +01:00
parent 621c729d8d
commit 3a74128ccc
3 changed files with 15 additions and 0 deletions

View File

@ -217,6 +217,7 @@ struct vlr_ops {
/* UTRAN: send Common Id (when auth+ciph are complete) */
int (*tx_common_id)(void *msc_conn_ref);
int (*tx_mm_info)(void *msc_conn_ref);
/* notify MSC/SGSN that the subscriber data in VLR has been updated */
void (*subscr_update)(struct vlr_subscr *vsub);

View File

@ -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,
};

View File

@ -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: