HOWTO: Chat-Ops Integration der pascom VoIP Telefonanlage in Mattermost

7
Dez/17

In diesem Howto stellen wir vor, wie wir die pascom VoIP Telefonanlage einfach über Chat-Ops mit Mattermost integriert haben. Für uns ist dabei ein erheblicher Mehrwert heraus gekommen, denn eingehende Anrufe an Teams bzw. Warteschlangen werden nun parallel zu den Möglichkeiten in pascom zusätzlich auch in Mattermost aufgelistet. Sie können so direkt als Basis für Chat-Diskussionen in Mattermost genutzt werden.


Motivation

Natürlich wird jeder ein- und ausgehende Anruf bereits auf der pascom Anlage festgehalten. Anrufjournale u.v.m. können auf der pascom einfach und komfortabel über das REST-Interface abgerufen werden. Auch das persönliche Journal im pascom Client informiert jeden User über seine ein- und ausgehenden Telefonate.


Der pascom Client für Windows, Linux und Mac OS (kurz: Softphone) umfasst auch eine integrierte Chat-Funktion. Sie ist funktional auf dem Niveau von herkömmlichen IRC bzw. Chat-Clients, also etwa so, wie vor 30 Jahren. Der Austausch zwischen Benutzern ist asynchron möglich, jedoch fehlt jegliche Art komfortabler Funktionalität, wie sie bspw. das Chat-System Mattermost bietet.


Wer einmal mit dem Enterprise Chat-System Mattermost gearbeitet hat, weiß, dass herkömmlicher IRC überhaupt kein Vergleich zu den Möglichkeiten von  Mattermost ist.


Zwar kann jeder pascom-Benutzer in seinem persönlichen Journal im Softphone sehen, welche ein- und ausgehenden Anrufe er hatte, jedoch kann er in diesem Journal nicht sehen oder nachvollziehen, welche Anrufe in den Teams bzw. Warteschlangen aufgelaufen sind, wenn er sie nicht selbst angenommen hat.


Egal, ob man fest und dauerhaft oder flexibel und nach eigenem Ermessen in einem oder mehreren Teams/Warteschlangen der pascom Anlage Mitglied ist, kann man ohne Zugriff auf die REST-Schnittstelle von pascom nicht sehen, welche Anrufe für Teams eingegangen sind.


In vielen Fällen kann es jedoch interessant oder gar wichtig sein, zu sehen, was bei den Teams bzw. Warteschlangen an Anrufen eingegangen ist. Zumal, wenn man sich schriftlich schnell und asynchron (Chat) mit Kollegen über einen Anruf oder dessen Inhalte austauschen oder Telefonnotizen zu den Anrufen verwalten möchte, damit alle Kollegen Bescheid wissen.


Mattermost bietet sich hier dank seiner zahlreichen offenen Schnittstellen als hervorragende Lösung für eine Integration mit hohem Mehrwertpotenzial an. Telefonie und Chat können nutzbringend integriert werden. Bzgl. eingehender Anrufe kann einfach zusätzliche Transparenz geschaffen werden.


Sicherlich gibt es auch noch viele weitere Möglichkeiten für zusätzliche Integrationen. Wir beschränken uns hier zunächst auf den beschriebenen Anwendungsfall. Eine Adaption in Bezug auf andere Möglichkeiten ist einfach möglich).


Welche Funktion bietet diese Integration von pascom und Mattermost über Chat-Ops?

Eingehende Anrufe werden, sofern Sie an ein Team bzw. an eine Warteschlange der pascom gerichtet sind, im Augenblick des Rufeingangs von pascom an
Mattermost übergeben. In Mattermost werden sie im Kanal "Telefon" als neuer Beitrag eingestellt.


Die Journale eingehender Anrufe stehen damit nicht mehr nur in pascom zur Verfügung, sondern jeder eingehende Anruf an ein Team bzw. eine Warteschlange steht durch die Übergabe an Mattermost dort bereits unmittelbar beim Rufeingang als Chat-Beitrag zur Verfügung.


Jeder anrufbedingte Chat-Beitrag in Mattermost umfasst dabei die eingehende Rufnummer, das Datum und die Uhrzeit des Anrufs, den Vor- und Nachnamen des Anrufers und den Firmennamen (soweit dieser im Telefonbuch der pascom gefunden werden kann). Außerdem wird übergeben, an welches Team bzw. Warteschlange der Anruf ging (z.B. Vertrieb, Technik, Zentrale usw.).


In der Praxis sehen die Einträge in Mattermost dann bspw. so aus:

(Telefon) [BOT] 16:40

Anruf von Jens Rüdger, Rüdger Druck GmbH & Co. KG (0401234567890) an 
Zentrale



(Telefon) [BOT] 16:42
Anruf von Klaus-Peter Meyer, Mustermann AG (030987654321) an Support


Was muss auf der pascom oder in Mattermost installiert werden?

