Unser Wissen
für Euch

T2T Migration Teams Direct Routing

10. Juni, 2024

Wie komplex die Migration eines bestehenden Teams Direct Routing Setups von einem Tenant zu einem anderen Tenant wird, hängt von der Ausgangslage und Anforderungen ab.

In der Regel steht eine solche Tenant zu Tenant Migration im Rahmen eines Carve-out oder Carve-in eines Unternehmens oder Unternehmensteil an.

Die Planung

Soll die vollständige bestehende Konfiguration übernommen werden, sind zuerst folgende Punkte zu klären:

Wem gehören die Rufnummernblöcke, aus denen Rufnummern mitgenommen werden sollen?

Rufnummernblöcke können nicht in allen Ländern beliebig aufgeteilt werden, eventuell muss das umziehende Unternehmen neue Rufnummern beantragen.

Welche Änderungen wird es in den primär genutzten Domains für Mail, UPN, SIP geben?

Kann die Domainendung, mit der das PSTN Gateway im bisherigen Tenant angelegt wurde, nicht weiterverwendet werden, müssen neue Zertifikate beschafft und Konfigurationsänderungen auf dem Session Border Controller eingeplant werden. Das betrifft in der Regel nur Session Border Controller, die mit kundeneigenen Domains betrieben werden.

Sind alle Richtlinien (Policies) noch aktuell und sollen sie 1:1 übernommen werden?

Der Umzug in einen eigenen oder anderen Tenant ist verbunden mit der Möglichkeit oder Verpflichtung, bisherige Richtlinien zu ändern. Diese Änderungen haben eine unmittelbare Auswirkung auf die Benutzererfahrung und sollten den Anwendern mitgeteilt werden.

Die Vorbereitung

Zur Sicherung der bestehenden Konfiguration finden sich Scripts vertrauenswürdiger MVPs im Internet:

Beim Auslesen der Anrufeinstellungen der Benutzer war mir Copilot behilflich. Mit kleinen Anpassungen ist das folgende Script entstanden:

# Import the Teams module
Import-Module MicrosoftTeams# Connect to Microsoft Teams
Connect-MicrosoftTeams# The user’s email whose calling settings you want to export
$userEmails = Get-CsOnlineUser -Filter {FeatureTypes -contains „PhoneSystem“ -and userprincipalname -like „*contoso.com“}
#$userEmails = Get-CsOnlineUser -Filter {FeatureTypes -contains „CallingPlan“}Foreach ($userEmail in $userEmails)
{

# Get the user’s calling settings
$callingSettings = Get-CsUserCallingSettings -Identity $userEmail.UserPrincipalName

# Get the user’s delegates
$delegates = $callingSettings.Delegates.id

# Get the user’s call group members
$callgrouptargets = $callingSettings.CallGroupTargets

# Create a custom object to hold all the information
$userInfo = [PSCustomObject]@{
Identity = $callingSettings.SipUri
IsForwardingEnabled = $callingSettings.IsForwardingEnabled
ForwardingType = $callingSettings.ForwardingType
ForwardingTarget = $callingSettings.ForwardingTarget
ForwardingTargetType = $callingSettings.ForwardingTargetType
IsUnansweredEnabled = $callingSettings.IsUnansweredEnabled
UnansweredTarget = $callingSettings.UnansweredTarget
UnansweredTargetType = $callingSettings.UnansweredTargetType
UnansweredDelay = $callingSettings.UnansweredDelay
Delegates = ($delegates -join ‚, ‚)
CallGroupOrder = $callingSettings.CallGroupOrder
CallGroupTargets = ($callgrouptargets -join ‚, ‚)

}

# Export the information to a CSV file
$userInfo | Export-Csv -Path „c:\temp\callingsettings-afterImport-20240525.csv“ -NoTypeInformation -Append
}
# Disconnect the Teams session
Disconnect-MicrosoftTeams

Als Datenbasis für die Zuweisung der Rufnummern bietet sich die csv an, die sich aus dem Teams Admin Center aus der Benutzerverwaltung mit einem einfachen Filter auf Phone Number + starts with + herunterladen lässt.

Oder dieser PowerShell Einzeiler:

Get-CsOnlineUser -filter {lineuri -ne $null} | select userprincipalname,lineuri

Der Pilot

Your Content Goes HereZu einer guten Vorbereitung gehört eine Validierung derselben. In einigen Fällen kann diese Validierung schwierig sein: Wir die Domain aus dem Quell-Tenant im Ziel-Tenant weiterverwendet, kann das PSTN Gateway im Ziel Tenant erst nach dem Domainumzug in den Ziel-Tenant angelegt werden. Hier muss gemeinsam mit dem Kunden das Risiko abgewogen werden. Aus meiner Sicht is das Risko, dass die Telefonie überhaupt gar nicht funktionieren wird, wenn die Konfiguration übernommen wird und am SBC und der Firewall keine Änderungen vorgenommen wurden, sehr gering. Der Aufwand für den Test sprengt in diesem Fall den Rahmen, weil alle dafür notwendigen Änderungen wieder rückgängig gemacht werden würden (neue Domain, neues Zertifikat, zusätzliches Routing auf dem SBC usw.). An dieser Stelle plane ich lieber ausreichende Zeit und Ressourcen für Tests innerhalb der Downtime für die T2T Migration ein.

