diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn
index 47a7690..c41466a 100644
--- a/mgw/MGCP_Test.ttcn
+++ b/mgw/MGCP_Test.ttcn
@@ -64,9 +64,9 @@
 	 * default values assigned below are used */
 	modulepar {
 		PortNumber mp_local_udp_port := 2727;
-		charstring mp_local_ip := "127.0.0.1";
+		charstring mp_local_ipv4 := "127.0.0.1";
 		PortNumber mp_remote_udp_port := 2427;
-		charstring mp_remote_ip := "127.0.0.1";
+		charstring mp_remote_ipv4 := "127.0.0.1";
 		PortNumber mp_local_rtp_port_base := 10000;
 		PortNumber mp_local_osmux_port := 1985;
 	}
@@ -124,7 +124,7 @@
 			/* connect the MGCP test port using the given
 			 * source/destionation ip/port and store the connection id in g_mgcp_conn_id
 			 * */
-			res := MGCP_CodecPort_CtrlFunct.f_IPL4_connect(MGCP, mp_remote_ip, mp_remote_udp_port, mp_local_ip, mp_local_udp_port, 0, { udp := {} });
+			res := MGCP_CodecPort_CtrlFunct.f_IPL4_connect(MGCP, mp_remote_ipv4, mp_remote_udp_port, mp_local_ipv4, mp_local_udp_port, 0, { udp := {} });
 			if (not ispresent(res.connId)) {
 				setverdict(fail, "Could not connect MGCP, check your configuration");
 				mtc.stop;
@@ -224,9 +224,9 @@
 	function tr_MGCP_RecvFrom_R(template MgcpResponse resp) runs on dummy_CT return template MGCP_RecvFrom {
 		var template MGCP_RecvFrom mrf := {
 			connId := g_mgcp_conn_id,
-			remName := mp_remote_ip,
+			remName := mp_remote_ipv4,
 			remPort := mp_remote_udp_port,
-			locName := mp_local_ip,
+			locName := mp_local_ipv4,
 			locPort := mp_local_udp_port,
 			msg := { response := resp }
 		}
@@ -1080,7 +1080,7 @@
 		var OsmuxTxHandle tx_hdl;
 
 		f_init(ep, true);
-		flow := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 112, "AMR/8000/1"));
+		flow := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 112, "AMR/8000/1"));
 		flow.em.portnr := mp_local_osmux_port;
 		flow.osmux_cid := -1;
 		f_flow_create_osmux(OsmuxEM, ep, call_id, "recvonly", flow, false);
@@ -1117,7 +1117,7 @@
 		var OsmuxTxHandle tx_hdl;
 
 		f_init(ep, true);
-		flow := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000/1"));
+		flow := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 111, "GSM-HR-08/8000/1"));
 		flow.em.portnr := mp_local_osmux_port;
 		flow.osmux_cid := 2;
 		f_flow_create_osmux(OsmuxEM, ep, call_id, "loopback", flow);
@@ -1198,7 +1198,7 @@
 		f_init(ep, true);
 
 		/* from us to MGW */
-		flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 112, "AMR/8000"));
+		flow[0] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 112, "AMR/8000"));
 		flow[0].rtp_cfg := c_RtpemDefaultCfg
 		flow[0].rtp_cfg.tx_payload_type := flow[0].pt;
 		/* 0014 is the ToC (CMR=AMR4.75) in front of AMR Payload in RTP Payload */
@@ -1209,7 +1209,7 @@
 		f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]);
 
 		/* from MGW back to us */
-		flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 110, "AMR/8000"));
+		flow[1] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 110, "AMR/8000"));
 		flow[1].em.portnr := mp_local_osmux_port;
 		flow[1].osmux_cid := 2;
 		flow[1].osmux_cfg := c_OsmuxemDefaultCfg;
@@ -1277,7 +1277,7 @@
 		f_init(ep, true);
 
 		/* Create the first connection in receive only mode */
