Rate my Call in Skype for Business Server
Summary: Learn about the Rate My Call feature in Skype for Business Server.
Rate My Call was a new feature in Skype for Business 2015 and 2016 clients on Windows that provides enterprises a way to get feedback from their end-users.
The Rate My Call window offers a "star" rating system and predefined tokens for audio and video calls. In addition, administrators can enable a custom field to provide feedback.
Collected Rate My Call data is not currently included in any existing monitoring report, but it has a separate monitoring report. Data is collected in SQL tables that can be accessed by running SQL queries.
Rate my Call Prerequisites
Before the users in your Skype for Business Server deployment can access Rate My Call functionality, the following set of components must be deployed and configured:
You must have Skype for Business Server installed (version 9160 or higher).
Have your users install and update to the latest version of Skype for Business and also ask them to use the Skype for Business UI.
Users must be homed on the Skype for Business Server Front End pool.
You must have a Skype for Business Server monitoring database deployed and associated to your Skype for Business Server pools.
We recommend deploying Call Quality Dashboard (CQD).
Configure Rate my Call
The Rate My Call feature is enabled by default in the Client policy with the following settings:
Rate My Call Display Percentage - 10%
Rate My Call Allow Custom User Feedback - disabled
There is no action required to enable the base feature, however but if you want custom feedback you will need to enable it separately. The following Windows PowerShell cmdlet is an example of enabling custom end user feedback and changing the interval from 10% to 80%.
Set-CSClientPolicy -Identity <PolicyIdentity> -RateMyCallDisplayPercentage 80 -RateMyCallAllowCustomUserFeedback $true
Accessing Rate My Call Data
Data from users is collected in two tables in the monitoring database.
[QoeMetrics].[dbo].[CallQualityFeedbackToken] - this table contains results of token polling by end users.
[QoeMetrics].[dbo].[CallQualityFeedbackTokenDef] - this table contains token definitions.
Token definitions are coded as follows:
# | Definition |
---|---|
1 |
DistortedSpeech |
2 |
ElectronicFeedback |
3 |
BackgroundNoise |
4 |
MuffledSpeech |
5 |
Echo |
21 |
FrozenVideo |
22 |
PixelatedVideo |
23 |
BlurryImage |
24 |
PoorColor |
25 |
DarkVideo |
101 |
Audio_SilentLocal |
102 |
Audio_SilentRemote |
103 |
Audio_Echo |
104 |
Audio_BackgroundNoise |
105 |
Audio_LowSound |
106 |
Audio_Dropped |
107 |
Audio_DistortedSpeech |
108 |
Audio_Interrupted |
109 |
Audio_Other |
201 |
Video_NoLocalVideo |
202 |
Video_NoRemoteVideo |
203 |
Video_LowQuality |
204 |
Video_FrozenVideo |
205 |
Video_StoppedUnexpectedly |
206 |
Video_DarkVideo |
207 |
Video_NoAudioSync |
208 |
Video_Other |
301 |
Pstn_DialPad |
401 |
SS_NoContentLocal |
402 |
SS_NoContentRemote |
403 |
SS_CantPresent |
404 |
SS_LowQuality |
405 |
SS_Freezing |
406 |
SS_StoppedUnexpectedly |
407 |
SS_LargeDelay |
408 |
SS_Other |
501 |
Reliabilty_Join |
502 |
Reliabilty_Invite |
[QoeMetrics].[dbo].[CallQualityFeedback] This table contains polling results from "Star" voting and customer feedback if enabled.
Data from tables can be called by using a select * from [Table.Name] query or by using Microsoft SQL Server Management Studio.
The following SQL queries can be used:
Audio
SELECT
s.ConferenceDateTime
,Caller.URI as Caller
,CallerCqf.FeedbackText
,CallerCqf.Rating
,CallerCqfTokenDef.TokenDescription
,CallerCqfToken.TokenValue
FROM [Session] s WITH (NOLOCK)
INNER JOIN [MediaLine] AS m WITH (NOLOCK) ON
m.ConferenceDateTime = s.ConferenceDateTime
AND m.SessionSeq = s.SessionSeq
INNER JOIN [AudioStream] AS a WITH (NOLOCK) ON -- only look at Audio related feedback
a.MediaLineLabel = m.MediaLineLabel
and a.ConferenceDateTime = m.ConferenceDateTime
and a.SessionSeq = m.SessionSeq
and a.SenderIsCallerPAI = 1
INNER JOIN [CallQualityFeedback] AS CallerCqf WITH (NOLOCK) ON
CallerCqf.ConferenceDateTime = s.ConferenceDateTime
and
CallerCqf.SessionSeq = s.SessionSeq
INNER JOIN [CallQualityFeedbackToken] AS CallerCqfToken WITH (NOLOCK) ON
CallerCqfToken.ConferenceDateTime = s.ConferenceDateTime
and
CallerCqfToken.SessionSeq = s.SessionSeq
and
CallerCqfToken.FromURI = CallerCqf.FromURI
INNER JOIN [CallQualityFeedbackTokenDef] AS CallerCqfTokenDef WITH (NOLOCK) ON
CallerCqfTokenDef.TokenId = CallerCqfToken.TokenId
and
(CallerCqfToken.TokenId < 20 or (CallerCqfToken.TokenId > 100 and CallerCqfToken.TokenId < 200)) -- only look at Audio related feedback
INNER JOIN [User] AS Caller WITH (NOLOCK) ON
Caller.UserKey = CallerCqf.FromURI
Video
SELECT
s.ConferenceDateTime
,Caller.URI as Caller
,CallerCqf.FeedbackText
,CallerCqf.Rating
,CallerCqfTokenDef.TokenDescription
,CallerCqfToken.TokenValue
FROM [Session] s WITH (NOLOCK)
INNER JOIN [MediaLine] AS m WITH (NOLOCK) ON
m.ConferenceDateTime = s.ConferenceDateTime
AND m.SessionSeq = s.SessionSeq
INNER JOIN [VideoStream] AS v WITH (NOLOCK) ON -- only look at Video related feedback
v.MediaLineLabel = m.MediaLineLabel
and v.ConferenceDateTime = m.ConferenceDateTime
and v.SessionSeq = m.SessionSeq
and v.SenderIsCallerPAI = 1
INNER JOIN [CallQualityFeedback] AS CallerCqf WITH (NOLOCK) ON
CallerCqf.ConferenceDateTime = s.ConferenceDateTime
and
CallerCqf.SessionSeq = s.SessionSeq
INNER JOIN [CallQualityFeedbackToken] AS CallerCqfToken WITH (NOLOCK) ON
CallerCqfToken.ConferenceDateTime = s.ConferenceDateTime
and
CallerCqfToken.SessionSeq = s.SessionSeq
and
CallerCqfToken.FromURI = CallerCqf.FromURI
INNER JOIN [CallQualityFeedbackTokenDef] AS CallerCqfTokenDef WITH (NOLOCK) ON
CallerCqfTokenDef.TokenId = CallerCqfToken.TokenId
and
((CallerCqfToken.TokenId > 20 and CallerCqfToken.TokenId < 100) or (CallerCqfToken.TokenId > 200 and CallerCqfToken.TokenId < 300)) -- only look at Video related feedback
INNER JOIN [User] AS Caller WITH (NOLOCK) ON
Caller.UserKey = CallerCqf.FromURI
Updating Token Definitions
The latest Skype for Business clients report new problem token IDs (> 100) that may not be present in your [QoeMetrics].[dbo].[CallQualityFeedbackTokenDef] table. To update the database table with the latest token definitions, the below SQL command can be run on the monitoring database using Microsoft SQL Server Management Studio. This command will replace all entries in the [QoeMetrics].[dbo].[CallQualityFeedbackTokenDef] table.
DELETE FROM [CallQualityFeedbackTokenDef];
INSERT INTO [CallQualityFeedbackTokenDef] (TokenId, TokenDescription) VALUES
(1, N'DistortedSpeech'),
(2, N'ElectronicFeedback'),
(3, N'BackgroundNoise'),
(4, N'MuffledSpeech'),
(5, N'Echo'),
(21, N'FrozenVideo'),
(22, N'PixelatedVideo'),
(23, N'BlurryImage'),
(24, N'PoorColor'),
(25, N'DarkVideo'),
(101, N'Audio_SilentLocal'),
(102, N'Audio_SilentRemote'),
(103, N'Audio_Echo'),
(104, N'Audio_BackgroundNoise'),
(105, N'Audio_LowSound'),
(106, N'Audio_Dropped'),
(107, N'Audio_DistortedSpeech'),
(108, N'Audio_Interrupted'),
(109, N'Audio_Other'),
(201, N'Video_NoLocalVideo'),
(202, N'Video_NoRemoteVideo'),
(203, N'Video_LowQuality'),
(204, N'Video_FrozenVideo'),
(205, N'Video_StoppedUnexpectedly'),
(206, N'Video_DarkVideo'),
(207, N'Video_NoAudioSync'),
(208, N'Video_Other'),
(301, N'Pstn_DialPad'),
(401, N'SS_NoContentLocal'),
(402, N'SS_NoContentRemote'),
(403, N'SS_CantPresent'),
(404, N'SS_LowQuality'),
(405, N'SS_Freezing'),
(406, N'SS_StoppedUnexpectedly'),
(407, N'SS_LargeDelay'),
(408, N'SS_Other'),
(501, N'Reliabilty_Join'),
(502, N'Reliabilty_Invite');