Knowledgebase
DrVoIP Support > DrVoIP Network, VoIP, Security & AWS Cloud! > Knowledgebase

Setting QOS on ShoreTel Phones

Solution

Call Quality issues on VOiP phones can be hard to troubleshoot, and even harder to fix. It doesn't help when everyone notices it and complains about it to you regularly. Luckily this guide will teach you everything you need to know to get your ShoreTel phones sounding great.

Most likely what is happening when you get choppy or distorted phone calls is actually a problem with Quality of Service on your routers or switches. On most of today's 100 MB or 1GB switches you will never have a problem sound quality, but if you have a router connecting two sites you could easily come up with a bottleneck. The way to get around that bottle neck is to get your QoS properly setup.
QoS is short for Quality of Service. And it is vital to understand how it works if you want to fix your call quality issues. In this Document I might use the term CoS and QoS interchangeably. They are not exactly the same, but for the purpose of this Tutorial you can think of them as the same thing.

There are 4 different CoS levels:

1. CoS1 - Real time applications. This is where our phone calls need to be.
2. CoS2 - Critical data application. This is where your most important data applications need to go.
3. CoS3 - Business Data Applications. Put your applications that are just a little higher priority than average in here.
4. CoS4 - Standard Data Applications. All Traffic gets put into this by default. So, anything that is not in another CoS group will go here.

*Note - the real difference between CoS1 and CoS2 is that CoS1 tries to send everything in real time. If something gets slowed down it completely drops the packet, and just moves onto the next one. This actually helps phone calls, but can really mess up data applications. If you put those data applications in CoS2 it will make sure every packet gets transmitted. It just might not do it in real time.
Now that we know what CoS group our traffic needs to be I will show you how to get it in there.

First, we need to set shoretel to make all of its equipment send out a DiffServ / ToS Byte. This is a way to mark a value in the IP header of a packet. We can use that value to tell the routers (or switches) what CoS group to put that traffic in. We want to go into shoreware director. Then click on call control and go to options. Here you can set DiffServ / ToS Byte to 184. I'm not going to go into too much detail but this will give you a DSCP value of 184 which is a decimal value of 46. This is also called the EF Byte (or express forwarding byte). It is the highest DSCP value that you should ever use. Now, Make sure to save your changes, and reboot every piece of ShoreTel equipment so that it will start sending out this byte.

The Next step is to enable the DSCP trust on all of your switches. This will tell the switch to trust whatever DSCP value the equipment is sending. Some equipment will strip that value out if this is not changed. We mostly use Dell switches. I will attach the commands to do this on your typical 3500 series dell switch, but you might have to do a little research on how to enable this on any other brand of switches.

telnet onto your switch and type the following. Press enter after every line.
config
QoS trust dscp
exit
copy run startup
y
exit

If you have a piece of equipment that you are not sure about you can use Wireshark to test if it is allowing the proper DSCP values to go through. To do this you will need to install Wireshark on you shoretel server. You can find it pretty easily by doing a quick Google search. You want to look for traffic that came from a device on the other side of your switch. Look through the packet information and make sure the DSCP value is 184. You can make a quick filter that will only show you traffic with the proper DSCP value by typing the following in the filter line. "ip.dsfield.dscp == 0x2e". Most switches will pass this value through by default, but it is best to be 100% sure. In the follow ing example pictiure I wanted to make sure traffic coming through the 10.13.3.x subnet was getting passing the correct DSCP value. I have an access level switch that I cannot configure there, and I just wanted to make sure it was passing the traffic correctly. Luckily it is as we can tell from this wireshark data.

Now we need to get our routers setup to prioritize the traffic properly. Since there are so many different types of routers I cannot tell you exactly how to set it up on your specific router, but I will give you the big picture and an example of a typical setup on a Cisco router. First we need to put the following ports into CoS1

1. 2427 - This is the MGCP IP Phone receive port.
2. 2727 - This is the MGCP ShoreGear Switch receive port
3. 5440-5446 -ShoreGear switch-to-ShoreGear switch (Call Setup, ShoreSIP and Bandwidth Reservation)

Now we need to prioritize any traffic coming from the shoretel server that has a port greater than 1025. It needs to also be put into CoS1
The last and most important part is to prioritize anything with the DSCP value we made the phone equipment start pushing out earlier. This is where you might need to do some research. Different routers might want different values. Some will let you put EF (express forwarding). Some want the decimal value and others want the DSCP value. All of this traffic also needs to go into CoS1.
While you're in the router you will want to make sure the different CoS Groups are guaranteed a certain percentage of bandwidth. CoS1 is a little different that the rest since it is real time. We want to give that the highest percentage. 75% of your bandwidth is usually a good place to put CoS1. CoS2 - CoS4 will Always equal 100%. I like to put CoS2 at 80% CoS3 at 10% and CoS4 at 10%, but you can adjust these values to your liking.

As promised, here is a typical Cisco switch setup that I like. I got this from Shoretel's documentation, and it has come in very handy.

access-list 101 remark : ShoreTel Voice over IP Ports
access-list 101 permit udp any any eq 2427
access-list 101 permit udp any any eq 2727
access-list 101 permit udp any any range 5440 5446
access-list 102 remark : ShoreTel Server VoIP Packets
access-list 102 permit udp host 10.1.1.5 gt 1024 any gt 1024
                                                               ! Using the newer ACL ‘operator port'syntax
class-map SHORETEL_VOIP
match ip dscp ef
match access-group 101
match access-group 102
policy-map VOIP_POLICY
class SHORETEL_VOIP
priority percent 75
class class-default
set dscp default
fair-queue
random-detect
interface Serial0/0
service-policy output VOIP_POLICY

Now that you have got all those phone quality issues, that everyone has been griping about, taken care of you can finally shutdown your Laptop and get some well deserved relaxation time. So, remember me the next time you're sitting next to the pool without getting nagging calls about your phone system.

Author Trey Lester

 
Was this article helpful? yes / no
Related articles Understanding SIP Firewall Configuration
Sample basic router configuraiton Security hardening
ShoreTel PORT List
Setup Paging on ShoreTel
SIP - ShoreTel CISCO SIP Trunk Configuration
Article details
Article ID: 17
Category: ShoreTel
Rating (Votes): Article rated 3.2/5.0 (20)

 
« Go back