Blog Post

Microsoft Teams Blog
4 MIN READ

CQDTools PowerShell Module helps with CQD building file generation and management

MartinRinas's avatar
MartinRinas
Icon for Microsoft rankMicrosoft
Jun 29, 2018
Monitoring User Experience, consisting of Quality and Reliability metrics, is an important element to ensure end-users realize the value of calling and meetings in a Teams and Skype for Business deployment.  In this article we will help you creating the building file required to run CQD effectively.
 
We offer rich data to support user experience management through the Call Quality Dashboard (CQD). To get the most out of CQD you want to get targeted reports to understand if there is a certain area of your environment that requires special attention. CQD allows you to do this by uploading a building mapping file. This file helps you to map subnets to buildings, countries and much more attributes to create insightful, actionable reports.
 
The starting point for this building mapping file is always a list of subnets and the associated physical location of that subnet. Good starting points for the creation of such a file is usually the networking team, an IP address management solution (IPAM) or other inventory systems that track IP address assignments. Plugging into those solutions and processes not only allows you to create an initial file but also enables to maintain and update the mapping file as changes are rolled out to your environment.
 
While working with customers and helping them with managing user experience in CQD I’ve identified a few common challenges and I’d like to introduce the PowerShell Module CQDTools that helps to overcome some of these challenges.
 
Initial creation of the building mapping file
While using an IPAM solution is a good starting point for a building mapping file, this concept doesn’t work for all customers. Maybe there isn’t a central IPAM solution in place, maybe the export capabilities are limited, or other reasons prevent us from using this data. However, most environments have other data sources that can be leveraged. The PowerShell Module allows you to generate a CQD-compatible building file from different data sources:
  1. Create a new CQD building file based on AD Site information.
    Building names can be retrieved from the site name, site description or subnet description in AD.
    Get-BuildingMappingFromADSites

     

  2. Create a new CQD building file based on MSFT DHCP servers.
    You can run this locally on a DHCP server, specify a DHCP server name or iterate through all authorized DHCP servers in AD.
    Get-BuildingMappingFromMSftDHCP

     

While this data might not be as granular as needed or sometimes might require little bit of manual updates, it certainly provides you with a solid starting point, if not more.

 

Management of the building mapping file

Once the file is created, you also need to think about ongoing management of that file. Like updates, addition of new sites that went live and other updates. The identification of subnets that are potentially missed in the file is another important aspect. CQD always requires you to upload a new, full file – there is no concept as incremental updates for the building file. CQD will also enforce integrity of that file, you must not have overlapping or duplicate subnet information in that file. The CQDTools module supports you as well:

  1. Validate an existing CQD building file to check for duplicates and overlaps (subnet/supernet relationship)
    Get-BuildingMappingFromADSites -InputFileName MyCQDFile.csv

     

     

  2. Find unmapped subnets using the same internet egress point as already mapped subnets as they are most likely just missed in the building file.
    This function leverages the CQDPowerShell module to talk to CQD directly, pull all the required data and return a list of likely missed subnets. Note: this will only work if building mapping file is uploaded (see 1 and 2 for this) and if the missed subnet is using the same internet egress as an already mapped site.
    Find-MissingBuildingsInCQD

     

Where can I get the PowerShell Module?

This PowerShell module is published to PowerShell Gallery. If you are running PowerShell 5 or higher, which is a pre-requisite for this module, simply run Install-Module CQDTools to download and install the module directly from PS Gallery.

 

What else do I need to know?

The functions all come with help content and have optional parameters. E.g. if you want to get data from all authorized DHCP servers in your environment, you would run:

 

Get-BuildingMappingFromMsftDHCP -AllADAuthorizedDHCPServers

All functions have help context and examples, so you can run get-help Get-BuildingMappingFromMsftDHCP to get more details on the function, how it works and parameters that you can use.

 

 

get-help Get-BuildingMappingFromMsftDHCP

 

 

These functions are exposed:

  • Find-MissingBuildingsInCQD
  • Get-BuildingMappingFromADSites
  • Get-BuildingMappingFromMsftDHCP

 

Call to Action

  1. Install the Module
  2. Create and Update your CQD building file
  3. Give us feedback

Additional Resources

PowerShell Module

https://www.powershellgallery.com/packages/CQDTools/

 

Overview on CQD

https://docs.microsoft.com/en-us/SkypeForBusiness/using-call-quality-in-your-organization/difference-between-call-analytics-and-call-quality-dashboard

 

Videos that will help you learn more about CQD and how to use it

http://aka.ms/sof-cqd

 

CQD Building file documentation

https://docs.microsoft.com/en-us/SkypeForBusiness/using-call-quality-in-your-organization/turning-on-and-using-call-quality-dashboard?redirectSourcePath=%252fen-us%252farticle%252fTurning-on-and-using-Call-Quality-Dashboard-in-Skype-for-Business-Online-553fa13c-92d2-4d5c-a3d5-41a073cb047c#upload-building-information

 

Updated Jan 26, 2021
Version 2.0
  • TeamsGeek's avatar
    TeamsGeek
    Copper Contributor

    Ive uploaded my Teams building data (subnets) but I dont see any info showing up in Reports

  • AppB005's avatar
    AppB005
    Copper Contributor

    It would be useful to have installation instructions, especially with NuGet being accessible through only un-intuitive means?