aboutsummaryrefslogtreecommitdiffstats
path: root/tests/msc_vlr/msc_vlr_test_call.c
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2021-02-05 19:17:31 +0100
committerVadim Yanitskiy <vyanitskiy@sysmocom.de>2021-02-09 18:34:40 +0100
commitdd466cfa59ee9af114c83df34e4bd74450503db2 (patch)
tree8d660bf6dd05ecfa070f3a3f3ed2c7bd5b96f586 /tests/msc_vlr/msc_vlr_test_call.c
parentdbb3c723a40bdd789a171defcf075162b2e01d62 (diff)
fix _gsm48_cc_trans_free(): send MNCC REL.ind on Clear Request
Calling gsm48_cc_tx_release() before mncc_release_ind() has a side effect: the former may change CC state to GSM_CSTATE_RELEASE_REQ. This makes the later send MNCC_REL_CNF instead of MNCC_REL_IND, so if one of the call leg disconnects due to RF failure, the other one will not be terminated correctly. Makes both TC_{mo,mt}_call_clear_request TTCN-3 test cases pass. Change-Id: I3ad4a99757878de3796027325627c87d9a4e93f1 Related: Id16969fe0de04445d1320a96d35cf1d48cc8cf09 Related: SYS#5340
Diffstat (limited to 'tests/msc_vlr/msc_vlr_test_call.c')
-rw-r--r--tests/msc_vlr/msc_vlr_test_call.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/tests/msc_vlr/msc_vlr_test_call.c b/tests/msc_vlr/msc_vlr_test_call.c
index b4e20be38..9ab1066a6 100644
--- a/tests/msc_vlr/msc_vlr_test_call.c
+++ b/tests/msc_vlr/msc_vlr_test_call.c
@@ -457,11 +457,7 @@ static void test_call_mt2()
fake_time_passes(15, 23);
btw("The call failed, the BSC sends a BSSMAP Clear Request");
- /* FIXME: in this scenario, we send an MNCC_REL_CNF even though MNCC never asked us to MNCC_REL_REQ. Legacy
- * behavior did get to both MNCC_REL_IND, then an MNCC_REL_REQ from MNCC as well as a final MNCC_REL_CNF, but
- * this only worked synchronously, i.e. only with internal MNCC. Instead of mimicking that, we need a proper
- * async solution that also works with a PBX. */
- cc_to_mncc_expect_tx("", MNCC_REL_CNF);
+ cc_to_mncc_expect_tx("", MNCC_REL_IND);
dtap_expect_tx("032d0802e1af"); /* CC: Release */
expect_iu_release();
msc_a_release_cn(msub_msc_a(g_msub));