ShoreTel QOS on CISCO Switches?

Quality of Service or QOS remains an interesting and challenging configuration for most engineers deploying VoIP solutions.   Generally you are concerned about QOS on both your Local Area network (LAN) and your Wide Area Network (WAN).     Though the principles and configuration for COS and DSCP markings are easily discoverable by anyone who takes the time to research these concepts, their application on various network components can be bit more challenging.    Generally, QOS on a LAN makes use of COS bits in the VLAN tag and DSCP in the TOS byte of an IP packets for WAN router access.   How these markings  interoperate with different manufactures however, is really interesting.  Take for example, the installation of ShoreTel equipment on Ethernet switches provided by CISCO.

Generally a CISCO QOS configuration is enabled with the command “mls qos” which is a global configuration command.  What you need to understand is that this command calls into action a wide variety of switch characteristics that may or may not be applicable to your deployment.  You need to know exactly what happens when this command is activated.  You can not  just “cut and paste” this configuration!  For Example:

Mls qos trust device cisco-phone

Mls qos trust cos

These commands make use of CISCO’s proprietary discover protocol to know that an IP phone is connected to the switch port.  Great if you are deploying CISCO phones, but what happens if you are deploying ShoreTel phones?  This command tells the switch that QOS markings are to be trusted if they ORIGINATE by the phone.  If they originate by the computer plugged into the phone, ignore it unless additional trust parameters enable it,  Now,  if a device other than a CISCO phone is connected to this switch port, guess what happens?   The COS marketing are ignored and overwritten with a default COS of 0.   This means that your ShoreTel phones will never get a TOS marking through to the Level 3 routers and you will wonder why your excellent QOS configuration is not working.

ShoreTel can mark the RTP media stream for QOS,  assuming you set them up in Call Control Options.  Generally, you will set this to a value of 0X2e or 46 in Decimal, the equivalent of CISCO Express Forwarding.  However, when these packets hit the CISCO switch interface configured with the normally excellent CISCO QOS configurations it will trash your QOS down to best efforts.  Take away: when using CISCO switches, TURN OFF AUTO QOS or; enter the following interface level command for each switch port:  (config-if-range)#mls qos trust dscp !