summaryrefslogtreecommitdiffstats
path: root/msc
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2019-02-17 16:27:10 +0100
committerHarald Welte <laforge@gnumonks.org>2019-02-22 21:24:11 +0000
commit4c422b76ff414707b42d7134de9eeb952154723c (patch)
tree5bb9a6f6341c38e2e767ea5b7f892cf46875d63c /msc
parentb1b853a8ecb32d931e1fef3feb8c3107d9425887 (diff)
MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND
When a CSFB voice call is cleared by the MSC, it must include the CSFB INDICATOR in order to trigger the BSC to perform actions required for Fast Return to LTE. This patch changes TC_sgsap_lu_and_mt_call() and TC_bssap_lu_sgsap_lu_and_mt_call() to ensure the CSFB INDICATOR IE is present as expected. Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395
Diffstat (limited to 'msc')
-rw-r--r--msc/BSC_ConnectionHandler.ttcn9
-rw-r--r--msc/MSC_Tests.ttcn2
2 files changed, 8 insertions, 3 deletions
diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index 7b88192..b041007 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -646,13 +646,18 @@ runs on BSC_ConnHdlr {
setverdict(pass);
}
-function f_call_hangup(inout CallParameters cpars, boolean release_by_ms)
+function f_call_hangup(inout CallParameters cpars, boolean release_by_ms, boolean is_csfb := false)
runs on BSC_ConnHdlr {
var MobileIdentityLV mi;
var MNCC_PDU mncc;
var MgcpCommand mgcp_cmd;
var boolean respond_to_dlcx;
+ var template PDU_BSSAP t_clear := tr_BSSMAP_ClearCommand;
+
+ if (is_csfb) {
+ t_clear := tr_BSSMAP_ClearCommandCSFB;
+ }
MNCC.send(ts_MNCC_DISC_req(cpars.mncc_callref, valueof(ts_MNCC_cause(23))));
BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id)));
@@ -673,7 +678,7 @@ runs on BSC_ConnHdlr {
/* clearing of radio channel */
interleave {
- [] BSSAP.receive(tr_BSSMAP_ClearCommand) {
+ [] BSSAP.receive(t_clear) {
BSSAP.send(ts_BSSMAP_ClearComplete);
BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND);
}
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 00f9bec..7129f81 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -4471,7 +4471,7 @@ private function f_mt_lu_and_csfb_call(charstring id, BSC_ConnHdlrPars pars, boo
/* Complete the call, hold it for some time and then tear it down */
f_mt_call_complete(cpars);
f_sleep(3.0);
- f_call_hangup(cpars, true);
+ f_call_hangup(cpars, true, is_csfb := true);
/* Make sure that subscriber is still present and the SGs association is in tact (ref-counting) */
f_ctrl_get_exp(IPA_CTRL, "fsm.SGs-UE.id.imsi:" & hex2str(g_pars.imsi) & ".state", "SGs-ASSOCIATED");