[Asterisk-Users] Is There Media Accelerator For Better Asterisk Calls

Matt Riddell matt.riddell at sineapps.com
Tue Apr 26 13:34:24 MST 2005


chawki hammoud wrote:
> When I used ulaw, the sending speed rate was at 9.3
> Kbs and people can hear me fine. The receiving speed
> rate was oscillating around 5kbs and 9.3 kbs where at
> 9.3 kbs the quality of the call is good. If I changed
> the codec to a less bandwidth codec like gsm, the
> sending speed is 3.1 kbs and people can hear me fine
> and the receiving call alternates around 1 kbs and 3.1
> kbs where at 3.1 kbs i can hear people fine. In both
> codecs I experienced breaking up sounds when the rate
> goes beyond 9.3 and 3.1.

It looks to me like packet loss rather than bandwidth only.  I.E. if you 
get to max bandwidth you will see lost packets.  However routers further 
down the line can also cause packet loss (at times of high load).

5/9.3 * 100 = 53.763440860215053763440860215054
1/3.1 * 100 = 32.258064516129032258064516129032

So, you are probably getting a max of 53% packet loss with Ulaw and 32% 
with GSM.

I would guess that you have something in the region of 25% packet loss 
at a remote router and 10-25% loss on the local connection depending on 
load.

In order to try and confirm this, see if small packets get loss.

I.E. if you sent something that was trying to use 1 kps do you still get 
25% packet loss?

The other option (if you have access to the egress point - router etc) 
is to enable QOS on outgoing data so that you shape the traffic. 
Basically the idea of this is as follows:

You have multiple bins:

[ 1 ][ 2 ][ 3 ][ 4 ]  (for arguments sake)

The idea is that the traffic shaper will check bin 1 and if there is 
something in it, send it.  If not check bin 2 and send etc etc until you 
reach the last bin.

So you can see that if you were to put VoIP traffic into bin 1 and say 
downloads into bin 4, and SSH into bin 2 etc then whenever there is VoIP 
traffic it will get sent first.

So, how do you decide what goes into each bin?

Well, deciding on what goes into each bin can be done in multiple ways. 
  For example you can do it based on IP (src/dest), port (src/dest), 
tcp/udp, TOS flag etc.

A TOS flag is a small number that is included in every packet.  TOS 
stands for Type Of Service.  Basically you can mark packets as having 
different types of requirements.  I.E. lowdelay, maxreliability etc.

You can set the TOS flags for traffic in Asterisk.

So, the bins actually come from tc or similar, but the easiest way is to 
use a script like wondershaper ( http://lartc.org/wondershaper/ ).

Basically if you use wondershaper you can just edit the file to decide 
how your traffic gets managed.

Let us know how you go.

-- 
Cheers,

Matt Riddell
_______________________________________________

http://www.sineapps.com/news.php (Daily Asterisk News - html)
http://www.sineapps.com/rssfeed.php (Daily Asterisk News - rss)



More information about the asterisk-users mailing list