WebChat

Angenommen eine Firma nutzt Lync bzw. Skype für Business intern, dann ist natürlich klar, dass dank Federation damit auch Verbindungen zu Partnern, anderen Lync/Skype für Business Anwendern, Office365 Anwendern aber auch "Consumer"-Skype-Nutzer möglich sind. Das primäre Informationsmedium im Internet ist aber die klassische Webseite. Hier präsentiert fast jede Firma ihre Produkte und bietet KontaktMöglichkeiten an. Die erste Idee: Kann man hier nicht einfach die Präsenz der Personen auch anonymen Besuchern zeigen? Und gleich darauf die Frage, ob man einen Besucher so nicht gleich in einen Chat oder vielleicht noch mehr verwickeln kann.

Hinweis: Diese Seite beschäftigt sich nicht damit, wie man eine "Browserversion" des Skype für Business Client entwickelt. So etwas gab es damals als OCS Communicator Web Access (CWA). Eine solche Funktion ist in Verbindung mit Outlook Web Access über den Exchange Server möglich.

Authentifizierung, Interaktion und Webseite

Was sich so logisch anhört, ist auch möglich. Allerdings muss man genau unterscheiden, wie solch eine Lösung implementiert wird. Per Definition gibt es bei SIP erst mal keine "anonymen Benutzer" und eine SIP-Kommunikation ist immer bidirektional. Eine einfache "FORM Post"-Lösung, die ein SIP-Paket absendet, reicht also nicht und selbst dann kann das nicht "anonyme" gegenüber dem Lync Server erfolgen.

Wenn eine Komponente in einer Webseite also mit Skype für Business Anwendern interagieren will, muss sie sich an Skype 4 Business Server anmelden und damit auch einen Benutzer samt SIP-Adresse haben. Sie kommen also nicht umhin, einen Benutzer "Web-Gast" o.ä. mit einem Active Directory Konto anzulegen und die Anmeldedaten dem Webserver zu überlassen.

Nutzbare APIs

Gegen wir nun davon aus, dass der Anwender nicht mehr als einen Browser hat und sich auch nicht mit einem Active Directory Konto anmelden wird. Dann bleibt ihm entweder ein einfacher FORM-Post oder modernere Ansätze, um ein Chatfenster bereit gestellt zu bekommen. Die Hauptarbeit muss aber der Webserver machen, der nun eine Sitzung für diesen Chat halten und zum Backend aufbauen muss. Dazu gibt es mehrere mögliche Schnittstellen.

Schnittstelle Beschreibung Eignung

Lync Client SDK

Wenn der Webserver auf Windows läuft, könnten Sie natürlich einfach einen Lync/SkypefB Client installieren. Der Basic Client würde schon reichen, damit Sie dann per COM-API oder .NET-Schnittstelle von einer Webapplikation damit arbeiten.

Technisch möglich aber ob einen Client-DLL die Dauerlast eines WebServers mit vielen Sessions bedienen kann, konnte ich noch nicht testen.

UCMA

Der klassische Weg Server-Services in Lync einzubinden sind "Trusted Applications" die dann per UCMA arbeiten. UCMA ist eine sehr leistungsfähige Plattform, die sogar einen ganz eigenen SIP-Stack auch ohne Lync Server bereit stellt.

Für etwas Präsenz und Chat auf einer Webseite ist diese API zu mächtig und das Setup zu aufwändig. Zudem funktioniert Sie nur mit Lync Online

UCWA

Interessant kann auch die UCWA-Schnittstelle sein, insbesondere wenn der Webserver nicht auf Windows läuft. Diese oft unterschätzte Schnittstelle wird von mobilen Clients aber auch von Lync WebApp genutzt und erlaubt umfangreiche Aktionen.

Mein präferierter Vorschlag aber noch nicht mit Office 365 nutzbar

XMPP

XMPP ist eine Schnittstelle, mit der externe Systeme mit Lync kommunizieren können. Ursprünglich hat Google diese API forciert. Über die XMPP-Federation könnte ein passender WebService quasi als "externe" Plattform mit eingebunden werden.

XMPP erfordert einen Edge-Server und dass der WebServer von "außen" auf den Edge Server kommt. Office 365 unterstützt kein XMPP.

Es gibt also eine ganze Menge Wege, über die ein Web-Entwickler seine Dienste um Presence und Chat-Dienste erweitern kann.

Sonderfall Namectrl.dll

Ein Sonderfall ist die Integration der Präsenz, wie wir sie z.B. mit SharePoint sehen. Über die Einbindung der "Name.DLL" als Objekt im  HTML-Code können Sie Personen in einer Webseite mit einer Präsenz versehen. Allerdings ist in dieser Lösung nicht der Web-Server der aktive Teil, sondern der Client selbst. Der Browser nutzt beim Rendern der Seite die SIP-Adresse im HTML-Dokument und fragt über die name.dll einen lokal installierten IM/Presence-Client ab, der die Daten besorgt und dem Browser zurück gibt.

Damit ist klar, dass dies nur funktioniert, wenn der Nutzer mit dem Browser auf seinem Computer auch einen Skype für Business Client hat, der zudem angemeldet und bei externen Adressen per Federation den Status der angegebenen Person ermitteln kann.

Das ist also gar keine Lösung für anonyme Besucher einer Webseite, die Sie in einen Skype für Business Chat aufnehmen wollen.

Sonderfall WebRTC

Seit einigen Jahren sammeln sich unter dem Begriff "WebRTC" verschiedene Ansätze, allein im Browser eine Audio/Video-Verbindung zu etablieren. Das hat natürlich erst mal nichts mit einem SIP-Server, Adressbuch, Präsenz, Chat etc. zu tun, sondern ist eine API, die möglichst von allen Browsern auf vielen Plattformen unterstützt werden sollte, um einen "RTC-Kanal" aufzubauen und mit kompatiblen Codec dann Sprache und Bilder zu übertragen. So ein RTC-Kanal kann natürlich auch für andere Informationen genutzt werden, z.B. Textnachrichten, Bildschirmanzeigen, Dateitransfer etc.

Insofern ist WebRTC durchaus eine interessante Option, wenn  Microsoft oder ein anderer Herstelle einen WebRTC-Service baut, der sich nach hinten an Skype für Business oder andere SIP-Services anbindet und als Gegenstelle beim Anwender auf die WebRTC-Funktion des Browsers aufsetzt. Aktuell habe ich habe noch keine Information, dass es solch ein Programm gibt.

Produkte und Projekte

Auf der einen Seite ist es schon erstaunlich, dass von Microsoft kein Webpart oder Modul für die Integration einer anonymen Chat-Quelle gibt. Auf der Suche im Internet habe ich einige Produkte und Projekte gefunden, die aber alle einen durchwachsenen Eindruck machen. Das "LyncWidget" (anfangs auf Codeplex)  hat mir am Anfang recht gut gefallen, aber der Entwickler stellt keine neuen Versionen mehr bereit, sondern möchte über die Dienstleistung zu Unterstützung bei der Integration Geld verdienen, was natürlich legitim ist. Suchen Sie einfach selbst etwas z.B. mit den Suchbegriffen "Lync Web Chat Widget" o.ä.

Weitere Links