Как мониторить качество голоса: RTCP-XR, MOS и метрики SIP без слепых зон
Для VoIP недостаточно считать CPS и смотреть доступность SIP. Качество деградирует раньше, чем падает звонок: растёт packet loss, jitter, one-way delay, а пользователь слышит эхо и «роботизацию». Поэтому в мониторинг нужно заводить не только call state, но и RTCP-XR: report blocks с потерями, интервалами джиттера, пост-потерьной задержкой и оценкой качества на стороне медиапотока.
Практическая схема такая: RTP/RTCP собираем на SBC, Asterisk/FreeSWITCH или медиашлюзе, нормализуем в exporter и отправляем в Prometheus. В Grafana держим отдельные панели по направлениям, кодекам и транкам. Сигналы тревоги: рост fraction lost, скачки jitter buffer occupancy, увеличение RTT между узлами, расхождение между answered calls и успешной медиа-сессией. Разбираем дамп трафика в Wireshark, и вот что мы там видим... — проблемы часто начинаются не в SIP, а в сети.
MOS score полезен как агрегат, но не как единственная истина. Его нужно считать из RTCP-XR и хранить рядом с базовыми метриками: ASR, ACD, PDD, 4xx/5xx, retransmits, количество re-INVITE/UPDATE, ошибки ICE/STUN/TURN для WebRTC. Иначе получится красивая зелёная панель при полностью испорченном голосе. Отказоустойчивость — это не роскошь, а базовое требование к SIP-платформе.
Если в дашборде нет RTP-метрик и RTCP-XR, вы мониторите сигнализацию, а не телефонию. Оптимизируем обработку RTP-трафика и минимизируем джиттер в сети.
Работа с API телефонии
@phone_api_gateway_arb
Как мониторить качество голоса: RTCP-XR, MOS и метрики SIP без слепых зон
Этот пост опубликован в Telegram-канале Работа с API телефонии. Подписаться можно по ссылке: @phone_api_gateway_arb.