From the MVPs: Using Lync Server 2013 calling number translation rules to change display number

This is the 25th in our series of guest posts by Microsoft Most Valued Professionals (MVPs). You can click the “MVPs” tag in the right column to see all the articles.

Since the early 1990s, Microsoft has recognized technology champions around the world with the MVP Award. MVPs freely share their knowledge, real-world experience, and impartial and objective feedback to help people enhance the way they use technology. Of the millions of individuals who participate in technology communities, around 4,000 are recognized as Microsoft MVPs. You can read more original MVP-authored content on the Microsoft MVP Award Program Blog.

This post is by Ståle Hansen, a Lync MVP. His blog is msunified.net. Than ks very much, Ståle!

Ståle here. A new feature for Enterprise Voice in Lync Server 2013 is the ability to change the display number for users when they dial out. This could be useful in several scenarios:

  • When you do not have enough numbers on the trunk for all your users
  • When users do not want to show their Direct Inward Dialing (DID) number
  • When a group of people want to show their call center or switchboard number

About the feature

This feature is configured on the trunk that can be found in the Lync control panel under Voice Routing -> Trunk Configuration -> <Site Trunk or Pool Trunk> . At the bottom of your trunk configuration page you have two options:

  • Calling number translation rules
    • It is here you can change the number displayed for a specific DID number or number series.
  • Called number translation rules
    • This will manipulate the number you have called so that it will be received correctly on the other side by the trunk.
    • You can change the format of the number like removing + or add a zero.

How to configure it

    1. Navigate to the trunk you want to configure and click Edit -> Show details….
    2. Scroll down to the bottom of the page.

clip_image001

    1. Under Calling number translation rules, click New.
    2. Enter the regex that fits your needs in terms of manipulating the numbers:
        • Maybe you want to remove some of the last digits to replace them with something else
        • Maybe you want to replace the entire number and show a completely different number
    3. After configuring your rule, click OK to save the rule.
    4. For the rule to take effect, you need to click OK on you trunk configuration, click the Commit button and Commit all.
    5. Accept the changes you made by clicking OK.
    6. You can test your rule by going back in to the Trunk Configuration and scrolling down to the bottom of the page.
    7. Type the number you want to manipulate in the Phone number to test field and clicking Go.
    8. See that your number will change to the number you want to be displayed.

clip_image003

We have now configured a simple Calling number translation rule. The regex builder does not support advanced expressions, so you may need to make the rules yourself.

Notes from the field

At a customer site I have seen trouble with using this approach when the customer also uses a third-party Lync call center product. The scenario was that it worked for a while, but after a week in production, the user became unable to place calls over the trunk or Lync to Lync. Changing the number to a non-manipulated number resolved the issue. I am not sure if it was a bug or that the third-party product interfered with the feature. You should pilot this feature in your deployment over one or two weeks before you roll it out in your organization.

You should give the different users different numbers that normalize to the number you want to display. Do not use extensions because that will not work and the number will not be normalized.

Alternatives

There is another method to do this and this method where available in Lync Server 2010 as well. You can give the same number to different users and use extensions

    1. Assign the switchboard or other function a DID number with an extension: +4798989800;ext=1.
    2. Assign the same DID number to the other users that will show the same number and use different extension:
    3. When these users dial out, the extension will not be displayed and the correct number will show.
    4. To normalize the incoming number correct, create a pool trunk configuration and choose the gateway you expect the call to come from.
    5. In called number translation rules, create a rule to add ;ext=1 to the number like this:

clip_image005

All inbound calls will now be routed to the user or queue assigned with ;ext=1. Everyone will show the same number when dialing out, since extensions will not be shown.

There are, however, some lessons learned using this approach. Fellow Lync MVP Ken Lasko has documented some scenarios where this approach will not work and I have experienced them in Lync Server 2013 as well. The problem is that the mediation server may decline the incoming call with the error code 485 Ambiguous call. This is because it thinks the same number is assigned to several users. The problem is actually related to the + sign; if you remove this, it will work. The workaround to this is therefore:

  1. If you are using a SIP provider, they may be able to not send the + to your Lync server. Call your provider and ask if this is an option.
  2. If you are using a PSTN gateway or IP-PBX that is sending a +, you should be able to easily modify the incoming rule to drop the + sign (as your rule is most likely explicitly adding a +).
  3. Create an MSPL script to forward the incoming number to the auto attendant directly.

Conclusion

Using the new feature in Lync Server 2013 to change the display number is an easy approach to control what number is shown externally. I hope this gives you some idea of the potential in outbound normalization of the calling number in Lync Server 2013.