diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2020-06-09 14:34:40 +0200 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2020-06-22 16:00:04 +0000 |
commit | 7da956e4c66fca48c76fc5597a84854d326dd099 (patch) | |
tree | cf99c7038dcd8567a6793dd201706a39ef63ed8c | |
parent | f34d945f4fecc41fe9c46cea3ecb1bcb3fa55d5d (diff) |
msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST
When msc_ho_send_handover_request() generates the HANDOVER REQUEST
message, it does not populate the call_id struct member.
In ran_msg_a.c the struct member call_id is used, but the
call_id_present flag is not set, which also prevents the call_id being
added to the message
Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744
Related: OS#4582
-rw-r--r-- | src/libmsc/msc_ho.c | 3 | ||||
-rw-r--r-- | src/libmsc/ran_msg_a.c | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/libmsc/msc_ho.c b/src/libmsc/msc_ho.c index aa513eb58..d89a24c5e 100644 --- a/src/libmsc/msc_ho.c +++ b/src/libmsc/msc_ho.c @@ -383,6 +383,7 @@ static void msc_ho_send_handover_request(struct msc_a *msc_a) struct vlr_subscr *vsub = msc_a_vsub(msc_a); struct gsm_network *net = msc_a_net(msc_a); struct gsm0808_channel_type channel_type; + struct gsm_trans *cc_trans = msc_a->cc.active_trans; struct ran_msg ran_enc_msg = { .msg_type = RAN_MSG_HANDOVER_REQUEST, .handover_request = { @@ -402,6 +403,8 @@ static void msc_ho_send_handover_request(struct msc_a *msc_a) /* Don't send AoIP Transport Layer Address for inter-MSC Handover */ .rtp_ran_local = (msc_a->ho.new_cell.type == MSC_NEIGHBOR_TYPE_LOCAL_RAN_PEER) ? call_leg_local_ip(msc_a->cc.call_leg, RTP_TO_RAN) : NULL, + .call_id_present = true, + .call_id = cc_trans->callref, }, }; diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c index e6dee52d5..ab5852660 100644 --- a/src/libmsc/ran_msg_a.c +++ b/src/libmsc/ran_msg_a.c @@ -1121,6 +1121,7 @@ struct msgb *ran_a_make_handover_request(struct osmo_fsm_inst *log_fi, const str .imsi = n->imsi, .codec_list_msc_preferred = n->codec_list_msc_preferred, + .call_id_present = n->call_id_present, .call_id = n->call_id, .global_call_reference = n->global_call_reference, .global_call_reference_len = n->global_call_reference_len, |