Migrating from Skype for Business to Microsoft Teams

     

Preface

Now that Microsoft Teams has reached feature parity with Skype for Business, it’s really time to move on, isn’t it?

Additionally, Microsoft has announced the start of the end of life program for the integration of Skype for Business with third-party audio conferencing providers (ACPs), so you have no other option left than subscribing to the Microsoft bridge.

This guide assumes you’ve already completed the tasks outlined in Administering Microsoft Teams via PowerShell. Once done, proceed.

Text-only

If none of your users use dial-in conferencing, or any other PSTN-related features, your case is really-really simple:

Grant-CsTeamsUpgradePolicy -PolicyName UpgradeToTeams

Yes, that is all. The next time your users try to use Skype for Business, they’ll be greeted with this:

Neato. Our job is done.

Text & Voice

Here I’m going to assume you use E3 licenses plus a 3rd party dial-in conferencing provider, like Intercall or BT. This is the case I’m going to cover, because that was our setup – I can’t say certainties if you already used E5 (or E3 + the Audio Conferencing Add-on) with the Microsoft bridge. In that case, I don’t think you have too much to do anyway.

Preparation

Upgrade Policy

You want to make sure that the users who’ve been using SfB meetings with dial-in conferencing can retain this ability. Explicitly set existing dial-in users to Islands mode:

$DialinUsers = Get-CsOnlineUser | Where-Object -Property AcpInfo | Where-Object -Property Enabled -EQ "True" | Select-Object -Property UserPrincipalName
foreach ($DialinUser in $DialinUsers) { Grant-CsTeamsUpgradePolicy -PolicyName IslandsWithNotify -Identity $DialinUser.UserPrincipalName }

After this, such users’ SfB client will look like so:

If you’re unsure about the policies, read up these articles:

Islands is a pretty safe bet for your conferencing users, because if these users used to organize SfB meetings, chances are, they also used to get invited to such events. If you set their identity to UpgradeToTeams, they won’t be able to join SfB meetings anymore, because the SfB client will be unavailable, as shown on the first picture.

Now that the dial-in conferencing users are fixed, set the default policy for the tenant, which will apply for the rest of the users, who don’t have their policy set individually:

Grant-CsTeamsUpgradePolicy -PolicyName UpgradeToTeams

If you want to check a specific user’s settings:

Get-CsOnlineUser -Identity [email protected]

To clear a user’s explicit settings, and make the account use the org-wide settings instead:

Grant-CsTeamsUpgradePolicy -PolicyName $null -Identity [email protected]

Migration Behavior

When you assign the required licenses to users, you’ll be able to migrate them

  • automatically
  • manually

If you want automatic migration for the selected users, you have to change your tenant’s configuration to automatically update the ACP (Audio Conferencing Provider) from the 3rd party settings to Microsoft’s when you enable Microsoft Audio Conferencing for an account in the tenant:

Set-CsOnlineDialInConferencingTenantSettings -AutomaticallyReplaceAcpProvider $True

Please note that this setting may require some time to become effective. I recommend you change this 24 hours before doing any actual migration. Of course, you can test it for yourself: enable Audio Conferencing for a dummy account, and wait for the ACP to be changed to Microsoft automatically within a few hours. If it does change to Microsoft on its own, you’re good to go.

Migration

Since existing dial-in conferencing users probably already have some SfB meetings in their calendars, and updating their dial-in info and migrating all their existing invites to the new setup can take several hours to finish up in Office 365, I recommend you to do this at weekends.

You have two options:

Go to the Office 365 Admin Portal and update the user’s license settings (either replace E3 with E5, or add the add-on). Double-check that all existing features remain on for the new license, because sometimes the portal decides to substract the E3 features from the E5 set. Or something like that.

Automatic Migration

If you enabled automatic ACP migration previously, just wait until the ACP provider changes on its own to Microsoft in the Teams Admin Center and Skype for Business Admin Center. Sometimes it happens within a few minutes, sometimes it takes several hours. Be patient. If you want to check it via PowerShell:

Get-CsOnlineUser -Identity [email protected] | Select-Object -Property AcpInfo

Manual Migration

Audio Conferencing Provider

Go to Skype for Business Admin Center / Audio Conferencing / Users and select the Users ready to be moved to Office 365 Audio Conferencing filter. Your newly licensed user should show up here, with the old conferencing settings.

Select her, click Edit, and change the provider from the old one to Microsoft. Select the preferred dial-in number location, then click Save. You’ll receive a confirmation that the provider has been changed to Microsoft:

And within minutes, Audio Conferencing should be turned on in the Teams Admin Center as well:

Meeting Invitations

Changing the ACP to Microsoft should automatically initiate the migration of meeting invitations. You can check the progress via this snippet:

Get-CsMeetingMigrationStatus -SummaryOnly

You should have a pending migration after the provider change:

State      UserCount
-----      ---------
Pending            1
InProgress         0
Failed             0
Succeeded          8

Since this migration can take several hours, the best time to do this is probably at weekend, when it shouldn’t cause any disruption for most people.

You can force the migration manually, if this doesn’t happen, but this really shouldn’t be needed:

Start-CsExMeetingMigration [email protected]

Final Words

After all this trouble, you should be good to go. All your text and voice users should be ready to use Microsoft Teams to its fullest, with dial-in users remaining compatible both with Microsoft Teams and Skype for Business.

Cheers!

I’d like to thank David for all the help in this topic!

Further Reading