Commit
33c5663898387cdc83bb4a77109127d68d60de41
by falcontrau: 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:
* While there is no compile-time dependency, this patch has a
conceptual/logical dependency on:
https://gerrit.osmocom.org/c/libosmocore/+/41256
https://gerrit.osmocom.org/c/libosmocore/+/41257
such that I won't be lifting the present patch out of WIP
until it is known that the lower-level patches are acceptable.
* Unit tests need 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