diff options
author | Pablo Neira Ayuso <pablo@gnumonks.org> | 2013-05-24 11:56:07 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@gnumonks.org> | 2013-05-24 12:16:49 +0200 |
commit | 70214a15d1d575802d821c3555f61c3797a0a89b (patch) | |
tree | b5cf3b05f2b25c93c6694b8044046c4c48f40df4 /src/amr.c | |
parent | 9d6d126c230f480510622dbb1a0f13cdef640146 (diff) |
osmux: further sanity checkings for AMR FT
According to RFC3267, AMR FT upper 9 should be discarded. This patch
adds extra validation to make sure that input RTP traffic encapsulating
AMR payload and OSMUX amr_ft field are OK with regards to that
restriction.
Diffstat (limited to 'src/amr.c')
-rw-r--r-- | src/amr.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -41,3 +41,22 @@ size_t osmo_amr_bytes(uint8_t amr_ft) { return amr_ft_to_bytes[amr_ft]; } + +int osmo_amr_ft_valid(uint8_t amr_ft) +{ + /* + * Extracted from RFC3267: + * + * "... with a FT value in the range 9-14 for AMR ... the whole packet + * SHOULD be discarded." + * + * "... packets containing only NO_DATA frames (FT=15) SHOULD NOT be + * transmitted." + * + * So, let's discard frames with a AMR FT >= 9. + */ + if (amr_ft >= 9) + return 0; + + return 1; +} |