Home > Lync Server/Skype for Business Server > Quality of Service (QoS) Calculator – Plan Your Network, GPO, and Lync/Skype for Business Config More Easily

Quality of Service (QoS) Calculator – Plan Your Network, GPO, and Lync/Skype for Business Config More Easily


When deploying Microsoft Lync/Skype for Business Server, network health and configuration can be crucial.

The QoS Calculator allows you to pick and choose what components and clients will be used in your environment as well as which specific clients. You’re also able to pick a starting port number, port count, and DSCP value for each modality. The calculator will ensure that port ranges are consecutive, and that they don’t extend past 65535. The calculator will list all relevant Group Policy Object (GPO) settings, as well as the PowerShell commands needed to configure Lync/Skype for Business Server. Clients available for configuration include Lync 2010 and Lync 2013 full client, Lync 2010 Attendant and Landis Computer’s Attendant Pro attendant clients, Windows Store App client, Lync Phone Edition, and more. Server side options include A/V conferencing, application sharing, Response Group Service applications, Conference Announcement service, Call Park, UCMA apps, PSTN audio, A/V Edge services, Exchange UM, and the VDI client.

To start with, go to the INPUT tab. Any of the green cells can be changed. Reset buttons allow you to set port and port count settings back to their original values. Future releases will also reset the DSCP values as well (just need to figure out how to do that in Office VBA). Red cells indicate an error (missing or incorrect data).


Enter your Front End and Edge pool FQDNs. If you have a separate mediation pool, enter that name as well. The values defined here are used to compose the PowerShell commands needed to configure Lync/Skype for Business Server.


You can show/hide different policy types using the appropriate check boxes.


If your Mediation role is collocated with your Front End servers, check the box. This will combine the appropriate GPO policies together.


Changes to green cells are immediately reflected elsewhere in the calculator.

Once you have the values entered/verified, go to the POLICIES tab to see a list of GPO settings needed. Check out Elan Shudnow’s awesome Enabling QoS for Lync Server 2013 and Various Clients and Jeff Schertz’s Lync Quality of Service Behavior for a deep dive into setting up QoS.

Next, go to the POWERSHELL-SERVER tab, and you’ll see the relevant Lync/Skype for Business Management Shell commands to configure the server-side based on the info you supplied. Copy and paste each into Lync/Skype for Business Server Management Shell.

Now, go to the POWERSHELL-GPO tab, and you can copy and paste PowerShell code into a PowerShell console on a domain controller to automatically create and configure the Group Policy Objects for server and client machines.

Lastly, the Registry-Edge tab contains the PowerShell code that updates the local security policy on the edge servers is used to configure QoS, since GPOs aren’t used in non-domain joined machines. It’s important that these commands be run in an elevated PowerShell session.

I have tons of ideas for more features and functionality. Feel free to comment below on things you’d like to see in future versions.




None. Just open the file in Excel. As this is a macro based file, you’ll need to enable content when prompted.




v1.7 – 02/28/2017 – QoS-Calculator-v1.7.xlsm

v1.6 – 12-19-2016 – QoS Calculator v1.6.xlsm

v1.5 – 11-04-2016 – QoS-Calculator-v1.5.xlsm

v1.4 – 09-13-2016 – QOS Calculator v1.4.xlsm

v1.3 – 04-26-2016 – Lync 2013 QoS Calculator v1.3.xlsm

v1.2 – 02-27-2015 – Lync 2013 QoS Calculator v1.2.xlsm

v1.1 – 01-26-2015 – Lync 2013 QoS Calculator v1.1.xslm

v1.0 – 11-5-2014 – Lync 2013 QoS Calculator v1.0.xlsm


