aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2020-10-12 18:45:58 +0000
committerlaforge <laforge@osmocom.org>2020-10-13 08:43:10 +0000
commitffd2ef1de4da33bb0e8d5c1fa6e375a7dc544886 (patch)
tree4da37c56a0ddf44d323c3e65a0c5670fa0ec388b
parent66e1509ae10f841700f6e9ccf72d7c2d5cba4456 (diff)
as_handover: fix for signalling channel, without MGCP
-rw-r--r--bsc/MSC_ConnectionHandler.ttcn8
1 files changed, 5 insertions, 3 deletions
diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn
index 3e58f5a0..5460e2cb 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;