Lync Dialing Rule Optimizer

I found on the world wide web a interesting tool to create dialing rules in Lync.
Originally, the Optimizer created a simple text file that you would copy and paste into Lync Powershell. It would create the phone usage, route and trunk translation rules necessary for least cost routing for a given site. If you input the name or IP address of your PSTN gateway, it would set it in the route, but if not, then the route would not be associated with a gateway. The process was not very tolerant of errors either. If you mistyped the name of the PSTN gateway, much of the script would fail. The original output got you started, but you were still left to your own devices for pretty much everything else.
With this latest release, the Optimizer will provide you with a ready-made Powershell .PS1 script that will do the following:

  1. Prompts you for a site to apply the script to
  2. Checks for a PSTN gateway assigned to the site. If one isn’t found, you’ll be given the option to quit the script so you can create one in the topology (recommended). If you continue, you’ll have to assign the routes and trunk translation rules manually after you setup a PSTN gateway.
  3. Creates a site-level Voice Policy (unless one already exists).
  4. Creates standardized site-level normalization rules for local/long distance/international. If your site is in Canada, creates normalization rule for 310 toll free calls.
  5. Creates separate PSTN Usages for Local, National and International and adds them to the Voice Policy.
  6. Determines the PSTN gateway associated with the site. If no PSTN gateway is defined in the topology, you’ll have to assign the routes and trunk translation rules manually after you set one up.
  7. Creates routes for local, national, international, toll-free, and service numbers (411, 911 etc). If your site is in Canada, creates an additional route for 310 calls.
  8. Assigns those routes to the default PSTN gateway in the site (if available)
  9. Creates trunk translation rules for local calls (strip +1), national (strip +) and international calls (strip + and add 011). If you entered an external dialing prefix on the web page, it will take this into account as well. If you select the SIP Trunking option, then the trunk translation rules are not applied.

Preparation for the script is also much simpler. All you need to do beforehand to get the most out of the script is to ensure that your sites all have a PSTN gateway assigned. The script looks at the site and will try to apply the routes and translation rules to the default PSTN gateway assigned to that site. If one isn’t available, the script will still work, but you will have some manual labour to do afterwards. For more information look on Ken’s Unified Communications Blog.

Detailed Instructions

  1. Ensure all your Lync sites have a default PSTN gateway assigned to it
  2. Go to
  3. Pick your country from the drop-down list. Only a few are available now, but more will be added over time.
  4. Enter the area code information for the site you want to apply the script to
  5. If you have to enter 9 (or some other digit) to get an outside line, enter it in the appropriate box.
  6. If you are using a SIP trunk that accepts E.164 phone numbers, select the Using SIP Trunk option. If selected, the program will not create trunk translation rules. All numbers will be sent to the next hop formated as E.164. Note: Don’t select both an external access number AND SIP trunk options. The two options are mutually exclusive.
  7. If you want Lync to block premium rate phone numbers (like 900 in North America) for all users, select the Block Premium Numbers checkbox.
  8. If your North American local dialing area supports 7-digit dialing, select the 7-Digit Normalization checkbox. If you’re unsure if your local dialing area supports 7-digit dialing, leave this blank. Doesn’t apply to other countries.
  9. To receive updates should the ruleset change, enter your email address. Only applies to North American users.
  10. After pressing Generate Rules, wait a minute for the rules to be generated.
  11. The program will provide 2 files. The .PS1 file will do almost everything to get you up and running. The .TXT file provides only the least-cost routing rules for North American users, and assumes you will be doing most of the other work.
  12. Save the .PS1 file to your Lync server, start up the Lync Management Shell and run the script.
  13. You will be prompted for the site to apply the rules to. Select the appropriate site and in a few seconds you’ll have all you need to get started.