top of page
  • Writer's picturesamanthaeasterday

Updated: Oct 25, 2021

When I get asked what I do in my free time....I always answer spending time with my family, read, workout....the typical things. I very rarely mention my "nerdy" side because not many would understand anything that would come out of my mouth!

I am passionate about my career and learning as much as I can to further my knowledge. Something I've started in my spare time is training for my SSCA (SIP School Certified Associate). I'm not done, but dang! This course has been so good! I've been in the UC world for almost 15 years. I've come to a time in my current path where I don't have a lot of other UC techs out there to talk nerdy to and bounce ideas off of. This training has enabled me to accurately and articulately discuss telephony with Microsoft, major carrier vendors and local telcos.

I'll post the certification when I've earned it ;).


54 views0 comments
  • Writer's picturesamanthaeasterday

If you're like me, you try to find the most efficient way to do things. That's why after reading Microsoft's documentation on setting up emergency calling in Teams, I thought, WOW, there has to be a better way. If you don't know what I'm referring to, I'll tell you...


Yeah, that isn't going to work for me. So I put my love of PowerShell to work. The basic command is simple and I was able to change it to continue using it.

We have Skype for Business on-premises, with E911 already set up. I have all of my subnets and WAPs configured with their appropriate address, so no which of our 11 locations you go to, Skype knows your location and if you were to dial 911, it will send you to the correct PSAP and county dispatch. That is what the expectation is for Teams. I have been reading out Teams not updating your location fast enough, sometimes takes a log off and back on, a restart of your computer...those things are not going to work for us. So hoping MS releases an update on that soon.

You'll need to do some pre-work. On one of our FE servers, I ran the following commands to get the information I need.

Get-CsLisWirelessAccessPoint | Export-Csv c:\temp\AllAPs.csv

Get-CsLisSubnet | Export-Csv c:\temp\subnets.csv

If you don't have this set up or enterprise voice is brand new for you, you will need work with your network people to get this information.

Setting up dynamic emergency calling in Teams:

  1. Find out what network regions you have set up by running Get-CsTenantNetworkRegion. If you're like us, we have 11 locations, you will need a network region for all of your supported locations.

  2. If you need to add a region, use the command New-CsTenantNetworkRegion.

  3. Setting up your network regions first is important, because you will want to assign each network site to a network region. Use this command to set your network sites New-CsTenantNetworkSite -NetworkSiteID "HQ" -NetworkRegionID "Headquarters"

  4. The next step you'll want to do is set up the tenant network subnets. This is where the MANUAL part is a no go. First you'll wan to create a .csv file with each subnet, mask and site id. The spreadsheet will look something like this format:

Identity, Mask, SiteID, 24, Redmond, 24, Chicago, 25, Vancouver, 28, Paris

The command will be:

Import-CSV C:\subnets.csv | foreach {New-CsTenantNetworkSubnet –SubnetID $_.Identity -MaskBits $_.Mask -NetworkSiteID $_.SiteID}

The site id is the name you used for your network sites in the above step.

5. Next you'll need to know each sites location ID. To get those, run the command:

Get-CsOnlineLisLocation | Export-Csv c:\temp\locationid.csv

I prefer to export it, since it can be a long list and you'll be able to the information easier.

6. Now you can set your lis subnets. This is where you can change the above command to what is needed for the set-csonlinelissubnet and change your .csv to the appropriate information.

Import-CSV C:\lissubnet.csv | foreach {Set-CsOnlineLisSubnet –Subnet $_.Identity -LocationID $_.LocationID -Description $_.Description}

7. Then your wireless access points. Just a reminder, change the above command to accommodate the new command:

Import-CSV C:\waps.csv | foreach {Set-CsOnlineLisWirelessAccessPoint –BSSID $_.BSSID -LocationID $_.LocationID -Description $_.Description}

We have over 2,500 BSSIDs to set. So this step took about 15 minutes.

8. Now you will want to set your trusted IP addresses. This information you can get from the steps above. But use this command:

Import-CSV C:\trustedIPs.csv | foreach {New-CsTenantTrustedIPAddress –IPAddress $_.Identity -MaskBits $_.Mask -Description $_.Description}

After performing the above steps

9. Set your Emergency addresses. I did this manually, since a few of our locations were not able to be found automatically and I needed to look up their longitude and latitude. We are also going to be routing based on ELIN set up. I already have a number associated to each location, so make sure to put that in there when you create it, because you are not able to go in and change the location, what it has been verified.

10. Create a .csv for your reporting labels. This is not necessary for emergency calling, however this will be helpful in reporting and if you report an issue to Microsoft. Warning: Microsoft engineers will have access to the information you put on there. My files used the below headings.

After performing all the above steps. You should have the following complete for your Teams tenant and emergency calling:

Reporting labels uploaded

Emergency addresses of all your supported locations and they are verified

Network topology has all your Network sites and subnets assigned to each

Network topology has your Trusted IPs configured

Networks & locations has your Subnets configured

Networks & locations has your Wi-Fi access points configured

Since we are using Direct Routing with hosted SBCs, the next steps are to verify ELIN configuration on those and lots and lots of testing.

642 views1 comment
  • Writer's picturesamanthaeasterday

So you want to set up external calling in Teams. There is a lot of information out there about direct routing in Teams. Microsoft actually does a pretty good job documenting it. But one thing that gets lost in the documentation is creating an account with the new sub domain. Below are the steps to set up an SBC in your Teams environment.

  1. Your telco has set up their Microsoft supported Direct Routing SBC. They will provide you a FQDN and port they have set up as a tenant on the SBC.

  2. Go to your 365 Admin Center. You need to add that FQDN as a sub domain for your organization. Once you do that, you will get information similar to the below, which you will need to share with your telco.

3. Once the domain is verified by both parties. You can move forward.

4. This next step is one that gets missed. You need to create a user, using the new domain. If you don't do this, you will get an error when adding an SBC. In 365 Admin Center, add a user with the domain. You will want to think about the naming convention now, because most likely, your SBC list will grow.

5. In the Teams Admin Center. Go to Voice-> Direct Routing. Click Add and change the necessary settings.

6. Click Save

7. In the same page in Teams, click on Voice routes.

8. You'll need to set up routes. I set up 3, LocalCalling, LongDistance, International. Once they are set up. Click on the route to edit. Chose Add/remove SBCs. You will now see the SBCs you have enrolled. You need to click the boxes and press Apply.

154 views0 comments
  • Twitter
bottom of page