Monday, 7 March 2022

Yealink BH72 Headset Review

 I posted a video review of the Yealink BH72 Headset. Here it is:

Read more →

Sunday, 13 February 2022

Poly VVX Teams SIP Gateway Tool

Microsoft recently released their Standard SIP Gateway product for a range of Poly, AudioCodes, Yealink and Cisco Standard SIP based phones. This service allows you to register these devices to a Teams user account and do basic call functions. The way Microsoft has implemented its provisioning process for these devices is very interesting. They have used a combination of device provisioning features that these phones already had with a custom authentication process. It’s actually very clever and was obviously a serious design investment on top of an already complex large scale Standard SIP infrastructure deployment.

The one drawback with Microsoft’s provisioning procedure, in my opinion, is that it requires a real-life human at some point to physically handle each phone device. For existing phone devices that are likely already deployed all over office buildings, the idea of finding every device is a bit of a nightmare. The enrollment feature is built around Teams Admin Centre which means that the device must first be connected to your Teams Tenant before it can be administered. Well, that was until this blog post… 😊

After looking at the way the Team SIP Gateway works, and the way the Poly VVX phones worked, I figured that I could possibly streamline this process to be done entirely remotely (avoiding the physical human phone-touching component). After some prototyping it turned out this could in fact be done. 

As a public good, I decided to release a version of the tool that allows you to very quickly provision an existing Poly VVX to connect to the Teams SIP Gateway and remotely sign-in/sign-out the device. Due to the importance of security and keeping your Standard SIP sign in credentials safe, I recommend that you always change the passwords on your VVXs to something more complex and secret. To help with this, the tool also has the capability to do remote password changes in bulk.


Poly VVX Teams SIP Gateway Tool

A swiss army knife for your Poly VVXs and the Microsoft Teams SIP Gateway.


  • GUI and command line execution modes. To use the GUI just run the tool without the "-Command" flag. To use command line mode run the tool using the "-Command" flag. See the command line flags section of this post for more details.
  • Connect to individual IP Addresses or Ranges of IP Addresses using the IP list capability.
  • Remotely connect to phones and do initial provisioning without having to log into the web interface manually.
  • Remotely check the status of phones to see if they are provisioned, signed-in or signed-out.
  • Remotely Sign-in the VVX phone to Microsoft Teams by clicking the "Teams Sign In" button. The tool will make the request for a Pairing Code and then you can complete the sign in through a browser. Once this process is completed, the phone will auto-reboot and sign into Teams (this includes provisioning reboots from Microsoft and takes about 5 mins).
  • Remotely Sign-out the VVX phone to Microsoft Teams by clicking the "Teams Sign Out" button. This will Sign Out the phone and have it reboot automatically back to the logged out state.
  • Change the password used by phones to harden the security of the device. This is important because using defaults will leave your devices' SIP registration credentials open to be stolen.
  • Remotely restart VVX phones by clicking the "Reboot" button. There shouldn’t be many occasions when you need to do this. However, if something doesn’t seem to be working a reboot will get the phone to run through its provisioning again which may fix your problem.
  • Import CSV of device IP Addresses. The CSV file only requires one column with a header column named "IPAddress". The CSV format that is exported from the Results Dialog can also be directly imported.


  • You will need direct IP access over the network to the subnets where the phones are deployed (no firewalls blocking web ports) and access to the Internet for connections to Microsoft's provisioning service (via TCP Port 443). You will get connection errors if this access is not available.
  • The phone needs to be accessible via its web interface (i.e you can connect to it with a browser and see the web interface) in order to connect to it with this tool. If the web interface is disabled you will need to enable it via local config server or configuring the device directly.
Note: The tool works on PowerShell version 5 and 7. The choice is yours. Enjoy!


Download from Github


Command Line Flags

The Tool can be run either with the GUI or as a pure command line tool that returns result objects that you can use within your scripts. To use command line mode, you must use the "-Command" flag to tell the tool what function you would like it to perform. When the "-Command" flag is used, it automatically tells the tool not to load the GUI.

Command Line Options:


If you specify a command then the tool will not load the GUI and instead will execute the command directly and respond with an output object.

Values: "status", "signin", "signout", "provision", "changepassword", "restart"

