EXO Migration mit UMMailbox

Exchange OnPremises bietet mit Exchange Unified Messaging einen elektronischen Anrufbeantworter. In der Cloud konnten Sie bis ca. Feb 2020 auch "Exchange UM" nutzen. Dieses Angebot in der Cloud wurde aber zum 1. März komplett auf Cloud Voice Mail (CVM) umgestellt. Diese Seite beschreibt die Migration und Koexistenz beider Welten und die Schritte zur Migration.

Ausgangssituation

Ich gehe erst einmal davon aus, dass Sie ihre Postfach auf ihrem eigenen Exchange Server betreiben und die ExchangeUM-Rolle mit Skype for Business OnPremises verbunden haben:

Wenn Sie nicht mit Skype for Business telefonieren, ist auch eine direkte Verbindung zwischen TK-Anlage und Exchange UM möglich

Die Einwahl in die Voicemail erfolgt über einen SIP-Trunk mit den eigenen Rufnummern und es gibt erst mal keine Cloud.

Auf dem Weg in die Cloud

Wenn sie nun mehr und mehr Office 365 Dienste nutzen, dann gibt es neben Alles OnPremises nun zwei weitere Konstellationen von Exchange Postfach und Skype/Teams Backend:

Exchange Skype/Teams CVM Tauglich Beschreibung

OnPrem

OnPrem

Ja*

Das ist die Ausgangssituation

OnPrem

Cloud

Ja

Nicht erst seit Corona ist Teams als Meeting-Plattform interessant. Es gibt viele Firmen, die ihre bestehende lokale Exchange und Topologie erst mal nicht anrühren und direkt mit Teams starten. Dies gilt, wenn Sie lokal gar kein Skype for Business haben oder die lokale Installation nicht mehr den Anforderungen entspricht und eine Ertüchtigung nicht vorgesehen ist.

Cloud

OnPrem

Ja

Ein Exchange Postfach in der Cloud ist für mittlere oder kleine Firmen besonders interessant und für Upgrade von älteren Exchange-Versionen. In dem Fall kann die lokale Exchange UM-Rolle natürlich keinen Service mehr bieten und sie müssen Cloud Voice Mail nutzen.

Cloud

Cloud

Ja

Wenn Postfach und PBX-Funktion in der Cloud sind, ist ebenfalls die Voicemail in der Cloud

  • * Die Nutzung von Cloud Voice Mail in der Cloud ist auch möglich, wenn Skype und Exchange OnPremises sind. Siehe auch CVM mit Ex2016/SfB2015

Sie sehen aber, dass es keinen Zwang gibt, sowohl das Exchange Postfach als auch das Skype for Business Backend zeitgleich umzuziehen. Allerdings ist das dann doch nicht so einfach, wenn wenn ein Benutzer mit lokal aktivierter Exchange UM-Rolle in die Cloud umgezogen werden soll.

Achtung:
OnPremises können Sie mit ExchangeUM auch ohne Skype for Business direkt mit einer TK-Anlage verbinden. Mit Exchange UM Online war das auch noch möglich aber mit Cloud Voice Mail geht dies nicht mehr. Benutzer mit einem Telefon an einer TK-Anlage müssen daher 3rd Party Voicemail-Lösungen nutzen. Siehe auch Voicemail ohne Exchange UM

Fehler bei Exchange Migration

Ich habe in meinem Test-Labor einen Benutzer mit ExchangeUM versucht nach Exchange Online  über Hybridmode mit RemoteMoveRequest zu verlagern. Schon der versuch ist durch einen Fehler abgebrochen worden.

Mailbox 'testuser@uclabor.de' in the source forest is currently enabled for Unified Messaging but it can't be enabled for Unified Messaging in 
  the target forest for the following reason: Unified Messaging isn't available in the target forest. Please fix the problem or disable the mailbox 
  for Unified Messaging before you try the operation again.
     + CategoryInfo          : InvalidArgument: (testuser@uclabor.de:MailboxOrMailUserIdParameter) [New-MoveRequest], RecipientTask Exception
     + FullyQualifiedErrorId : [Server=<server>,RequestId=<guid>,TimeStamp=<Time>] [FailureCategory=Cmdlet-RecipientTaskException] 
            xxxxxxxx,Microsoft.Exchange.Management.RecipientTasks.NewMoveRequest

Exchange kann einen Benutzer nur dann in die Cloud schieben, wenn er keine Exchange UMMailbox OnPremises hat.

Kein Fehler bei Skype Migration

