Skip to content
Success

Changes

Summary

  1. trau: add AMR TRAU frame interworking facility (WIP) (details)
Commit 33c5663898387cdc83bb4a77109127d68d60de41 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:

* 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
The file was addedsrc/trau/amr_trau.c
The file was modifiedsrc/Makefile.am
The file was modifiedinclude/Makefile.am
The file was addedsrc/trau/amr_rtp.c
The file was addedinclude/osmocom/trau/amr_trau.h