[Asterisk-Dev] Please help test jitterbuffer/PLC patches.

Steve Kann stevek at stevek.com
Tue Mar 15 10:51:38 MST 2005



Hi,

    The Jitterbuffer and PLC patches, plus IAX2 integration posted on 
mantis at 
http://bugs.digium.com/bug_view_advanced_page.php?bug_id=0002532 and the 
"trunktimestamp" patch posted at 
http://bugs.digium.com/bug_view_advanced_page.php?bug_id=0003400 are now 
ready for testing and review.

    The new jitterbuffer offers several new features, and gives us a 
foundation for even more improvement.  It presently includes the 
following features that may be of interest:

1) Packet Loss Concealment: It detects lost packets, and attempts to 
reconstruct them, concealing their loss.  With this functionality, you 
can hardly notice 10% packet loss situations.

2) Greatly improved diagnostics, including IAX2 "receiver reports", 
where you can get good details of the network situation with "iax2 show 
netstats".  (A manager-specific interface to this will be added soon -- 
it would also be nice to integrate this with the new enhanced CDR 
system, so these metrics can be stored for post-mortem analysis).

3) Some testing capabilities with a new command "iax2 test losspct 
<percentage>" which simulates a particular rate of random incoming 
packet loss.

4) Enhanced tuning for jitter vs loss.

5) Automatic bypass of the JB for VoIP <-> VoIP bridging (configurable).


TODO:

Since the jitterbuffer (any jitterbuffer, really) requires getting 
sensible timestamps, it is important that IAX2 clients output timestamps 
correctly.  In particular, discontinuities in timestamps will lead to 
audio loss or large delays.    There's some cleanup in chan_iax2 in 
particular that can address some of the causes of this.

Need to re-examine if IAX2 bridge optimization is doing the right things.


STATUS:
This code is presently in production on a handful of production boxes 
with pretty good results.   If we can get some more reports on it, we 
can hopefully get this into CVS.  Also useful would be for people to 
test this with the jitterbuffer (and PLC) turned off.

PATCHES:
You really ought to read the bug reports before you apply these, but 
here's the patches in question, in (one possible) order they will apply 
most cleanly:


[IAX2 trunk timestamps]
http://bugs.digium.com/file_download.php?file_id=5124&type=bug

[Add PLC to codecs]
http://bugs.digium.com/file_download.php?file_id=5155&type=bug

[Build the JB with asterisk]
http://bugs.digium.com/file_download.php?file_id=5137&type=bug

[Integrate JB with IAX2]
http://bugs.digium.com/file_download.php?file_id=5138&type=bug

[Add new "channel properties" flag to identify VoIP technologies]
http://bugs.digium.com/file_download.php?file_id=5139&type=bug

[Optionally bypass IAX2 jitterbuffer when we're bridged to a VoIP channel]
http://bugs.digium.com/file_download.php?file_id=5140&type=bug


-SteveK








More information about the asterisk-dev mailing list