QoS in VoIP

Bei meinen Reisen durch die Weiten des Internets stoße ich immer wieder auf sehr interessante Projekte.
Dieses hier fiel mir besonders auf, damit lässt sich die Qualität der Sprachübertragung bei VoIP messen.

Ich werde in diesem Artikel die Grundlagen der VoIP Qos näher erläutern.

Begriffe (natürlich zum Auswendiglernen):

  • VoIP – Voice over IP
  • QoS – Quality of Service
  • DiffServ – differentiated services
  • ToS – Type of Service
  • MOS – Mean Opinion Score
  • G711 – eine digitale Codierung der analogen Sprache nach PCM
  • PCM – Pule Code Modulation
  • ADC – Analog-Digital-Converter
  • SNR – Signal-Noise-Ratio
  • RTP – Realtime Protocol

Vorstellung des Git Projekt “VoIPMonitor”

Quelle (english) für den folgenden Absatz:
https://github.com/voipmonitor/sniffer

VoIPmonitor http://www.voipmonitor.org ist ein Open Source Live Network Packet Sniffer, der SIP-Sessions und deren RTP-Pakete analysiert. Er kann im Hintergrund als Daemon laufen oder analysiert bereits erfasste pcap Dateien. Für jeden erkannten VoIP-Anruf berechnet Voipmonitor eine Statistik über Verlust, Burstigkeit, Latenz und prognostiziert MOS (Bedeutung Opinion Score) entsprechend nach dem ITU-T G.107 E-Modell.

Diese Statistiken werden in einer MySQL-Datenbank gespeichert. Jeder Anruf wird dann noch seperat als pcap dump auf das Dateisystem gesichert. Eine Web-PHP-Anwendung (ist nicht Teil des git-Projektes) holt die Daten aus der Datenbank und zeigt Latenz und Verlust grafisch an.

Voipmonitor erkennt auch nicht ordnungsgemäß abgebrochene Anrufe, zum Beispiel wenn BYE oder OK nicht korrekt signalisiert wurde. Um die Latenz genau in Verlustpakete umzuwandeln, simuliert Voipmonitor einen festen und adaptiven Jitterpuffer.

Leistungsmerkmale des Voipmonitor

  • Schnelle C++ SIP/RTP Packetanalyse
  • Vorhersage MOS-LQE Wert, angelehnt am ITU-T G.107 E-Modell
  • Detailierte Verzögerungszeit- / Paketverlust-Statistik, wird in einer MySQL-Datenbank gespeichert
  • Jeder Call wird als seperates pcap-File gespeichert
  • Call-Rekorder

Das professionelle PHP-basierte grafische Frontend wird kommerziell von VoIPMonitor angeboten.

http://www.voipmonitor.org/demo/admin.php

Installation in Linux (Debian)

Gehen wir gleich mal in die Praxis und installieren wir uns den VoIPmonitor Sniffer.

# git clone https://github.com/voipmonitor/sniffer.git
# cd sniffer
# apt-get update
# apt-get install unixodbc-dev rddtool
# ./configure
# make
# make install

Falls es Probleme damit gibt, kann man auch die statische Veriante installieren:

wget https://www.voipmonitor.org/current-stable-sniffer-static-64bit.tar.gz --content-disposition --no-check-certificate tar xzf voipmonitor-*-static.tar.gz cd voipmonitor-*-static

Nun noch die Datenbank in Mysql anlegen:

service mysql start
mysqladmin create voipmonitor 

Optional passen wir noch die Konfiguration des VoIPMonitor-Dienstes an:

# vi /etc/voipmonitor.conf
# /etc/init.d/voipmonitor start

MYSQL anpassen

Ich habe in der mysql Konfiguration noch das “granting” deaktiviert, somit muss ich fürs Erste in der voipmonitor.conf keine Anpassungen durchführen.

# in /etc/mysql/my.cnf folgende Zeile einfügen:
skip-grant-tables
# danach
service mysql restart

mit tail -f /var/log/syslog sieht man dann das live-logging des demons.

… Fortsetzung folgt