diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index e556b48fc..903d5d742 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1022,6 +1022,28 @@ testcase TC_chan_act_ack_noest_emerg() runs on test_CT { f_TC_chan_act_ack_noest(ra := 'A5'O); } +/* Emergency call variant, but emergency calls are not allowed */ +testcase TC_chan_rqd_emerg_deny() runs on test_CT { + /* See also: 3GPP TS 04.08, Table 9.9, ra=101xxxxx */ + + var RSL_Message rx_rsl; + var GsmRrMessage rr; + + f_init(1); + f_vty_allow_emerg_bts(false, 0); + + IPA_RSL[0].clear; + f_ipa_tx(0, ts_RSL_CHAN_RQD('A5'O, 23)); + + rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeC(RSL_MT_IMMEDIATE_ASSIGN_CMD)); + rr := dec_GsmRrMessage(rx_rsl.ies[1].body.full_imm_ass_info.payload); + if (rr.header.message_type == IMMEDIATE_ASSIGNMENT_REJECT) { + setverdict(pass); + } else { + setverdict(fail, "immediate assignment not rejected"); + } +} + /* Test behavior if MSC never answers to CR */ testcase TC_chan_act_ack_est_ind_noreply() runs on test_CT { var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0)); @@ -6136,6 +6158,7 @@ control { execute( TC_chan_act_counter() ); execute( TC_chan_act_ack_noest() ); execute( TC_chan_act_ack_noest_emerg() ); + execute( TC_chan_rqd_emerg_deny() ); execute( TC_chan_act_ack_est_ind_noreply() ); execute( TC_chan_act_ack_est_ind_refused() ); execute( TC_chan_act_nack() );