Die Migration

Erfolgt der Umzug in einen neuen, leeren Tenant, kann man das Voice Routing und die Richtlinien schon vor dem Migrationstag zu einem beliebigen Zeitpunkt konfigurieren. Erfolgt der Umzug in einen bestehenden Tenant können die unternehmensspezifischen Richtlinien und Anteile des Voice Routings ebenfalls schon vorbereitet werden.

Am Migrationstag werden alle Teams Telefone und Teams Rooms im Teams Admin Center des Quell-Tenant abgemeldet und danach gelöscht. Damit sollten die Geräte aus Entra ID verschwinden, zur Not kann dort manuell nachgeholfen werden.

Abhängigkeiten

Das PSTN Gateway lässt sich im Ziel-Tenant erst dann anlegen, wenn die Domain im Tenant validiert und einem Benutzerkonto mit einer Teams Lizenz und der Domain im UPN zugewiesen ist.

Andere Aufgaben lassen sich erst durchführen, wenn die Benutzerkonten im Ziel Tenant angelegt sind und eine Teams Phone System Standard Lizenz zugewiesen wurde:

  • Die Zuweisung der Rufnummern
  • Die Zuweisung der Richtlininen
  • Die Übernahme der persönlichen Anrufeinstellungen der Benutzer
  • Die Anmeldung der Telefone am Ziel-Tenant

Funktionstests

Ich empfehle direkt nach der Umsetzung aller Änderungen Funktionstest an allen Standorten mit eigenen Richtlinien (Wählpläne, Voice Routing Richtlinie usw.), mindestens die folgenden Szenarien sollten getestet sein:

  • Eingehende Anrufe
  • Ausgehende Anrufe
  • Rufumleitung
  • Anrufe weiterleiten
  • Notruf

Und was ist mit dem Rest?

Weitere Endpunkte wie analoge Endgeräte oder DECT Infrastruktur sind in der Regel von den Änderungen nicht betroffen, wenn sie als Registrar weiterhin den bisherigen Session Border Controller verwenden.

Unser Wissen
für Euch

T2T Migration Teams Direct Routing

10. Juni, 2024

Wie komplex die Migration eines bestehenden Teams Direct Routing Setups von einem Tenant zu einem anderen Tenant wird, hängt von der Ausgangslage und Anforderungen ab.

In der Regel steht eine solche Tenant zu Tenant Migration im Rahmen eines Carve-out oder Carve-in eines Unternehmens oder Unternehmensteil an.

Die Planung

Soll die vollständige bestehende Konfiguration übernommen werden, sind zuerst folgende Punkte zu klären:

Wem gehören die Rufnummernblöcke, aus denen Rufnummern mitgenommen werden sollen?

Rufnummernblöcke können nicht in allen Ländern beliebig aufgeteilt werden, eventuell muss das umziehende Unternehmen neue Rufnummern beantragen.

Welche Änderungen wird es in den primär genutzten Domains für Mail, UPN, SIP geben?

Kann die Domainendung, mit der das PSTN Gateway im bisherigen Tenant angelegt wurde, nicht weiterverwendet werden, müssen neue Zertifikate beschafft und Konfigurationsänderungen auf dem Session Border Controller eingeplant werden. Das betrifft in der Regel nur Session Border Controller, die mit kundeneigenen Domains betrieben werden.

Sind alle Richtlinien (Policies) noch aktuell und sollen sie 1:1 übernommen werden?

Der Umzug in einen eigenen oder anderen Tenant ist verbunden mit der Möglichkeit oder Verpflichtung, bisherige Richtlinien zu ändern. Diese Änderungen haben eine unmittelbare Auswirkung auf die Benutzererfahrung und sollten den Anwendern mitgeteilt werden.

Die Vorbereitung

Zur Sicherung der bestehenden Konfiguration finden sich Scripts vertrauenswürdiger MVPs im Internet:

Beim Auslesen der Anrufeinstellungen der Benutzer war mir Copilot behilflich. Mit kleinen Anpassungen ist das folgende Script entstanden:

# Import the Teams module
Import-Module MicrosoftTeams# Connect to Microsoft Teams
Connect-MicrosoftTeams# The user’s email whose calling settings you want to export
$userEmails = Get-CsOnlineUser -Filter {FeatureTypes -contains „PhoneSystem“ -and userprincipalname -like „*contoso.com“}
#$userEmails = Get-CsOnlineUser -Filter {FeatureTypes -contains „CallingPlan“}Foreach ($userEmail in $userEmails)
{

# Get the user’s calling settings
$callingSettings = Get-CsUserCallingSettings -Identity $userEmail.UserPrincipalName

# Get the user’s delegates
$delegates = $callingSettings.Delegates.id

# Get the user’s call group members
$callgrouptargets = $callingSettings.CallGroupTargets

# Create a custom object to hold all the information
$userInfo = [PSCustomObject]@{
Identity = $callingSettings.SipUri
IsForwardingEnabled = $callingSettings.IsForwardingEnabled
ForwardingType = $callingSettings.ForwardingType
ForwardingTarget = $callingSettings.ForwardingTarget
ForwardingTargetType = $callingSettings.ForwardingTargetType
IsUnansweredEnabled = $callingSettings.IsUnansweredEnabled
UnansweredTarget = $callingSettings.UnansweredTarget
UnansweredTargetType = $callingSettings.UnansweredTargetType
UnansweredDelay = $callingSettings.UnansweredDelay
Delegates = ($delegates -join ‚, ‚)
CallGroupOrder = $callingSettings.CallGroupOrder
CallGroupTargets = ($callgrouptargets -join ‚, ‚)

}

# Export the information to a CSV file
$userInfo | Export-Csv -Path „c:\temp\callingsettings-afterImport-20240525.csv“ -NoTypeInformation -Append
}
# Disconnect the Teams session
Disconnect-MicrosoftTeams

Als Datenbasis für die Zuweisung der Rufnummern bietet sich die csv an, die sich aus dem Teams Admin Center aus der Benutzerverwaltung mit einem einfachen Filter auf Phone Number + starts with + herunterladen lässt.

Oder dieser PowerShell Einzeiler:

Get-CsOnlineUser -filter {lineuri -ne $null} | select userprincipalname,lineuri

Der Pilot

Your Content Goes HereZu einer guten Vorbereitung gehört eine Validierung derselben. In einigen Fällen kann diese Validierung schwierig sein: Wir die Domain aus dem Quell-Tenant im Ziel-Tenant weiterverwendet, kann das PSTN Gateway im Ziel Tenant erst nach dem Domainumzug in den Ziel-Tenant angelegt werden. Hier muss gemeinsam mit dem Kunden das Risiko abgewogen werden. Aus meiner Sicht is das Risko, dass die Telefonie überhaupt gar nicht funktionieren wird, wenn die Konfiguration übernommen wird und am SBC und der Firewall keine Änderungen vorgenommen wurden, sehr gering. Der Aufwand für den Test sprengt in diesem Fall den Rahmen, weil alle dafür notwendigen Änderungen wieder rückgängig gemacht werden würden (neue Domain, neues Zertifikat, zusätzliches Routing auf dem SBC usw.). An dieser Stelle plane ich lieber ausreichende Zeit und Ressourcen für Tests innerhalb der Downtime für die T2T Migration ein.

Die Migration

Erfolgt der Umzug in einen neuen, leeren Tenant, kann man das Voice Routing und die Richtlinien schon vor dem Migrationstag zu einem beliebigen Zeitpunkt konfigurieren. Erfolgt der Umzug in einen bestehenden Tenant können die unternehmensspezifischen Richtlinien und Anteile des Voice Routings ebenfalls schon vorbereitet werden.

Am Migrationstag werden alle Teams Telefone und Teams Rooms im Teams Admin Center des Quell-Tenant abgemeldet und danach gelöscht. Damit sollten die Geräte aus Entra ID verschwinden, zur Not kann dort manuell nachgeholfen werden.

Abhängigkeiten

Das PSTN Gateway lässt sich im Ziel-Tenant erst dann anlegen, wenn die Domain im Tenant validiert und einem Benutzerkonto mit einer Teams Lizenz und der Domain im UPN zugewiesen ist.

Andere Aufgaben lassen sich erst durchführen, wenn die Benutzerkonten im Ziel Tenant angelegt sind und eine Teams Phone System Standard Lizenz zugewiesen wurde:

  • Die Zuweisung der Rufnummern
  • Die Zuweisung der Richtlininen
  • Die Übernahme der persönlichen Anrufeinstellungen der Benutzer
  • Die Anmeldung der Telefone am Ziel-Tenant

Funktionstests

Ich empfehle direkt nach der Umsetzung aller Änderungen Funktionstest an allen Standorten mit eigenen Richtlinien (Wählpläne, Voice Routing Richtlinie usw.), mindestens die folgenden Szenarien sollten getestet sein:

  • Eingehende Anrufe
  • Ausgehende Anrufe
  • Rufumleitung
  • Anrufe weiterleiten
  • Notruf

Und was ist mit dem Rest?

Weitere Endpunkte wie analoge Endgeräte oder DECT Infrastruktur sind in der Regel von den Änderungen nicht betroffen, wenn sie als Registrar weiterhin den bisherigen Session Border Controller verwenden.