TW-TS-001 and TW-TS-002 are enhanced RTP transport formats for GSM FR/HR/EFR codecs that restore the lost semantics of GSM 08.60 and 08.61 TRAU-UL frames. TW-TS-003 BSSMAP extension provides a way for a core network to ask the BSS to use these TRAU-like enhanced RTP formats instead of those specified in 3GPP TS 48.103; OsmoBSC already supports this mechanism when the BSS is comprised of IP-native OsmoBTS. However, in order to achieve the same effect when using E1-based legacy BTS hardware, the task of generating TW-TS-001/002 RTP packets for UL and accepting them for DL moves from OsmoBTS to the E1-Abis-interfacing MGW. osmo_trau2rtp() is already capable of generating these extended RTP formats on request, but until now there was no mechanism to signal from OsmoBSC to its associated E1 Abis MGW whether and when these extensions should be used. Considering that MGCP as it is used in Osmocom is essentially a private interface between OsmoBSC or OsmoMSC masters and OsmoMGW slaves, while the externally defined and generally interoperable interface is 3GPP TS 48.008, possibly extended with TW-TS-003, the sensible solution is to make a private extension to the way FR, EFR and HR codecs are described in SDP in the context of Osmocom-MGCP. The SDP extension birthed in the present patch consists of an fmtp parameter for GSM, GSM-EFR and GSM-HR-08 codecs that is structured just like the already implemented octet-align parameter for AMR. TW-TS-001 for FR and EFR shall be described as follows: m=audio 1234 RTP/AVP 3 110 a=rtpmap:3 GSM/8000/1 a=fmtp:3 tw-ts-001=1 a=rtpmap:110 GSM-EFR/8000/1 a=fmtp:110 tw-ts-001=1 TW-TS-002 for HR codec shall be described as follows: m=audio 1234 RTP/AVP 111 a=rtpmap:111 GSM-HR-08/8000/1 a=fmtp:111 tw-ts-002=1 The present patch affects two areas: * Experimental support for the newly defined extension is added to OsmoMGW-E1. This support is deemed experimental (not for production use) because even with this extension added, OsmoMGW-E1 is still unable to satisfy ThemWi requirements: neither ThemWi RTP endpoint library nor the TFO transform of TS 28.062 section C.3.2.1.1 are currently available in the repertoire of libraries whose use is allowed in mainline OsmoCNI components, yet both are required. * Support is added to libosmo-mgcp-client whereby OsmoBSC will be able to issue CRCX and MDCX commands to E1 Abis MGW endpoints with TW-TS-001 and/or TW-TS-002 enabled. Adding the necessary support to OsmoBSC will allow a complete working system to be deployed using OsmoBSC plus tw-e1abis-mgw, a replacement for OsmoMGW-E1 that works by using both Osmocom and ThemWi libraries. Related: OS#6614 Change-Id: I0d58e6d84418f50670c8ab7cf8490af3bc2f5c26
osmo-mgw - Osmocom MGW (Media GateWay) Implementation
This repository contains a C-language implementation of an MGW (Media GateWay) for use [not only] within the 2G (GSM) and/or 3G (UMTS) Cellular Network built using Osmocom CNI (Cellular Network Infrastructure) software.
The OsmoMGW program provides an MGCP interface towards an MGCP call agent (client) like OsmoMSC and OsmoBSC, and receives and sends RTP streams as configured via the MGCP control plane.
This Media Gateway implementation is capable of
- streaming RTP for 2G (3GPP AoIP and Abis-over-IP)
- streaming RTP for 3G (IuCS including the IuFP protocol)
- TDM (E1/T1) based Abis interface with TRAU frames on 16k sub-slots
- basic support for LCLS (Local Call, Local Switch) related features
- various built-in translation capabilities
- between Abis TRAU frames and RTP formats
- between 2G AMR/RTP and 3G AMR/IuFP/RTP
- between bandwidth-efficient and octet-aligned AMR
- between different standards for encapsulating GSM HR codec frames in RTP
osmo-mgw is typically co-located with
- osmo-bsc (GSM BSC)
- osmo-msc (GSM/UMTS MSC)
- osmo-hnbgw (UMTS HNBGW); osmo-mgw implements RTP relay between Iuh and IuCS interfaces
The libosmo-mgcp-client library exposes utilities used by e.g. OsmoMSC (found in osmo-msc.git) to instruct OsmoMGW via its MGCP service.
Homepage
You can find the OsmoMGW issue tracker and wiki online at https://osmocom.org/projects/osmo-mgw and https://osmocom.org/projects/osmo-mgw/wiki.
GIT Repository
You can clone from the official osmo-mgw.git repository using
git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw
There is a web interface at https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw
Documentation
User Manuals and VTY reference manuals are [optionally] built in PDF form as part of the build process.
Pre-rendered PDF version of the current "master" can be found at User Manual as well as the VTY Reference Manual
Mailing List
Discussions related to osmo-mgw are happening on the openbsc@lists.osmocom.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/openbsc for subscription options and the list archive.
Please observe the Osmocom Mailing List Rules when posting.
Contributing
Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards
We use a gerrit based patch submission/review process for managing contributions. Please see https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for more details
The current patch queue for osmo-mgw can be seen at https://gerrit.osmocom.org/#/q/project:osmo-mgw+status:open
History
OsmoMGW originated from the OpenBSC project, which started as a minimalistic all-in-one implementation of the GSM Network. In 2017, OpenBSC had reached maturity and diversity (including M3UA SIGTRAN and 3G support in the form of IuCS and IuPS interfaces) that naturally lead to a separation of the all-in-one approach to fully independent separate programs as in typical GSM networks.
OsmoMGW was one of the parts split off from the old openbsc.git. It originated as a solution to merely navigate RTP streams through a NAT, but has since matured.