Я уже не первый год работаю с voipmonitor. Одна из основных метрик, которые рассчитывает voipmonitor — MOS на основе стандарта G.107, который учитывает сетевые параметры передаваемого RTP (потери пакетов, джиттер). Однако в сетях, где голос передается совместно в IP сетях и PSTN такой подход не даст адекватной оценки качества.
В voipmonitor начиная с 7 версии предусмотрено исполнение бинарного файла, который по сопоставлению эталонного звукового файла и файла, полученного из RTP, дает оценку по P.862 PESQ. Передо мной стояла задача сделать решение, которое позволит использовать другие решения для расчета MOS-подобных оценок.
Вот список шагов, необходимых для того, чтобы voipmonitor начал использовать настроенный mos-lqo бинарный файл:
- Необходимо настроить параметры mos_lqo_bin, mos_lqo и mos_lqo_ref в voipmonitor.conf. Если используется стандартный mos_lqo достаточно просто включить его использование mos_lqo=yes.
- Так как использование mos-lqo предполагает сравнение файла с эталоном, то оценки должны производиться только для узкого спектра вызовов, специально созданных какой-либо системой тестирования. для этого в БД в таблицы filter_ip и/ил filter_telnum добавляем записи, с указанием ip и маски в целочисленном виде, либо телефонный номер. Поле mos_lqo:
- 0 — не производить вызов mos_lqo_bin
- 1 — обрабатывать mos_lqo_bin RTP потоки у с указанный source IP
- 2 — обрабатывать mos_lqo_bin RTP потоки у с указанный destination IP
- 3 — обрабатывать и входящие и исходящие RTP с указанных IP адресов
- Вызов mos_lqo производится только если voipmonitor конвертирует RTP в WAV, поэтому в voipmonitor.conf необходимо указать опцию saveaudio=wav.
Настройка и написание оберток, позволило использовать вместо PESQ такие алгоритмы как AQuA и PVQA (который позволяет анализировать потери в качестве без наличия эталонного звукового файла).