Metainformationen zur Seite
UCware Exchange Webserver Schnittstelle (EWS)
Wird der UCware Server über die Exchange Webserver Schnittstelle an einen Microsoft Exchange Server angebunden, so kann der Status eines Benutzers anhand der Termine des selben Benutzers automatisch verändert werden. Beginnt ein Termin gemäß Exchange Kalender so wird der Benutzer auf „DND“ gesetzt. Mit Ende des Termins gemäß Exchange Kalender wird der Status „DND“ bei dem Benutzer wieder entfernt. Ist ein Termin bei einem Benutzer eingetrag, so erscheint im UCC-Client bei dem Benutzer ein i. Wird die Maus über dem i positioniert, erscheinen zusätzliche Informationen. Beispiele:
- Abwesend von X bis Y
- Außer Haus von X bis Y
- In einem Termin von X bis Y
- Frei bis X Uhr
Vorraussetzungen
Es wird ein Windows-Rechner mit installiertem .NET Framework 4.5 benötigt. Der Rechner muß auf die EWS-Schnittstelle des Exchange-Servers sowie die API-URL der ucware-Installation zugreifen können. Zur vollständigen Konfiguration werden benötigt:
- die URL der ucware-API
- die URL der EWS-API
- ein Benutzeraccount auf dem Exchangeserver
- Benutzergruppen-ID auf dem UCware Server für die Benutzer deren Status gesetzt werden soll
Installation
Die Installation erfolgt über einen Windows-Installer. Das Installationsprogramm kopiert das Programm mit Konfigurationsdatei und erstellt einen Windowsservice. Der Service ist zunächst gestoppt und muss nach dem Bearbeiten der config.xml manuell gestartet werden. Nach einem Reboot startet der Dienst automatisch.
- Installationsprogramm
UCCalendarSync.exe
ausführen. - Im Abschlußbildschirm „Konfigurationsdatei bearbeiten“ auswählen
- config.xml bearbeiten (siehe unten)
- UCCalendarSync Dienst starten (oder Rechner rebooten)
Konfiguration
Die Konfiguration erfolgt über die XML-Datei config.xml
. Die
einzelnen Elemente sind mit XML-Kommentaren innerhalb der Datei
detailliert dokumentiert.
Zur minimalen Konfiguration müssen die ucware
und EWS
Blöcke
angepasst werden. Die url
-Elemente müssen auf die jeweiligen URLs
geändert werden. Für ucware
wird weiterhin die groupId
der
Benutzer benötigt deren Status geändert werden sollen, und im
EWS
-Block user
und password
für den Login auf dem
Exchange-Server
UCware Benutzergruppen-ID
Alle Benutzer deren Status geändert werden soll müssen in einer gemeinsamen Gruppe sein. In der ID dieser Gruppe findet sich in
der Detail-Anzeige im UCware Admin-Interface unter
Administration/Gruppen
.
Es können mehrere Gruppen definiert werden, für die unterschiedliche Aktionen und Texte verwendet werden.
EWS Benutzer
Der EWS-Benutzer kann ein beliebiger Nutzeraccount auf dem
Exchange-Server sein, der das „impersonation“-Recht besitzt. Ohne
dieses Zugriffsrecht funktioniert das Auslesen der Abwesenheitsdauer
aus der Meldung des Abwesenheitsassistenten nicht. Alle anderen
Funktionen sind aber nicht eingeschränkt.
Um dem Benutzer administrator
dieses Recht für alle Nutzer des
Servers zu geben muss in der Exchange Management Shell
folgender
Befehl eingegeben werden:
New-ManagementRoleAssignment -name:impersonationAssignmentUcware -Role:ApplicationImpersonation -User:administrator
Der hinter -name:
angegebene Name für die Rolle kann frei gewählt werden.
Weitere Informationen und wie die Berechtigung auf einzelne Benutzergruppen eingeschränkt werden kann finden sich in der Microsoft-Dokumentation: https://msdn.microsoft.com/de-de/library/office/dn722376(v=exchg.150).aspx
Dokumentation der Elemente der ''config.xml''
''<ucware>'' Einstellungen zur Ucware
url: Die URL der ucware-API maxAgeUserlist: Anzahl Sekunden für die die Email-Adressen der UCware-User zwischengespeichert werden. Dies ist die Mindestzeit zwischen dem erneuten Abfragen aller Benutzer beim UCware Server, kein zwingendes Update-Intervall
''<EWS>'' Einstellungen zum Exchange-Server
url: Die URL der EWS-API des Exchange-Servers
updateInterval: Zeit in Sekunden zwischen zwei Abfragen an den Exchange-Server.
user: Benutzername im Format user@domain.com
password: Passwort
domain: _(optional)_ Name der Active Directory Domäne, falls zum Exchange-Login benötigt
leadtime: _(optional)_ Vorlaufzeit für Termine. Der Telefonstatus wird
leadtime
Sekunden bevor der Termin anfängt gesetzt. Die Zeit im Statustext bleibt aber die tatsächliche Zeit des Termins.
ignoreCertificate: Falls das Zertifikat des Exchange-Servers nicht akzeptiert wird, kann die Zertifikatsprüfung über diese Option abgeschaltet werden.
Einstellungen für Statusmeldungen
Die OutOfOffice
und Messages
Elemente beinhalten Einstellungen für
die Texte der Statusmeldungen. Die Texte können Zeilenumbrüche
enthalten, die als
kodiert werden müssen. Innerhalb der
Meldungstexte können folgende Platzhalter verwendet werden
$start$ | Anfangszeitpunkt der Abwesenheit, falls vorhanden |
$end$ | Endzeitpunkt der Abwesenheit, falls vorhanden |
$person$ | Name des Vertreters, falls SubstituteRegExp einen Namen in der Abwesenheitsmeldung findet |
Weiterhin sind für die Aktions-Elemente folgende Aktionen möglich:
LOGOUT | Telefon des Benutzers anmelden |
DND | Telefon des Benutzers auf DND schalten |
FREE | Telefon des Benutzers auf Verfügbar schalten |
NONE | Keine Aktion, vorherigen Status beibehalten |
''<OutOfOffice>''
Einstellungen für Abwesenheitsmeldungen
Substitute: Enthält den Statustext wenn eine Abwesenheitsnachricht mit Datum vorhanden ist.
SubstituteNoDate: Enthält den Statustext wenn eine Abwesenheitsnachricht ohne Datum vorhanden ist.
SubstituteRegExp:
Ein regulärer Ausdruck um den Namen des Vertreters aus der
Abwesenheitsnachricht zu extrahieren. Muss eine Gruppe enthalten, der
Inhalt der Gruppe wird ist der Text der für den Platzhalter $person$
eingetragen wird.
Zu beachten:
Die Abwesenheitsnachricht vom Exchange-Server ist ein HTML-Text. Sonderzeichen müssen hier mit
HTML-Escapes geschrieben werden (<
statt <
)
maxAge: Anzahl Sekunden für die Abwesenheitsstatus und -meldung zwischengespeichert werden. Dies ist die Mindestzeit zwischen dem erneuten Abfragen des Abwesenheitsstatus aller Nutzer am Exchange-Server, kein zwingendes Update-Intervall. Action:
Aktion die durchgeführt wird wenn ein Benutzer eine aktive Abwesenheitsnachricht hat
DateTimeFormat:
Formatzeichenfolge mit dem das Datum der $start$
und $end$
Platzhalter im Abwesenheitsstatus formatiert wird. Erlaubte
Formatbezeichner und deren Bedeutungen finden sich in der
Microsoft-Dokumentation:
<https://docs.microsoft.com/de-de/dotnet/standard/base-types/custom-date-and-time-format-strings>
''<Message>'' Einstellungen für Statustexte
NoAppointment: Dieses Element enthält die Statusmeldung wenn ein Benutzer jetzt
keinen aktiven Termin hat, an diesem Tag aber noch ein Termin
ansteht. In diesem Fall enthält der Platzhalter $start$
den
Start-Zeitpunkt des nächsten Termins.
DateTimeFormat: Formatzeichenfolge mit dem das Datum der $start$
und $end$
Platzhalter in Statustexten von Terminen formatiert wird.
DateTimeFormatToday: Formatzeichenfolge mit dem das Datum der $start$
und $end$
Platzhalter in Statustexten von Terminen formatiert wird, bei denen
der Termin am heutigen Tag liegt.
''<FreeBusyStatus>'' Aufzählung
Enhält ein Element für jeden der möglichen Anzeige-Typen eines nTermins.
OOF: Termintyp _„Out Of Office“_ (_„Abwesend“_)
Busy: Termintyp _„Busy“_ (_„Beschäftigt“_)
WorkingElsewhere: Termintyp _„Working Elsewhere“_ (_„An anderem Ort tätig“_„)
Jedes dieser Element kann folgende Unterelemente enthalten:
<Message>
: Die Nachricht die für einen Termin dieses Typs angezeigt wird
<Action>
: Die Aktion die zu einem Termin dieses Typs ausgeführt wird (LOGOUT/DND/FREE, s.o.)
<Priority>
: Die Priorität des Termins. Finden mehrere Termine gleichzeitig statt, wird nur der Termin mit der höheren Priorität angezeigt.
''<GroupDefinition>'' UCware Gruppendefintionen
Für jede UCware-Gruppe, deren Status gesetzt werden sollen, muß ein
<GroupDefinition>
mit dem Attribut Id
der jeweiligen Gruppe
existieren. Innerhalb der Gruppendefinition können erneut <OutOfOffice>
und <Message>
Elemente stehen, die das Verhalten für diese Gruppe definieren. Für nicht aufgeführte Elemente werden die in den globalen OutOfOffice
und Message
-Elementen definierten Werte verwendet.