CVM mit Ex2016/SfB2015
Mit Exchange Online und Exchange 2019 gibt es einen Anrufbeantworter nur aus der Cloud. Aber Cloud Voice Mail funktioniert auch mit Skype for Business 2015 und sogar mit Exchange 2016 On-Premises. Bis die Seiten bei Microsoft aktualisiert sind, beschreibe ich hier die Funktionsweise:
Support Statement (Feb 2020)
Der Wegfall von Exchange UM in der Cloud wurde schon 2017 angekündigt, 2019 umgesetzt und seit Februar 2020 gibt es in der Cloud offiziell keine ExchangeUM-Server mehr. Stattdessen übernimmt Cloud Voice Mail, früher Azure Voice Mail, diese Funktion für Postfächer und TK-Dienste in der Cloud. Da es aber keine Exchange 2019 UM-Rolle mehr gibt, übernimmt CVM die Funktion auch gleich für die On-Premises-Ausgaben Skype for Business 2019 und Exchange 2019, wenn Sie keine 3rd Party Lösung einsetzen. Auf der Seite Cloud Voice Mail (CVM) und Cloud Voice Mail (CVM) Checkliste habe ich es schon beschrieben und im Januar 2020 hat Microsoft Auch noch folgende Tabelle veröffentlicht:
Quelle:
https://docs.microsoft.com/en-us/skypeforbusiness/hybrid/plan-cloud-voicemail
Wenn diese Tabelle korrekt wäre, dann sollte es nicht möglich sein mit Exchange 2016/2013 On-Premises einen Dienst aus der Cloud zu nutzen. Im Abschnitt "Overview" steht dazu auch klar:
Cloud Voicemail takes the place of Exchange Unified
Messaging (UM) in providing voice messaging functionality
for Skype for Business 2019 voice users who have mailboxes
on Exchange Server 2019 or Exchange Online.
Quelle:
https://docs.microsoft.com/en-us/skypeforbusiness/hybrid/plan-cloud-voicemail
Die Seite "Plan Cloud Voicemail service for On-Premises users" auf https://docs.microsoft.com/en-us/skypeforbusiness/hybrid/configure-cloud-voicemail bezieht sich nur auf Exchange 2019. Zur Begleitung der Abschaltung von ExchangeUM in der Cloud hat Microsoft mehrere "Technical Deep Dive" veranstaltet. Die Aufzeichnungen finden Sie auf https://aka.ms/DeepDiveCloudVoicemail) Hier gibt es auch eine interessante Folie vom Nov 2019, die zumindest den Support bei SfB 2015 und Lync 2013 für CVM ankündigt.
Quelle Technical Deep Dive on Microsoft Cloud Voicemail Min
21:44 Nov 2019 auf
https://aka.ms/DeepDiveCloudVoicemail
Allerdings habe ich hier keine Aussagen zum Postfach gefunden. Sollte CVM wirklich nur funktionieren, wenn auch das Postfach in Exchange Online oder auf Exchange 2019 liegt?
Call Routing
Rein technisch sollte es für Microsoft überhaupt kein Problem sein, für Benutzer die Cloud Voice Mail-Funktion bereitzustellen, selbst wenn sie weiterhin SfB2015 On-Premises und Exchange 2016 On-Premises nutzen. Folgender Ablauf könnte ich mir vorstellen.
Das Bild ist nicht zwingend korrekt, sondern aus Logs und Tests entstanden.
- Eingehender Anruf und Entscheidung VM
ja/nein
Wenn der gerufene Teilnehmer verfügbar ist und abnimmt, dann ist der Lauf hier schon zu Ende. Ansonsten muss Skype for Business irgendwann entscheiden, den Ruf weiter zu leiten, z.B. Teamanrufer etc. Wenn all das nicht geht, dann schaut der Skype for Business Server, ob der Benutzer eine Voicemail hat. - VoiceMail Entscheidung
Nach meiner Beobachtung prüft SfB zuerst, ob die Option "HostedVoiceMail" gesetzt ist. Wenn diese "$true" ist, geht die Mail zum Cloud-Anbieter, selbst wenn der Benutzer auch in Exchange On-Premises UM-aktiviert ist. Wenn aber keine HostedVoiceMail vorhanden ist, dann prüft SfB die ExchangeUM-Einstellungen. Entsprechend wird der Anruf dann zur Exchange UM-Rolle geleitet oder ist "nicht erreichbar". - On-Premises Voice Mail
Sollte der Benutzer den lokalen UM-Service nutzen, dann nimmt dieser den Ruf an und zeichnet ihn auf. ExchangeUM kann die Mail dann per SMTP ins Postfach ablegen. Exchange UM könnte aber auch per EWS auf das Postfach zugreifen, z.B. für "Outlook Voice Access" - Cloud Voice Mail
Seit Feb2020 gibt es ja kein Exchange Online UM mehr, sondern nur noch CVM. Die Cloud Voice Mail kann den Ruf annehmen und aufzeichnen. Mit der passenden CloudVoicemailPolicy könnte man auch Transkription steuern. - Zustellung per SMTP
CVM liefert die Sprachmail per SMTP an die Mailadresse des angerufenen Anschlusses an Exchange Online an. Über die entsprechende Konfiguration der Connectoren müssen Sie natürlich sicherstellen, dass die Mails auch das interne Postfach möglichst sicher (TLS) und ohne Spamfilterung erreichen.
Systemkonfiguration
Damit das alles funktioniert, sind natürlich einige Voraussetzungen erforderlich. Die Konfiguration dazu haben Microsoft und ich auf anderen Seiten schon beschrieben:
- Verzeichnisabgleich mit ADSync und
Hybrid (ADSync
und
ADSync mit Exchange)
Im Office 365 Tenant müssen natürlich die entsprechende Informationen über die Anwender vorhanden sind. ADSync muss also mit Exchange Hybrid installiert sein. - Exchange Classic Hybrid und OAUTH (Exchange
Hybrid Starter)
Auch Exchange sollten sie "Hybrid" betreiben, weil so sichergestellt ist, dass nicht nur das Mailrouting über Connectoren zwischen Tenant und On-Premises konfiguriert ist sondern auch der Zugriff von CVM per EWS auf die Mailbox-Einstellungen möglich ist. - SfB-Hybrid / HostedVoicMailRoute (Skype
for Business Hybrid Mode)
Die eigene Route zu exum.ap.outlook.com ist auf jeden Fall erforderlich. Ich bin aber nicht sicher, ob man auch ohne SfB Hybrid Mode und Shared SIP-Domain die Funktion nutzen kann. Bislang stellte sich die Frage nie. - HostedVoicemailPolicy
Diese Einstellung gibt es wohl On-Premises als auch in SfB Online und hilft verknüpft den Inhalt von HostedVoiceMailPolicy beim Benutzer mit einem Routing zu exum.ap.outlook.com bzw. einem UM-Service in der Cloud
Ich gehe hier absichtlich nicht abschließend auf die Lizenzierung ein. Ich bin ziemlich sicher, das der Anwender einen Exchange Plan für CVM braucht, auch wenn das Postfach On-Premises liegt. Als Firma ist das aber meist kostenneutral, weil Sie ja die lokale Exchange CAL damit nicht kaufen müssen. Eine PhoneSystem-Lizenz sollte der User nicht brauchen aber ein User im Tenant muss eine PhoneSystem-Lizenz zugewiesen bekommen, damit CVM für den Tenant überhaupt aktiviert wird.
Userkonfiguration
Interessant wird es jetzt bei den Benutzern und deren Einstellung. Es kann hier mehrere Szenarien geben, bei denen Benutzer mit Cloud Voice Mail abreiten können. Ich verzichte der Übersichtlichkeit auf die Fälle, die von Microsoft offiziell supportet sind, d.h. Nutzer mit SfB2019, Exchange 2019, Exchange Online. Interessanter finde ich die Benutzer, die noch Exchange 2016 und/oder SfB2015 On-Premises nutzen. Ich beschränke mich auf die Fälle, die noch nicht von Microsoft beschrieben sind, d.h. alle Konstellationen mit Exchange in der Cloud oder Exchange 2019 als auch SfB Online/Teams sind nicht interessant. Alle Testbenutzer sind auf Skype for Business 2015 On-Premises und das Exchange Postfach ist bis auf einen Fall auch On-Premises
Einstellungen |
User1 |
User2 |
User3 |
---|---|---|---|
Mailbox Server |
Exchange 2016 |
Exchange 2016 |
365 |
Skype for Business Plattform |
SfB 2015 |
SfB 2015 |
SfB 2015 |
ExOnPrem: Get-Recipient:
| fl |
|
|
|
SfB:Get-CSUser | fl |
|
|
|
SfBO: get-csonlineuser |
fl |
|
|
|
Lizenz |
|
|
|
Information |
Hosted Voice Mail überstimmt lokales Exchange UM |
Ok, aber keine Grant-CSOnlineVoicemailPolicy |
Alles möglich |
Interessant ist in dem Fall, dass selbst ein Benutzer, der lokal eine UMMailbox zugewiesen bekommen hat, diese nicht nutzt. Das Flag "HostedVoiceMail:$true" in Skype for Business 2015 veranlasst den Frontend Server gar nicht mehr nach einer ExchangeUM-Mailbox zu suchen.
Exchange UMMailbox migrieren
Wenn Sie Rahmen einer Exchange Hybrid-Installation eine Mailbox von On-Premises in die Cloud migrieren sollen, dann darf der Benutzer keine ExchangeUM-Funktion haben. Die Migration in die Cloud scheitert ansonsten mit einer entsprechenden Fehlermeldung. Hier hilft das Wissen um die CVM-Funktion, weil der Anwender vor der Exchange Postfachmigration entsprechend konfiguriert werden kann:
# Erst wird Cloud Voice Mail für den Benutzer aktiviert, was ExchangeUM umgeht Set-CSUser ` -identity user1@msxfaq.de ` -hostedvoicemail:$true # Dann wird die ExchangeUM-Funktion entfernt Disable-UMMailbox ` -identity user1@msxfaq.de # Nun ist das Postfach frei zur Migration in die Cloud New-MoveRequest ` -Identity user1@msxfaq.de ` -Remote ` -RemoteHostName hybrid.msxfaq.de ` -TargetDeliveryDomain msxfaq.mail.onmicrosoft.com ` -RemoteCredential $cred` -BadItemLimit 100
Danach gibt es dann ja nichts mehr zum "zurückstellen", denn wenn das Postfach in der Cloud ist, dann ist die Nutzung von Cloud Voice Mail eh der Regelbetrieb.
Voicemail Transkription
Cloud Voice Mail hat im Gegensatz zu Exchange UM einige Funktionen weniger, z.B. Outlook Voice Access etc. Aber die "Speech2Text"-Umsetzung finde ich persönlich eine sehr interessante Funktion. Auch wenn der erkannte Text nicht immer perfekt ist, so kann ich meist den Inhalt der Sprachnachricht schon in der Mail lesen und mit das Abhören sparen. Wichtiger ist noch, dass der Text einer Mail auch per Suche in Outlook erschlossen werden kann.
Die Funktion der Sprachübersetzung in Text wird über eine CsVoicemailPolicy bestimmt. Folgende Einstellungen sind in meinem Tenant der Default.
PS C:> Get-CsOnlineVoicemailPolicy Identity : Global EnableTranscription : False ShareData : Defer EnableTranscriptionProfanityMasking : False EnableEditingCallAnswerRulesSetting : True MaximumRecordingLength : 00:05:00 EnableTranscriptionTranslation : True Identity : Tag:Default EnableTranscription : True ShareData : Defer EnableTranscriptionProfanityMasking : False EnableEditingCallAnswerRulesSetting : True MaximumRecordingLength : 00:05:00 EnableTranscriptionTranslation : True Identity : Tag:TranscriptionDisabled EnableTranscription : False ShareData : Defer EnableTranscriptionProfanityMasking : False EnableEditingCallAnswerRulesSetting : True MaximumRecordingLength : 00:05:00 EnableTranscriptionTranslation : True Identity : Tag:TranscriptionProfanityMaskingEnabled EnableTranscription : True ShareData : Defer EnableTranscriptionProfanityMasking : True EnableEditingCallAnswerRulesSetting : True MaximumRecordingLength : 00:05:00 EnableTranscriptionTranslation : True
Da per Default alle Benutzer keine abweichende Richtlinie haben, nutzen Sie die "Global"-Policy, bei der Transcription ausgeschaltet ist.
Voicemail transcription is enabled by
default and transcription profanity masking is disabled by
default for all organizations and users; however, you can
control them by using the Set-CsOnlineVoicemailPolicy and Grant-CsOnlineVoicemailPolicy cmdlets.
Quelle:
https://docs.microsoft.com/en-us/microsoftteams/set-up-phone-system-voicemail
Angeblich kann ich keine neuen Policies anlegen. Allerdings ist das nicht in all meinen Tenants so. Den genauen Grund habe ich noch nicht herausgefunden.
You can't create a new policy instance
for transcription and transcription profanity masking using
the New-CsOnlineVoiceMailPolicy cmdlet, and you can't remove
an existing policy instance using the Remove-CsOnlineVoiceMailPolicy cmdlet.
Quelle:
https://docs.microsoft.com/en-us/microsoftteams/set-up-phone-system-voicemail
Für jeden Benutzer können Sie natürlich eine abweichende Richtlinie manuell zuweisen. Aber auch dazu müssen ein paar Voraussetzungen stimmen, damit Sie nicht mit der folgenden Meldungen konfrontiert werden:
Grant-CsOnlineVoicemailPolicy ` -Identity user1@msxfaq.de ` -PolicyName Tag:TranscriptionDisabled User "user1@msxfaq.de" is not enabled for Online Voicemail service.
Auch wen das Postfach weiterhin "On-Premises" ist und auch Skype for Business weiterhin On-Premises genutzt wird, muss die Cloud dennoch wissen, dass der Anwender auch "Cloud Voice Mail" nutzen darf.
Nach meinen Recherchen ist dazu (Feb 2020) eine "Phone-System"-Lizenz erforderlich, damit dieses Commandlet funktioniert. Ohne Lizenz werden Einstellungen sogar wieder zurück gestellt.
Hinweis:
Das Zuweisen einer CSOnlineVoicemailPolicy wird nicht sofort
aktiv.
SfbO: HostedVoiceMailPolicy
Benutzer, die früher schon ihr Postfach in Exchange Online hatten, haben die VoiceMail Funktion natürlich auch über die UM-Rolle in Exchange Online erhalten. Als Skype for Business Administrator mussten Sie dazu On-Premises entsprechende Polices anlegen und den Benutzern zuweisen. Das ist so On-Premises nicht mehr erforderlich, das Sie über die "HostedVoiceMail"-Policy beim Benutzer im lokalen Active Directory schon den Cloud-Server hinterlegen. Technisch kennt ihr Skype for Business 2015 Server aber keinen Unterschied und leitet den Anruf auch weiterhin über den Skype for Business Edge-Server entlang der Route zur Cloud.
Interessant ist da noch ein Blick in die HostedVoiceMailPolicy der Cloud. Ich habe bei mir hier folgende zwei Einträge gefunden, die ich aber nicht angepasst habe
# Skype for Business Online PowerShell PS C:\> Get-CsHostedVoicemailPolicy Identity : Global Description : Destination : exap.um.outlook.com Organization : msxfaq.onmicrosoft.com BusinessVoiceEnabled : False NgcEnabled : False Identity : Tag:BusinessVoice Description : VoiceMail Policy for Business Voice enabled users Destination : sipedgeAM30R.infra.lync.com Organization : BVProd BusinessVoiceEnabled : True NgcEnabled : True
Hier findet sich auch nach der Abschaltung von Exchange UM weiterhin eine globale Policy, die Anrufe zu "exap.um.outlook.com" leitet. Weiterhin gibt es eine zweite Policy mit der Identity "Tag:BusinessVoiceMail", welche anscheinend auf einen Edge-Server von Skype for Business verweist.
Der Namen "BusinessVoice" findet sich aber auch in der On-Premises HostedVoiceMail-Konfiguration beim Benutzer. Wenn ich es recht weiß, dann wird der Name im SIP-INVITE auch mit übergeben. In Office 365 dürfte daher der eingehende INVITE der On-Premises-Umgebung so zum richtigen Server geleitet werden, der dann die VoiceMail aufzeichnen kann. Leider ist zum internen Prozess hier auch nicht mehr bekannt.
Mailrouting zum Postfach
Wenn Cloud Voice Mail die Sprachnachricht aufgezeichnet hat, dann muss diese natürlich noch ins Postfach übertragen werden. Dazu bedient sich die Cloud Voice Mail einfach dem Exchange Transport. Das dokumentiert Microsoft auch entsprechend:
Voicemail messages are delivered to
users' Exchange mailbox via SMTP routed through Exchange
Online Protection. To enable successful delivery of these
messages, please be sure that Exchange Connectors are
configured correctly between your Exchange servers and
Exchange Online Protection; Use Connectors to Configure Mail
Flow.
Quelle:
https://docs.microsoft.com/en-us/microsoftteams/set-up-phone-system-voicemail
To enable Voicemail features such as
customizing greetings, and visual voicemail in Skype for
Business clients, connectivity from Office 365 to the
Exchange server mailbox via Exchange Web Services is
required. To enable this connectivity you must configure the
new Exchange Oauth authentication protocol described in Configure
OAuth authentication between Exchange and Exchange Online
organizations, or run the Exchange Hybrid Wizard from
Exchange 2013 CU5 or greater.
Quelle:
https://docs.microsoft.com/en-us/microsoftteams/set-up-phone-system-voicemail
Damit stellt sich natürlich die Frage, ob CVM die Mails nun per SMTP direkt an den MX-Record für ihre Domäne überstellt oder die Mails einfach in ihrem Exchange Online Tenant eingeliefert werden, so dass die Mails über einen konfigurierten Hybrid-Connector auch zum On-Premises-Postfach übertragen werden. Ich habe daher einem Exchange On-Premises Benutzer eine Sprachnachricht überlassen und den Header der VoiceMail betrachtet.
Received: from AM0PR04MB4273.eurprd04.prod.outlook.com (2603:10a6:20b:100::32) by AM7PR04MB6997.eurprd04.prod.outlook.com with HTTPS via AM7PR02CA0022.EURPRD02.PROD.OUTLOOK.COM; Mon, 2 Mar 2020 09:07:40 +0000 Received: from AM5PR04CA0028.eurprd04.prod.outlook.com (2603:10a6:206:1::41) by AM0PR04MB4273.eurprd04.prod.outlook.com (2603:10a6:208:67::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.18; Mon, 2 Mar 2020 09:07:39 +0000 Received: from VE1EUR03FT056.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::202) by AM5PR04CA0028.outlook.office365.com (2603:10a6:206:1::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.15 via Frontend Transport; Mon, 2 Mar 2020 09:07:39 +0000 Received-SPF: Fail (protection.outlook.com: domain of Netatwork.de does not designate 52.114.75.28 as permitted sender) receiver=protection.outlook.com; client-ip=52.114.75.28; helo=EUR03B.map.protection.outlook.com; Received: from EUR03B.map.protection.outlook.com (52.114.75.28) by VE1EUR03FT056.mail.protection.outlook.com (10.152.19.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.15 via Frontend Transport; Mon, 2 Mar 2020 09:07:39 +0000 Message-ID:<xxxx-xxxx-xxxx-xxxx-xxxx@VE1EUR03FT056.eop-EUR03.prod.protection.outlook.com>
Dies ist eine Voicemail an mein Office 365 Postfach bei Net at Work. Se sehen ganz unten die Zeile mit der MessageID und dann von unten nach oben die Zwischenstationen bis zur Zustellung in mein Postfach.
Hinweis: Cloud Voice Mail und Exchange Online routen die Mail nicht über das NoSpamProxy-Gateway, welches über den MX-Record veröffentlicht wurde. CVM bleibt also in der Exchange Welt.
Es gibt noch ein paar weitere Header, die Rückschlüssel auf die VoiceMail zulassen. Dies war aber einer Teams Federation Anruf und kein Telefonanruf.
X-AttachmentOrder: audio.mp3 X-VoiceMessageDuration: 9 Content-Class: Voice-CA X-CallingTelephoneNumber: xxxxxxxxxxx X-VoiceMessageSenderName: xxxxxxxx X-AzureVoicemail-CallId: xxxx-xxx-xxxx-xxxx-xxxx X-AzureVoicemail-FirehoseActivityId: xxxx X-IsPstnCall: False X-ShareDataEnabled: True To: Frank.Carius@Netatwork.de From: "xxxxx" <xxxxx@xxxxxxx> Reply-To: "xxxxx" <xxxxx@xxxxxxx> Subject: =?utf-8?b?Vm9pY2VtYWlsICg4IFNla3VuZGVuKQ==?= X-VoiceMessageLanguage: de X-AzureVoicemail-TranscriptionRequestId: xxxx-xxxx-xxxx-xxxx-xxxx X-VoiceMessageTranscription: =?utf-8?b?xxxxxxxxxxxxx= X-VoiceMessageTranscriptionLanguage: de-DE X-VoiceMessageConfidenceLevel: high X-VoiceMessageInitialSilence: False Priority: normal MIME-Version: 1.0 Return-Path: noreply_skype_voicemail_xxxx-xxxx-xxxx-xxxx-xxxx@Netatwork.de Date: Mon, 2 Mar 2020 09:07:39 +0000 X-MS-Exchange-Organization-MessageDirectionality: Originating X-MS-Exchange-Organization-AuthAs: Internal X-MS-Exchange-Organization-AuthSource: TreatMessagesAsInternal-VE1EUR03FT056.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB4273:Skype X-MS-Exchange-Organization-SCL: -1
- Use Connectors to Configure Mail Flow
https://docs.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/use-connectors-to-configure-mail-flow
Benutzereinstellungen
Wenn der Anwender nur noch "Cloud Voice Mail" nutzt, dann muss er auch in der Cloud die Einstellungen verwalten. die eventuell lokal vorhandenen Exchange Server betreiben zwar noch seine Mailbox und theoretisch könnte ein lokaler UM-Server auch noch eine Voicemail bereit stellen. Aber die Konfiguration des Benutzers mit "HostedVoiceMail = $true" in der lokalen Skype for Business-Konfiguration verhindert die Nutzung dieser Dienste.
Der Anwender kann die Einstellungen in Cloud Voice Mail z.B. über einen Webbrowser starten
Weitere Links
- Cloud Voice Mail (CVM)
- Cloud Voice Mail (CVM) Checkliste
- Voicemail ohne Exchange UM
- ADSync mit Exchange
- ADSync
- Exchange Hybrid Starter
- Skype for Business Hybrid Mode
- Technical Deep Dive on Microsoft Cloud
Voicemail
https://aka.ms/DeepDiveCloudVoicemail
https://support.microsoft.com/en-us/help/4489589/technical-deep-dive-on-microsoft-cloud-voicemail - Plan Cloud Voicemail service for On-Premises
users
https://docs.microsoft.com/en-us/skypeforbusiness/hybrid/plan-cloud-voicemail - Set up Cloud Voicemail
https://docs.microsoft.com/en-us/microsoftteams/set-up-phone-system-voicemail - Cloud voice in Microsoft Teams
https://docs.microsoft.com/en-us/microsoftteams/cloud-voice-landing-page