Note: When using the provision flag you will need to also specify the DeviceRegion flag. When using the changepassword flag you will also need to specify the DeviceNewPassword flag.

Example: .\PolyVVXTeamsSIPGatewayTool.ps1 -DeviceIPRange @("", "") -DeviceAdminPassword "P@ssw0rd" -DeviceUseHTTPS $true -Command status

Output Object Format:

              IPAddress  :

              Model      : VVX 411

              MACAddress : 64:16:7F:25:12:88

              Version    :

              Result     : Provisioned and signed out


Note: Some commands will not give outputs for the Model, MACAddress and Version values. They will respond with a blank string ("") if there is no data available so you should check for this if you are expecting this information.



This is the web port on the phone device. The tool will try to connect to this port to get to the web interface.

Values: 1-65535



This specifies if HTTP or HTTPS is used to connect to the device. $true or $false

Values: $true or $false



This specifies the admin username on the VVX. This should always be "Polycom"

Value: "Polycom" - Don't change this unless you know something I don't.



This specifies the admin password for the VVX web interface.

Values: Default "456". Any string is valid.



This specifies an array object containing and IP Address, IP Address range in subnet format (, or IP Range in dashed format (e.g

Value: Array format (e.g @() format). Examples:

               -DeviceIPRange @("", "")

               -DeviceIPRange @("", "")

              -DeviceIPRange @("", "")



This is the region where the phones are being deployed. This flag should always be used when using the Command flag with "provision" input (or it will default to "Asia Pacific"). The appropriate region URL provided by Microsoft will be selected for the region you select. You should use your local region for best performance.

Values: "Asia Pacific", "Europe", "America"



This setting can be used to send the new password when using the "changepassword" Command flag.


Command Line Examples

Below are some examples of using the tool in command line mode:

Get device status:

.\PolyVVXTeamsSIPGatewayTool.ps1 -DeviceIPRange @("", "") -DeviceAdminPassword "12345" -DeviceUseHTTPS $true -Command status

Sign in device:

.\PolyVVXTeamsSIPGatewayTool.ps1 -DeviceIPRange @("", "") -DeviceAdminPassword "12345" -DeviceUseHTTPS $true -Command signin

Sign out device:

.\PolyVVXTeamsSIPGatewayTool.ps1 -DeviceIPRange @("", "") -DeviceAdminPassword "12345" -DeviceUseHTTPS $true -Command signout

Provision device:

.\PolyVVXTeamsSIPGatewayTool.ps1 -DeviceIPRange @("", "") -DeviceAdminPassword "12345" -DeviceUseHTTPS $true -DeviceRegion "Asia Pacific" -Command provision

Change device password:

.\PolyVVXTeamsSIPGatewayTool.ps1 -DeviceIPRange @("", "") -DeviceAdminPassword "456" -DeviceUseHTTPS $true -DeviceNewPassword "12345" -Command changepassword

Restart device:

.\PolyVVXTeamsSIPGatewayTool.ps1 -DeviceIPRange @("", "") -DeviceAdminPassword "12345" -DeviceUseHTTPS $true -Command restart

How to use the Tool

As a prerequisite you need to know at least what IP Address range your phones are on. The tool requires that you enter an IP Address or Range of IP Addresses to try to connect to. If your devices are spread over a subnet with other devices you can run the "Get Teams Status" function on the whole subnet to figure out what the MAC Addresses and IP Addresses are of all the phones. You can then export this information as a CSV file for future runs.

Step 1: Change the Password on the phone(s)

Okay, first thing is first, let's secure these phones so your precious SIP Server authentication details cannot be stolen from your device. The default password for the VVX is "456". If you haven't already changed the password to something that’s hard to guess, I suggest changing it to something complex.

Click the “Change Password” button.


Step 2: Provision the phone(s)

In most cases you shouldn't have to manually update the software on the phones; this will get done as part of the provisioning process. Enter the IP Address/Range of the phone(s) and click the “Inital Provision” button. The tool will then connect to the phone and update its provisioning server information to point to Microsoft and it will automatically reboot.

The phone will now connect to the Microsoft provisioning service and download a base configuration (it actually downloads a couple of config files in multiple steps). It will also upgrade the firmware on the device to the supported Teams version. The software upgrade process can take some time (approx. 10+ mins). I would recommend you give it some time (~20 mins) before moving to the next step.


Step 3: Check the Status of your phone(s)

Click the “Get Teams Status” button.

If your phones have finished provisioning you should see a status of “Status: Provisioned and signed out”. If you can’t connect to the phone then it is likely still in the process of updating its software or rebooting. Give it some time if this is the case.


Step 4: Sign in the Phone(s)

If these are devices that have resource accounts that you know the Azure Active Directory Username and Password for, then you can sign them into Teams. Check you have the correct IP Addresses or IP Ranges configured in the tool. Then click the “Teams Sign in” button and wait for the pairing code to be shown in the Results Dialog.

Open a browser window and browse to the URL supplied ( and enter the Pairing Code. Then enter the phone account's Azure Active Directory Username and Password and complete the sign in process. The phone will  automatically reboot and complete the sign in process. This can take 5 minutes to complete on the device as it has to reboot and get a new configuration from Microsoft.


Step 5: Check the Status of your phone(s)

Click the “Get Teams Status” button. Once they are signed in you should get a “Status: Provisioned and signed in”.


Step 6: Relax

Job's done. Kick back and relax. You’ve earnt it.


The Wrap Up

When I first started this discovery process, researching the way the Microsoft SIP Gateway worked, I didn't think it would lead to this. However, I’m pretty happy with the outcome and think that the tool should save you some time if you choose to use it. If you have any feedback feel free to drop it in the comments. Stay safe and be cool!

Read more →

Thursday, 18 November 2021

Link Share Power App

Link Share is a Power App that I made specifically for Dataverse for Microsoft Teams. I had been wanting to build a Power App for a while and wanted something simple that was also broadly applicable for many teams. I mean, who doesn’t want/need to share web links with their colleagues? It is free to use with any Microsoft Teams licence without any additional Power Apps licensing required. The concept of the app is simple: share your important and relevant web links with your team in one place that is easy to access and use. This saves you from posting links into channel chat directly and having the chat message disappear into the post history over time. Each user can share, vote and bookmark links that have been posted.

Below is the main Link Share interface:

Each link has information about who posted the link, a thumbs up button for up-voting the link, a vote counter for the number of up-votes, a bookmark option and a link button for opening the link in a browser window. The filter combo box allows you to see links from that day, week, month or forever. The sort combo box allows you to order the links by votes or post date.


In the Filter combo there is an option to show the Top Contributors which is ordered by votes. The top 3 contributors get gold, silver and bronze medal highlights around their photo so you know they’re awesome. The medals are also shown back on the main screen behind the user photo. 

If you select Bookmarks from the filter combo box you will see all of the links that you have bookmarked on the main page.

The app also has the ability to also post to the Teams Channel that it is deployed in if you turn on this capability in the settings dialog:

 Link Share will post a message to the Teams Channel when you add a new link:

Download the Power App

Download the Link Share Power App from Github here:


How to Install the App


Step 1: In the Microsoft Teams client click on the left rail ellipses. Open the Power Apps application:

Step 2: In the Power Apps application in the Build tab and select the team name on the left side and then click the “Import your solution” link.

Note: I have selected a team here that already has it's Power Apps backend and storage set up (I know this because it appears already in the list on the left). If the team you are wanting to add the app to is not already listed, you need to first use the Create button and choose to add a new app to the team. This will then create all the backend Power Apps components (storage, etc) for that team. Procedure: Click "Create" link in the bottom left > Select the Team you want to add Link Share to > You will then be taken to the App Design experience > Click the Build Tab to get back to this screen and you will now see the team in the left list.

 Step 3: In the fly out on the right side of the screen. Click the Browse button:

 Step 4: Open the Power App zip file:

 Step 5: Click the Next Button:

 Step 6: Import all the Tables and Canvas app:

 Step 7: You will now see a message telling you that the app was imported:

Step 8: You may need to open the Apps tab on the right to refresh the screen and see the Link Share app. Click on the app to open it:

Step 9: The app needs access to Office 365 user data (for access to images) and Microsoft Teams to post Links to Channels (if you have this configuration setting enabled):

 Step 10: In the top right of the app editing screen, click the Publish to Teams button:

 Step 11: Click the Next button on the dialog:

 Step 12: On the Add to Channel dialog, click on the “+” sign on the channel that you want to add Link Share to:

 Step 13: Click the Save and Close button:

Congratulations! The app is installed. Now you can start using it.


Using Link Share


Step 1: Go to the Channel that you added the app to and click on the Link Share tab:

Step 2: The Link Share app will now be displayed and you can Add a new link by clicking the Add/Edit Link button:

 Step 3: Click the Add New Link button to add a new link:

Step 4: Type in a Title, Description, Link and then click the Tick button:

 Step 5: Click the Back button to go back:

 Finished! Your link is now listed on the main app and everyone can vote on it and bookmark it.


The Wrap Up


There is my first ever Power App open sourced for your usage and tweaking. It may not be much, but it’s mine. Let me know if you have any feedback, features, comments, etc. Till next time, may the Power be with you.

Read more →

Monday, 4 October 2021

Teams Room System Updated Manual Upgrade Process (2021)

Teams Room System will usually update from the Microsoft Store. However, sometimes you will end up in a situation where you want to update one of them to a newer software version immediately. Microsoft has updated the methodology for doing these manual updates in 2021 and I have documented this new process below. In the new method, the process involves downloading a PowerShell script that will be updated for each version of Teams Room System software. You need to run the script from Windows using PowerShell on the Room System hardware. Sounds easy enough, but there is a couple of tricks to making it work, so I’ve documented the steps here to save you some hassle.


Step 1: Plug a keyboard into your Teams Room System (you need this for the next step).


Step 2: From the normal MTR home screen, press the Windows Key 5 times in a row on the keyboard (Yes, really! Easier than Up Up Down Down Left Right Left Right B A Start, I guess). This will open up the Windows Login window without signing out the current Skype account.


MTR Home Screen
Press the Windows Key 5 times from this screen


Note: Do not try and log into the Windows install using the regular method (via Settings > Windows Settings) as this process will log you out of the Skype account and into the Admin account. If you then try to run the script you will get a “The Skype user must be logged in for this script to work correctly” error:

You can see in Task Manager that only the Admin user is logged in in this case which makes the script fail:

For the install to work you need to have both users logged in and Task Manager should show this:

Step 3: Download the Install Script from Microsoft:

If you have direct internet access you could do this directly from your Teams Room System or you can download it on your PC and copy it across to the MTR:

Note: If the download link ever changes you should be able to get it from the main docs pages here: 

Step 4: Open PowerShell as Administrator from the Start menu by searching for it, right clicking on the icon and selecting “Run As Administrator”:


Step 5: Run the Script with the following command line (but using the script name with the appropriate version number for your particular upgrade):

PowerShell -ExecutionPolicy Unrestricted "C:\Users\Admin\Downloads\MTR-Update-"

At this point the script will run and show quite a lot of logging. Here is a full print out of the logs from a working installation:


C:\Users\admin\downloads> PowerShell -ExecutionPolicy Unrestricted "C:\Users\Admin\Downloads\MTR-Update-"

-------- Log initialized --------


Script version

OS version: 10.0.18363.0

OS edition: Enterprise




All versions:

<Edited out version info here for brevity>

System outdated? False

Skype outdated? True

Skype status? Ok

Package: No MSI present to clean up. Skipping.

Package: No unpack path present to clean up. Skipping.

Package: Generating the MSI.

Package: MSI successfully written.

Package: Extracting the MSI.

Package: MSI successfully extracted.

App: Attempting to de-provision app...

Name  Enabled Description

----  ------- ----------                                                                    Skype True                                                                                

Path  :                                                                                    Online : True

App: App successfully de-provisioned.

App: Re-provisioning

Path   :                                                                                    Online : True                                                                              App: Package re-provisioned.              

Package: Cleaning up MSI.                                               

Package: MSI removed.

Package: Cleaning up extraction directory.                                              Package: Extraction directory removed.                                                                                  

App: Killing the watchdog for safety.    

App: Watchdog killed.

The operation completed successfully.

Impersonating user DESKTOP-OKU833I\Skype

App: Attempting re-registration for Skype user...

App: Re-registration complete.

Impersonation dropped DESKTOP-OKU833I\Admin

The operation completed successfully.

App: The NT AUTHORITY\SYSTEM user has the app installed/staged. Uninstalling...

App: App uninstalled for NT AUTHORITY\SYSTEM.

The operation completed successfully.

Package: No MSI present to clean up. Skipping.

Package: No unpack path present to clean up. Skipping.

System outdated? False

Skype outdated? False

Skype status? Ok


PS C:\Users\admin\downloads>


Step 6: Restart the MTR and you should be on the updated software version.


It’s as easy as that. Enjoy!

Read more →

Wednesday, 4 August 2021

Teams Network Assessment Tool (July 2021 Update)

In July of 2021 Microsoft released a new version of their Network Assessment Tool specifically for Microsoft Teams. This supersedes the old version that was originally released for Skype for Business which we were all still using for Teams deployments (until now). I have a front-end GUI that allows you to graph the results in real time using the Skype for Business version of the tool (still available here). The latest version of the tool appears to have had its core code rewritten and updated with Teams in mind. In this post I’ll do a deep dive into the new tool and compare it to its predecessor.

Here's the link for the new Teams Network Assessment Tool:

At this time the Skype for Business Network Assessment Tool is still also available here:

Note: The version discussed in this post is the Teams Network Assessment Tool

The first change from the old tool is that the commands have slightly changed. By default, the previous tool would run a media quality test and report back latency, packet loss, jitter and reorder ratio. In the new tool, its default is to run a connectivity test to all of the Teams relay servers in Office 365, and the media quality check now requires you use the "qualitycheck" flag when you execute the tool. The output of both of the commands is also quite different than it was in the previous Skype for Business version, which will be demonstrated in the following sections. 


Relay Check

The relay check is used to ensure that you can successfully reach the Teams relay services within Office 365 from your current location. It’s important that you run this from a subnet that your Teams clients will be connecting from. There’s not a lot of value in running this from your home when the clients are going to be connecting from an office location that will have different networking and firewall configuration.

No command line flags are required when running the relay check. You simply execute the tool from the command line as shown below:

Command Example:

C:\Program Files (x86)\Microsoft Teams Network Assessment Tool>NetworkAssessmentTool.exe


Unlike the previous version of the tool, you do not get to see all the addresses that the tool attempts to connect to when using the verbose flag (as there is no verbose flag anymore). What you get now is a port negotiation check with two servers that will confirm connectivity on all of the 3478-3481 and 443 ports. After this, in the background, it does a check to the full list of relays. However it doesn’t print these tests to the command line:

Something that is new here is that it checks all the TURN redirect ports (3478-3481) for the various workloads (audio, video and screensharing). This matters when you have turned on the “Insert QoS Markets for real-time traffic” setting in the Teams Admin Centre. because this setting will make the relays use the full range of ports when enabled. When it is disabled, the Teams clients only connects to port 3478 on relays and doesn't use the extra 3479-3481 ports.

 Teams Admin Centre > Meeting Settings > Insert QoS Markets for real-time traffic:


The previous Skype for Business Network Assessment Tool only checked for connectivity to 3478 which means there may well have been issues with the 3479-3481 ports being blocked on the firewall - you couldn’t establish this using this tool.

If you do have a connectivity issue to one of the servers, then you will receive a specific error for that endpoint. Here is an example of what happened when I blocked connectivity to one of the relay servers:


You will see in the results here that “Service verification failed” and it tells me that it could not reach the relay server at So - when you run the tool pay careful attention to the output because it doesn’t highlight these errors in red.

Note: If you are testing for a DoD or GCC domain they will have different Relays than the enterprise tenants. In this case you must include a specific FQDN in your config file (NetworkAssessmentTool.exe.config):

Office 365 Endpoint

Recommended Relay FQDN

Worldwide (including GCC)

U.S. Government DoD

U.S. Government GCC High

The setting is in the config file under this key:

<!-- Custom FQDN of the relay (VIP) to be used in the relay connectivity and quality checker  -->

<!-- Note that if this value is kept empty, then a default FQDN (from ECS) is used  -->

      <add key="Relay.FQDN" value=""/>


Quality Check

The Quality Check feature of the new version of the tool works slightly differently than the previous version of the tool. In the previous version the tool would send 17 seconds worth of media to the cloud and then report back on the result. In the new version the tool will constantly send media to the cloud and report the results in the command line every 5 seconds. By default, it will do this for 5 minutes and then stop. The command for doing a quality check is as follows:

Command Example:

C:\Program Files (x86)\Microsoft Teams Network Assessment Tool>NetworkAssessmentTool.exe /qualitycheck


You can see in the output above that the tool doesn't report reorder ratio like it did in the Skype for Business version. You will only get Latency, Jitter and Packet Loss statistics. The tool with each test will also write the results out to a CSV file so that you can review this data over the running period. Using the CSV file you can create your own graphs with Excel or any other graphing application you might prefer.

Something I have noticed with the new Teams tool compared to the previous Skype for Business tool is that it seems to give consistently higher Jitter values than the old version of the tool. I have found these values to be about 30%-50% higher. This may be a result of it calculating the jitter in a different way or because the length of the media sample it is averaging is about one third the length of the previous tool (5 seconds instead of 17 seconds).

When I ran the new and old tool side-by-side on the same machine on a relatively clean network I was seeing Jitter values of about 7ms reported on the old tool and 10-14ms on the new tool. Then when I injected some jitter using a network emulator, I was getting about 30ms of jitter being reported on the new Teams version of the Network Assessment Tool when the old tool was reporting 15ms of jitter. Bear this in mind when using the new tool as the Jitter values will be higher than you might expect. Based on this, I would say it would be difficult to hit Microsoft’s recommendation of under 15ms average for jitter using the new tool. It might be wise to be a little more lenient with the jitter thresholds and say 30ms as the value from the new Teams version of the tool.


Media Duration Setting

By default the Quality Checker will run for 5 minutes and output results every 5 seconds. To change the length of time the quality checker will run for you, need to change the MediaDuration setting in the config file (NetworkAssessmentTool.exe.config):


<!-- Duration of media flow for the quality checker, in seconds -->

<!-- Note that Ctrl+C can be pressed at any time to stop the quality check -->

      <add key="MediaDuration" value="300"/>


 Port Range Settings

An important thing to note here is that you are using non-default port in the Teams Admin Centre > Meeting Settings > Media Ports section (i.e not 50000-50019 for audio) then it’s best that you update the config file (NetworkAssessmentTool.exe.config) to match your configured range. By default, the tool is only checking connections from the Audio range, so if you really want to do testing from your Video and Screensharing range (e.g. you’re having quality issue specifically with Video or Screensharing) then you can expand or change the range to fall into your specific ranges.

<!--default source port ranges (inclusive) for the relay connectivity and quality checker     -->

      <!-- Audio: 50000-50019

           Video: 50020-50039

           VBSS:  50040-50059 -->

      <add key="MinimumSourcePort" value="50000"/>

      <add key="MaximumSourcePort" value="50019"/>


QoS Marker Setting

There is a setting in the config file for QoS Marking settings with and Audio or Video setting. This doesn’t appear to do anything in this version of the tool. I've found that in the current version of the tool I get CS5 (DSCP 40) which is a layer 2 precedence of 5 for both "Audio" and "Video" values. This is not what I would have expected, so I'm not sure if this is fully implemented yet.

<!-- UDP QoS Marking is used just for the quality checker -->

<!-- QoS Marking values should be chosen between 'None', 'Audio' or 'Video' -->

<!-- Note that this field does not apply to the relay connectivity checker -->

        <add key="QoSUDPMarking" value="none"/>



Excel Example Chart

My Network Assessor Tool GUI, that I made for the Skype for Business version of the tool, would create a line graph of each of the values for Latency, Packet Loss, Average Jitter and Reorder Ratio. A similar kind of graph can be achieved with the CSV output of the new tool using Excel. 

Microsoft's recommended values for maximum Latency, Jitter and Packet loss are as follows:  



Latency (one way)

< 30ms

Latency (RTT)

< 60ms

Burst packet loss

<1% during any 200 ms interval

Packet loss

<0.1% during any 15s interval

Packet inter-arrival Jitter

<15ms during any 15s interval

Packet reorder

<0.01% out-of-order packets

Note: As I mentioned earlier, the new Teams Network Assessment Tool seems to report Jitter as being greater than the previous Skype for Business version of the tool. I would recommend using 30ms as the threshold for Jitter values in this tool.

Using the above settings as threshold values, you can create a chart that automatically highlights all the values that were out of these ranges. Here is an example of a chart created in Excel with this data:


Note: With this graph I used the Microsoft recommended 15ms for average Jitter, and as you can see it was quite consistently reporting a value close to or over that value. This is due to the Jitter reporting issue that I mentioned earlier. I believe that you should use a threshold around 30ms with the values reported from the new version of the tool.

There is a little bit of work required to tweak the graph to look like this. To display the red circles around the values that are outside of the threshold, you need to create a few extra columns in the CSV. Here is an example of formula I used to create these columns:

Column Header

Formula (Filled Down)


=IF(B2 > 10, B2,NA())


=IF(C2 > 60, C2,NA())


=IF(D2 > 30, D2,NA())


You then graph all the columns and 3 new columns listed above together, and change the newly calculated columns above to have markers that look like red circles instead of the original coloured dots. There is a little bit of fiddling required to make it look nice, but I’ll leave that your creative side. Here's an example of what I used for the Format of the Data Series:


Pass or Fail

In the previous Skype for Business version of the tool shipped with a results analyzer tool that would check your results file to see if it considered the tests to be a PASS or FAIL. It did this by checking if 10% or more of the tests had failed. We can reproduce this quite easily in Excel using the following formula example: 

=IF((((COUNTA(E2:E68) - COUNTIF(E2:E68,"=#N/A")) / COUNTA(E2:E68)) * 100) > 10,"FAIL","PASS" )


You need to run this at the bottom of each of the LossRate-Over, AverageLatency-Over, AverageJitter-Over columns that we calculated earlier. If there was over 10% of the attempts failed then it will  display FAIL and if not then it will present PASS. 


HTTP Infra Check

There is a new flag in the Teams Network Assessment Tool named "infraconnectivitytest". This offers a HTTP Infrastructure Check, which can be used to check from proxy issues when connecting to Teams web services. When you run the tool with this flag there is very detailed debug level logging that is outputted to the command line:

Amongst all of the debug messages you will see a summary of the connection attempts which looks like this:

==== Summary ====


Successful connections to URLs

        CONFIGS         URL

        9/9             ''

        9/9             ''

        9/9             ''

        9/9             ''


Successful connections using ECS configuration

        URLs            CONFIG

        4/4             '{}'

        4/4             '{"Regular":{"TLS_Force_Full_Handshake":0, "GenericTcpConnect_Version":1, "IPv6_Killswitch_Enabled":0}}'

        4/4             '{"Regular":{"TLS_Force_Full_Handshake":0, "GenericTcpConnect_Version":1, "IPv6_Killswitch_Enabled":1}}'

        4/4             '{"Regular":{"TLS_Force_Full_Handshake":0, "GenericTcpConnect_Version":2, "Proxy_RespectSystemProxy":1, "IPv6_Killswitch_Enabled":0}}'

        4/4             '{"Regular":{"TLS_Force_Full_Handshake":0, "GenericTcpConnect_Version":2, "Proxy_RespectSystemProxy":1, "IPv6_Killswitch_Enabled":1}}'

        4/4             '{"Regular":{"TLS_Force_Full_Handshake":1, "GenericTcpConnect_Version":1, "IPv6_Killswitch_Enabled":0}}'

        4/4             '{"Regular":{"TLS_Force_Full_Handshake":1, "GenericTcpConnect_Version":1, "IPv6_Killswitch_Enabled":1}}'

        4/4             '{"Regular":{"TLS_Force_Full_Handshake":1, "GenericTcpConnect_Version":2, "Proxy_RespectSystemProxy":1, "IPv6_Killswitch_Enabled":0}}'

        4/4             '{"Regular":{"TLS_Force_Full_Handshake":1, "GenericTcpConnect_Version":2, "Proxy_RespectSystemProxy":1, "IPv6_Killswitch_Enabled":1}}'

Presumably if connections don't work you will see some errors show up in this list. So keep an eye on the Summary output for any errors.

The Wrap Up

There have been a few nice improvements with this version of the Network Assessment tool from Microsoft. Hopefully, this post has shed some light on what it can do and what has changed from the previous version of the tool. If you have any questions feel free to drop me a comment below.

Read more →

Popular Posts