Communicator AddOns

Es gibt nichts, was man nicht noch besser machen kann. Das gilt auch für den Office Communicator, der zwar so schon ganz leistungsfähig ist, und mit der Attendant Console einen ebenso leistungsfähigen alternativen Client hat, aber diverse Hersteller zeigen, dass AddOns sinnvoll sein können. Als Entwickler hat man natürlich die Wahl zwischen dem entwickeln eines AddOns für den bestehenden Communicator oder gleich eine eigene Application zu entwickeln, die einfach nur auf der API aufsetzt. Eine eigene Applikation ist natürlich sehr viel flexibler und sprengt die Grenten des Communicators aber ist natürlich auch komplexer. Ein kleines AddOn hingegen kann eine Funktion nachrüsten, die man schon immer gesucht hat. Denkbar sind Anbindungen an andere Dienste, die Steuerung eines ansonsten inkompatiblen Tischtelefons (Quasi lokales dezentrales Remote Call Control).

Bei der Suche im Internet müssen Sie aufpassen, weil als AddOn gerne Tools aufgeführt werden, die den Communicator selbst in andere Anwendungen integrieren z.B. http://code.msdn.microsoft.com/Communicator4Outlook

Einige Communicator AddOns

Natürlich habe sich zuerst die verschiedenen Konferenzanbieter mit einem AddOn für den Communicator hervor getan

Aber es gibt auch einige Entwickler, die selbst hier aktiv sind, z.B.

 

 

Eigene Ideen

Da kann es einen natürlich in den Fingern jucken, wenn man viele Ideen hat, um selbst ein passendes AddOn zu schreiben. Zumal mit schon viele Dinge eingefallen sind, z.B.:

  • Status beim Start/Resume abfragen
    Es wäre nett, wenn der Communicator nach einer Verbindungstrennung per Default meinen Status z.B. als "offline" oder "Nicht stören" setzen würde und mich dann per Dialogbox fragt, was mein Status sein soll. Sehr oft bin ich nur sehr kurz online und es verärgert auch Kontakte, wenn ich kurz angebunden bin und nur vergessen habe, den Status von "Verfügbar" auf beschäftigt zu setzen.
  • Ort abhängig vom Netzwerk setzen
    Es ist gar nicht mal so schwer, den aktuellen Netzwerkort ausfindig zu machen, z.B. über die IP-Adresse, das Subnetz oder die Klassifizierung des Netzwerks in Windows. Und der Communicator hat die Möglichkeit einen Ort anzugeben. Den könnte ein Addon auch alleine setzen
  • Zweitanruf unterbinden
    Wer OCS mit Enterprise Voice verwendet, kenn das Problem, dass man zwar schon telefoniert aber OCS einen zweiten Anruf dennoch signalisiert. Leider kann man nach meiner Erfahrung einen Zweitanruf gar nicht unterdrücken. Ein "Besetzt" Senden kennt der Communicator nur, wenn mein Status auf "Nicht stören" steht. Ein "Zweitanruf unterdrücken" würde also darauf hinaus laufen, diesen automatisch auf die Voicemail zu senden. Ohne Voicemail würde OCS dann natürlich schon ein "Besetzt" melden.
  • Telefonie temporär deaktivieren
    Ich nutze den OCS normalerweise schon mit Telefonie. Nun hat aber fast jeder PC heute schon Audiokarten eingebaut. Allerdings habe ich nicht immer auch ein Headset an meinem PC. Das wissen aber die anderen Teilnehmer nicht. Insofern wäre ein Button nett, um die Funktion "Communicator Call" Ein und auszuschalten. es würde ja reichen, einfach verschiedene Audioprofile zu verwalten.

Leider bin ich zu wenig Entwickler, um dies selbst in die Tat umzusetzen.

Communicator mit "Custom Tabs" erweitern

Der Office Communicator ist relativ einfach mit eigenen Links o.ä. zu versehen. Über einen Registrierungsschlüssel kann eine XML-Datei spezifiziert werden, die der Communicator einliest. Die XML-Datei kann lokal aber auch auf einem entfernten Server liegen. Mitarbeiter, die daher eher "offline" unterwegs sind, sollten die Datei lokal verwenden. Stationäre PCs können auch eine zentrale Konfiguration auf dem Server nutzen. Folgende Schlüssel definieren den Pfad zur einzigen XML-Datei.

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator\TabURL
HKEY_CURRENT_USER\Software\Policies\Microsoft\Communicator\TabURL

Sie sehen, dass dieser Wert über Gruppenrichtlinien und pro PC oder pro Benutzer gesetzt werden kann.

Regedit mit TabURL

Die spezifizierte XML-Datei hat z.B. folgendes Aussehen:

<?xml version="1.0"?>
<tabdata>
  <tab>
    <name>PowerOCS</name>
    <image>file:///C:/Temp/PowerOCS/powerocs.png</image>
    <tooltip>MSXFAQ PowerOCS</tooltip>
    <contentURL>file:///C:/Temp/PowerOCS/powerocs.htm</contentURL>
    <userid>true</userid>
    <contactid>true</contactid>
    <accessibility>both</accessibility>
    <siteid>1</siteid>
  </tab>
</tabdata>

Die einzelnen Felder bedeuten:

  • name
    Der Name der Erweiterung
  • image
    Verweist auf ein PNG-Bild mit 16x16 oder 32x32 Pixeln. Andere Formate sind nicht erlaubt !
  • tooltip
    Text, welcher beim "überfahren" des Bildes angezeigt wird
  • contentURL
    Verweis auf die Datei, welche angezeigt wird
  • contactid und userid
    Über ein "true" kann gesteuert werden, dass die Anwendung die userID und die ContactID mit an die Webapplikation sendet
  • accessibility
    Hierüber wird gesteuert, wann die URL angesprochen wird. Der Communicator unterscheidet Intern und extern (über Edge), so dass nur interne URLs von extern keinen "Seite nicht gefunden"-Fehler produzieren.

Natürlich können Sie bis zu 32 TAB-Einträge in der gleichen XML-Datei hinterlegen. Bedenken Sie, dass auch hier die Zonen des Internet Explorer ziehen, d.h. nicht immer werden ActiveX-Controls und Javascript ausgeführt und der Anwender an der Webseite "integriert" angemeldet. Denken sie auch an die Auflösung der Clients.

<html>
<head>
<script language="javascript" type="text/javascript">
  function dialtel(tel)
  {
  var myShell = new ActiveXObject("WScript.Shell");
  myShell.Run(tel);
  setTimeout('sendspace();',800);
  }

  function sendspace() {
  var myShell = new ActiveXObject("WScript.Shell");
  myShell.SendKeys(' ');
  }
</script>
</HEAD>

<BODY>
<a href="#" onclick="dialtel('tel:+495251304613')">Rufe Frank Carius an</a>
</body>
</html>

Wenn Sie übrigens umfangreichen Code hier einbetten wollen, dann funktioniert das ebenso über die HTML-Seite. Sie können hier natürlich auch ActiveX-Controls aktivieren.

Weitere Links