[asterisk-users] Re: Setting QOS settings in asterisk and/or CentOS?

Rich Adamson radamson at routers.com
Tue Sep 26 06:24:18 MST 2006

Steven wrote:
> I found this command if your Cisco switches support it:
> "auto qos voip trust"
> You set this on each interface.
> It automatically prioritizes all SIP and skinny traffic, but not iax.
> There is also "auto qos voip cisco-phone". This one can detect a Cisco phone and prioritize it.
> I just have to figure out how to verify that it is actually doing anything.

The auto qos function is a relatively new addition to the cisco routers 
and switches (eg, last year or so). The parameter is added to an 
individual interface (usually a serial interface), and it truly watches 
for actual traffic on that interface until you shut it down. At that 
point, auto qos "writes" the policy statements into the router config 
needed to support that actual traffic.

To use it, you must:
  - enable it on an individual interface,
  - do not change the interface "bandwidth" statement while its running,
  - cisco express forwarding must be enabled, and,
  - all previously attached QoS policies must be removed from the 
interface being sampled.

Its my understanding (although I've not actually done this) that auto 
qos can be used to monitor all traffic and not just voip packets. For 
example, some companies may wish to generate qos policies for Citrix, MS 
Terminal Server traffic, etc, and may not have any voip implementation 
at all. So, auto qos is not just for voip traffic and should be very 
usable with iax.

Since you've specifically mentioned the "auto qos voip cisco-phone" 
statement, that statement essentially says watch for voip traffic coming 
from a cisco phone. Reading between the lines says: Cisco ships their 
voip phones with QoS already preconfigured with signaling traffic in one 
DSCP class and rtp traffic in another DSCP class. If your non-cisco 
phones aren't set up with those exact same DSCP markings, auto qos won't 
write the policy statements into your router's config. (E.g., cisco 
tends to push their proprietary voip sutff, so guess what... "auto qos 
voip cisco-phone" was oriented around those phones and not necessarily 
the sip versions of that same cisco phone.) The simplest command is 
"auto qos" applied to an individual interface without any other 
qualifying parameters.

Keep in mind that auto qos is actually monitoring your traffic in real 
time, which assumes you've got voip phones, asterisk box, etc, already 
preconfigured to mark packets with TOS or DSCP bits. If that's not the 
case, then your voip traffic appears as "default" non-qos traffic and no 
policy will be written to the router's config.

For testing purposes, auto qos can be applied to an interface then 
multiple voip test calls can be initiated manually. It would then write 
the appropriate policy statements into your config based on those voip 
test calls. In a large production world, one would apply auto qos to an 
interface and let it be for some much longer period of time (eg, hours). 
Then auto qos would write the config statements necessary to support the 
actual traffic observed over that period of time.

There is no magic behind using auto qos; you can do the exact same thing 
manually by configuring policies in the router and doing something like 
"show policy-map interface s1". That display will tell you how much 
bandwidth is consumed for each QoS class that has been configured in 
your policy. The problem with doing that manually is that you have to 
know when your peak traffic period is for voip traffic, and then run the 
commands during that peak period to get it right.

There are technical white papers on the cisco web site (somewhere) that 
describes how to use the auto qos function, but keep in mind the 
function was only recently introduced so it is not yet implemented on 
every product or in every IOS image.

More information about the asterisk-users mailing list