Mean Opinion Score (MOS)¶
The metric used for estimating voice quality is a Mean Opinion Score (MOS) based on the ITU-T E-model (► ITU-T Recommendation G.107). The inputs are network statistics such as speech codec usage, network delay, jitter, and packet loss. The modified E-model outputs an R-value, which is straightforwardly converted to a MOS value.
The MOS scale is laid out in the following table:
MOS  | 
Quality  | 
Impairment  | 
|---|---|---|
5  | 
Excellent  | 
Imperceptible  | 
4  | 
Good  | 
Perceptible  | 
3  | 
Fair  | 
Annoying  | 
2  | 
Poor  | 
Very annoying  | 
1  | 
Bad  | 
Impossible to communicate  | 
Calculation of MOS in Paragon Active Assurance¶
The algorithm for calculating MOS in the VoIP task is given below. It follows the ITU-T E-model.
For SIP, the algorithm is the same, but the average delay (davg) is assumed to be 5 ms in this case.
The function takes the following arguments:
loss = packet loss in %
davg = average delay
dmin = minimum delay
dmax = maximum delay
ie = equipment impairment factor
bpl = packet-loss robustness factor (codec-specific)
float Stats::calc_mos(float loss, float davg, float dmin, float dmax, float ie, float bpl)
{
    float mos, r, deff;
    deff = davg + 2 * (dmax - dmin) + 10;
    if (deff < 160)
    {
        r = 93.2 - deff / 40;
    }
    else
    {
        r = 93.2 - (deff - 120) / 12;
    }
    r -= ie + (95 - ie) * loss / (loss + bpl);
    if (r < 0)
    {
        mos = 1;
    }
    else
    {
        mos = 1 + 0.035 * r + 0.000007 * r * (r - 60) * (100 - r);
    }
    return mos;
}