Skype für Business Anrufbewertung (Rate my Call)

Mit dem Skype für Business Server und Client hat Microsoft eine Feedback-Option addiert. Diese als "Rate my Call" bezeichnete Funktion bittet den Anwender um eine Rückmeldung zur gerade beendeten Audio-Verbindung

Voraussetzung

Damit die Funktion aber überhaupt erst angeboten wird, müssen einige Voraussetzungen erfüllt sein:

  • Der Benutzer muss auf einem Skype für Business Pool Version (Version 9160+) als Homeserver arbeiten
  • Der Client muss das Skype für Business GUI verwenden
  • Aktive QoE/CDR-Monitoring Datenbank am Pool

Nur dann bekommen die Anwender manchmal die folgende Anzeige

 

Der Anwender kann hier ein Feedback zu dem Anruf abgeben, welche zum Server übermittelt wird. 

Steuern über CSClientPolicy

Wer wie oft diese Rückfrage bekommt, können Sie über die dem Benutzer zugewiesene CSClientPolicy steuern. Eine Ausgabe der aktuellen Einstellung ist wie folgt möglich:

PS C:\temp> Get-CsClientPolicy | ft identity,rate*

Identity                                                    RateMyCallDisplayPercentage
--------                                                    ---------------------------
Global                                                                                0
Tag:PaderbornClientPolicy                                                             0
Tag:Frank                                                                           100

Hier werden also die normalen Anwender gar nicht belästigt, währen meine TestPolicy auf 100% steht. Sie können jedem User eine andere Client Policy zuweisen. Eine bestehende Policy können Sie wie folgt ändern:

Set-CSClientPolicy `
   -Identity <Identity> `
   -RateMyCallDisplayPercentage 80 `
   -RateMyCallAllowCustomUserFeedback $true

Wenn Sie "zu Testzwecken" eine eigene Policy anlegen, dann startet Skype für Business hier mit einer leeren Policy und den Default Werten (10%). Um alle anderen Einstellungen einer bestehenden Policy zu übernehmen, können Sie eine bestehende Policy einfach in einem XML-Datei exportieren und in der XML-Daten den String der Identität ändern und die XML wieder importieren

# Anlegen einer neuen Policy
New-CSClientPolicy Frank

# Export einer vorhanden Policy in eine XML-Datezu
Get-CsClientPolicy Tag:PaderbornClientPolicy | Export-Clixml pol.xml

# In NotePad nun nach "PaderbornClientPolicy" suchen und z.B: durch "Frank" ersetztn
notepad pol.xml

# die XML-Datei auf die bestehende Policy anwenden
Import-Clixml pol.xml | Set-CsClientPolicy

# RateMyCall Einstellungen anpassen
Set-CsClientPolicy `
   -identity Frank `
   -RateMyCallDisplayPercentage 100 `
   -RateMyCallAllowCustomUserFeedback $true

#Policy an den Anwender zuweisen
Grant-CsClientPolicy `
   -PolicyName Frank `
   -Identity frank.carius@msxfaq.local

Um die Anwendung der neuen Policy zu beschleunigen, kann sich der Anwender kurz am Communicator ab und wieder anmelden.

Übertreiben Sie es nicht. Es macht keinen Sinn, alle Mitarbeiter nach jedem Call zur Bewertung aufzufordern. Sie sollten vorab alle Mitarbeiter über dieses Fenster und den Zweck informieren. Oft startet man am Anfang mit vielleicht 25-50% um in der ersten Woche Daten zu sammeln aber dreht dann den Counter auf 10% zurück, damit es nicht "nervt".
Es kann sinnvoll sein, die Policy für eine Teilmenge von Anwendern zu aktivieren, z.B. die in einer Niederlassung sind.

SIP-Pakete

Ob die "richtige" CSClientPolicy schon beim Client angekommen ist, können Sie im lokalen UCCAPI-Trace einfach sehen. Als Antwort auf einen REGISTER" liefert der Server eine Provisioning-XML retour, in der auch folgendes zu sehen sein sollte.

SIP/2.0 200 OK
ms-User-logon-data: RemoteUser
From: "User1"<sip:User1@msxfaq.net>;tag=d627aacaaa;epid=2385f4c267
To: <sip:User1@msxfaq.net>;tag=1E260080
CSeq: 1 SUBSCRIBE
Content-Type: application/vnd-microsoft-roaming-provisioning-v2+xml
Event: vnd-microsoft-provisioning-v2
subscription-state: terminated;expires=0

<provisionGroupList xmlns="http://schemas.microsoft.com/2006/09/sip/provisiongrouplist-notification">
  <provisionGroup name="endpointConfiguration" >
    <propertyEntryList >
      <property name="RateMyCallAllowCustomUserFeedback" >false</property>
      <property name="RateMyCallDisplayPercentage" >100</property>
    </propertyEntryList>
  </provisionGroup>
</provisionGroupList>

Nach dem Ende eines Anrufs wird der Anwender gefragt und wenn er Eingaben durchgeführt hat, dann werden diese als SERVICE-Paket zum Server gesendet. Auch dies ist einfach im SIP-Trace zu finden:

