Microsoft Teams cloud phone system and Skype for Business deployment

Our VoIP solution here at the office was previously Ooma. They are great, and rarely did we have issues with their service. However, we wanted to consolidate our VoIP phonelines with Skype for Business/Microsoft Teams. So here is the process of how we ported the numbers.

I believe this article is unique because I do not come from a VoIP telephony background, but rather an O365/SharePoint background. I love PowerShell but try to avoid it deep into very old Legacy and Skype commands where Teams has not developed a UI around it yet. I could not find an article or articles quite like what I am sharing. If that is because I am doing it wrong, please post some comments on any improvements or new-released features that may make everyone lives easier.

Changing our Phone system to Skype steps:

  1. Purchase O365 phone/voice licenses (This is important)
  2. Purchase any “hard phones” for your office (I picked a Skype for Business compatible Polycom phone because of previous issues with the new Microsoft Teams YeaLink phones, read more about this below)
  3. Put in phone number porting request in Skype for Business Legacy Portal (plan a date a week out or they will bump you a week out randomly)
  4. Setup your infrastructure (whatever that means)
  5. Conference Room Physical Phone configuration
  6. The big day- your numbers are being transferred
  7. End results
  8. Future steps/improvements

Purchase O365 phone/voice licenses (This step is important)

Its not easy to purchase licenses. Why? Because you need to know EXACTLY what to search for, AND choose “Addon” for the filter on the Purchase Services page.

Auto Attendant (for your main line)- Free

Add-on license when you search for “Phone System–Virtual User” per this article:

  1. The UI for getting to these is terrible. Its like they hide a ton of products that are not E3 or E5, but hey, that’s what we have to work with….
  2. You have to perform these 3 steps. Go to O365 Admin portal > Billing > Purchase Services, then type this in search “Phone System–Virtual User” and hit enter. Then this is the crazy UI piece, click “Show all 1” itself (don’t expand it) to get to way more licenses…
  3. One more step to click “Add-ons” below under Other categories (yea… I know this is nuts…)
  4. And FINALLY you can find the EXACT string you searched for (terrible search results display on the last 2 pages. I am scarred this is the “new” admin center). Click on the  Phone System Virtual User header text to be taken to a cart checkout. Since its free I added 4 for my Main line numbers

User calling plans/licenses

Do they need to dial out to other numbers from Skype for Business?

If so, they will need a Domestic Calling Plan license

All users with a phone number in the Cloud will require a “Common Area Phone” license on top of their Office 365 license (E3, F1, Office Essentials, etc.)

If users want a Skype for Business conference bridge dial in number to be added to Skype invites, they can purchase a Audio Conferencing license.

Here is how we licensed our users:

  • Remote employees or contractors without a need for a phone line:Free
    • Office 365 E3 plan- $20/user/mo or free with MPN
    • They can use Teams and Skype for Business clients just fine to collaborate
  • Onsite/remote Employees that require a phone line$20/user/mo
    • Office 365 E3 $20/mo (consider E5 at $35/mo if you don’t have free E3’s like we do as a MS Partner. This might save you $10-$20/mo)
    • Common Area Phone $8/user/mo
    • Domestic Calling Plan $12/user/mo (International is $20)
  • Employees who schedule conference calls regularly$24/user/mo
  • Conference Room Phone $20/mo
    • Office 365 E3 (I could have used a cheaper license but I wanted an Exchange calendar for an interim Conference Room scheduling solution)
    • Common Area Phone $8/user/mo
    • Domestic Calling Plan $12/user/mo (International is $20)

The costs add up quick but considering Ooma costs $30/user/mo O365 can save about $10/user/mo and have one less separate system to manage.

Purchase any “hard phones” for your office

I picked a Skype for Business compatible Polycom phone because of previous issues with the new Microsoft Teams YeaLink phones.

$129 on Amazon

Hooked it up with a single cat6 cable over PoE (power over ethernet) which I placed on the other side of this cable $20. Less wires and cords always creates a clean experience.

Put in phone number porting request in Skype for Business Legacy Portal

Tip: plan a date a week out or they will bump you a week out randomly by the O365 number porting team

  1. Create a schedule of the numbers you want to transfer over if you are not doing them all at once.
  2. Navigate to the O365 Admin Portal > Teams Admin > Skype for Business Legacy Admin Portal> Voice > Port Orders and create a new Port Order
    1. Specify your old VoIP provider account number (probably the billing phone number). All this info should match the old VoIP provider info:
    2. Create a helpful name for 1 or more numbers that are being ported. Or, you can just port over everything at once and not test 1 number.
    3. Pick a date at least 1 week out. If you pick a sooner date they will just reschedule.
    4. Just agree with the billing persons name.
    5. Done!
  3. Now wait until the numbers are ported over.

