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
diff --git a/src/libmsc/msc_ho.c b/src/libmsc/msc_ho.c
index aa513eb..d89a24c 100644
--- a/src/libmsc/msc_ho.c
+++ b/src/libmsc/msc_ho.c
@@ -383,6 +383,7 @@
 	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 @@
 			/* 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 e6dee52..ab58526 100644
--- a/src/libmsc/ran_msg_a.c
+++ b/src/libmsc/ran_msg_a.c
@@ -1121,6 +1121,7 @@
 
 		.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,