Nichts. Sowohl pascom als auch  Mattermost umfassen bereits alles, was für die Integration benötigt wird. Es werden die vorhandenen Schnittstellen genutzt. (Während andere VoIP-Anbieter für zusätzliche Optionen ihrer Anlage sehr oft zusätzliche Gebühren erheben, ist bei pascom jegliche Funktionalität grundsätzlich von vornherein im Preis enthalten).


Wie muss pascom konfiguriert werden?

Auf der pascom wird zunächst das folgende einfache Shellskript (Name bspw. call_an_mattermost.sh) abgelegt, dass die Call-Details an Mattermost übergibt:

#!/bin/sh
#
ARGVN="$@"

curl -k \
     -d token=secret \
     -d callerdata="" \
     https://mattermost-server/matterhooks/pascom.php

Dieses Skript wird dann in der pascom Admin-GUI jeweils bei den Teams bzw. Warteschlangen hinterlegt, deren eingehende Anrufe an Mattermost übergeben werden sollen:
Benutzer → Teams → Team auswählen → Bearbeiten → Reiter „Extern/Vorher“ → Hinzufügen → Inline Skript

Dort unter „Ausdruck“ den Aufruf des Skripts als Einzeiler einfügen:

system(/etc/admin/bin/call_an_mattermost.sh $ {MDC_DIALCALLERNUM}"\;Support")



Per Inline Skript können weitere Asterisk-Kanalvariablen (also auch Anrufername usw.) an Mattermost übergeben werden.


Statt „Support“ den jeweils gewünschten Begriff (also Team- bzw. Warteschlangenname) im Aufruf des Inlines Skripts eintragen.


Wie muss Mattermost konfiguriert werden?

Das in dem oben vorgestellten Shellskript verwendete Mattermost-Modul „pascom.php“ ist ein einfacher „Mattermost Webhook“.


Anhand dieser Dokumentation (https://docs.mattermost.com/developer/webhooks-incoming.html) kann die Funktionsweise von Webhooks sehr einfach nachvollzogen und verstanden werden. Bereits mit wenigen Handgriffen ist der eigene Webhook für die Annahme der Ereignisse von pascom fertiggestellt und – voilá – fertig ist die Chat Op Anbindung von pascom an Mattermost!


Welche zusätzlichen Möglichkeiten gibt es noch?

Im Grunde sind der Fantasie, was  alles von pascom an Mattermost übergeben und signalisiert werden könnte, keine Grenzen gesetzt.


So könnten z.B. auch  ausgehende Anrufe an Mattermost übergeben und dort als Chat-Beitrag eingestellt werden. Im Grunde könnte quasi sogar jedes beliebige Event auf der pascom-Anlage diesen Hook nutzen, und so einen Chat-Beitrag in Mattermost auslösen.


Konkret müsste man in pascom dazu an den jeweils entsprechenden Stellen nur ein Inline-Skript mit dem Aufruf eines Shellskripts wie „call_an_mattermost.sh“ einfügen, welches seinerseits die Übergabe der Daten an Mattermost über den dortigen Webhook vornimmt. Mattermost nimmt die geliefeten Informationen entgegen und stellt sie als neuen Chat-Beitrag in einem Kanal der eigenen Wahl dar.


Was ist der Nutzen?

Anrufe, die bei uns an die Zentrale, den Vertrieb und den Support gerichtet werden, kommen nie direkt bei einer bestimmten Person an, sondern immer in einer Anrufgruppe (bei pascom heißen sie "Team" bzw. "Warteschlange". (Teams in pascom bieten darüber hinaus viel mehr Möglichkeiten, als Anrufgruppen auf herkömmlichen ISDN-Telefonanlagen).


Da Anrufe an Teams (bzw. Warteschlangen) nicht im eigenen Telefonjournal auftauchen, wenn man nicht selbst mit dem Anrufer gesprochen hat, fehlt also die Möglichkeit zu sehen, was bei dem Team an Anrufen aufgelaufen ist. Zwar können diese Informationen strukturiert über die REST-API aus der
pascom-Anlage ausgelesen (und damit einfach ausgewertet) werden, aber es geht ja nicht nur darum, eine Liste von Datenbankeinträgen zu sehen, sondern jeden Telefonanruf kommentieren und in der Kommunikation und im Teamwork intern nutzen zu können.


Dadurch, dass alle Anrufe an die Telefonwarteschlangen automatisch als Beitrag in Mattermost gechattet werden, kann jeder Benutzer bei Bedarf Kommentare zu den Anrufen hinterlegen und das ganze Geschehen so wesentlich transparenter für alle Benutzer machen, als es sonst wäre.


Aus „normalen“ Journaldaten werden plötzlich einfach nutzbare Kommunikationsdaten - durch Notizen, Diskussionen und was man mit
Mattermost eben alles machen kann.

Die schlanke Lösung für ChatOps: Kopano & Mattermost: Hier mehr erfahren
 
 

Die wichtigsten IT-Themen im Überblick

IT-Sicherheit Schulung | Exchange Alternative / Microsoft | Agorum Core | Owncloud | Kopano | Kontakt | News

Technologiepartner

  • Kopano
  • Univention
  • Benno Mailarchiv
  • OX
  • Owncloud
  • Agorum Partner
  • pascom
  • LPI