SERVICE sip:SkypefB.msxfaq.de@netatwork.de;gruu;opaque=srvr:HomeServer:yYKSnoM60yCklPTpAAA SIP/2.0
Via: SIP/2.0/TLS 192.168.178.31:55500
From: <sip:User1@msxfaq.de>;tag=8d751e7caf;epid=2385f4c267
To: <sip:SkypefB.msxfaq.de@netatwork.de;gruu;opaque=srvr:HomeServer:yYKSnoM60yCklPTpAAA>
CSeq: 1 SERVICE
Contact: <sip:User1@msxfaq.de;opaque=User:epid:V5mswjItSFyHLDNKAAA;gruu> User-Agent: UCCAPI/15.0.4763.1001 OC/15.0.4763.1001 (Skype für Business)
Content-Type: application/ms-cqf+xml
Content-Length: 604
<?xml version="1.0"?>
<CallQualityFeedbackReport xmlns="ms-cqf" CallId="e02097d40f064c428a532a721d6998fe" FromTag="0b8de29f43" ToTag="1510531d2">
  <ReportingUserURI>sip:User1@msxfaq.de</ReportingUserURI>
  <Rating>5</Rating>
  <Tokens>
    <Token><Id>1</Id><Value>0</Value><Tag>DistortedSpeech</Tag></Token>
    <Token><Id>2</Id><Value>0</Value><Tag>ElectronicFeedback</Tag></Token>
    <Token><Id>3</Id><Value>0</Value><Tag>BackgroundNoise</Tag></Token>
    <Token><Id>4</Id><Value>0</Value><Tag>MuffledSpeech</Tag></Token>
    <Token><Id>5</Id><Value>0</Value><Tag>Echo</Tag></Token>
  </Tokens>
</CallQualityFeedbackReport>

Daten im SQL

Die Daten landen beim Server und werden über die normale QoE-Struktur in die SQL-Datenbank des Monitoring Server geschrieben. In der QoE-Datenbank des SQL-Servers gibt es dazu seit Skype für Business drei neue Tabellen:

 

Tabelle Beschreibung

dbo.CallQualityFeedback

Diese Tabelle enthält neben den Zeitpunkt des Anrufs das Rating in Sternen (1-5) und den vom Anwender ggfls. mitgelieferten Text.

dbo.CallQualityFeedbackToken 

Hier sind dann die Checkboxen codiert, die der Anwender an oder abwählen konnte. Der "Tokenvalue" ist 1, wenn der Benutzer die Checkbox angewählt hat.

dbo.CallQualityFeedbackTokenDef

Die Bedeutung des Werts "TokenID" in der Tabelle dbo.CallQualityFeedbackToken wird über diese Tabelle definiert:

Der in der Tabelle dbo.CallQualityFeedbackToken bzw. dbo.CallQualityFeedback referenzierte "FromURI" können Sie über die Datenbank dbo.User  auf einen SIP-Adresse auflösen und so auch in Erfahrung bringen, von dem die Bewertung erfolgt ist:

Auswerten und Reports

Die Daten stehen in relativ einfacher Form in der SQL-Datenbank und stehen quasi zum Auswerten bereit. Microsoft selbst stellt mit dem "Call Quality Dashboard " eine etwas größere Plattform zur Auswertung der QoE-Daten bereit, die auch diese Rating-Daten erfassen kann.

Skype für Business Server 2015, Call Quality Dashboard
http://www.microsoft.com/en-us/download/details.aspx?id=46916

Die Frage ist aber, ob mittlere und kleinere Umgebungen den Aufwand hierzu betreiben können. Die Installation des Call Quality Dashboards ist nicht mal eben gemacht. Insofern kann es durchaus interessant sein, diese Daten mit anderen Werkzeugen, z.B. Excel oder eigenen Skripten auszuwerten.

Die große Frage dabei ist natürlich, welche Antwort sie aus den Daten destillieren wollen. Da gibt es mehrere Ansätze:

  • Einfach und Simpel
    Eine einfache Aufsummierung/Mittelwertbildung der Bewertungen aus der Tabelle dbo.CallQualityFeedback können Sie schon recht einfach per Powershell und SQL-Befehlen erreichen.
  • Eskalation
    Interessant könnte natürlich auch ein SQL-Trigger sein, der jedes neue Feedback umgehend erfasst und bei einer schlechten Bewertung umgehend ein Support-Ticket startet.
  • Standort-Verknüpfung
    Kniffliger wird es schon, wenn Sie die Bewertungen auf den Standort und damit die WAN-Verbindung zurückführen wollen. Diese Daten sind in den Call Quality-Tabellen nicht enthalten. Da müsste eine Auswertelogik schon den passenden Call anhand der Benutzers und des Zeitpunkts aus der QoE-Datenbank fischen und die IP-Adressen bzw. Sites der Endpunkte erfassen.

Leider sind die RatingDaten eben nicht direkt Bestandteil des QoE-Datensatzes, der am Ende der Verbindung schon angelegt wird. Die Bewertung durch den Anwender kommt ja erst hinterher.

Ich habe selbst noch kein "Eigenbau"-Reportset diesbezüglich erstellt aber finde es schade, dass es keine einfachen fertige Skripte gibt. Schließlich sollte ein Betreiber es hoch anrechnen, wenn die Anwender sich die Zeit für ein ausführliches Feedback nehmen. Zumindest die "Textbeiträge" würde ich umgehend als Mail erhalten wollen.

Neben den Skype für Business CQD-Reports gibt es aber durchaus auch Dritthersteller, die Reports entwickeln. EventZero hat es schon angekündigt und ich anderen Produkte werden sicher bald nachziehen.

Weitere Links