aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/include/openbsc/mncc.h1
-rw-r--r--openbsc/src/mncc.c2
-rw-r--r--openbsc/src/rtp_proxy.c9
3 files changed, 11 insertions, 1 deletions
diff --git a/openbsc/include/openbsc/mncc.h b/openbsc/include/openbsc/mncc.h
index 16fa05365..fbf3cab1f 100644
--- a/openbsc/include/openbsc/mncc.h
+++ b/openbsc/include/openbsc/mncc.h
@@ -88,6 +88,7 @@ struct gsm_call {
#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 a5efc7312..f53b15dcb 100644
--- a/openbsc/src/mncc.c
+++ b/openbsc/src/mncc.c
@@ -83,7 +83,7 @@ static struct mncc_names {
{"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 f9207d661..551349750 100644
--- a/openbsc/src/rtp_proxy.c
+++ b/openbsc/src/rtp_proxy.c
@@ -82,6 +82,7 @@ struct rtp_x_hdr {
#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 @@ static int rtp_decode(struct msgb *msg, u_int32_t callref, struct msgb **data)
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 @@ int rtp_send_frame(struct rtp_socket *rs, struct gsm_data_frame *frame)
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);