Teams Shared Voicemail

Neben der Voicemail für Personen,  (Siehe Teams Voicemail) kennt Microsoft Teams natürlich noch andere Telefonie-Endstellen, die vielleicht nicht erreichbar sind. Sowohl beim AutoAttendant als auch einer Call Queue können Sie Anrufer auf eine Voicemail leiten.

Auto Attendant

Die Funktion der "Vermittlung" ist in Europa eher ungewöhnlich, da wir per "Durchwahl" meist keine Vermittlung brauchen. In anderen Ländern können Rufnummern aber knapp sein und eine Firma hat weniger externe Rufnummern als interne Durchwahlen. Dann verbinden sich Anrufer mit einer Zentrale (Mensch oder Maschine) und wählen dann die Nebenstelle z.B. per DTMF nach. Diese Funktion kann Teams auch bereitstellen, d.h. eine besondere Rufnummer landet auf einem AA und durchläuft dort einen Entscheidungsbaum. Der "Abwurf" auf eine Sprachmailbox kann auch nach Tag und Zeit, z.B. Öffnungszeiten, gesteuert werden.

Sie könnten den Anruf an eine Person (und deren Voicemail) leiten, an eine Voice App die z.B. ein Callcenter darstellt, eine externe Nummer oder an ein Voicemail Ziel. Ein legitimes Ziel ist eine Microsoft 365 Gruppe bzw. Microsoft Teams. Auf die Besonderheit eine Microsoft 365 Group/Microsoft Team als Voicemail-Ziel gehe ich weiter unten noch genauer ein.

Call Queue

Neben dem Autoattendant und Individualempfängern gibt es noch die Call Queues, die in Deutschland als "Warteschlangen", "Gruppennummern" und aus der Skype for Business Welt als "Response Group" bekannt sind. Mehrere Agenten (Personen) sind in einer Warteschlange, die über eine Rufnummer erreicht werden können. Teams verteilt die eingehenden Anrufe und wenn keine Agenten verfügbar sind oder die Beantwortung zu lange dauert, kann der Ruf z.B. an eine Voicemail vermittelt werden. Hierzu gibt es pro Call Queue zwei Einstellmöglichkeiten.

  • Call Overflow
    d.h. wenn mehr als die angegebene Anzahl an Anrufern warten müsste. Ein mögliches Ziel ist eine Voicemail
  • Call Timeout
    Wenn kein Agent in der angegeben Zeit den Ruf abholt, dann folgt Teams den folgenden Regeln:

Wie beim Auto Attendant ist für eine Voicemail einer Call Queue ebenfalls eine "Microsoft 365 Groups" bzw. ein "Microsoft Team" ein legitimes Ziel.

Legitime Ziele

Wenn Sie eine Voice-Mail als Ziel einrichten, dann werden sie vielleicht nicht alle Empfänger finden, die sie erwarten. Hier eine Übersicht (Stand Aug 2023):

Empfänger Beschreibung

Benutzer ohne Exchange

Ein AzureAD-Konto, welches keine Exchange Lizenz hat, ist aus Sicht von Exchange Online kein erreichbarer Empfänger und wird daher nicht gefunden

Benutzer ohne Teams

Ein Benutzer mit Exchange Postfach (Online oder OnPrem) aber ohne Teams Voice Lizenz

Externer Benutzer/Gast

In meinem Tenant habe ich Gastbenutzer, die ohne Lizenz gefunden werden konnten aber die Konfiguration als Voicemail-Ziel wurde natürlich nicht übernommen.

Benutzer mit Exchange +Teams ohne Voice

Diese Benutzer können gefunden und ausgewählt aber nicht gespeichert werden. Die MMC zeigt das auch entsprechend an

Shared Mailbox

Werden nicht gefunden und können nicht genutzt werden. Das ist schade, denn vielleicht sollen Sie ja keine Office Group/Microsoft 365 Group einrichten. Dann bleibt ihnen nur der "Umweg" über eine Transportregel, um eine Mail an eine Useradresse umzubiegen. Nicht sehr schön.

Room Mailbox

Werden nicht gefunden und können nicht genutzt werden. Aber Räume haben in der Regel auch keinen bedarf an einem Anrufbeantworter

Gruppe ohne Exchange-Funktion

Werden nicht gefunden und können nicht genutzt werden

Mailverteiler

Werden bei Auswahl von "Voicemail (shared)" gefunden und können genutzt werden

Mailaktivierte Sicherheitsgruppe

