Add RTP support for EFR

This is just the minimal support to receive and send EFR codec
RTP frames.

We are missing the code to convert TRAU frames in EFR format!
diff --git a/openbsc/include/openbsc/mncc.h b/openbsc/include/openbsc/mncc.h
index 16fa053..fbf3cab 100644
--- a/openbsc/include/openbsc/mncc.h
+++ b/openbsc/include/openbsc/mncc.h
@@ -88,6 +88,7 @@
 #define MNCC_LCHAN_MODIFY	0x0203
 
 #define GSM_TCHF_FRAME		0x0300
+#define GSM_TCHF_FRAME_EFR	0x0301
 
 #define GSM_MAX_FACILITY	128
 #define GSM_MAX_SSVERSION	128
diff --git a/openbsc/src/mncc.c b/openbsc/src/mncc.c
index a5efc73..f53b15d 100644
--- a/openbsc/src/mncc.c
+++ b/openbsc/src/mncc.c
@@ -83,7 +83,7 @@
 	{"MNCC_FRAME_DROP",	0x0202},
 	{"MNCC_LCHAN_MODIFY",	0x0203},
 
-	{"GSM_TRAU_FRAME",	0x0300},
+	{"GSM_TCH_FRAME",	0x0300},
 
 	{NULL, 0} };
 
diff --git a/openbsc/src/rtp_proxy.c b/openbsc/src/rtp_proxy.c
index f9207d6..5513497 100644
--- a/openbsc/src/rtp_proxy.c
+++ b/openbsc/src/rtp_proxy.c
@@ -82,6 +82,7 @@
 #define RTP_VERSION	2
 
 #define RTP_PT_GSM_FULL	3
+#define RTP_PT_GSM_EFR	97
 
 /* decode an rtp frame and create a new buffer with payload */
 static int rtp_decode(struct msgb *msg, u_int32_t callref, struct msgb **data)
@@ -152,6 +153,9 @@
 			return -EINVAL;
 		}
 		break;
+	case RTP_PT_GSM_EFR:
+		msg_type = GSM_TCHF_FRAME_EFR;
+		break;
 	default:
 		DEBUGPC(DMUX, "received RTP frame with unknown payload "
 			"type %d\n", rtph->payload_type);
@@ -196,6 +200,11 @@
 		payload_len = 33;
 		duration = 160;
 		break;
+	case GSM_TCHF_FRAME_EFR:
+		payload_type = RTP_PT_GSM_EFR;
+		payload_len = 31;
+		duration = 160;
+		break;
 	default:
 		DEBUGPC(DMUX, "unsupported message type %d\n",
 			frame->msg_type);