I’m not a C programmer but I did the initial work to identify this bug and I’ve been paying a development group to work on it, which created this PR:
file.c: Convert RTP timestamp deltas to millisecond delays by AryanM200 · Pull Request #1753 · asterisk/asterisk
I’ve also been personally testing it. Discussions on the PR spawned this one:
rtp: Use timestamp difference for video playback rate. by gareth-palmer · Pull Request #1909 · asterisk/asterisk
And I also worked with Gareth to provide testing and research support to develop the:
rtptransmit - Play a .wav file on one more phones at the same time using the legacy RTP streaming API
command that is part of this:
usecallmanagernz/commands: Command line utilities.
He did not realize there was an old and a new API until I dug it out for him.
I also did hours and hours of work to identify a bug in the DD_WRT implementation of openvpn which was trashing VoIP rtp traffic passed over an openvpn VPN, that is documented here:
DD-WRT :: View topic - OpenVPN defect, bug, on MTU handling - you decide�����������
That did ultimately result in changes to DD_wrt that fixed the black hole and allowed for functioning VoIP over a lan2lan openvpn. This worked for several years until another openvpn breakage in April of 2025 broke SIP over it permanently on dd-wrt. I elected to not pursue troubleshooting on that since the attitude of DD-WRT devs today is that problems with UDP traffic over openvpn VPNs are not their problem to worry about since everything today is either TCP or UDP that implements PMTUD. Since as a rule many VoIP telephones either don’t implement PMTUD at all for rtp traffic or if they do it’s badly broken, (since they assume they are on a LAN with no part of it on a real VPN - an asinine assumption but what do you expect from desktop phone firmware monkeys) it seems better to just find desk phones with correctly coded SIP stacks if you are going to use them over a lan2lan VPN.
So, yeah, I’ve contributed. Not perhaps on something super obvious and flashy like a FreePBX module - but what good is a module if there’s something in the core that does not work? Fix the flaws in the engine first, then worry about the paint. And the engine is in Asterisk