How Rick Steiner used Ekahau Pro and WLAN Pi to Derive MOS for VoWiFi

This is a summary of the presentation Rick gave at #WLPC 2020. Watch his full presentation HERE.

“I solve problems you don’t know you have, in ways you can’t understand”

Rick stumbled on a definition of an engineer he decided to adopt as his own, “I solve problems you don’t know you have, in ways you can’t understand”.

His boss even liked the definition so much, he thought Rick’s idea of getting it printed on a sweatshirt was a great idea.  All problems eventually end up coming to the engineers to solve. Here was Rick’s…

The Problem: Create a MOS for VoIP report with stats

Rick was being asked if he could also “throw in” a measurable, voice over IP report with stats for a customer even though:

  • He’d already provided a quote that didn’t cover this level of detail.
  • He already provided a cost based on the original report.
  • He was only able to use the tools he already had on hand.
  • He had no additional budget.
  • And he needed to provide the expanded survey in the same amount of time he had already quoted them for a standard validation.

So after I told my boss “yes”, I looked at myself in the mirror and asked, “how in the heck are you going to do this?”

3 Steps Rick used to solve the problem (and an infographic to help you remember those steps):


Rick’s first step was to figure out what assets he already had on hand. Here’s what he had to work with:

  • Ekahau Sidekick
  • Ekahau Pro
  • WLAN Pi
  • Laptop
  • And of course, his greatest tool, his brain


Not being a voice over Wi-Fi or voice over IP expert, Rick knew there was some information he was going to have to learn.

What could be used as a measurable statistic for voice over Wi-Fi?

What Rick discovered:

Voice over IP networks are usually evaluated by what’s called the, “Mean Opinion Score” (MOS). This is essentially a 1 through 5 rating where 5 is “the best”. The rating is based off of studies which identified measurable parameters (such as jitter, latency, and packet loss). These parameters make it possible to evaluate overall call quality without requiring 100 people sitting on phone calls monitoring call quality.


Equipped with a better understanding of MOS, Rick’s next task was to see if anyone was doing anything he could emulate? He discovered a helpful blog post by Panos of NetBeez, “Impact of Packet Loss, Jitter, and Latency on VoIP” discussing how they derive their MOS scores.


Enjoy a little inspirational infographic based on Rick’s methodology for problem-solving. 

Now how do I collect the data?

Packet Loss:

Rick decided to first focus on packet loss using Ping with either a laptop or Ekahau Pro, Active Survey, Ping option.

The Challenges:
Ping on the laptop had its challenges:
– It required starting the laptop first.
– It required recording the data in some way.

The problem with Ekahau Pro, Active Survey:
– This method would only ping the gateway. Gateways are busy, so that wasn’t going to work.


For latency, Rick used Iperf2 or Iperf3 using UDP option enabled.

This method could work with either a laptop or Ekahau Pro using the throughput option on Active Survey


The same process Rick used for Latency worked for jitter as well.

The key was, I had to collect this in the smallest amount of time possible


Packet Loss:

Rick decided to use Ping to the WLAN Pi device. The WLAN Pi served as a known endpoint and because nothing else was running on it, Ping could respond much better.

He also used a Windows program called hrping which pipes the results into a text file that can be reviewed at a later time.


For latency- ePerf going to the WLAN Pi using Ekahau Pro throughput option.


For jitter, the same thing – ePerf to WLAN Pi to Ekahau Pro.

***Note on using the Continuous Option:

Rick chose the “Continuous Option” for a couple of reasons:

  1. The ability to gather passive data
  2. Real-world scenario: How often do we stand still and talk on phones anymore? We don’t. We walk around all over the place. It made sense to Rick to go ahead and use “Continuous” even though he’d been instructed in Ekahau Advanced Course not to use it.

I’ve Got My Data Now What?

Panos’ blog lays out all of the different things to go through and use to figure it out.

Here’s a basic example of all of the different calculations that are being used. Read his blog to get a full understanding.

E-Model – NetBeez Version

  • Combine Latency + Jitter = Effective Latency
    • effective_latency = latency +2*jitter + 10.0
  • Rating value – R
    • Best – 93.2

Calculate Step 2

  • If effective latency is <160.0ms
    • R = 93.2 – (effective_latency)/40.0
  • If effective latency is >=160.0ms
    • R = 93.2 – (effective_latency – 120.0)/10.0

Calculate Step 3

  • Account for Packet Loss
    • R = R – 2.5 * packet_loss

Final Calculation

  • R < 0
    • MOS = 1.0
  • 0 < R < 100.0
    • MOS = 1 + 0.035*R + 0.0000007*R*(R-60)*(100-R)
  • R > = 100.0
    • MOS = 4.5
There are the different calculations with different steps. On the final step, Rick was able to take all the results and spit out a MOS value.

What The Client Received

  • Typical heat maps for RSSI and SNR or whatever value they wanted.
  • But he used the Jitter Visualization to show them the most important factor within voice over IP, which has to deal with UDP jitter, because that makes the call sound absolutely horrible.
  • He also provided a written breakdown showing all of the mathematical calculations he derived from Panos’ blog.
  • The final results he broke into a “per floor” table.
    • with a low number
    • a high number
    • median number.

Final Result

Each floor came in somewhere between 4.0 and 4.5 using this method.

This post was a summary of what Rick shared during his TEN Talk at #WLPC 2020 Phoenix. You can view the full presentation here:

Want to get ahold of Rick? Click on the social media buttons below or email him at [email protected] and be sure to check out his company website