How to create a Centralized Speed Dial List and a Yes List in Lync 2013 / Skype for Business 2015 with Sonus SBC 1000/2000

Some days ago a Customer ask me if it’s possible to have a Centralized Speed Dial List and a “Yes List” in Lync 2013. This feature is present in the Customer’s old PBX, and they have to use the same feature in Lync also.

This is the complete set of PBX feature to replicate in Lync:

  • the Centralized Speed Dial List is stored on a IBM Notes DB (approximately 1500 entry) and directly managed by the switchboard operator
  • the range of the Speed Dial Numbers is 5000-6999
  • even if a user could not directly access PSTN to call national or mobile phone numbers, everyone could always call a number present in the Speed Dial List (this is why I call it a “Yes List”)

As I know this feature is missing from Lync, so I start to study a possible solution, based on Lync 2013 On-Premises and a Sonus SBC1000 as Voice Gateway. Here it is! 🙂

Short Version

The user call the SpeedDial Number directly (for ex 6727) -> the Voice Policy allow the range 5xxx and 6xxx -> the call reach the Sonus SBC1000 Voice GW -> a Transformation rule make an AD search to find a user or a contact with 6727 into ipPhone -> if there is a match, the Trasformation rule change the Called Number with the value present in telephoneNumber – > the call goes to the PSTN.

Detailed Version and How To

  1. Export the notes DB into a more standard .csv file.
    The columns are: “DisplayName, Company, SpeedDial, TelephoneNumber”
  2. Bulk create one AD Contact for every line in the .csv file (with a PowerShell script for example).
    Be sure to populate the msRTCSIP-PrimaryUserAddress (for example with sip:<SpeedDial>@<SIPDomain>) to have the Contacs loaded into Lync GAL
  3. Create or edit the Company_Phone_Number_Normalization_Rules.txt file into <LyncShare>\<WebServices>\ABFiles
    The file need to contain a rule to accept the SpeedDial numbers format.
    In our scenario we need to add this two lines to tell Lync that a 4-digits number is good 🙂
  4. Insert a line in the Dial Plan used by your Users to leave untouched the dialed number. Place it in the upper part of the Dial Plan.
    ^([56]\d{3})$ -> $1
  5. Create a new Voice Route to intercept the call to 5xxx and 6xxx numbers. Send the call to the Sonus SBC1000 Voice Gateway
  6. Open the Voice Policy of your users and create a new PSTN Usage Policy to use the new Voice Route
  7. Open the Sonus SBC1000 Console, go to Settings -> Auth and Directory Services -> Active Directory and configure or update the AD settings
  8. Go to Settings -> Transformation and create a new rule (or duplicate one existing).
    At the top of the rule add this two lines
    TransformationWhy? What they do?
    The first Line search for our SpeedDial Number, if the match is ok save the number in the User Variable #1, than the second line make a query in AD to find a user or a contact with the Called Number into ipPhone attribute, if found it replace the Called Address/Number with the value present in telephone attribute of the User/Contact.
  9. Then add (or use) standard lines to the Transformation Rule to manipulate the Caller and Called numbers before placing the call to PSTN

This solution was tested in our production environment without any issue.

I hope this could help some of you guys!
Any improvement or suggestion is welcome.



Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Blog at

Up ↑

%d bloggers like this: