[asterisk-bugs] [Asterisk 0011697]: Low trunk frequency + jitter buffer = broken audio, weird netstats

noreply at bugs.digium.com noreply at bugs.digium.com
Wed Jan 9 19:09:10 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11697 
====================================================================== 
Reported By:                nermal0
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   11697
Category:                   Channels/chan_iax2
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     new
Asterisk Version:           1.4.17 
SVN Branch (only for SVN checkouts, not tarball releases):  trunk 
SVN Revision (number only!): 96775 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             01-07-2008 03:15 CST
Last Modified:              01-09-2008 19:09 CST
====================================================================== 
Summary:                    Low trunk frequency + jitter buffer = broken audio,
weird netstats
Description: 
I'm using the latest Asterisk 1.4 SVN 96775 and speex 1.2beta3. Multiple
speex calls are routed over an IAX2 link between two Asterisks. Trunking is
enabled, with a trunk frequency of 60ms (default: 20ms). (NB: trunk
"frequency" is misleading here as it really defines the time distance
between two packets and not how many packets are sent per second). In
codecs.conf, I've set:

preprocess => true
pp_vad => true

Now as soon as I enable the jitter buffer (and add forcejitterbuffer=yes
as I'm on a jitter-free LAN for testing, but will move to a high delay link
later) frames get lost and the audio is broken. "iax2 show netstat" shows:

machine1*CLI> iax2 show netstats
                                -------- LOCAL --------------------- 
-------- REMOTE --------------------
Channel                    RTT  Jit  Del  Lost   %  Drop  OOO  Kpkts  Jit 
Del  Lost   %  Drop  OOO  Kpkts
IAX2/loadtest14-2            1  121  161  -179  26     0    0      0  122 
162 16777163  18     0    0      0
1 active IAX channel

note the "-179" lost packets on the local side and the "16777163" lost
ones on the remote side (integer overflow?).

In Asterisk 1.2, the very same setup produces fine audio quality and no
dropouts. I believe there is something seriously broken in the jitter
buffer implementation of 1.4.

Thanks for any pointers on how to fix this!
====================================================================== 

---------------------------------------------------------------------- 
 nermal0 - 01-09-08 19:09  
---------------------------------------------------------------------- 
On the asterisk console I get a lot of these during the call:

[Jan 10 12:07:50] WARNING[398]: translate.c:156 framein: no samples for
speextolin
[Jan 10 12:07:50] WARNING[398]: translate.c:192 framein: speextolin did
not update samples 0

Enabling "iax2 set debug jb" only provides output like:

LVllLVllLVllLVllLVllLVllLVllLVllLVllLVllLVllLVllLV
llLVllLVllLVlLVllLVllLVllLVlLVlLVllLVllLVllLVllLVl

Enabling "iax2 set debug" gives me a lot of reports like:

Rx-Frame Retry[ No] -- OSeqno: 049 ISeqno: 047 Type: IAX     Subclass:
PING   
   Timestamp: 1890500ms  SCall: 00002  DCall: 16385 [10.10.2.250:4569]
Tx-Frame Retry[000] -- OSeqno: 047 ISeqno: 050 Type: IAX     Subclass:
PONG   
   Timestamp: 1890500ms  SCall: 16385  DCall: 00002 [10.10.2.250:4569]
   RR_JITTER       : 8
   RR_LOSS         : 436198044
   RR_PKTS         : 33626
   RR_DELAY        : 48
   RR_DROPPED      : 0
   RR_OUTOFORDER   : 0

Rx-Frame Retry[ No] -- OSeqno: 050 ISeqno: 048 Type: IAX     Subclass: ACK
   
   Timestamp: 1890500ms  SCall: 00002  DCall: 16385 [10.10.2.250:4569]
Rx-Frame Retry[ No] -- OSeqno: 050 ISeqno: 048 Type: IAX     Subclass:
LAGRQ  
   Timestamp: 1890672ms  SCall: 00002  DCall: 16385 [10.10.2.250:4569]
Tx-Frame Retry[000] -- OSeqno: 048 ISeqno: 051 Type: IAX     Subclass:
LAGRP  
   Timestamp: 1890672ms  SCall: 16385  DCall: 00002 [10.10.2.250:4569]
Rx-Frame Retry[ No] -- OSeqno: 051 ISeqno: 049 Type: IAX     Subclass: ACK
   
   Timestamp: 1890672ms  SCall: 00002  DCall: 16385 [10.10.2.250:4569]

I hope this helps, please let me know if you need anything else to fix
this bug. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
01-09-08 19:09  nermal0        Note Added: 0076608                          
======================================================================




More information about the asterisk-bugs mailing list