msc: add f_tc_lu_and_mt_sms_paging_repeated

The testcase will ensure paging is repeated by the MSC.
Repeating will improve the reachability of MS when a Paging is lost
or not received because the MS is moving between states.

Change-Id: Ib5bf0b62e0639436cdcba03acbaedf1458e18873
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 063105c..0d54405 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -2060,6 +2060,48 @@
 	vc_conn.done;
 }
 
+/* LU followed by MT SMS with repeated paging */
+friend function f_tc_lu_and_mt_sms_paging_repeated(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
+	var SmsParameters spars := valueof(t_SmsPars);
+	var OCT4 tmsi;
+
+	f_init_handler(pars);
+
+	/* Perform location update and call */
+	f_perform_lu();
+
+	/* register an 'expect' for given IMSI (+TMSI) */
+	if (isvalue(g_pars.tmsi)) {
+		tmsi := g_pars.tmsi;
+	} else {
+		tmsi := 'FFFFFFFF'O;
+	}
+	f_ran_register_imsi(g_pars.imsi, tmsi);
+
+	f_vty_sms_send(hex2str(pars.imsi), "2342", "Hello SMS");
+
+	/* MSC->BSC: expect PAGING from MSC */
+	f_expect_paging();
+
+	/* MSC->BSC: expect PAGING from MSC */
+	f_expect_paging();
+
+	/* Establish DTAP / BSSAP / SCCP connection */
+	f_establish_fully(EST_TYPE_PAG_RESP);
+
+	spars.tp.ud := 'C8329BFD064D9B53'O;
+	f_mt_sms(spars);
+
+	f_expect_clear();
+}
+testcase TC_lu_and_mt_sms_paging_repeated() runs on MTC_CT {
+	var BSC_ConnHdlrPars pars;
+	var BSC_ConnHdlr vc_conn;
+	f_init();
+	pars := f_init_pars(1844);
+	vc_conn := f_start_handler_with_pars(refers(f_tc_lu_and_mt_sms_paging_repeated), pars);
+	vc_conn.done;
+}
 
 /* mobile originated SMS from MS/BTS/BSC side to SMPP */
 friend function f_tc_smpp_mo_sms(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
@@ -5845,6 +5887,7 @@
 	execute( TC_lu_and_mo_sms() );
 	execute( TC_lu_and_mt_sms() );
 	execute( TC_lu_and_mt_sms_paging_and_nothing() );
+	execute( TC_lu_and_mt_sms_paging_repeated() );
 	execute( TC_smpp_mo_sms() );
 	execute( TC_smpp_mt_sms() );
 
diff --git a/msc/MSC_Tests_Iu.ttcn b/msc/MSC_Tests_Iu.ttcn
index 6491e27..628fbcd 100644
--- a/msc/MSC_Tests_Iu.ttcn
+++ b/msc/MSC_Tests_Iu.ttcn
@@ -274,6 +274,15 @@
 	vc_conn.done;
 }
 
+testcase TC_iu_lu_and_mt_sms_paging_repeated() runs on MTC_CT {
+	var BSC_ConnHdlrPars pars;
+	var BSC_ConnHdlr vc_conn;
+	f_init(3);
+	pars := f_init_pars(101844);
+	vc_conn := f_start_handler_with_pars(refers(f_tc_lu_and_mt_sms_paging_repeated), pars);
+	vc_conn.done;
+}
+
 testcase TC_iu_smpp_mo_sms() runs on MTC_CT {
 	var BSC_ConnHdlr vc_conn;
 	f_init(3);
@@ -432,6 +441,7 @@
 	execute( TC_iu_lu_and_mo_sms() );
 	execute( TC_iu_lu_and_mt_sms() );
 	execute( TC_iu_lu_and_mt_sms_paging_and_nothing() );
+	execute( TC_iu_lu_and_mt_sms_paging_repeated() );
 	execute( TC_iu_smpp_mo_sms() );
 
 	execute( TC_iu_gsup_mo_sms() );