I recently looked at Meeting Migration Service (MMS) in detail when undertaking a large-scale Lync Server 2013 to Skype for Business Online migration. This article covers how to work with MMS, and my experience of using it.
Before reading further, MMS can only be used if both of the following are true:
- The user is being moved to Skype for Business Online, it cannot be used in the opposite direction (i.e. Skype for Business Online to Lync Server 2013/Skype for Business Server 2015).
- The mailbox of the meeting organiser is on Exchange Online.
For any other scenarios, you need to look at the client-side Meeting Migration Tool.
MMS is a Skype for Business Online service, if enabled in the tenant (it is on by default), it constantly runs in the background looking for the following events:
- Lync/Skype for Business Server user moves to Skype for Business Online.
- Changes to a user’s audio conferencing settings (e.g. assign/remove Audio Conferencing license, enable/disable audio conferencing, etc).
I’m covering user moves only in this article.
When one of these events occurs, MMS immediately creates a job, in a “pending” state to update the mailbox calendar of the user.
Mailbox Calendar Processing
When a user has been moved to Skype for Business Online, MMS will look through the calendar of the user mailbox, and identify Skype for Business meetings where the user is the organiser and the meeting occurs in the future.
Any meetings in the past will be skipped, although meetings in the past that are part of a reoccurring series that continues in the future will be updated.
Note only Skype for Business meetings scheduled using the Skype Meeting add-in for Outlook, or the Add Skype meeting button in Outlook on the Web are updated. If an organiser simply gives attendees the Meeting Join URL, this won’t be updated.
MMS replaces the entire content of the Skype Meeting information block. It does not alter any content outside of the block.
Updates will be sent to all meeting recipients on behalf of the meeting organiser. Updates are sent without requiring a response from the attendee.
Microsoft state: “At a minimum, it will take 10 minutes to run. While some large migrations can take up to 12 hours, most migration should complete within 1 hour”. I found migrations typically take 2 hours from the point of the user being moved to Skype for Business Online, time of day doesn’t make any difference, nor does the number of users being moved to Skype for Business Online.
Microsoft state the following:
“Meeting content that was created or attached to the meeting (whiteboards, polls and so on) won’t be retained after MMS runs. If your meeting organizers have attached content to the meetings in advance, the content will need to be recreated after MMS runs.”
I didn’t observe this issue with any attachment types.
MMS is enabled by default in Skype for Business Online tenants.
It should be enabled, this can be verified by Get-CsTenantMigrationConfiguration.
MeetingMigrationEnabled needs to be true.
If it’s not enabled, run Set-CsTenantMigrationConfiguration -MeetingMigrationEnabled $true
No additional config is necessary.
Before moving users to Skype for Business Online, ensure the meeting invitation customisation is as desired in Skype for Business Online.
Check the AssignedConferenceTypeByDefault setting in the Meeting Policy (Get-CsMeetingConfiguration).
You would typically set this to be the same as the on-premises setting.
If a user requires Audio Conferencing in Skype for Business Online, it’s a good idea to apply the license to them before moving the user. Otherwise, their meetings will be updated with no dial-in details, and when the license is then applied post-migration, all meetings will be automatically updated again.
MMS monitoring/troubleshooting is done using the Get-CsMeetingMigrationStatus PowerShell Cmdlet.
To get a summary of all MMS Migrations:
Note the stats are never cleared down or refreshed. So the key is to take a note of the stats before starting a new bulk user migration. You can also use the DateTime flag to limit the results (keep reading below), and this can be used together with the SummaryOnly flag.
You can query the overall migration statues, for example:
Get-CsMeetingMigrationStatus -State [Pending,InProgress,Failed,Succeeded]
To query a specific user:
Get-CsMeetingMigrationStatus -Identity firstname.lastname@example.org
To use a date range (here I’m using DD-MM-YYYY date format), and note it’s UTC:
Get-CsMeetingMigrationStatus -StartTime “01/05/2018” -EndTime “02/05/2018”
Note if you only want to query the same date, you can’t use the date as both a StartTime and EndTime, you have to include the time, for example:
Get-CsMeetingMigrationStatus -StartTime “01/05/2018 09:00” -EndTime “01/05/2018 19:00”
Nothing in the output of Get-CsMeetingMigrationStatus easily tells you which user account the migration is for.
You can take the UserID, and then use that with Get-CsOnlineUser -Identity [UserID], for example:
Get-CsOnlineUser -Identity 0cg18023-ae5e-9c2e-48ab-57d03e47f3b7 | fl
Running Manual Migrations
Manual Migrations are useful in the following scenarios:
- The migration failed, the issue has been resolved, and can now be re-run.
- The account is disabled in Office 365 so wasn’t processed. It needs to be processed, e.g. a returning user, so the account is re-enabled. Note when accounts are disabled, MMS marks the migration as “Succeeded” with the LastMessage: “Meeting migration didn’t process this user because the user is disabled in Skype for Business Online”. This isn’t very helpful, so something to look out for.
- There’s been a change to the signature block (e.g. logo change, urls etc) and appointments need to be updated.
These are started with Start-CsExMeetingMigration -Identity SIPAddress, for example:
Start-CsExMeetingMigration -Identity email@example.com