commit | 315e78aab152631a52d9c0d92963ba1f90b8b9f5 | [log] [tgz] |
---|---|---|
author | Mychaela N. Falconia <falcon@freecalypso.org> | Fri Jun 23 18:42:11 2023 +0000 |
committer | Mychaela N. Falconia <falcon@freecalypso.org> | Fri Jun 23 18:42:11 2023 +0000 |
tree | 9ad1099b007c5e4da98884ad1161de81ef49370c | |
parent | 7d121cbaed89a77797e4434cbc4d8a65f4206ef1 [diff] |
ecu: add is_dtx_pause() method The ECU API of libosmocodec is unfortunately a peculiar non-3GPP entity: an ECU by itself, severed from Rx DTX handler functions, which is a logical/conceptual function with no place in the standard 3GPP architecture. The closest thing that exists in the standard architecture is the TFO spec (TS 28.062 section C.3.2.1.1) calling for an ECU application, but not comfort noise generation, in the case of destination leg doing DTXd - but even then it is not a totally "pure" ECU like libosmocodec API, it is an ECU plus a SID preener, and the SID preening transform is not possible within the constraints of existing libosmocodec ECU API. Hence truly correct handling of corner cases, particularly invalid SID, is sadly impossible in the current libosmocodec ECU framework. The only current user of this API is the UL path in osmo-bts-trx; however, as described in OS#6040, we would like to move that ECU call from osmo-bts-trx model-specific code to the common layer of osmo-bts. The current osmo-bts-trx incarnation avoids the SID handling problem by suppressing the call to ECU frame_out() after any SID (valid or invalid) was received on the air, thus pausing the RTP stream instead of emitting ECU output during DTXu pauses. We would like to retain the same behavior when we move this ECU call to the common layer, into its proper place _after_ the link quality check in l1sap - but the current method of flagging post-SID state in osmo-bts-trx will no longer work on the other side of that link quality check. As a workaround, have the ECU remember via a separate Boolean flag whether it is in post-SID state or not (was the most recent frame_in() any kind of SID or not), and provide is_dtx_pause() method to retrieve this flag - the relocated ECU call in osmo-bts UL path will use this new is_dtx_pause() method call to decide if it should call frame_out() or switch to pausing RTP output. Related: OS#6040 Change-Id: I3857be84bba12aaca0c2cca91458b7e13c5a642a
This repository contains a set of C-language libraries that form the core infrastructure of many Osmocom Open Source Mobile Communications projects.
Historically, a lot of this code was developed as part of the OpenBSC project, but which are of a more generic nature and thus useful to (at least) other programs that we develop in the sphere of Free Software / Open Source mobile communications.
There is no clear scope of it. We simply move all shared code between the various Osmocom projects in this library to avoid code duplication.
The libosmocore.git repository build multiple libraries:
The official homepage of the project is https://osmocom.org/projects/libosmocore/wiki/Libosmocore
You can clone from the official libosmocore.git repository using
git clone https://gitea.osmocom.org/osmocom/libosmocore
There is a web interface at https://gitea.osmocom.org/osmocom/libosmocore
Doxygen-generated API documentation is generated during the build process, but also available online for each of the sub-libraries at https://ftp.osmocom.org/api/latest/libosmocore/
Discussions related to libosmocore 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 us 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 libosmocore can be seen at https://gerrit.osmocom.org/#/q/project:libosmocore+status:open