Attention is currently required from: fixeria, jolly, laforge, pespin.
1 comment:
Patchset:
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 change 39280. To unsubscribe, or for help writing mail filters, visit settings.