Lync Development mit APIs

Wer mit Lync nicht nur die Standardfunktionen nutzen will, wird früher oder später die Frage stellen, wo man denn mit eigenem Code an Lync ansetzen kann. ähnlich wie bei Exchange (Siehe Programmieren und Wege zu Exchange bietet auch Lync für jeden Anwendungsfall entsprechende Schnittstellen, die ich hier kurz vorstellen will.

Jede Schnittstelle hat ihre eigenen Vorteile und Nachteile

Nr. Bezeichnung Ort On
Premise
Office 365 Einsatzzweck

LyncCOM-API
Lync Extension API

Client

Programme auf dem Client können den Communicator gleich dreifach verwenden:

  • Erweiterung des Communicators durch die Extension-API
    Der Anwender behält den Communicator aber dieser wird um neue Menüs, Buttons oder Fenster erweitert.
  • "Steuern" des Communicator durch Aufruf der Methoden
    Über COM kann auch ein Skript oder anderen Programm die Dienste des Communicators nutzen ohne dass der Anwender was tun muss. Eine Anwendung kann also z.B. Status und Präsenzinformationen integrieren.
  • Integrieren der Communicator-Funktion in eigene Programme
    Zuletzt könnten sie noch komplett einen eigenen Communicator schreiben.

Allerdings können Sie damit nur tun, was auch ein Anwender tun könnte und laufen auch mit den Berechtigungen des Anwenders.

Im Vergleich zur Exchange Entwicklung kommt hier MAPI oder die Outlook-API am nächsten.

Eine einfachere Art der Integration ist ein externes Programm oder ein Hyperlik, der einfach im Communicator als Menüeintrag erscheint-

UCMA

Service

Flexibler ist die UCMA, über die ein Programm analog zu CDO/EWS auf einem Exchange Server als privilegierter Prozess ausgeben kann und auch im Auftrag des Anwender handeln kann aber nicht muss. Es ist also auch die API, um z.B. Agenten und Bots zu schreiben. Über UCMA ist man nicht auf ein SIP-Konto beschränkt.

Zudem kann die UCMA sogar komplett ohne Lync verwendet werden. Sie stellt einen kompletten SIP-Stack dar.

UCWA

Client

Die UCWA (Unified Communication WebService API) ist erst mit Lync 2013 verfügbar und erlaubt den Zugriff auf verschiedene Funktionen als WebService. Damit öffnet sich Lync z.B. einer Nutzung über HTTPS aus anderen Netzwerken (Cloud) und von anderen Plattformen, auf denen UCMA (Windows only) nicht installiert werden kann.

Sie wäre für einen Exchange Entwickler mit EWS ohne Impersonation vergleichbar.

Lync PowerShell

Server

Die Lync PowerShell stellt eine ganze Menge von Commandlets bereit, um Lync zu verwalten. Diese API ist daher ideal um z.B. Provisioning-Aufgaben zu automatisieren, Einstellungen zu dokumentieren oder zu kopieren und eingeschränkt auch Einstellungen der Benutzer zu verändern.
Office 365 erlaubt eine Teilmenge

MSPL

Server

Die MSPL (Microsoft SIP Processing Language) ist nur auf den Frontend-Server und SBA(V2) nutzbar. Eigene Skripte können hier jedes SIP-Paket bei der Übertragung sehen und verändern. Selbst viele Module von Lync sind als MSPL-Skript geschrieben.

Bei Exchange sind Transportagenten vergleichbar

SQL Reporting

Server

Lync speichert alle Informationen in SQL-Tabellen. Die Lync-eigenen Tabellen sollten Sie aber nicht direkt programmieren. Zulässig ist ein Zugriff aber z.B. auf die SQL-Datenbank mit den Monitoring-Daten. Die Strukturen sind dokumentiert und können z.B. für Abrechnungszwecke angezapft werden.

Das Exchange Messagetracking ist hier vergleichbar aber mit seinen Textdateien natürlich viel trivialer gestrickt

XMPP

Edge

XMPP ist keine echte "Lync-API" sondern eine Schnittstelle zur Federation mit anderen Diensten. Dennoch kann über diesen Weg ein anderes System quasi wie extern angebunden werden. Das Prinzip können wir schon von Exchange, wenn eine Subdomain zu einem anderen System delegiert wird, z.B. SharePoint, Newsletter oder ERP Systeme.

 

Trusted Application APU

Agent/Bot

Diese neue API wurde auf der Ignite 2016 vorgestellt und soll den Zugriff per Web Service auf Einstellungen und Dienste erlauben, die vorher per UCMA (nur OnPremise) erreichbar waren. Diese API ist noch nicht öffentlich (Stand Sep 2016)

Skype vor Buiness

Auf der Ignite 2016 wurde ein neues Bild mit den zukünftigen APIs vorgestellt. Der Fokus ist hier natürlich der Zugriff durch Clients und BOTs. All die anderen APIs, die ich weiter oben schon beschrieben habe, sind auch weiterhin ne nach Plattform erreichbar

Weitere Links