I consider myself really sharp at Lync. However there are still times when I have “duh” moments that I feel like I should have known for years. Since Lync is a pretty complex and varied system there are just some things I never sat down and properly figured out. Dial-In conferencing Regions is one of them. I’ve probably set up dozens of dial-in conferencing numbers over the past few years but there were still a few things I just missed. This article will do a fairly deep dive into Regions and Dial-in Conferencing numbers.
So first off: What is a Region? A Region is anything you want it to be. It’s just some text. A region is independent of an Active Directory site or a Subnet or anything similar. A Region could be “Earth”. A Region could be “Germany”. A Region could be “My bedroom in the basement of mom’s house”. In practicality, a Region is used to define where a dial-in conferencing phone number resides. So if I have a dial in number in Indianapolis and one in Stockholm, the regions could be”Indianapolis” and “Stockholm” or they could be “United States” and “Sweden” or they could be “North America” and “Europe”. The Regions are just a way to let people know where the dial-in conferencing phone number is located.
None of this should be too mind blowing.
So where do you configure these region names? If you answer: “In the same place where you configured the dial-in conferencing number” then you would be wrong. You actually configure them in Dial Plans. There is a reason for this that I will get to later.
In order to set a region, open any dial plan and in the “Dial-in Conferencing Region” box, type in anything you want. In the example below, I entered United States. Also note that this is being set on the “Global” dial plan.
If we want to see our existing dial-in conferencing Regions, you can run this PowerShell command:
Get-CsDialPlan | Select-Object DialInConferencingRegion
If I run that command I see the following:
OK this is great. I have a region. Now how do I assign it to a Dial-In Conference number?
Assuming you don’t have one yet, let me show you quickly how to create a dial-in conferencing number. In Lync Control Panel, navigate to the “Conferencing” section and then the “Dial-in Access Number” tab. Click “New”
Look at the above image. The “Display Number” can be anything you want. It can be in any format you want. In this case I formatted it to the standard way phone numbers in the North America Numbering Plan tend to be formatted. The Display Name field is really a comment for you the administrator so you know why this number was added. Line URI must be the exact, normalized phone number that Lync will use to answer the call. This number needs to be exactly right. The SIP URI can be anything you want. I often make it match the Line URI but you can use anything you want. The Pool is used to tell Lync which of your Lync pools will receive the inbound call. Finally you can select a Primary language and up to four secondary languages for this dial-in access number.
And where do we define the Region? All the way down at the bottom. I have to scroll down so you can see it.
After clicking the Add button you are given a list in which to select your region. In this case, we only have one available region.
Once you select that region, you are returned to the main page for adding a Dial-In Access number. Click “Commit” and you now have a Dial-In Access number.
For those excited by PowerShell, you can perform all of the above using the following PowerShell commands:
Set-CsDialPlan -Identity "Global" -DialInConferencingRegion "United States"
New-CsDialInConferencingAccessNumber -PrimaryUri "sip:+email@example.com" -DisplayNumber "(317) 555-1212" -DisplayName "Indianapolis" -LineUri "tel:+13175551212" -Pool lyncpool.flinchbot.com -PrimaryLanguage "en-US" -Regions "United States"
So how can we see what this now looks like? Point a web browser to your dial-in simple URL. In my case, that is https://dialin.flinchbot.com and I see the following:
If you don’t know your dial-in Simple URL, you can run the following PowerShell command:
Now more has happened here beyond just having created a new dial in number for the United States.
[Here is the part I never really knew until this week…]
What I have also done is assigned a default dial-in number for all of my users. This may seem obvious but it really isn’t (at least to my thick Hoosier skull (or I guess my now Nashvillian skull)). The reason that all of my users now have a default dial in number is because I assigned the Region to the Global dial plan. I currently only have one dial plan so everyone gets this dial plan by default. Since the dial plan controls the region, all of my users are now considered to be in the United States region.
So what happens if I create a new dial plan. Does the global Region still define the Region for users assigned to a user-level (or site-level) dial plan? Let me create a user level dial plan without a region and see what happens.
Testing this gets a little tricky because we can’t just go to the dial-in simple URL because that just shows a list of all the defined numbers, not the default number for a given user. Since I created a user-level dial plan, I had to assign that dial plan to a specific user. In order for them to see what their dial-in Region is, they need to create an Outlook meeting and then use the Lync Meeting calendar add-in (alternately, a “Meet Now” meeting directly from the Lync client).
Doing all of those steps, I see that the Global dial-in Region applies if the user-level dial plan has no Region defined.
So it’s probably a good idea to set a default Region in your Global dial plan. Unless you don’t want everyone to have a default location. Then leave it blank.
Now let’s go to the next step. I want to add a second dial-in number for our office in Nashville. I will call this region “United States – Southeast”. I create a User-Level dial plan and simply type “United States – Southeast” into the “Dial-in conferencing region” field. I then skip over and create a new dial-in access number.
After waiting about 5 minutes I reloaded the dialin.flinchbot.com page and I see that I now have a new entry in my list.
So that’s pretty cool. But here’s the part that I just figured out this week:
How do we set the default dial-in number for a user when they create a new meeting invite via Lync? It is obvious now but for years I never really knew. I always told people to manually edit the settings in their Outlook Lync Meeting options tool.
Now setting that works fine for individual users. I was asked how this can be changed for an entire office and I…uh…well…uh…stammered an “I don’t know”.
Well now I know. And it’s really obvious to me. Now.
All you have to do is set the users dial plan to one that contains the correct region. Duh! So if I have a user who needs to use the “United States – Southeast” dial-in number as their default I then assign them to the user dial plan I created. If the user needs the generic “United States” as their default dial plan I leave their dial plan setting unassigned (i.e., the Global dial plan).
Here is what a meeting invite looks like after I changed my test user from the Global dial plan to the user-level dial plan:
Notice that it now sets the default dial-in number to “United States – Southeast” instead of the Global “United States”.
To expand on this, if you have an office (or, more likely, a region) with 4 dial plans, you have to make sure that the Region on all 4 dial plans says the same thing. It’s a bit redundant to have to manually type in the same region value into each dial plan.
So use PowerShell!
Set-CsDialPlan -Identity "Atlanta" -DialInConferencingRegion "United States - Southeast"
Set-CsDialPlan -Identity "Tampa" -DialInConferencingRegion "United States - Southeast"
Set-CsDialPlan -Identity "Orlando" -DialInConferencingRegion "United States - Southeast"
Set-CsDialPlan -Identity "Raleigh" -DialInConferencingRegion "United States - Southeast"
Here is an advanced scenario you might run into. Let’s say that somehow you get a batch of dial-in conferencing numbers that you need to add to Lync, for example via SIP trunks that bring in a bunch of phone numbers from around the globe to a central location. How do you add those Regions?
The same as you would in any other scenario. You have to create a dial plan and type in the region name. In other words, you create “dummy” dial plans (if necessary), set the region in those dummy dial plans, and then use that region when defining the dial-in access number.
Here is some PowerShell showing how to create 3 “dummy” dial plans and three dial-in access numbers using the regions created in those “dummy” dial plans:
New-CsDialPlan -Identity "DIC-Argentina" -DialInConferencingRegion "Argentina"
New-CsDialInConferencingAccessNumber -PrimaryUri "sip:DIC_Argentina@flinchbot.com" -DisplayNumber "+54123456789" -DisplayName "Argentina" -LineUri "tel:+54123456789" -Pool lyncpool.flinchbot.com -PrimaryLanguage "es-MX" -SecondaryLanguage "en-US" -Regions "Argentina"
New-CsDialPlan -Identity "DIC-Austria" -DialinConferencingRegion "Austria"
New-CsDialInConferencingAccessNumber -PrimaryUri "sip:DIC_Austria@flinchbot.com" -DisplayNumber "+43123456789" -DisplayName "Austria" -LineUri "tel:+43123456789" -Pool lyncpool.flinchbot.com -PrimaryLanguage "de-DE" -SecondaryLanguage "en-GB" -Regions "Austria"
New-CsDialPlan -Identity "DIC_Bahrain" -DialinConferencingRegion "Bahrain"
New-CsDialInConferencingAccessNumber -PrimaryUri "sip:DIC_Bahrain@flinchbot.com" -DisplayNumber "+973123456789" -DisplayName "Bahrain" -LineUri "tel:+973123456789" -Pool lyncpool.flinchbot.com -PrimaryLanguage "en-GB" -Regions "Bahrain"
Note on the New-CsDialPlan I don’t do anything other than provide a name (identity) and set a region. That’s all. There is no need for anything else because this dial plan will never actually be used as a dial plan (i.e. phone number normalization). They are being created solely to define a region.
Now look at the dial in web page:
That looks like a real dial-in page now! Note that my test user, when creating a Lync meeting via Outlook will still use the “United States – Southeast” number as his default number as he is assigned to that dial plan. If I wanted him to use the Bahrain number as his default dial-in number is would have to move him to that dial plan (and probably add some normalizations too).
I think that about wraps it up. This is stuff I feel like I should have known years ago but for some reason it didn’t click until this past week. That’s probably due to me having to add about 25 SIP-delivered dial in numbers to our central pools and me actually having to think it all the way through. I now feel bad to those people to whom I gave wrong, or at least mediocre, information about setting the default dial-in numbers.
For me, the big take away is that *every* dial plan should have a region set.
For more (and probably better) explanations, check here and here.