Monitorer la qualité des communications VoIP avec SIPRTP
SipRTP est un outil très pratique fourni avec la librairie python pjsip qui offre une stack SIP pour le développement d’applications autour de la VoIP. A l’origine, seul le code source C est fourni avec le package qu’il est possible de télécharger sur le site de pjsip. Pour ceux, comme moi, qui désire le binaire directement compilé pour un OS Windows, vous le trouverez directement ici : http://www.telecom-reseaux.net/files/siprtp.zip
Ce programme s’appuie sur le protocole RTCP pour obtenir des informations sur les flux RTP échangés lors d’une communication en VoIP par exemple. On retrouve parmi les informations ainsi remontées les pertes de paquets, la gigue ou encore la latence. Le principe est donc relativement simple, et siprtp vous permettra d’analyser rapidement et gratuitement les performances ainsi obtenues sur le WAN par exemple.
Pour faire un test rapide et basique, il est possible d’utiliser SIP RTP comme « serveur SIP » sur un serveur distant, et de le mettre en mode client sur un poste en local pour initialiser une première connexion et obtenir déjà des résultats sur les paquets échangés.
Le mode serveur s’obtenir en lançant l’executable sans arguments :
D:\Dev\siprtp.exe>siprtp
21:56:31.320 os_core_win32. pjlib 0.5.8 for win32 initialized
21:56:31.491 siprtp.c Ready for incoming calls (max=1)
Enter menu character:
s Summary
l List all calls
h Hangup a call
H Hangup all calls
q Quit
>>> 21:57:07.482 siprtp.c Call #0 connected in 1 ms
Il est alors possible d’obtenir un appel depuis notre machine qui possèdera siprtp configuré en mode client. Lors du lancement de la commande siprtp, nous pouvons remarquer la présence d’un menu permettant d’obtenir en temps réel les communications en cours ainsi que leurs statistiques (commande l). Les commandes h et H permettent respectivement de raccrocher un appel précis en cours ou l’ensemble de tous les appels reçus.
Du côté du poste client, la syntaxe est la suivante :
L’option -p permet de spécifier le port source des paquets émis (en cas d’éventuel filtrage par exemple), et le paramètre qui suit n’est ni plus ni moins que l’URL SIP à contacter pour faire le test. Dans notre cas, l’adresse 192.168.0.10 représente la machine distante où siprtp a été configurée en mode client.
Une fois la communication établie, il est alors possible d’obtenir les statistiques souhaitées via la commande l du menu :
>>> 21:57:07.482 siprtp.c Call #0 connected in 1 ms
l
List all calls:
Call #0: CONFIRMED [duration: 00:00:19.478]
To: sip:127.0.0.1;tag=9b996c4152fe445392c494cd9c80e3a0
Signaling quality: got 1st response in 0 ms, connected after: 1 ms
Stream #0: audio PCMU@8000Hz, 20ms/frame, 8.00KB/s (9.06KB/s +IP hdr)
RX stat last update: 00h:00m:00.166s ago
total 973 packets 155.06KB received (186.08KB +IP hdr)
pkt loss=0 (0.0%), dup=0 (0.0%), reorder=0 (0.0%)
(msec) min avg max last
loss period: 0.000 0.000 0.000 0.000
jitter : 0.000 0.258 4.375 0.000
TX stat last update: 00h:00m:00.170s ago
total 973 packets 155.06KB sent (186.08KB +IP hdr)
pkt loss=0 (0.0%), dup=0 (0.0%), reorder=0 (0.0%)
(msec) min avg max last
loss period: 0.000 0.000 0.000 0.000
jitter : 0.125 0.166 0.250 0.125
RTT delay : 0.045 0.060 0.076 0.076
Les statistiques affichées ci-dessus ne sont pas réelles car effectuées en local depuis mon poste, mais cet extrait vous permet de voir les informations qui peuvent être remontées par cet outil.
A priori, cette configuration sirtp client <–> siprtp serveur n’est pas indispensable dans la mesure où vous disposer d’agents SIP sur votre réseau (comme de simples postes IP par exemple). A ce moment là, l’outil peut alors être simplement utilisé en mode client sous réserve que ces agents SIP supportent le RTCP. Je n’ai cependant pas encore eu l’occasion de tester cette configuration in situ.
Enfin, il peut être important d’avoir à l’esprit les règles de QoS censées être en application sur les différents éléments constituant sur ce WAN, notamment si celles-ci sont établies en fonction de sous-réseaux ou de ports TCP/UDP bien définis, auquel cas les machines il faudra bien entendu prendre en considération ces paramètres pour les machines à partir desquelles vous exploiterez cet outil.









Bonjour, je serai intéressé par la version déjà compilée de SIPRTP, cependant le lien est mort.
Où puis je me le procurer ?
merci
PS: on peut pas rentrer d’adresse email de type0123456789@toto.com pour poster des commentaires !
Laissez votre réponse !
Vous devez être connecté pour poster un commentaire