-		flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 112, "AMR/8000"));
+		flow[0] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 112, "AMR/8000"));
 		flow[0].rtp_cfg := c_RtpemDefaultCfg
 		flow[0].rtp_cfg.tx_payload_type := flow[0].pt;
 		/* 0014 is the ToC (CMR=AMR4.75) in front of AMR Payload in RTP Payload */
@@ -1290,7 +1290,7 @@
 
 		/* Create the second connection. This connection will be also
 		 * in receive only mode */
-		flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 110, "AMR/8000"));
+		flow[1] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 110, "AMR/8000"));
 		flow[1].em.portnr := mp_local_osmux_port;
 		if (crcx_osmux_wildcard) {
 			flow[1].osmux_cid := -1;
@@ -1591,7 +1591,7 @@
 		var RtpemStats stats;
 
 		f_init(ep);
-		flow := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 112, "AMR/8000/1"));
+		flow := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 112, "AMR/8000/1"));
 		flow.em.portnr := 10000;
 		f_flow_create(RTPEM[0], ep, call_id, "recvonly", flow, true);
 
@@ -1629,7 +1629,7 @@
 		var RtpemStats stats;
 
 		f_init(ep);
-		flow := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000/1"));
+		flow := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 111, "GSM-HR-08/8000/1"));
 		flow.em.portnr := 10000;
 		f_flow_create(RTPEM[0], ep, call_id, "loopback", flow);
 
@@ -1663,13 +1663,13 @@
 		f_init(ep);
 
 		/* from us to MGW */
-		flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, pt_a, codec_name_a));
+		flow[0] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, pt_a, codec_name_a));
 		/* bind local RTP emulation sockets */
 		flow[0].em.portnr := 10000;
 		f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]);
 
 		/* from MGW back to us */
-		flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, pt_b, codec_name_b));
+		flow[1] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, pt_b, codec_name_b));
 		flow[1].em.portnr := 20000;
 		f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]);
 
@@ -1739,13 +1739,13 @@
 		f_init(ep);
 
 		/* Create the first connection in receive only mode */
-		flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 3, "GSM/8000/1"));
+		flow[0] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 3, "GSM/8000/1"));
 		flow[0].em.portnr := 10000;
 		f_flow_create(RTPEM[0], ep, call_id, "recvonly", flow[0], false);
 
 		/* Create the second connection. This connection will be also
 		 * in receive only mode */
-		flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 3, "GSM/8000/1"));
+		flow[1] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 3, "GSM/8000/1"));
 		flow[1].em.portnr := 20000;
 		f_flow_create(RTPEM[1], ep, call_id, "recvonly", flow[1], false);
 
@@ -1841,13 +1841,13 @@
 		f_init(ep);
 
 		/* from us to MGW */
-		flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 98, "AMR/8000"));
+		flow[0] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 98, "AMR/8000"));
 		/* bind local RTP emulation sockets */
 		flow[0].em.portnr := 10000;
 		f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]);
 
 		/* from MGW back to us */
-		flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 98, "AMR/8000"));
+		flow[1] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 98, "AMR/8000"));
 		flow[1].em.portnr := 20000;
 		f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]);
 
@@ -1857,8 +1857,8 @@
 		f_sleep(0.5);
 
 		/* Start inserting unsolicited RTP packets */
-		f_rtpem_bind(RTPEM[2], mp_local_ip, unsolicited_port);
-		f_rtpem_connect(RTPEM[2], mp_remote_ip, flow[0].mgw.portnr);
+		f_rtpem_bind(RTPEM[2], mp_local_ipv4, unsolicited_port);
+		f_rtpem_connect(RTPEM[2], mp_remote_ipv4, flow[0].mgw.portnr);
 		f_rtpem_mode(RTPEM[2], RTPEM_MODE_TXONLY);
 
 		f_sleep(0.5);
@@ -1894,13 +1894,13 @@
 		f_init(ep);
 
 		/* First connection (BTS) */