One final tip, assign your licenses to users then assign the numbers BEFORE the port finishes (give the new request a day to get scheduled then do it). The Skype team adds your numbers in early, so you can set up everything before the transfer, then Boom once the transfer happens the users number will still work without you having to jump into the Admin Portal and assign the number.

Setup your infrastructure

Assigning phone numbers to users

The easiest way I have been able to do this is through the classic Skype For Business Admin Portal. You might be able to do this from Teams Admin center but I think I was just missing user licenses then.

  1. Once a user has a license assigned (if they dont they do NOT show up here, even if you filter to “All”. Fix the licenses first if the user shows up funky here, or as on-premises PSTN.
  2. Assign the user a number an an Emergency Location. Emergency locations are super important for your business VoIP. If someone calls 911 Emergency, they do not know your company location, suite number, name, etc. This saves first responders valuable time and could save your our your co-workers life. Safety first admins. Save a life! Its just 1 tab over.
  3. Then assign the number to the user:

Thats it! Give it a few minutes and the user can receive calls.

Adding Audio Conferencing to users

This one is super easy, just buy and assign the license to an existing user. All of their existing Skype for Business meetings will auto-update with a dial in magically after a restart or a day.

This is managed in the Classic Skype Admin Center

Auto Attendant- Main line greeting and directory

This is the “you have reached _____ business name here ____ . Press 0 for reception or 1 for blah, etc.”

You can upload your own audio recording or translate the text to a robot voice.

First, add a “resource account” (basically a name/number association for caller ID and license features) that we can associate to our greeting in the next step.

Resource Account

  1. Go to Teams Admin > Org wide settings > Resource Accounts
    1. Create a new Auto Attendant account and give it a good username. This is what shows up when a call is transferred to your Skype users. This ugly one was auto generated because I created it from the Auto Attendant screen instead of here. Lesson learned. I an now naming the username SileoMainLine234 or whatever my numbers are.
    2. Repeat creating these 1 per number you have for the Auto Attendant (not user phone numbers)
    3. Assign a license back in the Office 365 Admin > users section of the top level portal. I assigned my Resource Accounts a Phone System – Virtual User free license:
    4. More information can be found here on the process: Assigning a number to a Resource Account: (This one was hard to find)

Back to creating a new Auto Attendant

  1. Go to Teams Admin > Voice > Auto Attendants
  2. Add a new Auto Attendant
  3. Select your resource accounts to assign to the greeting
  4. For security, you might want to lock down directory access only to a certain group. I have not seen any guidance on this, but I don’t want someone being able to guess ALL of my users.

Conference Room Physical Phone configuration

Here I go through how to configure the Polycom VVX411 phone for SKype for Business as a “user account” but will be in a shared conference room. This is where my post becomes non-traditional. I would have preferred to use a YeaLink conference speaker phone but it just was not ready for prime time and required a ton of PowerShell to configure. Simple for now until Microsoft Team Rooms get a UI for configuration.

The big day- your numbers are being transferred

Hopefully you have already associated your numbers to users before the cutover. Now you can sit back and make sure the phone number works. Inbound, outbound, etc.

End results

Conference Room Phone that I can send Skype meeting invites to and join with 1 click.

Skype for Business soft phone capabilities for my team

  • Visual voicemail
  • Teams Phone app interface
  • Call forwarding and simultaneous ring
  • Domestic/international calling plans
  • Tip for 1 touch join. Format your numbers so you can click on them to join a web meeting, pause and enter the access code automatically. Example:

Then, you and other users can just click on the link to join a meeting rather than write it down or try to memorize the dial in.

Main line auto attendant recording and “operator”

Future steps/improvements

I hope someday to get a sweet Microsoft Teams Room system setup, but those are a few thousand dollars. They also require a ton of custom PowerShell scripts to setup. The fact that there is no UI and its pure PowerShell to configure tells me I will be one of the first pioneers to set it up. Thats a big investment for a small business, so I am holding off.

Future hopes:

  • PowerShell-less configuration
    • Teams physical phones
    • Team rooms
    • Meeting Room license
      • Exchange calendar for conference rooms


Leave a Reply

%d bloggers like this: