Voraussetzungen vPBX+Teams

Lizenzen

  • Microsoft 365 E5 Lizenz oder
  • Microsoft 365 E3, mit "Phone System" (und optional "Audio conferencing") Lizenz pro User oder
  • Microsoft 365 E1, mit "Phone System" (und optional "Audio conferencing") Lizenz pro User oder
  • Microsoft 365 Business Basic/Standard/Premium, mit "Phone System" Lizenz pro User, welcher telefonieren können soll

iWay AG bietet im Moment keine Microsoft-Lizenzen an.

Zugriffe/Berechtigungen

  • Microsoft365 Global Admin User für "Microsoft 365 admin center", "Microsoft Teams admin center" und Powershell

vPBX

  • Richtige Hypervisor-Umgebung sein, die vPBX-Version ab KVM304v3 und Menü "PBX Einstellungen" sichtbar: Kontaktieren Sie hierzu den iWay-VoIP-Support: 0435001111 oder voip@iway.ch

Vorbemerkungen zur MS Teams Domain

Es wird davon ausgegangen, dass Sie die Domain "ihredomain.ch" schon in MS Teams verwenden. Es werden nun folgende 5 DNS-Einträge hinzugefügt: 4 Einträge für "Skype for Business" und A-Record von teams.ihredomain.ch auf Ihre vPBX xyz.vpbx.iway.ch.

Nach der Umstellung wird Ihre vPBX nur noch unter https://teams.ihredomain.ch erreichbar sein, da nicht zwei SSL-Zertifikate auf eine vPBX zeigen können. Ihre zuvor angemeldeten Telefone/CTI-Clients müssen entsprechend umkonfiguriert/neu provisioniert werden. Ebenfalls müssen die Teilnehmer-Logins den MS-Teams-Usern angeglichen werden, d. h. die Teilnehmer-Logins auf der vPBX müssen ebenfalls vorname.nachname lauten.

Inhalt:

Schritt 1: Einrichten der Domain

Dieser Schritt zeigt das Einrichten der Domain im "Microsoft 365 admin center" unter https://admin.microsoft.com/AdminPortal/Home#/Domains .


Erstellen der DNS-Server-Einträge

Tragen Sie auf Ihren DNS-Servern folgende Einträge für Ihre Domain "ihredomain.ch" ein:

HostnameDomainTTLINTypePrioContent
sip.ihredomain.ch3600INCNAME
sipdir.online.lync.com
lyncdiscover.ihredomain.ch3600INCNAME
webdir.online.lync.com
_sip._tls.ihredomain.ch3600INSRV1001 443 sipdir.online.lync.com
_sipfederationtls._tcp.ihredomain.ch3600INSRV1001 5061 sipfed.online.lync.com



Erstellen Sie auch noch folgenden A-Eintrag, bei welchem teams.ihredomain.ch auf die IP Ihrer vPBX xyz.vpbx.iway.ch zeigt:

HostnameDomainTTLINTypePrioContent
teams.ihredomain.ch3600INA
IP.der.iWay.vPBX





Zum Zeitpunkt der Umstellung der vPBX auf Teams muss dieser DNS-Eintrag weltweit verfügbar sein, da sonst das nötige Zertifikat nicht erstellt werden kann.


Aktivierung Ihrer Domain für "Skype for Business"

Öffnen Sie https://admin.microsoft.com/AdminPortal/Home#/Domains 

Klicken Sie auf "ihredomain.ch" (jene Domain, welche Sie schon für sich eingerichtet ist):

Klicken Sie auf "DNS records" und dann auf "Manage DNS":

Klicken Sie unten auf :

Setzen Sie hier das Häkchen unter "Advanced Options" bei "Skype for Business":

Überprüfen Sie die DNS-Einträge und schliessen Sie diesen Schritt ab.


Schritt 2: Weisen Sie den MS Teams Usern die richtige Microsoft Lizenz zu

MS Lizenzen

  • Bei Enterprise Lizenzen braucht es entweder eine E5 Lizenz (keine weitere Zusatzlizenz nötig) oder eine E3 Lizenz mit Phone System add-on (und, falls Konferenzen getätigt werden sollen, Audio Conferencing add-on)
  • Bei Microsoft 365 Lizenzen braucht es zusätzlich pro Benutzer die "Phone System"-Lizenz

Weisen Sie unter "Users" / "Active Users" den MS Teams Usern die richtige Microsoft Linzenz zu:

