Project

General

Profile

Actions

Feature #6474

open

Make ortp dependency optional

Added by falconia 28 days ago. Updated 27 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
06/02/2024
Due date:
% Done:

0%

Spec Reference:

Description

Right now OsmoCNI suite as a whole has a hard compile-time dependency on ortp: without ortp, one cannot build libosmo-abis, and hence cannot proceed further. However, out of all components that are needed for a 2G-only network, only OsmoBTS uses osmo_ortp, the wrapper around ortp provided by libosmo-abis. Therefore, this heaviweight external sw suite (ortp plus bctoolbox) is needed only on those physical machines that are going to function as a BTS (the embedded Linux part of sysmoBTS, or a box driving an SDR with osmo-bts-trx), but is not truly needed when one is putting together the sw suite for a machine that will be an MSC server, or even a BSC server that is not a BTS.

Furthermore, even in the case of OsmoBTS where the dependency on ortp appears to be fully justified (it is used to implement the jitter buffer at the interface from incoming RTP to fixed-timing GSM TDMA output), there is an alternative on the horizon. As part of Themyscira Wireless project, I have a plan to write my own RTP-input jitter buffer implementation that will be specifically designed for the particular application of RTP transport in GSM RAN, as opposed to the "universal" approach of ortp. ThemWi will need this new jitter buffer implementation as part of our transcoding MGW from IP-based GSM RAN to IP-PSTN: the current version of this MGW translates the RTP stream from RAN without any buffering or retiming, but having gained more operational experience, I have come to realize that our MGW design should be changed to resync the stream toward IP-PSTN to a fixed time base at the MGW, exactly as if we had a TDM-PSTN interface rather than IP-PSTN. The new jitter buffer will thus be implemented first in themwi-mgw and proven there; once it is proven good in ThemWi realm, it can be ported to one of Osmocom libraries, and OsmoBTS can be outfitted with an option to use either ortp or the new ThemWi-based jitter buffer. At that point the dependency on ortp can be made fully optional for the entire OsmoCNI suite end to end.

I propose adding a --disable-ortp option to libosmo-abis that will cause osmo_ortp module and its header file to be excluded from compilation and installation, just like the already existing --disable-dahdi option in the same repository and various --disable-* options in libosmocore. With this option added and no other changes, there will be an immediate pain relief for anyone needing to compile OsmoCNI for a Slackware (or any other strict UNIX philosophy OS/distro) machine that will only be HLR/MSC/BSC/etc but not a BTS. Compiling OsmoBTS will still require an installation of libosmo-abis with ortp enabled (which would remain the default) - but some time in the future the dependency of OsmoBTS on ortp (by way of osmo_ortp) can also be made optional when the new ThemWi jitter buffer becomes a reality.

Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)