diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c
index 8cfb611..ed29e84 100644
--- a/src/libmsc/gsm_04_08_cc.c
+++ b/src/libmsc/gsm_04_08_cc.c
@@ -1623,8 +1623,8 @@
 	rtp->callref = callref;
 	rtp->msg_type = cmd;
 	if (rtp_addr) {
-		rtp->ip = osmo_htonl(inet_addr(rtp_addr->ip));
-		rtp->port = rtp_addr->port;
+		if (osmo_sockaddr_str_to_sockaddr(rtp_addr, &rtp->addr) < 0)
+			return -EINVAL;
 	}
 	rtp->payload_type = payload_type;
 	rtp->payload_msg_type = payload_msg_type;
@@ -1710,6 +1710,7 @@
 	struct call_leg *cl;
 	struct rtp_stream *rtps;
 	struct osmo_sockaddr_str rtp_addr;
+	char ipbuf[INET6_ADDRSTRLEN];
 
 	/* FIXME: in *rtp we should get the codec information of the remote
 	 * leg. We will have to populate trans->conn->rtp.codec_cn with a
@@ -1735,7 +1736,9 @@
 		return -EIO;
 	}
 
-	LOG_TRANS_CAT(trans, DMNCC, LOGL_DEBUG, "rx %s\n", get_mncc_name(MNCC_RTP_CONNECT));
+	LOG_TRANS_CAT(trans, DMNCC, LOGL_DEBUG, "rx %s %s:%u\n", get_mncc_name(MNCC_RTP_CONNECT),
+		      osmo_sockaddr_ntop((const struct sockaddr*)&rtp->addr, ipbuf),
+		      osmo_sockaddr_port((const struct sockaddr*)&rtp->addr));
 
 	cl = trans->msc_a->cc.call_leg;
 	rtps = cl ? cl->rtp[RTP_TO_CN] : NULL;
@@ -1746,7 +1749,11 @@
 		return -EINVAL;
 	}
 
-	osmo_sockaddr_str_from_32n(&rtp_addr, rtp->ip, rtp->port);
+	if (osmo_sockaddr_str_from_sockaddr(&rtp_addr, &rtp->addr) < 0) {
+		LOG_TRANS_CAT(trans, DMNCC, LOGL_ERROR, "RTP connect with invalid IP addr\n");
+		mncc_recv_rtp_err(net, trans, rtp->callref, MNCC_RTP_CONNECT);
+		return -EINVAL;
+	}
 	rtp_stream_set_remote_addr(rtps, &rtp_addr);
 	rtp_stream_commit(rtps);
 	return 0;
diff --git a/src/libmsc/mncc_call.c b/src/libmsc/mncc_call.c
index 0deb903..9d52952 100644
--- a/src/libmsc/mncc_call.c
+++ b/src/libmsc/mncc_call.c
@@ -303,11 +303,10 @@
 		.rtp = {
 			.msg_type = MNCC_RTP_CREATE,
 			.callref = mncc_call->callref,
-			.port = rtp_local->port,
 		},
 	};
 
-	if (osmo_sockaddr_str_to_32n(rtp_local, &mncc_msg.rtp.ip)) {
+	if (osmo_sockaddr_str_to_sockaddr(rtp_local, &mncc_msg.rtp.addr)) {
 		mncc_call_error(mncc_call, "Failed to compose IP address " OSMO_SOCKADDR_STR_FMT "\n",
 				OSMO_SOCKADDR_STR_FMT_ARGS(rtp_local));
 		return false;
@@ -332,7 +331,7 @@
 		return true;
 	}
 
-	if (osmo_sockaddr_str_from_32n(&rtp, mncc_msg->ip, mncc_msg->port)) {
+	if (osmo_sockaddr_str_from_sockaddr(&rtp, &mncc_msg->addr)) {
 		mncc_call_error(mncc_call, "Cannot RTP-CONNECT, invalid RTP IP:port in incoming MNCC message\n");
 		return false;
 	}
diff --git a/src/libmsc/sdp_msg.c b/src/libmsc/sdp_msg.c
index cc54249..6170e8e 100644
--- a/src/libmsc/sdp_msg.c
+++ b/src/libmsc/sdp_msg.c
@@ -168,15 +168,16 @@
 	const struct sdp_audio_codec *codec;
 	struct osmo_strbuf sb = { .buf = dst, .len = dst_size };
 	const char *ip = sdp->rtp.ip[0] ? sdp->rtp.ip : "0.0.0.0";
+	char ipv = osmo_ip_str_type(ip) == AF_INET6 ? '6' : '4';
 
 	OSMO_STRBUF_PRINTF(sb,
 			   "v=0\r\n"
-			   "o=OsmoMSC 0 0 IN IP4 %s\r\n"
+			   "o=OsmoMSC 0 0 IN IP%c %s\r\n"
 			   "s=GSM Call\r\n"
-			   "c=IN IP4 %s\r\n"
+			   "c=IN IP%c %s\r\n"
 			   "t=0 0\r\n"
 			   "m=audio %d RTP/AVP",
-			   ip, ip,
+			   ipv, ip, ipv, ip,
 			   sdp->rtp.port);
 
 	/* Append all payload type numbers to 'm=audio <port> RTP/AVP 3 4 112' line */
