MGCP_Test: test rtp directions separately in TC_ts101318_rfc5993_rtp_conversion

The testcase TC_ts101318_rfc5993_rtp_conversion tests the RTP packet
format conversion of ts101318 to rfc5993 and vice versa. At the moment
the testcase sends RTP packets in both directions at the same time. In
order to simplify the test and to make race conditions less likely, lets
test both directions separately and add some guard time.

Change-Id: Id9b69587f7fb5f6b0da072ac5f4863fd4111e597
diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn
index 1a45015..b46b178 100644
--- a/mgw/MGCP_Test.ttcn
+++ b/mgw/MGCP_Test.ttcn
@@ -1968,7 +1968,7 @@
 		f_vty_transceive(MGWVTY, "mgcp");
 		f_vty_transceive(MGWVTY, "rtp-patch rfc5993hr");
 
-		/* from us to MGW */
+		/* Connection #0 (Bidirectional) */
 		flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000"));
 		/* bind local RTP emulation sockets */
 		flow[0].em.portnr := 10000;
@@ -1978,7 +1978,7 @@
 		flow[0].rtp_cfg.tx_fixed_payload := '0b11b3eede60be4e3ec68838c7b5'O;
 		f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]);
 
-		/* from MGW back to us */
+		/* Connection #1 (Bidirectional) */
 		flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000"));
 		flow[1].em.portnr := 20000;
 		flow[1].rtp_cfg	:= c_RtpemDefaultCfg;
@@ -1987,17 +1987,31 @@
 		flow[1].rtp_cfg.tx_fixed_payload := '000b11b3eede60be4e3ec68838c7b5'O;
 		f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]);
 
-		f_rtpem_mode(RTPEM[1], RTPEM_MODE_BIDIR);
-		f_rtpem_mode(RTPEM[0], RTPEM_MODE_BIDIR);
-
+		/* Send RTP packets to connection #0, receive on connection #1 */
+		f_rtpem_mode(RTPEM[1], RTPEM_MODE_RXONLY);
+		f_sleep(0.5);
+		f_rtpem_mode(RTPEM[0], RTPEM_MODE_TXONLY);
 		f_sleep(1.0);
+		f_rtpem_mode(RTPEM[0], RTPEM_MODE_NONE);
+		f_sleep(0.5);
+		f_rtpem_mode(RTPEM[1], RTPEM_MODE_NONE);
 
+		/* Send RTP packets to connection #1, receive on connection #0 */
+		f_rtpem_mode(RTPEM[0], RTPEM_MODE_RXONLY);
+		f_sleep(0.5);
+		f_rtpem_mode(RTPEM[1], RTPEM_MODE_TXONLY);
+		f_sleep(1.0);
+		f_rtpem_mode(RTPEM[1], RTPEM_MODE_NONE);
+		f_sleep(0.5);
+		f_rtpem_mode(RTPEM[0], RTPEM_MODE_NONE);
+
+		/* Remove RTP flows and check statistics */
 		f_flow_delete(RTPEM[0]);
 		f_flow_delete(RTPEM[1], ep, call_id);
 
+		/* Check for errors */
 		stats[0] := f_rtpem_stats_get(RTPEM[0]);
 		stats[1] := f_rtpem_stats_get(RTPEM[1]);
-
 		f_rtpem_stats_err_check(stats[0]);
 		f_rtpem_stats_err_check(stats[1]);