diff --git a/openbsc/include/openbsc/abis_rsl.h b/openbsc/include/openbsc/abis_rsl.h
index 22a6a00..e0c835a 100644
--- a/openbsc/include/openbsc/abis_rsl.h
+++ b/openbsc/include/openbsc/abis_rsl.h
@@ -406,7 +406,8 @@
 /* ip.access specfic RSL extensions */
 int rsl_ipacc_bind(struct gsm_lchan *lchan);
 int rsl_ipacc_connect(struct gsm_lchan *lchan, u_int32_t ip,
-		      u_int16_t port, u_int16_t f8, u_int8_t fc);
+		      u_int16_t port, u_int16_t conn_id,
+		      u_int8_t rtp_payload2);
 
 int abis_rsl_rcvmsg(struct msgb *msg);
 
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index af2e22c..de3f1f5 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -205,8 +205,8 @@
 	struct {
 		u_int32_t bound_ip;
 		u_int16_t bound_port;
-		u_int8_t attr_fc;
-		u_int16_t attr_f8;
+		u_int8_t rtp_payload2;
+		u_int16_t conn_id;
 	} abis_ip;
 
 	struct gsm_lchan lchan[TS_MAX_LCHAN];
diff --git a/openbsc/src/abis_rsl.c b/openbsc/src/abis_rsl.c
index 6f14c60..63e99b1 100644
--- a/openbsc/src/abis_rsl.c
+++ b/openbsc/src/abis_rsl.c
@@ -1183,7 +1183,8 @@
 	return abis_rsl_sendmsg(msg);
 }
 
-int rsl_ipacc_connect(struct gsm_lchan *lchan, u_int32_t ip, u_int16_t port, u_int16_t f8, u_int8_t fc)
+int rsl_ipacc_connect(struct gsm_lchan *lchan, u_int32_t ip, u_int16_t port,
+		      u_int16_t conn_id, u_int8_t rtp_payload2)
 {
 	struct msgb *msg = rsl_msgb_alloc();
 	struct abis_rsl_dchan_hdr *dh;
@@ -1194,10 +1195,10 @@
 	dh->c.msg_discr = ABIS_RSL_MDISC_IPACCESS;
 	dh->chan_nr = lchan2chan_nr(lchan);
 
-	att_f8 = msgb_put(msg, sizeof(f8)+1);
+	att_f8 = msgb_put(msg, sizeof(conn_id)+1);
 	att_f8[0] = RSL_IE_IPAC_CONN_ID;
-	att_f8[1] = f8 >> 8;
-	att_f8[2] = f8 & 0xff;
+	att_f8[1] = conn_id >> 8;
+	att_f8[2] = conn_id & 0xff;
 
 	att_ip = msgb_put(msg, sizeof(ip)+1);
 	att_ip[0] = RSL_IE_IPAC_REMOTE_IP;
@@ -1213,7 +1214,7 @@
 	att_port[2] = port & 0xff;
 
 	msgb_tv_put(msg, RSL_IE_IPAC_SPEECH_MODE, 1);	/* F4 01 */
-	msgb_tv_put(msg, RSL_IE_IPAC_RTP_PAYLOAD2, fc);	/* FC 7F */
+	msgb_tv_put(msg, RSL_IE_IPAC_RTP_PAYLOAD2, rtp_payload2); /* FC 7F */
 	msg->trx = lchan->ts->trx;
 
 	return abis_rsl_sendmsg(msg);
@@ -1250,8 +1251,8 @@
 	/* update our local information about this TS */
 	ts->abis_ip.bound_ip = ntohl(ip.s_addr);
 	ts->abis_ip.bound_port = ntohs(port);
-	ts->abis_ip.attr_f8 = ntohs(attr_f8);
-	ts->abis_ip.attr_fc = *TLVP_VAL(&tv, RSL_IE_IPAC_RTP_PAYLOAD2);
+	ts->abis_ip.conn_id = ntohs(attr_f8);
+	ts->abis_ip.rtp_payload2 = *TLVP_VAL(&tv, RSL_IE_IPAC_RTP_PAYLOAD2);
 
 	dispatch_signal(SS_ABISIP, S_ABISIP_BIND_ACK, msg->lchan);
 
diff --git a/openbsc/src/gsm_04_08.c b/openbsc/src/gsm_04_08.c
index 3e2d171..9e0427e 100644
--- a/openbsc/src/gsm_04_08.c
+++ b/openbsc/src/gsm_04_08.c
@@ -2001,12 +2001,16 @@
 	case GSM_BTS_TYPE_NANOBTS_900:
 	case GSM_BTS_TYPE_NANOBTS_1800:
 		ts = remote_lchan->ts;
-		rsl_ipacc_connect(lchan, ts->abis_ip.bound_ip, ts->abis_ip.bound_port,
-				  lchan->ts->abis_ip.attr_f8, ts->abis_ip.attr_fc);
+		rsl_ipacc_connect(lchan, ts->abis_ip.bound_ip,
+				  ts->abis_ip.bound_port,
+				  lchan->ts->abis_ip.conn_id,
+				  ts->abis_ip.rtp_payload2);
 	
 		ts = lchan->ts;
-		rsl_ipacc_connect(remote_lchan, ts->abis_ip.bound_ip, ts->abis_ip.bound_port,
-				  remote_lchan->ts->abis_ip.attr_f8, ts->abis_ip.attr_fc);
+		rsl_ipacc_connect(remote_lchan, ts->abis_ip.bound_ip,
+				  ts->abis_ip.bound_port,
+				  remote_lchan->ts->abis_ip.conn_id,
+				  ts->abis_ip.rtp_payload2);
 		break;
 	case GSM_BTS_TYPE_BS11:
 		trau_mux_map_lchan(lchan, remote_lchan);
diff --git a/openbsc/src/vty_interface.c b/openbsc/src/vty_interface.c
index 12d5ae9..4626890 100644
--- a/openbsc/src/vty_interface.c
+++ b/openbsc/src/vty_interface.c
@@ -235,9 +235,9 @@
 	net_dump_nmstate(vty, &ts->nm_state);
 	if (is_ipaccess_bts(ts->trx->bts)) {
 		ia.s_addr = ts->abis_ip.bound_ip;
-		vty_out(vty, "  Bound IP: %s Port %u FC=%u F8=%u%s",
+		vty_out(vty, "  Bound IP: %s Port %u RTP_TYPE2=%u CONN_ID=%u%s",
 			inet_ntoa(ia), ts->abis_ip.bound_port,
-			ts->abis_ip.attr_fc, ts->abis_ip.attr_f8,
+			ts->abis_ip.rtp_payload2, ts->abis_ip.conn_id,
 			VTY_NEWLINE);
 	} else {
 		vty_out(vty, "  E1 Line %u, Timeslot %u, Subslot %u%s",
