In this post we are going over a couple of points that you should be aware when using extensions with Lync and I hope it can help you to solve some incoming calls issues when using Lync and extensions at user level when using a Media Gateway.
Lync and E.164 recomendation…
Microsoft recommendation is to use E.164 when assigning numbers on Lync which means a regular phone in Toronto 416-333-6666 would be something like tel:+14163336666 using E.164.
We can also take advantage of extensions using a single main number to all users and that can be done easily by adding ;ext=XXXX extensions where XXXX is your 4 digit extension and you can use as low as 1 digit if you want to. So an E.164 using extensions (in my case my extension will be 1234) would be like this:
Just to make sure that we are on the same page, the string above you are going to configure in the user’s properties as shown in the figure below.
Scenario and the issue
Let’s say that we have a scenario where the PBX and Lync have a media gateway in the middle and in this scenario let’s say that is an AudioCodes.
Let’s also say that your audiocodes is passing the phone number with + and the full number +14163336661234 and if you look at the logs on the Lync Server the error message is that the user can’t be found which is totally true and there is nothing wrong there. We need to adjust the gateway and Lync to understand each other.
The issue here is that the gateway is sending the number with + and when Lync sees the magical +, then Lync assumes that is normalized and try to find the user right away and then you have the error on the logs and call is not completed. Usually is almost right away.
There are a few workarounds for that but since in our scenario we have a Audiocodes/MediaGateway an easy fix is to make sure that we remove the + when sending to Lync, this way the information sent would be something like 141633366661234 which has the 11 digits for the number and extra 4 for normalization.
Now the responsibility of this relationship is on Lync’s turf and what we have to do is to create a normalization rule, before getting there let’s do a recap what we have right now:
Coming from AudioCodes: 141633366661234
My user’s attribute: tel:+14163336666;ext=1234
Okay now we have an idea what we should do, first of all we need to add the +, also the first 11 numbers are going to be static since we have extensions for all users using the main phone number. The second step is to use the 4 digits extension and add the ;ext=1234 at the end of the static number.
Let’s open Lync Server Control Panel, click on Voice Routing, double click on the desired Dial Plan and click New on the the Associated Normalization Rules. In the new page, define a name and click on Edit button. You can use the syntax below to adapt to your environment.
Just in case type in the format that is coming from the MediaGateway on the Dialed number to test and make sure that the Lync expected format is being displayed.
Make a call from your PBX and if everything is fine your Lync client should be ringing right now.
Note: When using extensions make sure that the assigned main number is always used with extension. For example: don’t use +14163336666;ext=1234 for an user and then try to use +14163336666 for the UM or something like that. There are different ways and configuring the main number to route to a specific location at media gateway may be a good solution. I will cover this in a future post.
If you are not sure if the issue is the extension there is a really easy way to test it. Just assign a whole new E.164 number to an user in Lync and then test the call from your PBX through the media gateway, if that rings you are golden and it most likely that the problem is at the extension level.