EasyUC für Cisco
Presence Sync: Funktionsweise und Architektur
Welche Zustände in welche Richtung übertragen werden, wie ein Abgleich abläuft und wo die Daten liegen.
In EasyUC: Presence Sync → Presence-Profile
Wozu dient das
Presence Sync gleicht den Anwesenheitsstatus zwischen Microsoft Teams und der Cisco-Telefonie ab. Der häufigste Fall: Ein Mitarbeiter telefoniert am Cisco-Tischtelefon. Ohne Abgleich zeigt Teams ihn weiter als verfügbar, Kollegen rufen an oder schreiben und stören das Gespräch. Mit Presence Sync steht er in Teams auf „In einem Anruf“, solange das Gespräch verbunden ist.
Dieses Kapitel erklärt die Funktion, bevor Sie etwas einrichten: welche Variante zu welchem Cisco-Client gehört, welcher Zustand in welche Richtung übertragen wird, wie ein einzelner Abgleich abläuft, welche Schnittstellen und Berechtigungen beteiligt sind und was an Microsoft übertragen wird. Die Einrichtung selbst beschreiben die Folgekapitel.
Presence Sync ist ein eigenes Modul mit eigenem Arbeitsbereich und eigenem Hintergrunddienst. Es braucht weder den Teams-SBC noch die ACD. Ein Presence-Profil hat keinen SIP-Port, keinen Hostnamen und kein Zertifikat.
Voraussetzungen
- Zum Lesen dieses Kapitels brauchen Sie keine Berechtigung. Für die Einrichtung gelten die Rollen aus dem Kapitel zum Presence-Profil.
- Sie wissen, welchen Cisco-Client die Anwender nutzen: Tischtelefone und Jabber mit Cisco IM and Presence oder die Webex App. Davon hängt die Variante ab.
- Sie haben Zugriff auf Microsoft Entra, um eine App-Registrierung anzulegen und die Administratorzustimmung zu erteilen.
- Für die Jabber-Variante: ein CUCM mit eingerichteter Anrufüberwachung in EasyUC und, für den Jabber-Status, ein Cisco IM and Presence mit erreichbarem Presence-Webservice.
Schritt für Schritt: So gehen Sie vor
Felder und Optionen: Varianten im Überblick
| Feld / Aktion | Bedeutung und Verwendung |
|---|---|
| CUCM-Anrufstatus → Teams | Quelle sind die verbundenen Gespräche aus der Anrufüberwachung der CUCM-Verbindung (JTAPI). Ein verbundenes Gespräch am Cisco-Telefon oder Softphone setzt den zugeordneten Teams-Benutzer auf „In einem Anruf“. Klingeln allein setzt keinen Status. Diese Richtung braucht kein IM and Presence. |
| Cisco Jabber → Teams | EasyUC liest den Jabber-Status über den Presence-Webservice von Cisco IM and Presence und veröffentlicht „Verfügbar“ und „Abwesend“ in Teams. |
| Teams → Cisco Jabber | EasyUC liest den Teams-Status über Microsoft Graph und veröffentlicht ihn über den Presence-Webservice in Jabber: verfügbar, abwesend, beschäftigt sowie Gespräche und Besprechungen. |
| Cisco Webex (native Integration) | Bei der Webex App liegt der Status in der Webex Cloud. Den Abgleich mit Teams übernimmt Cisco über „Cisco Call für Microsoft Teams“. EasyUC veröffentlicht hier nichts selbst. Es kann den organisationsweiten Schalter der Integration lesen und setzen und beobachtet die Statuswechsel beider Seiten. |
| Mehrere Richtungen zugleich | Die drei Jabber-Richtungen sind einzeln schaltbar und lassen sich kombinieren. Microsoft Graph erlaubt je App eine Sitzung pro Benutzer. EasyUC führt Jabber-Status und CUCM-Gespräche deshalb in einer Quelle zusammen. |
| Benutzerzuordnung | EasyUC erkennt dieselbe Person über ein Kennzeichen, das in beiden Systemen denselben Wert trägt, zum Beispiel E-Mail-Adresse oder Telefonnummer. Die Vorschau zeigt je Benutzer Eindeutig, Nicht gefunden oder Mehrdeutig. Nur eindeutige Treffer und manuelle Zuordnungen nehmen am Abgleich teil. |
| Intervall | Der Hintergrunddienst arbeitet im Grundtakt von 5 Sekunden. Je Profil stellen Sie 5 bis 60 Sekunden ein, Vorgabe 10. |
| Trockenlauf | Rechnet einen Abgleich vollständig durch und zeigt die geplanten Änderungen. Es werden keine Zustände veröffentlicht und keine Ereignisse geschrieben. |
| Presence Live | Protokoll je Profil: jede Veröffentlichung, Auffrischung, Entfernung, Auslassung und jeder Fehler mit Zeit, Benutzer, Richtung, Quellstatus vorher und nachher, Zielstatus, Ergebnis und Grund. |
Zustandstabelle: Cisco → Teams
| Feld / Aktion | Bedeutung und Verwendung |
|---|---|
| Verbundenes Gespräch am Cisco-Gerät | Teams: Verfügbarkeit „Beschäftigt“ mit Aktivität „In einem Anruf“. Quelle ist ausschließlich ein von der Anrufüberwachung bestätigtes Gespräch. Endet es, entfernt EasyUC seine Sitzung, und Teams zeigt wieder den eigenen Status des Benutzers. |
| Klingeln, Wählen | Keine Änderung in Teams. |
| Jabber: Verfügbar | Teams: „Verfügbar“. |
| Jabber: Abwesend | Teams: „Abwesend“. |
| Jabber: Beschäftigt, in Besprechung | Wird ausgelassen und protokolliert: „Microsoft Graph unterstützt diesen Status nicht als sichere App-Session.“ |
| Jabber: Nicht stören | Wird ausgelassen und protokolliert. EasyUC überschreibt keinen persönlich gesetzten Teams-Status. |
| Jabber: Offline | EasyUC entfernt die eigene Sitzung in Teams. Es meldet den Benutzer nicht künstlich als offline. |
| Status unbekannt oder Quelle nicht erreichbar | Der zuletzt veröffentlichte Zustand bleibt bis zu seiner Ablaufzeit bestehen. Ein Ausfall der Quelle bedeutet nie „verfügbar“. |
| Status, den EasyUC selbst in Jabber gesetzt hat | Wird nicht nach Teams zurückgespiegelt: „Die eigene EasyUC-PWS-Quelle wird nicht zurück nach Teams gespiegelt.“ |
Zustandstabelle: Teams → Cisco Jabber
| Feld / Aktion | Bedeutung und Verwendung |
|---|---|
| Teams: Verfügbar | Jabber: verfügbar. |
| Teams: Abwesend, Bin gleich zurück | Jabber: abwesend. |
| Teams: Beschäftigt | Jabber: beschäftigt. |
| Teams: In einem Anruf | Jabber: beschäftigt mit Gesprächskennzeichen („Im Gespräch“). |
| Teams: In einer Telefonkonferenz | Jabber: wie „Im Gespräch“. |
| Teams: In einer Besprechung | Jabber: beschäftigt. |
| Teams: Nicht stören, Präsentiert | Wird ausgelassen und protokolliert: „Ein persönlicher Cisco-DND-Override wird nicht überschrieben.“ Cisco verlangt für „Nicht stören“ einen globalen Override, den EasyUC nicht setzt. |
| Teams: Offline | EasyUC entfernt die eigene Quelle in Jabber. |
| Status unbekannt | Die bisherige Quelle in Jabber bleibt bestehen. |
| Status, den EasyUC selbst in Teams gesetzt hat | Wird nicht nach Cisco zurückgespiegelt: „Der von EasyUC in Teams gesetzte Status wird nicht zurück nach Cisco gespiegelt.“ So entsteht keine Rückkopplung. |
Ablauf eines Abgleichs
Datenfluss und Speicherorte
| Feld / Aktion | Bedeutung und Verwendung |
|---|---|
| Was an Microsoft geht | Je zugeordnetem Benutzer der Presence-Status als Paar aus Verfügbarkeit und Aktivität, zum Beispiel „Beschäftigt / In einem Anruf“. Rufnummern, Gesprächspartner, Gesprächsdauer oder Gesprächsinhalte werden nicht übertragen. |
| Was EasyUC von Microsoft liest | Die Benutzer des Tenants mit dem gewählten Kennzeichen für die Zuordnung und, bei eingeschalteter Gegenrichtung, ihren Presence-Status. |
| Was an Cisco IM and Presence geht | Der aus Teams gelesene Status als Rich Presence für die Jabber-Adresse des Benutzers. |
| Was auf der Appliance liegt | Profile, Zugangsdaten, Benutzerzuordnung, der zuletzt beobachtete Zustand je Benutzer und das Protokoll von Presence Live. Alles steht in der Datenbank Ihrer Appliance. |
| Protokollinhalt | Zeit in UTC mit Millisekunden, Profil, Benutzer, Client, Richtung, bisheriger Zustand, Quell- und Zielstatus, Aktion, Ergebnis und Grund. Zugangsdaten, Sitzungsschlüssel und Tokens stehen nicht darin. |
| Hintergrunddienst | Eigener Dienst der Appliance mit einer Instanz. Der Manager zeigt seinen Zustand, seine Logs und eine Neustartsteuerung getrennt von den übrigen Diensten. |
| Ablaufzeiten beim Hersteller | Eine von EasyUC gesetzte Sitzung in Microsoft Graph läuft nach zehn Minuten ab, eine Quelle in Cisco IM and Presence nach einer Stunde. EasyUC frischt aktive Zustände vorher auf. Fällt EasyUC aus, verschwinden die gesetzten Zustände spätestens mit dieser Ablaufzeit. |
Schnittstellen und Berechtigungen
| Feld / Aktion | Bedeutung und Verwendung |
|---|---|
| Microsoft Graph | App-Registrierung in Microsoft Entra mit Client-ID und Client-Secret. Anwendungsberechtigungen mit Administratorzustimmung: User.Read.All (Benutzer lesen), Presence.Read.All (Status lesen) und Presence.ReadWrite.All (Status veröffentlichen). Im Webex-Modus genügen die beiden lesenden Berechtigungen. |
| CUCM: Anrufüberwachung | Die CUCM-Verbindung in EasyUC überwacht laufende Gespräche auf allen Geräten (JTAPI über den CTI Manager). Presence Sync nutzt diese Überwachung mit. |
| CUCM: Benutzerverzeichnis | AXL-Lesezugriff, um Leitungen ihren Benutzern und Jabber-Adressen zuzuordnen. Sie verwenden eine vorhandene CUCM-Verbindung oder tragen einen eigenen AXL-Zugang ein. |
| Cisco IM and Presence | Presence-Webservice über HTTPS. Ein Application User mit der Rolle Admin-3rd Party API veröffentlicht. Zum Lesen des Jabber-Status braucht EasyUC zusätzlich einen eigenen Endbenutzer als Beobachter. Das Zertifikat wird immer geprüft. |
| Webex | Eine Webex-Integration mit Client-ID, Client-Secret und Refresh-Token sowie die Organisations-ID. Lesende Berechtigungen für Personen und für die Telefonie-Einstellungen, zum Schalten der Integration zusätzlich die schreibende Berechtigung und eine passende Administratorrolle. |
| Rollen in EasyUC | Getrennte Rechte für Profile ansehen, Profile bearbeiten, Synchronisation ansehen und Synchronisation bearbeiten. Details stehen im Kapitel zum Presence-Profil. |
Grenzen
- „Nicht stören“ wird in keiner Richtung übertragen. Beide Hersteller behandeln diesen Zustand als persönliche Entscheidung des Benutzers, die EasyUC nicht überschreibt.
- „Präsentiert“ lässt sich aus dem Jabber-Status nicht sicher ableiten und wird nicht übertragen.
- Aus Jabber gelangen nur „Verfügbar“ und „Abwesend“ nach Teams. Ein Gesprächsstatus kommt ausschließlich aus der Anrufüberwachung des CUCM.
- Gemeinsam genutzte CUCM-Leitungen (Shared Lines) werden keinem einzelnen Benutzer zugerechnet und setzen keinen Gesprächsstatus.
- Je Entra-App darf nur ein Presence-Profil veröffentlichen. Je Application User in IM and Presence darf nur ein Profil nach Jabber schreiben.
- Der Abgleich fragt die Hersteller zyklisch ab. Zustände, die kürzer als das Intervall dauern, können unbemerkt bleiben.
- Im Webex-Modus bedeutet Beobachtet, dass EasyUC einen Quellstatus gelesen hat. Es bestätigt keine einzelne Übertragung durch Cisco.
- Wie Jabber einen von außen gesetzten Status anzeigt und mit eigenen Quellen zusammenführt, hängt von der Version von IM and Presence und Jabber ab. Prüfen Sie das in der Abnahme mit Ihren Versionen.
Ergebnis prüfen und Fehler eingrenzen
- Sie haben die Funktion verstanden, wenn Sie für einen Testbenutzer vorhersagen können, was Teams bei einem Gespräch am Cisco-Telefon zeigt und was nicht übertragen wird.
- Stimmt die Erwartung nicht mit dem Verhalten überein, öffnen Sie Presence Live und lesen Sie den Eintrag des Benutzers. Ergebnis und Grund nennen, was EasyUC getan oder ausgelassen hat.
- Erscheint ein Benutzer gar nicht im Protokoll, ist er nicht eindeutig zugeordnet. Prüfen Sie die Zuordnung im Profil über Zuordnung prüfen.
- Die einzelnen Meldungen mit Bedeutung und Abhilfe stehen im Kapitel zu den Fehlerbildern.