During the Configure Custom Policies in Skype for Business Online and Microsoft Teams session at Ignite 2017, Christian Burke presented a case study for analyzing and troubleshooting poor call quality using the Call Quality Dashboard. One of the tools he used was a custom PowerShell module written by Jason Shave from the Skype for Business Customer Experience & Deployment team at Microsoft. This module includes a single command that extracts usage data from Skype for Business Online including the feedback reports submitted by users. In this blog post I will show you how to install the module and how to use it to analyze call data for your tenant.

First, you need to install the module onto your local system to have access to the PowerShell cmdlet in it. If you are using PowerShell version 3 or above, the module can be installed directly from https://powershellgallery.com using the Install-Module command. The command to install is as follows:

Install-Module -Name CxdCallData -Scope CurrentUser

The prompt will most likely warn you that you are installing a module from an untrusted repository. Enter Y and press Enter to install the module.

If the installation was successful, the command will complete without displaying any errors. To verify if the module was installed, run the Get-Module command to verify the installation path and commands available in the module. To import the module, use the Import-Module command, or simply try to use the Get-CxdCallData command and the module will auto import itself.

The Get-CxdCallData command only has a few parameters to use:

  • NumberOfDaysToSearch – required parameter
  • CsvFileWithUsers – not required
  • ReportSavePath – required parameter

If you do not specify an input file for the parameter CsvFileWithUsers, it will search for all users. If using a CSV file, it should have a single column labeled UserPrincipalName with the list of users to search for. The ReportSavePath should be a valid path to a folder to save the reports.

Here are a couple of examples to get you started:

Example 1 will search for call data for 90 days using the specified CSV file and save the output to the UsageData folder:

Get-CxdCallData -NumberOfDaysToSearch 90 -CsvFileWithUsers C:\Users\Admin\Documents\users.csv -ReportSavePath C:\Users\Admin\Documents\UsageData

Example 2 will search for call data for 180 days using for all users (as no CSV file was specified) and save the output to the UsageData folder:

Get-CxdCallData -NumberOfDaysToSearch 180 -ReportSavePath C:\Users\Admin\Documents\UsageData

A word of warning: if you have a large deployment of users or are searching for across a number of days, this search could take hours. Having an open PowerShell session for a long period of time increases the likelihood of session timeouts and other connection issues. My recommendation would be to break your user lists into smaller groups and run them individually. For example, running this against 350 users for a 7 day search typically took 30-45 minutes in my own experience. The command will display a progress bar, and for longer searches, an estimated completion time:

Now that you have completed a search, let’s take a look at the output. The command will output 4 different reports in both CSV and HTML files:

  • SFB-ClientVersions
  • SFB-NotUsingSkype
  • SFB-UserFeedback
  • SFB-UserSummary

The SFB-ClientVersions report will show each user and what client they have used to connect to Skype for Business. This can be useful when tracking down users who might be using an older client version that has a known bug or issue.

The SFB-NotUsingSkype report looks like it returns users who are not signing in or using Skype for Business. I only say this as the output from my dev tenant showed users I had not signed into a Skype client yet. Seems like an interesting choice of report to include but not sure what the value would be.

The SFB-UserFeedback report is probably the one I like the most. This collects the user feedback submitted by at the end of a call. By default in Skype for Business Online, the client policies specify that 10% of calls receive a feedback prompt to rate the call and indicate if any issues occurred (distorted sound, echo, or noise on the call). Extracting this information to a report allows administrators to investigate these calls and follow up with end users on their poor experience. This can help to change a negative perception of the product by educating end users on how to solve many of their issues. The report includes the participants, the capture time of the feedback, user reported issues, client versions, and network performance during the call. The screenshots below show the user feedback prompt and a small sample of what the report extracts:

Finally, the SFB-UserSummary report is a summary of each user, number of audio sessions, and the frequency of feedback reports. This is also helpful to see which users are using the service the most and how often they give feedback (as well as negative feedback).

For more information about this module, visit its documentation page at PowerShellGallery.com:


Edit 11/6/2017:

I did not know Jason Shave had a blog, just happened across it today. Check out his entry regarding CxdCallData module:

Introducing CxdCallData for Skype for Business Online