Der Versuch den Benutzer mal eben schnell von Skye for Business zu Skype for Business Online bzw. Teams zu verschieben scheitert interessanterweise nicht mit einem Fehler. Der Benutzer wird sauber verschoben aber hat dann keine Voicemail mehr, da der lokale Skype for Business Server die Anfragen natürlich erst mal in die Cloud sendet.

Ich habe nicht getestet, ob der INVITE tatsächlich wieder zurück zu einer lokalen Exchange UM Rolle kommen würde.

Wenn Sie jemand mit VoiceMail in die Cloud migrieren, dann sollten sie vorab schon sicherstellen, dass der davor oder während der Migration auch eine HostedVoiceMail-Policy bekommt.

Umstellung planen

Aus den beiden Fehlern können Sie schon ableiten, dass wir die Benutzer zuerst auf Cloud Voice Mail umstellen müssen, ehe die Migration in die Cloud erfolgt. Hier kommt uns ein Umstand zugute, den ich bei der Betrachtung von CVM mit Ex2016/SfB2015 beschrieben habe. Wenn Sie den lokalen CSUser anschauen, dann finden Sie hier zu Voicemail drei Einträge:

PS C:\> get-CsUser fctest6 | fl hostedvoice*,exumenabled

HostedVoiceMail        :
HostedVoicemailPolicy  :
ExUmEnabled            : True

Anscheinend verarbeitet Skype for Business OnPremises die in einer bestimmten Reihenfolge:

Die Anfrage zu ExchangeUM hängt hinter der "HostedVoiceMail"-Policy. Sie können also die Benutzer auf HostedVoiceMail umschalten obwohl diese noch für die lokale ExchangeUM-Rolle aktiviert sind. Die HostedVoiceMail Policy "überstimmt" die lokale ExchangeUM-Rolle. Sie können also erst wenige Pilotbenutzer und am Ende alle Anwender auf Cloud Voice Mail umschalten.

Ich würde ihnen auch empfehle, den Umzug der Anwender zu Exchange Online und/oder Skype/Teams von der UM-Umstellung zu entkoppeln und die UM-Umstellung vorab zu machen.

Umzug UM

Ehe Sie die Konfiguration der Benutzer ändern, müssen Sie natürlich die generelle Funktion von CVM in der Cloud bereit stellen. dazu gehört u.a.

  • Mindestens eine PhoneSystem-Lizenz
    Auch wenn Sie nie vorhaben, mit der Cloud zu telefonieren.
  • Skype Hybrid Setup und CVM-Setup über Skype Edge Servers
  • Entsprechende HostedVoiceMail-Policies

Bitte beachten Sie dazu die ausführliche Checkliste auf Cloud Voice Mail (CVM) Checkliste

Wenn diese Vorarbeiten abgeschlossen und die Funktion verifiziert wurde, dann können Sie pro Benutzer folgende Schritte umsetzen:

Schritt Erledigt

Exchange Online Plan zuweisen

Auch wenn das Postfach selbst nicht in der Cloud liegt, müssen Sie dem Benutzer eine Exchange Lizenz zuweisen. Sie wissen sicher, dass diese Lizenz auch als "CAL für den OnPremises-Betrieb genutzt werden kann.

Disable-UMMailbox

Damit ich das Postfach in die Cloud verschieben oder die IM-Plattform zu SfB Online/Teams umziehen kann, muss die lokale UMMailbox weg. Das erfolgt durch diesen Schritt. Ich habe die Veränderungen durch diesen Befehl im Active Directory mitprotokollieren lassen und gesehen, dass Exchange auch Skype for Business beschädigen kann.

Bei einem „Disable-UMMailbox“ werden folgende Felder und Einträge entfernt

  • EUM-Einträge in proxyAddresses
    Die beiden eventuell vorhandenen Einträge werden aus dem Exchange Feld „Proxy Addresses“ entfernt
    proxyAddresses: EUM:user@example.com;phone-context=Dialplan.example.com
    proxyAddresses: eum:1234;phone-context= Dialplan.example.com
  • msExchUMEnabledFlags
    Diese Feld enthält bei einem Exchange UM-Benutzer den Wert “831(dez)” und wurde geleert
  • msExchUMRecipientDialPlanLink
    Der Link zum distinguishedName des Dialplan in Exchange wurde entfernt
    CN=Dialplan,CN=UM DialPlan Container,CN=ORGNAME,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=example,DC=com
  • msExchUMTemplateLink
    Auch hier wurde der Link zur UM Policy entfernt
    CN=Dialplan Default Policy,CN=UM Mailbox Policies,CN=ORGNAME,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=example,DC=com
  • msExchUCVoiceMailSettings
    Leider wird aber auch hier der schon vorhandene Eintrag „CSHostedVoiceMail=1“ entfernt. Dies muss nachträglich gefixt werden

