Hope you’re keeping warm (or cool depending on where you’re reading this) this holiday season.
Microsoft released an update to their free Network Assessment tool for Skype for Business Online a couple of days ago.
The updated tool is available for download here.
I wrote a hands on review of the tool which was released during the Ignite Conference in 2016.
The original tool was downloaded as a zip file (network-assessment-lib-6.0.8970.161.zip) which you unpacked to a directory of your choosing. The new tool downloads as MicrosoftSkypeForBusinessNetworkAssessmentTool.exe. Running the new executable “installs” the tool to an unchangeable directory of ‘C:\Program Files\Microsoft Skype for Business Network Assessment Tool’, unpacking the contents in much the same way as the previous ZIP file.
The Download site says that the tool supports Windows 7 or later and that the PC must meet the requirements for Skype for Business Online systems described here. For server installs you need to enable the desktop experience. It also says that you can only run a single instance of the tool at a time and that it isn’t intended for load or stress testing.
If you compare the directories side-by-side you’re notice that the new library has more in it.
As you can see there are more differences than similarities between the old and new tools. The updated tool utilises the client SDK and Bot framework to connect to the Skype for Business Online and Teams Edge and place a series of actual 17 second calls, then tell you if the call was any good, based on the results.
The tool was originally developed to check network performance on the network where it was run in order to determine if it meets the targets for media quality and network performance for using Skype for Business Online.
These are the targets for the Skype for Business client to the Edge
The tool reports on Packet Loss, Jitter, Round-Trip Latency and Reordered packet percentage to the nearest Microsoft Network Edge.
To run the tool you need an elevated command prompt or PowerShell window. I used PowerShell for mine.
First, browse to the tool location
cd ‘C:\Program Files\Microsoft Skype for Business Network Assessment Tool’
Pro tip: You can create a variable to browse to the file location. This will save you having to type the above each time. You just assign the full file path to a variable of your choosing. I used $nat for Network Assessment Tool.
You can save time by creating a shortcut to open PowerShell directly to the folder. Simply create a shortcut wherever you like with the following text in the Target.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command cd “‘C:\Program Files\Microsoft Skype for Business Network Assessment Tool'”
Better still, you can save even more time by creating a shortcut to run a single test and then leave PowerShell open to do more. Simply create a shortcut wherever you like with the following text in the Target.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command cd “‘C:\Program Files\Microsoft Skype for Business Network Assessment Tool’;.’.\NetworkAssessmentTool.exe'”
Before I run something for the first time I like to see if there is some basic help on syntax. I ran .\NetworkAssessmentTool.exe ?
The usage is NetworkAssessmentTool.exe [options] [arguments]. Running the tool with no options or arguments will perform the network quality check.
The first time I ran it I got a popup from Windows Firewall asking if I wanted to allow the connection.
These were the initial results for a single call
As you can see, it writes a results file to “%LocalAppData%\Microsoft Skype for Business Network Assessment Tool”.
One thing to note is that each time you run the tool the results of previous tests are replaced. Or more accurately, the file is replaced with a new results file.
To analyse the results you need to run the ResultsAnalyzer.exe tool and input the file.
.\ResultsAnalyzer.exe “C:\Users\randy.chapman\AppData\Local\Microsoft Skype for Business Network Assessment Tool\performance_results.tsv”
The first time I ran it, I got an error that said that there was no data in the input file.
So I opened the TSV file and verified that it did indeed have data in it. Hmmm! I read the usage doc which has a troubleshooting section. No specifics about that error unfortunately, so I decided to change the config file to give more results.
This is just as good a place as any to mention that there is a config file and there are a few parameters that can be changed in order to produce a different result. The config file is called NetworkAssessmentTool.exe.config and it is saved in the same directory as the tool itself. To modify it, you’ll need to run notepad or or your favourite txt file editor with elevated privileges.
The usage doc has a table that lists all of the configurable parameters as well as an indication of what will fail if it is missing or misconfigured.
To save you time, I’ll just say don’t change anything but the following (with the exception of the Delimiter value, which must be a <TAB>).
The NumIterations is where you configure the number of times it will perform the test. I changed this to 3 and left everything else as is. Then I re-ran the ResultsAnalyzer tool and it found some data.
Bizarrely, the tool read 3 rows, skipped 2 and processed 1 and claiming that some rows were skipped as too few packets were received to make a meaningful measure of the network. Again, hmmmm!
I can see that it did place the calls and that packets were sent and (all of them were) received. Clearly, not enough for the tool to care.
The good news is that I PASSED. Which basically indicates that Packet Loss, Jitter, Round-Trip Latency and Reordered packet percentage are within acceptable limits.
The bad news is that I had to change the config file to produce more than 1 row for the tool to pick up the data and analyse it.
You can also change the IntervalInSeconds. This is the time to wait between tests. The default is 5 seconds.
I changed it to 10 seconds while also changing the NumIterations to 2 and reran it. It did indeed run the assessment twice and it slept for 10 seconds between tests. This time, the packets sent and received were at the 850 mark for both tests and the ResultsAnalyzer picked up both calls.
Now that I know that a call in the tool should send 850 packets, I now know that the problem reading the file was down to the tool itself not sending all of the packets during isolated tests. In my case, it was the 1st and 3rd test.
I changed NumIterations back to 1 and re-ran the test and the call had 850 packets and the analyser was happy with the results.
I wrote this post over a span of a couple of days. Interestingly, the first time I ran it I had another instance with only 283 packets sent and received.
So it seems that the tool is not perfect. Hopefully Microsoft can fix these intermittent issues in the next release. This issue is resolved in version 1.1. See below.
The other two things you can change from that list are the location and name of the results files. The usage doc says that if the file path is not an absolute file path, the tool will write to “%appdata%\..\local\Microsoft Skype for Business Network Assessment Tool“.
You can change the location by pasting in a file path inside the quotes. The ResultsFilePath is the Network Quality test result file. The OutputFilePath is the Connectivity test result file.
New Test Available
This brings me nicely onto the next part of this post. That is to tell you that Microsoft added a new test to the tool, the Network Connectivity Test.
The Network Connectivity Test verifies that your computer can reach a list of relay IP Addresses on the ports required for real time media traversal. Effectively a port scanner.
To run the test, enter
The result is thrilling.
To view the results you can simply open the txt based results file “%appdata%\..\local\Microsoft Skype for Business Network Assessment Tool\connectivity_results.txt“…
…or you can open it in the PowerShell session…
more “C:\Users\randy.chapman\AppData\local\Microsoft Skype for Business Network Assessment Tool\connectivity_results.txt“
…or, better yet, you can simply run the command with the verbose switch to show the tests and results at the same time.
.\NetworkAssessmentTool.exe /connectivitycheck \verbose
My PC tried about 56 relay IP addresses for connectivity to TCP port 443 and UDP ports 3478-3481.
As it happens, I even have the results from a test that failed.
Update: Make sure you uninstall the previous version before installing the new version. The new version replaces some of the files, but not all in the directory. If you just upgrade, the 283 packets bug is still present. Starting from fresh eliminates the bug. Thanks to Trevor Miller for a comment in a TechCommunity post for pointing this out. And to Alex Grinman for letting me know.
I didn’t look previously, but it also appears in Program Files.
- To download the tool, go here: https://www.microsoft.com/en-us/download/details.aspx?id=53885
- Network quality targets https://support.office.com/en-us/article/Media-Quality-and-Network-Connectivity-Performance-in-Skype-for-Business-Online-5fe3e01b-34cf-44e0-b897-b0b2a83f0917?ui=en-US&rs=en-US&ad=US.
- The addresses and ports are described here: https://support.office.com/en-us/article/Office-365-URLs-and-IP-address-ranges-8548a211-3fe7-47cb-abb1-355ea5aa88a2#bkmk_teams.
If this or any other post has been useful to you please take a moment to share. Comments are welcome.