See the changelog for information on what’s changes/included in each version.

  1. Michal Maly
    November 5th, 2014 at 15:09 | #1

    Hi Pat, Looks good, well done… What puzzels me is how you separate Voice, Video and App sharing source ports on the Edge servers. Where do the source port ranges for Edge servers come from? Aren’t all the media modalities mixed up in the multiplex ports UDP 3478 and TCP 443? Would you elaborate?

  2. November 6th, 2014 at 12:02 | #2

    Looks great Pat! I’m excited to see the addition for automating the creation of the QoS GPOs.

  3. Steffen Puck
    November 7th, 2014 at 01:43 | #3

    Great Work – as always – looking forward to giving it a test ride.

  4. Andy G
    November 11th, 2014 at 15:39 | #4

    Pat, this is very cool.

    I believe there is a typo on the PowerShell sheet. On the Mediation Server line after the AudioPortCount parameter “B5” joined to the value.

    I like your approach to the default client side ports and setting them within the range of server side ports. It should help organizations that perform QoS on the network side by matching the destination port.

    Also, on the edge server policies, should the ports not be destination ports rather than source because the edge server uses udp/3478 as the source?

  5. Michael S
    February 25th, 2016 at 06:18 | #5

    Hi Pat,

    thank you for this great calculator.

    I would like to use it but without the password I can’t copy the powershell commands. Is there another way to copy them?

    Thanks, Michael

    • Pat Richard
      April 7th, 2016 at 14:34 | #6

      When you open the file, do you get prompted to enable macros? You shouldn’t have any issue copying the cells without passwords.

  6. Ari Protheroe
    May 25th, 2016 at 11:32 | #7

    For the next version of your calculator, the VDI based on Citrix HDX RealTime Optimization Pack 2.0 the executable which run on Windows based device is “MediaEngineService.exe”

    • Pat Richard
      May 25th, 2016 at 12:28 | #8

      Hey Ari!

      So, since I don’t have that platform available to me here, I would assume I’d need to configure that .exe for the same as the regular VDI, with audio, video, and app sharing?

  7. Daniel Falconetti
    July 25th, 2016 at 11:33 | #9

    Hi Pat,

    I’d like to add an option to allow to set an other set of default port value. Hélas, the worksheets are password protected. Would you mind sending me an unprotected version? I’ll send you my work.

    Thanks Daniel

  8. November 19th, 2016 at 12:07 | #10


    Great Tool with very useful scripts.
    I’m little bit confused about the client sip ports which are defined between 20080-20119. Should the sip port range not be between 5060 and 5069.
    And I’m missing the Sip-ports on the Frontend Server.

    Do I misunderstand something?

    • November 19th, 2016 at 13:26 | #11

      You can set those ranges to whatever you want. The green fields are all editable.

  9. Brad Owen
    November 22nd, 2016 at 14:10 | #12

    The Registry-Edge tab is missing the AppSharing and Video QoS policies in version 1.5

  10. Tim Russell
    December 7th, 2016 at 07:51 | #13

    This is a great tool, but there is still an issue with the formula in cell A8 on the PowerShell-GPO tab. All of the formulas are suppost to be for line 5 of the Polocies tab, but this cell has 5, then 6 then 5 resulting in Application sharing ports being applied to the Video settings.

    Later it is correct for Lync, it’s just the communicator line that is wrong.

  11. December 24th, 2016 at 09:28 | #14

    Any reason you’re not using New-NetQoSPolicy cmdlets? Seems like you could standardize both the PowerShell-GPO and Registry-Edge to use New-NetQoSPolicy/Set-NetQoSPolicy instead of the disparate config you’ve got now.

    Note: I haven’t explicitly tested this yet, btw, but it certainly seems possible. Just a thought 😉

  12. Derek H
    December 30th, 2016 at 15:29 | #15

    Does Row 3 on Registry-Edge tab contains a typo?
    As shown: “No not use NLA”
    Should be: “Do not use NLA”

    cheers, and thanks for all the hard work on this very useful tool!

  13. March 19th, 2017 at 06:10 | #17

    There is a mistake with v1.7. With Citrix VDI, the media engine on the thin client endpoint handles audio and video only. The application sharing remains in the VDI session with the Lync/Skype client

  14. Korbyn
    May 17th, 2017 at 10:02 | #18

    I believe the settings for Registry-Edge page are incorrect. The internal clients/servers will be connecting FROM the respective port ranges to either 443 or 3478 on the internal Edge interface, so the values should be populating into the “Remote Ports” not the “Local Ports” for the policy to be effective. When the edge sends audio traffic back to the client, it’ll need to tag when it’s talking to a Destination port or Remote port of the client with the respective value, as it’s source port will always either be 443 or 3478.

  15. July 4th, 2017 at 01:26 | #19

    Feature Request
    – Ability for multiple frontend pools (for pool paired scenarios)
    – Ability to rename the policies (for customers that have strict GPO naming conventions)

  16. July 4th, 2017 at 01:51 | #20

    @James Arber
    You can already change the name of the policies. It’s on the INPUT tab, in the upper right.

  17. July 4th, 2017 at 19:52 | #21

    @Pat Richard
    As usual, I’m blind. Thanks Pat. As for the multiple pool issue I can see there is a note about that on the PowerShell-Server Tab.

  18. Korbyn
    July 21st, 2017 at 15:20 | #22

    Finally got the edge registry entries working:
    1) Need a string value for “Application Name” -Value “*” or lock it down further to “MediaRelaySvc.exe” but I think some AppSharing date gets left out.
    2) “Local IP Prefix Length” can’t be “*”, it needs to be “32”
    3) “Throttle Length” needs to be changed to “Throttle Rate”
    4) The Ports need to be in “Remote Port” instead of “Local Port”. Edge internal local port for media is going to be either 443/tcp or 3478/udp regardless of the modality
    5) once the registry entries are in place, gpupdate /force and make sure no errors/warnings pop up. Even though it’s not a GPO, gpupdate does process the registry entries and cacks on bad qos reg entries.

  19. Skypey
    September 6th, 2017 at 09:49 | #23

    Thanks for this awesome tool.
    I’ve set up QoS and custom port ranges. The port ranges are working fine the dscp tagging of the packets not so well however. NetMon shows the traffic is from within my port range of QoS Settings and from lync.exe. The DSCP Value stays 0x0
    Im using Windows 10 (10.0.15063) any of you had this situation before?

  20. rob
    January 30th, 2018 at 15:17 | #24
  21. WolfgangBach
    February 20th, 2018 at 06:05 | #25

    So any updates on the Edge Registry Tab? Ports need to be in remote Port and not local.

  1. November 13th, 2014 at 20:03 | #1
  2. November 13th, 2014 at 20:11 | #2
  3. November 13th, 2014 at 20:11 | #3
  4. March 18th, 2015 at 01:40 | #4
  5. January 8th, 2016 at 17:21 | #5
  6. January 26th, 2016 at 09:26 | #6
  7. July 25th, 2018 at 16:27 | #7