Es wird aber nicht die SIP-Adresse aus dem Feld ProxyAddresses entfernt und auch das Feld „msRTCSIP-UserPolicies” mit dem vielleicht schon bestehenden Link zur HostedVoiceMailPolicy wird nicht angefasst.

Set-CSUser -identity <sipadresse> -hostedVoiceMail $true

Da das "Disable-UMMailbox" auch den Eintrag CSHostedVoiceMail=1 entfernt, sollten wir das sehr schnell wieder aktivieren.

Grant-CSHostedVoiceMailPolicy -identity <sipadresse> -Policyname BusinessVoice

Auch die Policy muss, sofern noch nicht früher passiert, auf BusinessVoice gesetzt werden.

Natürlich geht das auch per PowerShell und ich nutze dazu vom Kunden einfach eine Liste der umzustellenden Benutzer mit dem eindeutigen UserPrincipalName. Wenn ich schon vorher die Umstellung der Benutzer auf HostedVoiceMail umgesetzt habe, dann kann ich mit der ersten Zeit genau die Benutzer ermitteln, die von ihrer UMMailbox befreit werden sollen. Eine manuelle Liste tut es aber auch. Starten sie einfach eine Powershell, sondern sowohl Exchange OnPremises als auch Skype Commandlets verfügbar sind:

# Export der Benutzer, die HostedVoiceMail UND Exchange UM haben
Get-CsUser -Filter {hostedvoicemail -eq $true} | where {$_.exumenabled} | Export-Csv cvmuser.csv

# Deaktivieren der UMMailboxen 
Import-Csv .\cvmuser.csv | %{disable-ummailbox $_.userprincipalname -Confirm:$false}

# Reaktivieren von HostedVoiceMail auf SfB
Import-Csv .\cvmuser.csv | %{
   set-csuser $_.userprincipalname –hostedvoicemail $true
   Grant-CSHostedVoiceMailPolicy -identity $_ -Policyname BusinessVoice
}

Über diese Schritte sollen dann alle Benutzer, die sie nach Exchange Online oder/und SFBOnline/Teams migrieren wollen, die Cloud Voice Mail nutzen. Die Migrationsbefehle sollten dann nicht mehr mit einer Fehlermeldung blockieren

UM-Felder

Um all die Zusammenhänge zu verstehen, habe ich einen Test-User in den verschiedenen Konfigurationen betrieben und mir die LDAP-Properties dazu genauer angeschaut. Vielleicht helfen ihnen bei Fehlersuche und Konfiguration meine Erkenntnisse zu den Internals dieser Felder:

Feldname KeinUM UM mit SIP-Dialplan UM mit Extension-Dialplan Cloud Voice Mail

ProxyAddreses

keine "EUM"-Einträge

eum:123;phone-context=UMDialplanSIP.UCLABOR.DE
EUM:fctest6@UCLABOR.DE;phone-context=UMDialplanSIP.UCLABOR.DE

eum:123;phone-context=UMDialplanEXP.UCLABOR.DE

Kein EUM-Eintrag

msExchUMRecipientDialPlanLink

Leer

CN=UMDialplanSIP,CN=UM DialPlan Container,CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=UCLABOR,DC=DE

CN=UMDialplanEXT,CN=UM DialPlan Container,CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=UCLABOR,DC=DE

Leer

msExchUMTemplateLink

Leer

BASE64-Daten

BASE64-Daten

Leer

msExchUMPinChecksum

Leer

BASE64-Daten

BASE64-Daten

Leer

msExchUMEnabledFlags

Leer

831

831

Leer

msExchUMEnabledFlags2

Leer

Leer

Leer

-1

msExchUCVoiceMailSettings

Leer

Leer

Leer

CSHostedVoiceMail=1

msRTCSIP-UserPolicies

SfB Policies

SfB Policies

SfB Policies

addiert 23=2

Wie nicht anders zu erwarten ändern die Exchange Commandlets meist nur die Exchange-Felder. Benutzer mit CloudVoiceMail haben eigentlich nur die CSHostedVoicMailPolicy im Feld msRTCSIP-UserPolicies aber auch interessanteweise den Eintrag "CSHostedVoiceMail=1" im Exchange Feld msExchUCVoiceMailSettings. Das Feld msExchUCVoiceMailSettings wird durch ein "Disabled-UMMailbox" auch geleert, obwohl es Exchange anscheinend selbst gar nicht auswertet.

Weitere Links