bsc: Introduce test TC_assignment_emerg_setup_allow_imei

Related: OS#5849
Change-Id: I5a95cb0cd6903801db8cfcc1542bd6147461eebe
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index ea73f4a..c3743df 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -759,6 +759,7 @@
 	pars.mscpool.bssap_idx := bssap_idx;
 	pars.expect_tsc := c_BtsParams[0].tsc;
 	pars.imsi := f_rnd_imsi('00101'H);
+	pars.imei := f_rnd_imei('00101'H);
 
 	log(testcasename(), ": using IMSI ", pars.imsi);
 
@@ -9223,6 +9224,26 @@
 	f_shutdown_helper();
 }
 
+/* Test MO emergency call using MobileIdentity=IMEI (possible for emergency
+ * calls from phones without SIM card).
+ * 3GPP TS 24.008 section 10.5.1.4, OS#5849 */
+testcase TC_assignment_emerg_setup_allow_imei() runs on test_CT {
+	var TestHdlrParams pars := f_gen_test_hdlr_pars();
+	var MSC_ConnHdlr vc_conn;
+
+	/* Remove IMSI set by f_gen_test_hdlr_pars(), then IMEI will be used to place the call */
+	pars.imsi := omit;
+
+	f_init(1, true);
+	f_sleep(1.0);
+
+	f_vty_allow_emerg_msc(true);
+	f_vty_allow_emerg_bts(true, 0);
+	vc_conn := f_start_handler(refers(f_TC_assignment_emerg_setup_allow), pars);
+	vc_conn.done;
+	f_shutdown_helper();
+}
+
 /* EMERGENCY CALL situation #2, forbidden globally but allowed by BTS */
 testcase TC_assignment_emerg_setup_deny_msc() runs on test_CT {
 	var TestHdlrParams pars := f_gen_test_hdlr_pars();
@@ -12387,6 +12408,7 @@
 
 	/* Emergency call handling (deny / allow) */
 	execute( TC_assignment_emerg_setup_allow() );
+	execute( TC_assignment_emerg_setup_allow_imei() );
 	execute( TC_assignment_emerg_setup_deny_msc() );
 	execute( TC_assignment_emerg_setup_deny_bts() );
 	execute( TC_emerg_premption() );