aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2009-01-05 19:42:46 +0000
committerHarald Welte <laforge@gnumonks.org>2009-01-05 19:42:46 +0000
commit38e04372e54ed6eac7a58c14b66a6d94c2c23332 (patch)
tree27270088cc80698481b911f5bb58bcd38e3aee0b
parent196a366e302a79406c3043b82433e1c3ae390d24 (diff)
handle IDLE speech frames in trau_frame code
-rw-r--r--include/openbsc/trau_frame.h2
-rw-r--r--src/trau_frame.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/include/openbsc/trau_frame.h b/include/openbsc/trau_frame.h
index d307c52c9..1d0a943a9 100644
--- a/include/openbsc/trau_frame.h
+++ b/include/openbsc/trau_frame.h
@@ -52,6 +52,8 @@ struct decoded_trau_frame {
#define TRAU_FT_DATA_DOWN 0x16 /* 1 0 1 1 0 - 3.5.3 */
#define TRAU_FT_D145_SYNC 0x14 /* 1 0 1 0 0 - 3.5.3 */
#define TRAU_FT_EDATA 0x1f /* 1 1 1 1 1 - 3.5.4 */
+#define TRAU_FT_IDLE_UP 0x10 /* 1 0 0 0 0 - 3.5.5 */
+#define TRAU_FT_IDLE_DOWN 0x0e /* 0 1 1 1 0 - 3.5.5 */
int decode_trau_frame(struct decoded_trau_frame *fr, u_int8_t *trau_bits);
diff --git a/src/trau_frame.c b/src/trau_frame.c
index e0238ce02..8eb2b453c 100644
--- a/src/trau_frame.c
+++ b/src/trau_frame.c
@@ -61,6 +61,7 @@ static void decode_fr(struct decoded_trau_frame *fr, u_int8_t *trau_bits)
memcpy(fr->d_bits + d_idx, trau_bits + 305, 5);
}
+/* Decode according to 3.1.2 */
static void decode_amr(struct decoded_trau_frame *fr, u_int8_t *trau_bits)
{
int i;
@@ -90,6 +91,8 @@ int decode_trau_frame(struct decoded_trau_frame *fr, u_int8_t *trau_bits)
switch (cbits5) {
case TRAU_FT_FR_UP:
case TRAU_FT_FR_DOWN:
+ case TRAU_FT_IDLE_UP:
+ case TRAU_FT_IDLE_DOWN:
case TRAU_FT_EFR:
decode_fr(fr, trau_bits);
break;