Skip to content
Success

Changes

Summary

  1. trau: add AMR TRAU frame interworking facility (WIP) (details)
Commit 1e6bfee402ebfd147ee74da188554b40adca6622 by falcon
trau: add AMR TRAU frame interworking facility (WIP)

The simplistic design of osmo_trau2rtp() and osmo_rtp2trau() APIs
is not sufficient for the greater complexity encountered in AMR.
Instead let us introduce an interworking facility for AMR frames
that centers around a common intermediate format, with encoding
and decoding functions that convert between this internal
intermediate and 3 types of external interfaces: TRAU/TFO frames,
RTP in 3 possible formats (RFC 4867 BWE, RFC 4867 OA and TRAU-like
TW-TS-006) and speech encoder/decoder engines.

This AMR TRAU frame interworking facility is needed in order to
add AMR support to ThemWi E1 Abis MGW (replacement for the limited
E1 Abis capability in OsmoMGW), and it will also be used in
tw-border-mgw (ThemWi CN sw component) to terminate TW-TS-006 RTP
legs, interfacing to libtwamr speech encoder & decoder and to
in-band TFO per TS 28.062.

The present state of this patch is WIP, not for merging -
implementation is now complete per original intent, but the
following issues remain:

* I am now thinking that functions dealing conversion between
  s-bits and arrays of codec parameters, as well as DHF tables,
  may belong better in libosmocodec than as part of this facility.

* Unit tests needs to be developed for the main paths of TRAU frame
  encoding/decoding and RTP conversion - complexity is high enough
  to where unit tests are essential.

Change-Id: I42706c2f68ed29aff1bf451b37e783983f8de3b0
The file was modifiedinclude/Makefile.am
The file was addedsrc/trau/amr_rtp.c
The file was addedsrc/trau/amr_trau.c
The file was modifiedsrc/Makefile.am
The file was addedsrc/trau/amr_param.c
The file was addedinclude/osmocom/trau/amr_trau.h