Sophisticated Skype: Rate My Call

In a recent article I mentioned various methods to better understand user behavior and satisfaction. In this article, I teamed up with my business partner, and four-time Skype MVP, Dino Caputo to explore in detail the "Rate My Call" user feedback mechanism.

Rate My Call is a feature in the Skype for Business 2015 and 2016 clients on Windows that provides enterprises a way to gather direct feedback from their end users. The Rate My Call pop-up offers a "star" rating system from 1-5, which users can select to give feedback on call or video quality (really bad, poor, fair, good, excellent). In addition, administrators can enable a custom field to provide free form text feedback.

portable

Collected Rate My Call data is not currently included on any of the built-in Skype for Business monitoring reports; however, data is collected in SQL tables that can be accessed by running SQL queries if running Skype for Business Server on premises.

What Do I Need to Get Started?

Before users can access the Rate My Call functionality, the following set of components must be deployed and configured within your Skype for Business Server environment:

  • You must have Skype for Business Server installed (version 9160 or higher).
  • If possible, update the Skype for Business client to the latest version (however, version 15.0.4711.1002 or later is supported)
  • The user needs to be homed on a Skype for Business Server 2015 pool or homed in Skype for Business Online
  • You must have a Skype for Business Server monitoring database deployed and associated to your Skype for Business Server pools.
  • While not required, it is recommended you deploy Call Quality Dashboard (CQD) as there are built in reports you can access with respect to Rate My Call.
  • The user has to be granted a Client Policy, where the parameter RateMyCallDisplayPercentage is larger than 0

On your Skype for Business Server, open a Skype for Business Administrative Management Shell and run the following cmdlet:

Get-CsClientPolicy Global

This will return all the parameters for your Global Client Policy. Specifically look for the following two parameters:

RateMyCallDisplayPercentage : 10

RateMyCallAllowCustomUserFeedback : True

The above settings indicate that users will be prompted to rate their call 10% of the time and will also be allowed to enter custom feedback using free form text if they desire.

To change the percentage or the option for text you would use the following cmdlet:

Set-CSClientPolicy -Identity Global -RateMyCallDisplayPercentage 80 -
RateMyCallAllowCustomUserFeedback $true

(The above commands would cause users to be prompted for feedback 80% of the time and would also enable the free-form text box on the Rate My Call pop-up.)

Note you don't need to use the Global Policy if you only want a subset of users to utilize the Rate my Call feature. If you had another Client Policy, called Sales for example, you could change the parameters for that policy. Using these different policies allows you to canvas certain groups of users more aggressively, if for example you were rolling out a new office and wanted more feedback from these specific users.

How is the Data Sent?

A SIP Service request is generated after every Skype for Business client call. Within this Service request, there is a content-type application/ms-cqf+xml where the data is encoded in an XML blob.

How is the Data Stored?

The Rate My Call data is stored in the QoE Metrics database. Assuming you have the appropriate prerequisite update installed on your server, the QoE Metrics database will include three new tables that stores the feedback. These are:

  • dbo.CallQualityFeedback
  • dbo.CallQualityFeedbackToken
  • dbo.CallQualityFeedbackTokenDef

The CallQualityFeedback table has the rating and the feedback text. CallQualityFeedbackToken has the values for each issue. CallQualityFeedbackTokenDef has the definition of the issues.

dbo.CallQualityFeedbackTokenDef

The latest Token definitions are coded as follows:

portable

[QoeMetrics].[dbo].[CallQualityFeedback]

The [QoeMetrics].[dbo].[CallQualityFeedback] table contains the polling results from "Star" voting and customer feedback if enabled.

Responses from the data from tables can be by retrieved using a select * from [Table.Name] query or by using Microsoft SQL Server Management Studio.

Microsoft TechNet provides a complex and often repeated example of accessing users' feedback for audio calls using an SQL query as per below:

portable

And a second, overly-complex, example for retrieving video call feedback:

portable

The potential trouble with these queries is that they list all conference calls, via the SQL join to the Sessions table, and return multiple rows for each response and then fail to explain how to interpret the results.

Below is an example of the data when running the SQL Query above for audio calls:

portable

When trying to decode the output from this complex query, it is important to realize that rows with the same ConferenceDateTime and Caller sip address represent the same call. Further, zeroes in the TokenValue column represent checkboxes that were NOT selected. A one in the column represents checkboxes that were selected.

Simpler Is Often Better

Given the complexity often associated with technology, sometimes simple is better and more understandable. The following single line query retrieves the call ratings and any text comments that may have been entered:

SELECT * from CallQualityFeedback

A typical result set from the above query looks like this:

portable

A few observations:

  • If a user dismisses the Rate My Call pop-up window, by clicking the close button or the X in the upper right, a rating of zero is written to the database. It is important to exclude these zero values when you are calculating an average rating score.
  • The FeedbackText column will only contain values if you set the RateMyCallAllowCustomUserFeedback parameter to $true as described above.
  • If you want to determine who provided a particular response, the value in the FromURI column corresponds to the UserKey column in the User table.

Building on our simple query, we can count the number of each particular rating over a specified period of time as follows:

portable

Comparing the total number of non-zero values to the the number of zero values tells us the response rate; that is to say, how often users provide a response when presented with the Rate My Call pop-up.

The CallQualityFeedbackToken table has one row for each checkbox presented on the Rate My Call popup, with a value of 1 in the TokenValue column if a checkbox was selected. As such, we can tally the reasons for each rating as follows:

portable

Lastly, we can get a list of people who on average have provided low ratings using this query:

portable

Using Call Quality Dashboard (CQD) with Rate My Call

If you deployed the Microsoft Call Quality Dashboard (CQD) then you may access reports with respect to Rate My Call as follows:

portable

Once again, it is important to understand that users can dismiss the Rate My Call pop-up or simply click "Submit" without entering any details. Both have the adverse effect of scoring the call with a zero rating. In our experience, many users who hit submit do not understanding that this causes the score to be skewed. For example, below is the same, more accurate, report with any ratings of "0" removed:

portable

What You Do with the Results Is What Matters!

Rate My Call data provides insights into end user satisfaction and augments the quality and reliability of information provided through the standard Monitoring Server reports.

Understanding user perceptions can provide useful information to help guide communications and training programs and/or to identify specific technical issues.

For example, in a recent organization we worked with, background noise accounted for 20% of the reasons calls were rated "really bad" or "poor." This serves as an indication that a) users or presenters should be reminded how to mute themselves or other participants who are in noisy environments (e.g. airport, coffee shop, etc.), or b) specific audio devices may not be effectively applying noise cancellation (e.g. built-in laptop microphones, using earbuds plugged into the audio jack).

In our case, further data correlation indicated that both causes were contributing and a targeted communication initiative was undertaken. And of course, we will use future Rate My Call queries to investigate whether this initiative was effective in modifying user behavior and thus user satisfaction with Skype for Business.

My team and I help vendors and organizations predict and plan for the future then deliver exceptional results in the present. If you have specific questions please comment below, send me a tweet @kkieller or message me on LinkedIn.

Related content: