BSC_Tests_VAMOS: fix TC_vamos_multiplex_tch_f_tch_f

Properly clean up conns. To know when the multiplex is ready, use the
COORD port to tell the other component.

Related: OS#5444
Change-Id: I82b7eccd2ae30fdc3794ea9dad5d2d8f875d702d
diff --git a/bsc/BSC_Tests_VAMOS.ttcn b/bsc/BSC_Tests_VAMOS.ttcn
index ca722e7..9a53200 100644
--- a/bsc/BSC_Tests_VAMOS.ttcn
+++ b/bsc/BSC_Tests_VAMOS.ttcn
@@ -626,15 +626,27 @@
 	f_shutdown_helper();
 }
 
+const charstring PRIMARY_LCHAN_DONE := "PRIMARY_LCHAN_DONE";
+const charstring MULTIPLEX_DONE := "MULTIPLEX_DONE";
+
 /* First, primary lchan of TC_vamos_multiplex_tch_f_tch_f() */
 private function f_TC_vamos_multiplex_tch_f_tch_f1(charstring id) runs on MSC_ConnHdlr {
 	f_est_lchan_and_mode_modify_to_vamos();
+	f_sleep(1.0);
+	COORD.send(PRIMARY_LCHAN_DONE);
 	f_logp(BSCVTY, "f_est_lchan_and_mode_modify_to_vamos done");
+	COORD.receive(MULTIPLEX_DONE);
+	f_perform_clear(RSL);
 }
 
 /* Second, VAMOS shadow lchan of TC_vamos_multiplex_tch_f_tch_f() */
 private function f_TC_vamos_multiplex_tch_f_tch_f2(charstring id) runs on MSC_ConnHdlr {
+	f_sleep(1.0);
+	COORD.receive(PRIMARY_LCHAN_DONE);
 	f_est_and_reassign_to_secondary_lchan(valueof(t_RslChanNr_Osmo_VAMOS_Bm(1)));
+	f_sleep(1.0);
+	COORD.send(MULTIPLEX_DONE);
+	f_perform_clear(RSL);
 }
 
 /* Establish a primary lchan and modify it to VAMOS speech mode. Then establish
@@ -654,11 +666,14 @@
 
 	pars1.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
 	pars2.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
-	vc_conn1 := f_start_handler(refers(f_TC_vamos_multiplex_tch_f_tch_f1), pars1);
-	vc_conn1.done;
 
+	vc_conn1 := f_start_handler(refers(f_TC_vamos_multiplex_tch_f_tch_f1), pars1);
 	vc_conn2 := f_start_handler(refers(f_TC_vamos_multiplex_tch_f_tch_f2), pars2);
+	connect(vc_conn1:COORD, vc_conn2:COORD);
+
+	vc_conn1.done;
 	vc_conn2.done;
+
 	f_shutdown_helper();
 }