From: romryz <51915794+romryz@users.noreply.github.com> Date: Tue, 6 Feb 2024 13:57:32 +0000 (+0200) Subject: res_rtp_asterisk.c: Correct coefficient in MOS calculation. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a7a03bc294c8c46da00cbe73e6f448bf42db13eb;p=thirdparty%2Fasterisk.git res_rtp_asterisk.c: Correct coefficient in MOS calculation. Media Experience Score relies on incorrect pseudo_mos variable calculation. According to forming an opinion section of the documentation, calculation relies on ITU-T G.107 standard: https://docs.asterisk.org/Deployment/Media-Experience-Score/#forming-an-opinion ITU-T G.107 Annex B suggests to calculate MOS with a coefficient "seven times ten to the power of negative six", 7 * 10^(-6). which would mean 6 digits after the decimal point. Current implementation has 7 digits after the decimal point, which downrates the calls. Fixes: #597 --- diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index c8af3c3763..a309c3317d 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -6240,7 +6240,7 @@ static double calc_media_experience_score(struct ast_rtp_instance *instance, } else if (r_value > 100) { pseudo_mos = 4.5; } else { - pseudo_mos = 1 + (0.035 * r_value) + (r_value * (r_value - 60) * (100 - r_value) * 0.0000007); + pseudo_mos = 1 + (0.035 * r_value) + (r_value * (r_value - 60) * (100 - r_value) * 0.000007); } /*