-		flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 110, "GSM-EFR/8000"));
+		flow[0] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 110, "GSM-EFR/8000"));
 		/* bind local RTP emulation sockets */
 		flow[0].em.portnr := 10000;
 		f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]);
 
 		/* Second connection (PBX) */
-		flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 110, "GSM-EFR/8000"));
+		flow[1] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 110, "GSM-EFR/8000"));
 		flow[1].em.portnr := 20000;
 		f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]);
 
@@ -1920,8 +1920,8 @@
 		 * transmitting for a while. We simulate this by injecting
 		 * some unsolicited packets on the behalf of the old source,
 		 * (old remote port) */
-		f_rtpem_bind(RTPEM[2], mp_local_ip, port_old);
-		f_rtpem_connect(RTPEM[2], mp_remote_ip, flow[0].mgw.portnr);
+		f_rtpem_bind(RTPEM[2], mp_local_ipv4, port_old);
+		f_rtpem_connect(RTPEM[2], mp_remote_ipv4, flow[0].mgw.portnr);
 		f_rtpem_mode(RTPEM[2], RTPEM_MODE_TXONLY);
 		f_sleep(1.0);
 		f_rtpem_mode(RTPEM[2], RTPEM_MODE_NONE);
@@ -1968,7 +1968,7 @@
 		f_vty_transceive(MGWVTY, "rtp-patch rfc5993hr");
 
 		/* Connection #0 (Bidirectional) */
-		flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000"));
+		flow[0] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 111, "GSM-HR-08/8000"));
 		/* bind local RTP emulation sockets */
 		flow[0].em.portnr := 10000;
 		flow[0].rtp_cfg := c_RtpemDefaultCfg;
@@ -1978,7 +1978,7 @@
 		f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]);
 
 		/* Connection #1 (Bidirectional) */
-		flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000"));
+		flow[1] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 111, "GSM-HR-08/8000"));
 		flow[1].em.portnr := 20000;
 		flow[1].rtp_cfg	:= c_RtpemDefaultCfg;
 		flow[1].rtp_cfg.tx_payload_type := flow[1].pt;
@@ -2033,7 +2033,7 @@
 		f_init(ep);
 
 		/* Connection #0 (Bidirectional) */
-		flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 112, "AMR/8000"));
+		flow[0] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 112, "AMR/8000"));
 		/* bind local RTP emulation sockets */
 		flow[0].em.portnr := 10000;
 		flow[0].rtp_cfg := c_RtpemDefaultCfg;
@@ -2044,7 +2044,7 @@
 		f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]);
 
 		/* Connection #1 (Bidirectional) */
-		flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 112, "AMR/8000"));
+		flow[1] := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 112, "AMR/8000"));
 		flow[1].em.portnr := 20000;
 		flow[1].rtp_cfg	:= c_RtpemDefaultCfg;
 		flow[1].rtp_cfg.tx_payload_type := flow[1].pt;
@@ -2123,7 +2123,7 @@
 		f_vty_config(MGWVTY, "mgcp", "conn-timeout 1"); /* reset in f_init_vty() */
 
 		log("Sending RTP data for 1.5s");
-		flow := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000/1"));
+		flow := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 111, "GSM-HR-08/8000/1"));
 		flow.em.portnr := 10000;
 		f_flow_create(RTPEM[0], ep, call_id, "loopback", flow);
 		f_rtpem_mode(RTPEM[0], RTPEM_MODE_BIDIR);
@@ -2208,7 +2208,7 @@
 		var RtpemStats stats;
 
 		f_init(ep);
-		flow := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000/1"));
+		flow := valueof(t_RtpFlow(mp_local_ipv4, mp_remote_ipv4, 111, "GSM-HR-08/8000/1"));
 		flow.em.portnr := 10000;
 		f_flow_create(RTPEM[0], ep, call_id, "loopback", flow);
 