Werden bei Auswahl von "Voicemail (shared)" gefunden und können genutzt werden

Microsoft 365 Groups

Werden bei Auswahl von "Voicemail (shared)" gefunden und können genutzt werden

Teams Voicemail

Auf der Ignite 2020 wurde aber eine Funktion erstmals sichtbar aber es hat dann immer noch fast ein Jahr gedauert, bis sie "Global Available (GA)" war.

Microsoft Teams: Voice-enabled Channels
"Collaborative calling enables customers to connect a call queue to a channel in Teams. Users can collaborate and share information in the channel while taking calls in the queue. This feature is ideal for scenarios such an IT help desk or HR hotline. IT admins can quickly connect call queues to specific channels, and team owners can manage the settings. "
Quelle: hhttps://www.microsoft.com/en-us/microsoft-365/roadmap?filters=&searchterms=68770

Die Idee dabei ist, dass eine Call Queue mit einem Teams-Kanal in einem Microsoft Team verknüpft wird. Was auf den ersten Moment wenig spektakulär aussieht, ist dennoch eine große Arbeitserleichterung, da damit die Pflege der Agenten über das Team selbst und nicht mehr über Gruppen erfolgt. Allerdings ist natürlich damit jedes "Teammitglied" auch immer ein Agent der Call Queue. Machen Sie das nicht ohne Vorwarnung für große Teams. Ein Agent kann sich selbst rausnehmen, wenn Sie dies als Administrator zulassen. Aber als Administrator können Sie dies nicht stellvertretend machen.

Im entsprechenden Kanal erscheint dann ein neuer Reiter "Anrufe" und wer drauf klickt, findet am rechten Rand ein Dialpad und kann bei ausgehenden Anrufen auch die ausgehende Rufnummer vorgeben. Im mittleren Bereich sehen wir dann den Verlauf der Anrufe und hat direkt Zugriff auf die Voicemail. Die Schaltfläche oben ist nur ein Filter. Wer hier "Alle" aktiv hat, sieht Voicemails und angenommene und verpasste Anrufe.

Für jeden Anruf und die Voicemail können sie direkt den Anrufer zurückrufen, sofern er eine gültige Nummer übermittelt hat.

Wenn sie mehrere Call Queues in einem Team in verschiedene Kanäle ablegen, dann hat jeder Kanal seine "eigene" Voicemail, obwohl die Mails in der gleichen Office 365 Mailbox landen. Anscheinend filtert Teams hier auf ein Property der Mail.

Gelesen/Ungelesen
Ich kann in Teams eine Voicemail leider nicht mehr als "ungelesen" kennzeichnen oder einen Task zuweisen etc. Der Gelesen-Status wird aber mit Outlook synchronisiert. Wenn ich die Voicemail mit Outlook als "ungelesen setze, dann ist sie auch in Teams "ungelesen". Für Eskalationszwecke könnten die Group Mailboxen auf ältere ungelesene Voicemails zyklisch geprüft werden.

Teams HTTP Query

Beim Wechsel in die "Anrufe"-Karteikarte zeigt Teams kurz ein "Suche nach Voicemails" an.

Natürlich habe ich dem Teams Client mit den Developer Tools auf die Finger geschaut und folgenden Request (gekürzt) gefunden:

Request URL:  https://outlook.office.com/api/beta/groups/<guid>/messages
                     ?$expand=SingleValueExtendedProperties($filter=
                              PropertyId%20eq%20%27Integer%20{00020328-0000-0000-C000-000000000046}%20Id%200x6801%27%20
                         or%20PropertyId%20eq%20%27String%20{00020386-0000-0000-C000-000000000046}%20Name%20X-VoiceMessageConfidenceLevel%27%20
                         or%20PropertyId%20eq%20%27String%20{00020386-0000-0000-C000-000000000046}%20Name%20X-VoiceMessageTranscription%27)
                     &$filter=SingleValueExtendedProperties/Any(ep:%20ep/PropertyId%20eq%20%27String%200x1a%27%20
                                  and%20ep/Value%20eq%20%27IPM.Note.Microsoft.Voicemail.UM.CA%27)
                     &$top=30
                     &$select=From,Body,IsRead,Id,ReceivedDateTime,InternetMessageHeaders

Decodiert ist es etwas einfacher lesbar.

