libmgcp: add enum mgcp_type and use it

This patch replaces the field 'is_transcoded' in the mgcp_endpoint
structure by the enum mgcp_type, that can be further extended with
new types.
diff --git a/openbsc/src/libmgcp/mgcp_network.c b/openbsc/src/libmgcp/mgcp_network.c
index a2cfc23..e9b58b2 100644
--- a/openbsc/src/libmgcp/mgcp_network.c
+++ b/openbsc/src/libmgcp/mgcp_network.c
@@ -371,10 +371,19 @@
 	endp->net_end.octets += rc;
 
 	forward_data(fd->fd, &endp->taps[MGCP_TAP_NET_IN], buf, rc);
-	if (endp->is_transcoded)
-		return send_transcoder(&endp->trans_net, endp->cfg, proto == PROTO_RTP, &buf[0], rc);
-	else
-		return send_to(endp, DEST_BTS, proto == PROTO_RTP, &addr, &buf[0], rc);
+
+	switch (endp->type) {
+	case MGCP_RTP_DEFAULT:
+		return send_to(endp, DEST_BTS, proto == PROTO_RTP, &addr,
+			       buf, rc);
+	case MGCP_RTP_TRANSCODED:
+		return send_transcoder(&endp->trans_net, endp->cfg,
+				       proto == PROTO_RTP, buf, rc);
+	}
+
+	LOGP(DMGCP, LOGL_ERROR, "Bad MGCP type %u on endpoint %u\n",
+	     endp->type, ENDPOINT_NUMBER(endp));
+	return 0;
 }
 
 static void discover_bts(struct mgcp_endpoint *endp, int proto, struct sockaddr_in *addr)
@@ -450,10 +459,19 @@
 	endp->bts_end.octets += rc;
 
 	forward_data(fd->fd, &endp->taps[MGCP_TAP_BTS_IN], buf, rc);
-	if (endp->is_transcoded)
-		return send_transcoder(&endp->trans_bts, endp->cfg, proto == PROTO_RTP, &buf[0], rc);
-	else
-		return send_to(endp, DEST_NETWORK, proto == PROTO_RTP, &addr, &buf[0], rc);
+
+	switch (endp->type) {
+	case MGCP_RTP_DEFAULT:
+		return send_to(endp, DEST_NETWORK, proto == PROTO_RTP, &addr,
+			       buf, rc);
+	case MGCP_RTP_TRANSCODED:
+		return send_transcoder(&endp->trans_bts, endp->cfg,
+				       proto == PROTO_RTP, buf, rc);
+	}
+
+	LOGP(DMGCP, LOGL_ERROR, "Bad MGCP type %u on endpoint %u\n",
+	     endp->type, ENDPOINT_NUMBER(endp));
+	return 0;
 }
 
 static int rtp_data_transcoder(struct mgcp_rtp_end *end, struct mgcp_endpoint *_endp,