Attention is currently required from: fixeria, jolly, laforge, pespin.
falconia has posted comments on this change by falconia. (
https://gerrit.osmocom.org/c/libosmo-netif/+/39280?usp=email )
Change subject: bring twjit into libosmo-netif
......................................................................
Patch Set 8:
(1 comment)
Patchset:
PS8:
As I see it, the biggest shortcoming of current twjit (and thus twrtp) for non-ThemWi
Osmocom/3GPP networks is its poor support for RTP streams that incur intentional gaps:
upon underrun resulting from a gap, phase shifts may be incurred in the media stream, and
"isolated island" comfort noise update packets get dropped. Because intentional
gaps in RTP in the case of DTX are officially called for by 3GPP specs, and this property
was even touted as a positive feature (some months ago I found a slide presentation from
NSN that puts the development of AoIP in its proper historical context), lack of support
for it is indeed a serious shortcoming when seen from non-ThemWi perspective for Osmocom
and for 3GPP compliance.
However, I now have an idea how to remedy this defect. This idea came to me literally
yesterday, as I sat at a Starbucks in a different town and thought about how the big
mainstream equipment vendors must have implemented those specs which they themselves
pushed through 3GPP committees - and after some dedicated thought, the idea crystallized
in my head. Basically we'll need to add a configurable parameter that sets the maximum
allowed length of the gap in quantum units (which would be 48 for FR/EFR DTX that sends
SID updates every 24 frames and allows one SID to be lost; other codecs will work with
lower settings, but 48 would be good for all), and add a fifth state to twjit state
machine: an UNDERRUN state. When underrun occurs in FLOWING, instead of transitioning
directly to EMPTY, transition to UNDERRUN and count down that maximum permissible gap
length, while incrementing `head_ts` on every output poll just like we did before the
underrun. If a same-flow RTP packet arrives, go back to FLOWING; if the maximum
permissible gap length runs out, then go to EMPTY.
I am willing to do the work to implement what I just described. However, I am getting
weary of spinning revision after revision of this patchset, hence I would like to do it
differently: can we get these current patches merged and then I'll develop a follow-on
patch that adds new functionality to support receiving intentional gaps? I am **not**
asking to replace ortp with twrtp in OsmoBTS prior to the proposed feature development,
just merging the present patch series into llbosmo-netif. We got 3 reviewers listed who
haven't said a word after Pau's +1...
--
To view, visit
https://gerrit.osmocom.org/c/libosmo-netif/+/39280?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: Ia3be5834571ca18b68939abbcf1ce3a879156658
Gerrit-Change-Number: 39280
Gerrit-PatchSet: 8
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-CC: fixeria <axilirator(a)gmail.com>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 05 Sep 2025 22:53:10 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No