Lync Status mit C# ändern

In vielen Unternehmen wird Lync oder wie es seit neustem genannt wird Skype for Business zur internen Kommunikation eingesetzt. Im Rahmen meiner Ranorex Test störte mich immer wieder der Client. Lief gerade ein Ranorex Test und ein Kollege wollte etwas über Skype wissen, kam der Client dazwischen und störte meinen Test.

Zum Glück gibt es das Lync 2013 SDK das hier geladen werden kann. Damit kann man den Skype for Business Client steuern.

Wie zum Beispiel der eigene Status geändert werden kann habe ich hier mal notiert.
Im Ranorex ruft man die Statusänderung dann am besten in [SETUP] und [TEARDOWN] auf.

Installation Lync SDK

Das SDK kann hier geladen werden. Bei der Installation bekam ich den Hinweis, dass die Silverlight 4 Tools für Visual Studio 2010 nicht installiert sind. Das ist nicht weiter schlimm. Diese müssen nicht installiert sein.

Verweise Hinzufügen

Um nur den Status im Lync zu ändern, reicht es aus, als Verweis Microsoft.Lync.Model hinzuzufügen. Die DLL dazu befindet sich zum Beispiel hier: C:\ Program Files\ Microsoft Office\ Office15\ LyncSDK\ Assemblies\ Desktop\ Microsoft.Lync.Model.dll
VS Projekt Verweise

Noch das passende using dazu.
using Microsoft.Lync.Model

Lync Status ändern

Nun kommt der Spannendste Teil. Die Methode um den Status zu ändern.

private static void SetLyncState(ContactAvailability newState)
{
    LyncClient _lyncClient = LyncClient.GetClient();
    _lyncClient.Self.BeginPublishContactInformation(
        new Dictionary<PublishableContactInformationType, object>() {
        { PublishableContactInformationType.Availability, newState }
        }, null, null);
}

Und so wird der Status geändert:

// Abwesend
SetLyncState(ContactAvailability.Away);

// Beschäftigt
SetLyncState(ContactAvailability.Busy);

// Nicht stören
SetLyncState(ContactAvailability.DoNotDisturb);

// Verfügbar
SetLyncState(ContactAvailability.Free);

// Verfügbar
SetLyncState(ContactAvailability.Offline);

// Bin gleich zurück
SetLyncState(ContactAvailability.TemporarilyAway);

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.