commit | 36c823eef150a4d25957ae3149dea2cb6d9d8590 | [log] [tgz] |
---|---|---|
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | Thu Apr 25 00:55:02 2024 +0200 |
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | Fri Jun 14 16:14:25 2024 +0200 |
tree | dc0b405c401987182d2fae3df4762a415d0cf183 | |
parent | fa393fa1e9bd75047f48eeea42d20f8c61f8866b [diff] |
mgcp-client: always send 'm=audio' line Re-add the m=audio line to SDP emitted from libosmo-mgcp-client, even if the audio port is not set yet Patch a5acaa68db4cc26e342069ad2ef37c1b09e1efc2 introduced a presence flag for the RTP audio port number. This flag, when unset, also omitted the 'm=audio...' line completely, dropping the PT number definitions. Correct: m=audio 1234 RTP/AVP 96 <--- anounce 96 a=rtpmap:96 VND.3GPP.IUFP/16000 <--- further specify 96 a=fmtp:96 ... <--- further specify 96 When m=audio is missing, we only have orphaned rtpmap and fmtp entries. They are supposed to further specify the 96 listed in 'RTP/AVP 96', instead they are without context: a=rtpmap:96 VND.3GPP.IUFP/16000 a=fmtp:96 ... When the presence map indicates no port known, we still need to emit the list of PT numbers; so we're forced to send a port of 0: m=audio 0 RTP/AVP 96 a=rtpmap:96 VND.3GPP.IUFP/16000 a=fmtp:96 ... This is an important fix for osmo-hnbgw, which sends the first CRCX with an IUFP codec, at a time when the remote port is not yet known. osmo-mgw requires an m=audio line to accept incoming IuUP Initializaition requests. When m=audio is missing, osmo-mgw does not parse the IUFP codec, and 3G voice fails completely. This mgcp-client patch will emit valid codec config also when port == 0, fixing osmo-hnbgw voice, because osmo-mgw will know about IUFP from the start. Related: SYS#6907 SYS#6974 Related: osmo-mgw a5acaa68db4cc26e342069ad2ef37c1b09e1efc2 Change-Id: Id95b629453aec999100b5af821c6a0b9562bb597
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
osmo-mgw is typically co-located with
The libosmo-mgcp-client library exposes utilities used by e.g. OsmoMSC (found in osmo-msc.git) to instruct OsmoMGW via its MGCP service.
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.
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
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
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.
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
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.