Link to home
Start Free TrialLog in
Avatar of Tercestisi
TercestisiFlag for United States of America

asked on

VoIP Prioritization over Cisco Hardware

We have about 40 IP phones (Mitel) at 3 separate locations; all locations are connected via fiber at 2Mbps.

Each site has it's own Mitel 3300 ICP, so only internal calls between locations and forwarded calls are going over the fiber connection.

We need to be able to prioritize the VoIP traffic, and I'm curious the best way of going about this.

We utilize Cisco Catalyst 2960's and 2955's at all locations. We also have a Cisco ASA 5510 Security Plus that acts as a router on a stick for routing all of our vlans. I know that there is a VoIP prioritization within these switches, but the way it's worded it sounds like it is for Cisco IP phones only. Is this correct, or can I use these switches to prioritize the traffic of the Mitel phones?  

If I can use these switches to prioritize the traffic for the IP phones, a guide would be very helpful to make sure I cover all the ends.
Avatar of Ken Boone
Ken Boone
Flag of United States of America image

Well typically what I do is the following:

From the cli run the global macro:

macro global apply cisco-global

This sets up some basic settings on the switch pertaining to spanning tree and a few other items

Then on the ports run the cisco-phone macro

macro apply cisco-phone $access_vlan x $voice_vlan y      - x is the data vlan, y is the voice vlan

This macro sets up the qos infrastructure, but it sets it up so that it "trusts" a cisco-phone.   Well it only knows its a cisco-phone through CDP, so we need to disable this trust function for a cisco-phone as you will not have a cisco phone and the switch will therefore remark all the COS to 0.  To do that enter the following command on the port.

no mls qos trust device cisco-phone

You can issue these commands easily with the range command.    

Ok so now you have a QoS infrastructure built within the switch.  Now you need to see what COS /  DSCP values the phones are using when they send their signalling and voice packets.  In many cases what they set will match up with the default calssifications that Cisco put into their default settings, if not we just need to adjust accordingly.

Also on the ports where you are connecting the fiber runs to between the switches enter this command:

macro apply cisco-switch

That will set the commands for the optimum port settings to trunk across the fiber with the appropriate qos set up.

Let me know if this makes sense
Avatar of Tercestisi

ASKER

Thanks for the response.

Should I use a separate vlan for the prioritization or can I have the phones on the same vlan as the data?

The phones are plugged into a 2960 PoE switch dedicated to both phones and wireless AP's. From there the switch is trunked into our 2960 used for data. That switch is then trunked to another 2960 that acts as a demarc point for the ISP, and that switch is then trunked to the other remote switches at the other locations.

Do I need to update the switches differently, or apply what you wrote to all switches that trunk that vlan?
You can have the phones on the same vlan but I would not recommend that unless you are technically unable to put the phones on a separate vlan.    From what I am reading, you are not plugging PCs into the back of the phone, sounds like you are connecting PCs to 1 switch, and phones to another.  If that is the case, you will need to remove the switchport voice vlan command from each port, and make the switchport access vlan  command specify the voice vlan.

If you are already trunking, the command should optimize the trunking settings but make sure you save your config ahead of time, in case you need to back out.  I would do this off hours as well to make sure nothing is affected.  The switches you specified should all use the same commands I gave you.
The phones will have to be on the same vlan... the ISP convinced the contracted company for the phone systems that routing the extra vlan would be more work than it's worth so now we are stuck using the same vlan for voice and data.

You are correct, the computers are plugged into a 2960 48-port Gigabit switch and the phones are plugged into a 2960 10/100 PoE switch.

You say that I need to set switchport access vlanX where X is the voice vlan, but as stated the voice vlan and the data vlan are one and the same.

Any help here would be appreciated, thanks.
Also to add:

The data network and all of the remote sites with the 20 different vlans are already up and running. The IP phones at the main corporate center are already up and running. Obviously since the phones are running into a dedicated switch that runs directly to the Mitel 3300, utilizing analog lines as it's outward communication, prioritization isn't necessary.

Where the prioritization is necessary is over the 2Mbps fiber links between sites.
Yea basically the macro that we use to set this up  macro apply cisco-ohone issues a bunch of commands on the interface - it is assuiming a cisco phone that will accept a PC connection into the phone as well and it needs to know the difference of the vlans.   In your case, since they are not cisco phones and you will not have PCs behind them, and because the phones are on the same vlan as the data, you will need to modify the config to remove the reference to the voice vlan.  no switchport voice vlan x.

Then just make sure that the switchport access vlan command is set to the correct vlan and you should be good.  In a setup with a voice and data vlan, the connection between the switch on the phone is a trunk connection so the commands that are used are really doing some things behind the scenes that don't apply to your scenario.  

So run the macro, use the same vlan in that command I gave you, realizing that it will create a config statement with the command switchport voice vlan x.  Just remove that statement from each port once the command has run and you will be fine.

Just pick a port that is not used and run the macro on that interface.  Then look at the config for that interface and you will see what I mean.

Hope that helps.
So the commands I would issue on the PoE switches that the phones are physically plugged into would be:

macro global apply cisco-global
macro apply cisco-phone $access_vlan x $voice_vlan x
(remove switchport voice vlan x from interfaces)
no mls qos trust device cisco-phone
#and then run on the trunk interfaces that connect the switches
macro apply cisco-switch

Then, the only command I should use on the other switches that are only trunking the vlans, and don't have any direct phone access would be:
macro apply cisco-switch

Would this be correct?
Otherwise, what if I set the CoP and DSCP to be identical on the phones and the Catalyst... then could I simply employ Cisco's AutoQos?
ASKER CERTIFIED SOLUTION
Avatar of Ken Boone
Ken Boone
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
That's what I thought concerning the $voice_vlan.

Thank you VERY much for your help; I'll report back how it goes.
Sounds good.
Does a CoS value of 11 for Mitel phones seem right... I don't know the entirety of the CoS range but all the reading I have done have been all under 9.
Also, what are my options for the ASA. How do I prioritize traffic for VoIP... everywhere I've read shows that prioritization is done per interface, and since the phones share the data vlan that isn't really possible.  

Any ideas?
COS is 0 - 7 at layer 2.  Voice should be cos = 5
DSCP = EF or 46 for voice
             and CS3 or 24 for signalling

Well that is where the DSCP value comes in.  That value will stick with the packet all the way through from end to end.  Here is a link to a cisco wiki that shows how to do priority queuing for voice:

http://supportwiki.cisco.com/ViewWiki/index.php/ASA_QoS