$expand:  SingleValueExtendedProperties($filter=PropertyId eq 'Integer {00020328-0000-0000-C000-000000000046} Id 0x6801' 
                                             or PropertyId eq 'String {00020386-0000-0000-C000-000000000046} Name X-VoiceMessageConfidenceLevel'' 
                                             or PropertyId eq 'String {00020386-0000-0000-C000-000000000046} Name X-VoiceMessageTranscription')
$filter:  SingleValueExtendedProperties/Any(ep: ep/PropertyId eq 'String 0x1a' ' 
                                             and ep/Value eq 'IPM.Note.Microsoft.Voicemail.UM.CA')

Das Propertyset "00020328-0000-0000-C000-000000000046" ist dabei einfach nur ein "Common PSMAPI"-Set

Als Authentifizierung kommt ein Bearer-Token mit folgenden Properties zum Einsatz:

"aud": "https://outlook.office.com/",
"iss": "https://sts.windows.net/<tenantGUID>/"
"app_displayname": "Microsoft Teams",
"appid": "1fec8e78-bce4-4aaf-ab1b-5451cc387264",
"scp": "Calendars.ReadWrite 
        Contacts.ReadWrite
        EWS.AccessAsUser.All Files.Read.All
        Files.ReadWrite.All
        Group.ReadWrite.All
        Mail.ReadWrite
        Mail.Send OWA.AccessAsUser.All
        SCIS-Internal.ReadWrite 
        Signals.ReadWrite
        SubstrateSearch-Internal.ReadWrite 
        User.Read User.ReadBasic.All",

Ein klassischer REST-API-Aufruf, der eine JSON-Antwort liefert:

Die Bereiche "Body", "From" und "InternetMessageHeaders" habe ich nicht aufgeklappt, da der Inhalt keine Besonderheiten enthält.

Interessant, dass Teams hier direkt gegen "outlook.office.com"  geht und eine Beta-API nutzt, anstatt mit der Graph-API zu arbeiten.

Agent Handing im Kanal

Die Integration der Call Queue in einen Kanal eröffnet dem Anwender auch eine einen direkten Weg, sich selbst als Agent ein- und auszutragen, sofern der Administrator dies erlaubt hat. Die Einstellung dazu erfolgt in der Call Queue.

Eingehende Rufe werden wie bisher von Teams beim Agenden gemeldet:

Hier ändert sich auch mit "Shared Voicemail" nichts.

Einschätzung

Die Funktion war überfällig und integriert die Voicemail als Team Kanal . Auch das Management einer Call Group landet sehr elegant in Teams. Dennoch gibt es schon noch einige Dinge, die mich stören:

  • Karteikarte "Anrufe" als Default
    Wenn ich eine Call Queue mit einem Kanal verbinde, dann ist mein Schwerpunkt eigentlich auf der Telefonie. Ich kann zwar die Standardkarte "Wiki" entfernen aber "Beiträge" und "Dateien" weder entfernen noch verbergen oder zumindest die Reihenfolge verändern.
  • Agenten on behalf
    Aktuell ist es nicht möglich, dass ich als Admin die Agenten für die Call Queue zentral aktiviere/deaktiviere oder zumindest den Status sehe, wer gerade "ausgebucht" ist.
  • "Anrufe" nicht im mobilen Client (bekannt)
    Wenn ich Teams auf dem SmartPhone nutze, dann sehe ich dort zwar den Kanal aber nur die Karteikarten "Beiträge", "Dateien" und "Weitere".  Dort erscheint aber nicht "Anrufe". Die Anrufe an die Call Queue werden aber schon auf dem Smartphone signalisiert.

    Das ist aber dokumentiert, da die Funktion aktuell nur auf dem Windows Client und Mac Client sichtbar ist. Ich hoffe, es kommt aber doch bald auch für die anderen Clients.
  • Ansage nicht abschaltbar
    Wenn ein Anrufer aus der Call Queue zur Voicemail geroutet wird, dann wird natürlich die in der Call Queue konfigurierte Ansage oder Audiodatei abgespielt. Aber dann spielt Cloud Voice Mail noch mal seine Ansage ab.
  • Gruppen-Voicemail in meiner Voicemail
    Etwas verwirrend finde ich, dass in meiner persönlichen Voicemail auch die Sprachnachrichten des Teams erscheinen.
  • Defekter Links
    Bei all den echten Problemen its es eher kosmetischer Natur, dass der Link auf die Homepage springt und nicht zur entsprechenden Stelle im Formular

Die Story mit "Shared Voicemail" ist also noch nicht zu Ende und wird fortgesetzt.

Weitere Links