Schritt 3: Auf vPBX "Teams-Kompatibilitätsmodus" einschalten und Domain ändern

Auf der vPBX unter "PBX Einstellungen" bei "Teams-Kompatibilitätsmodus" auf "VoIP+Presence" umstellen und auf "Speichern" klicken:

Im selben Menü unter "Allgemeine Einstellungen" den Hostname und die Domain angeben:

Zu diesem Zeitpunkt muss der neue DNS-Eintrag (teams.ihredomain.ch) weltweit verfügbar sein, da sonst das nötige Zertifikat nicht erstellt werden kann.

Nach dieser Umstellung ist Ihre vPBX nur noch unter https://teams.ihredomain.ch mit Zertifikat erreichbar. Alle Telefone und CTI-Clients müssen auf die neue Domain umkonfiguriert werden.

Schritt 4: In Azure Wert-Schlüssel-Paar erzeugen und auf vPBX übertragen

In diesem Schritt wird in Azure ein Wert-Schlüssel-Paar ("Teams app id" / "Teams app key") erstellt, welches zur Abfrage des Presence-Status von MS Teams nötig ist.

"Anwendungs-ID (Client)" erstellen


Azure öffnen (https://portal.azure.com/) und dann unter "Azure Active Directory" / "App-Registrierungen" eine "Neue Registrierung" erstellen:


Direktlink: https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps







Unter "Name" einen frei gewählten Namen angeben, z. B. "iwayteamsbridge" (es kann eine eigene Bezeichnung verwendet werden):



Bei "Unterstützte Kontotypen" "Nur Konten in diesem Organisationsverzeichnis" auswählen:










Unter "Umleitung-URI (optional)" die neue URL Ihrer vPBX https://teams.ihredomain.ch/oauth/ angeben:

Zuunterst auf klicken.

Den Wert hinter "Anwendungs-ID (Client)" kopieren ....















... und auf der vPBX in den "PBX Einstellungen" ins Feld "Teams app id" kopieren:

"Geheimer Clientschlüssel" erzeugen

Unter "Zertifikate & Geheimnisse" auf "Neuer geheimer Clientschlüssel" klicken, ...


... "Geheimen Clientschlüssel hinzufügen", ...

... diesen auf der vPBX in den "PBX Einstellungen" ins Feld "Teams app key" kopieren und danach auf "Speichern" klicken.

API-Berechtigungen

API-Berechtigungen müssen folgende gesetzt werden:

  • User.Read
  • Presence.Read
  • Presence.ReadAll


Authentifizierung der vPBX an Teams

Zum Abschluss die vPBX an der Microsoft Umgebung anmelden:

Schritt 5: Aktivieren von "Microsoft Teams Benutzer" und Eintragen der "MS Teams Telefonnummer" pro Teilnehmer auf der vPBX

Alle Benutzer auf der PBX erstellen bzw. entsprechend dieser Regel ändern: Der Benutzername muss identisch sein, wie der Microsoft 365 Benutzername (ohne @Domain). Beispiel: wenn der Microsoft 365 Benutzer hans.beispiel@beispielfirma.ch heisst, so muss der Benutzer auf der vPBX hans.beispiel heissen.

Bei jedem Teams Benutzer ist nach dem Erstellen die Option "Microsoft Teams Benutzer" zu aktivieren und die Telefonnummer (Format +41...), mit welcher der Benutzer in der Teams Umgebung verknüpft werden wird, unter "MS Teams Telefonnummer" einzutragen, siehe Screenshot rechts.

Update Juli 2021: Als "MS Teams Telefonnummer" muss keine gültige Telefonnummer verwendet werden und auch das Format +41... muss nicht beachtet werden: Es können auch (z. B. vierstellige) interne Telefonnummern verwendet werden, wie z. B. 1000, 1001, 1002 etc. 
Das Eintragen von Internen Nummern ins Feld "MS Teams Telefonnummer" scheint nur zuverlässig zu funktionieren wenn alle User ausschliesslich MS Teams verwenden. Ansonsten gibt es Probleme beim Weiterleiten von Anrufen von MS Teams zu Hardware-Telefonen oder CTI-Client. 

Schritt 6: In Powershell an Teams anmelden

Powershell-Befehle

Anmerkungen / Screenshots

Import des MicrosoftTeams Moduls
Import-Module MicrosoftTeams



Falls das Modul noch nicht installiert ist, wie folgt installieren:

Find-Module -Name MicrosoftTeams | Install-Module

Falls keine Rechte für's Ausführen von Scripten:

Set-ExecutionPolicy Unrestricted

Changelog Microsoft Teams PowerShell: https://docs.microsoft.com/de-de/MicrosoftTeams/teams-powershell-release-notes

Modul upgraden
Update-Module MicrosoftTeams

Welche Version vom MicrosoftTeams-Modul ist installiert?

Get-InstalledModule -Name MicrosoftTeams
Credentials-Objekt erstellen (Zugangsdaten eines Office365-Admins werden benötigt)
Connect-MicrosoftTeams

Hier müssen die Zugangsdaten vom Admin-User eingegeben werden.


Schritt 7: PSTN-Gateway erstellen (einmalig)

MSTEAMS_FQDN = teams.ihredomain.ch


Gateway erstellen und Direct Routing Service verbinden (MSTEAMS_URL wird Ihnen von iWay AG mitgeteilt)
New-CsOnlinePSTNGateway -Fqdn MSTEAMS_FQDN -MaxConcurrentSessions 100 -Enabled $true -ForwardPai $true -ForwardCallHistory $true

Sie werden nun nach dem SipSignalingPort (PORT_VON_SBC) gefragt. Geben Sie hier 5061 ein.

Mit dem folgenden Befehl kann die Konfiguration überprüft werden:

Get-CsOnlinePSTNGateway

PSTN-Gateway wieder löschen:

Remove-CsOnlinePSTNGateway -Identity MSTEAMS_FQDN

Schritt 8: Voice Routing und entsprechende Policy einrichten (einmalig)

PSTN-Usage erstellen

Set-CsOnlinePstnUsage -Identity Global -Usage @{Add="Unrestricted"}


Route erstellen

New-CsOnlineVoiceRoute -Identity "Unrestricted" -OnlinePstnGatewayList MSTEAMS_FQDN -Priority 1 -OnlinePstnUsages "Unrestricted" -NumberPattern ".*"

Überprüfen der Route

Get-CsOnlineVoiceRoute

OnlineVoiceRoute wieder löschen:

Remove-CsOnlineVoiceRoute -Identity "Unrestricted"

User-Routing-Policy erstellen

New-CsOnlineVoiceRoutingPolicy "Unrestricted" -OnlinePstnUsages "Unrestricted"

Überprüfen der User-Routing-Policy:

Get-CsOnlineVoiceRoutingPolicy
OnlineVoiceRoutingPolicy wieder löschen:


Remove-CsOnlineVoiceRoutingPolicy -Identity "Unrestricted"

Schritt 9: Benutzer aktivieren und MS Teams UUID auf vPBX eintragen (für jeden Benutzer)

Powershell-Einträge

Benutzer aktivieren, Telefonnummer und Voicemail Box zuweisen:

OFFICE365_USERUsername des Microsoft 365-Accounts (z. B.: max.muster@ihredomain.ch)
RUFNUMMER

"MS Teams Telefonnummer" der vPBX im Format +41435001111

Update 1.7.21: Offensichtlich können dort beliebige Nummern gewählt werden, auch z. B. vierstellige, interne Nummern.

Set-CsPhoneNumberAssignment -Identity OFFICE365_USER -PhoneNumber RUFNUMMER -PhoneNumberType DirectRouting
Set-CsPhoneNumberAssignment -Identity OFFICE365_USER -EnterpriseVoiceEnabled $true

Zuweisen der User-Routing-Policy:

Grant-CsOnlineVoiceRoutingPolicy -Identity OFFICE365_USER -PolicyName "Unrestricted"


MS Teams UUID pro Benutzer auslesen und in die vPBX übertragen

Neue PowerShell Session mit dem Azure Active Directory verbinden

Import-Module AzureAD
Connect-AzureAD

Falls das Modul noch nicht installiert ist, wie folgt installieren:

Find-Module -Name AzureAD | Install-Module

Pro Benutzer die ObjectId auslesen...

Get-AzureADUser -ObjectId "vorname.nachname@ihredomain.ch"

Ausgabe wie folgt:

ObjectId DisplayName UserPrincipalName UserType
-------- ----------- ----------------- --------
abcabcab-abca-abca-abca-abcabcabcabc Hans Beispiel hans.beispiel@ihredomain.ch Member

...und auf beim vPBX-Teilnehmer im Feld "MS Teams UUID" auf der vPBX eintragen: