diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 3e58f5a0b..5460e2cb7 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -1323,9 +1323,11 @@ altstep as_handover(inout HandoverState st) runs on MSC_ConnHdlr { * time. When we receive the RSL_RF_CHAN_REL command the media negotiation on * IPACC or MGCP level may be still in progress. In order to make sure that * we do only stop when we have seen an MDCX on MGCP level and another a CRCX - * as well as an MDCX on IPACC level. */ - if (g_media.mgcp_conn[0].mdcx_seen <= st.mdcx_seen_before_ho or - g_media.bts1.ipa_mdcx_seen == false or g_media.bts1.ipa_crcx_seen == false) { + * as well as an MDCX on IPACC level. + * If ipa_crcx_seen is false, this is not a voice channel and we need not check MGCP at all.. */ + if (g_media.bts.ipa_crcx_seen + and (g_media.mgcp_conn[0].mdcx_seen <= st.mdcx_seen_before_ho or + g_media.bts1.ipa_mdcx_seen == false or g_media.bts1.ipa_crcx_seen == false)) { repeat; } else { st.handover_done := true;