Tester la qualité de son réseau pour la VoIP 
Le transport de la voix nécessite un réseau de qualité, non pas tant au niveau de la bande passante, mais plus particulièrement au niveau du délai de transit, de la gigue et de la perte de trame. On constate souvent une très mauvaise qualité lors de l’encombrement des réseaux de transport, aussi il peut être intéressant de valider in-situ le comportement du réseau entre deux sites avant leur interconnexion.
La procédure de test mise en place ici se base sur la suite logicielle pjsip1 qui permet, via une librairie conséquente, la construction d’outil de test et de validation. Certains sont proposés dans la distribution de base, nous utiliserons ici l’outil siprtp pour tester la qualité du réseau IP. Cet outil permet d’établir un ou plusieurs appels simultanés (autant qu’on puisse le faire avec un seul point) et transmet des trames de voix dans le canal RTP. Chaque trame RTP est analysé de façon à déterminer, sur la durée de l’appel, le taux de perte, le délai et la gigue.
siprtp peut être utilisé en mode client (UAC2 dans la terminologie SIP) ou serveur (UAS3). On peut donc initier un appel depuis l’outil ou bien en recevoir un; pour une automatisation complète on utilisera un siprtp de chaque côté de l’appel.
En cours ou à la fin de l’appel, siprtp fourni des statistiques permettant d’analyser simplement la qualité du réseau sur la durée de l’appel. Voici le résultat sur un appel, via un Asterisk, passé depuis un Polycom IP301 vers un siprtp lancé avec la commande : ./siprtp-powerpc-apple-darwin7.9.0. L’appel a duré 23 minutes, on constate que la connexion initiale a été effectuée en 1ms et que notre réseau local est de qualité moyenne (pas de perte de trame mais une gigue moyenne de l’ordre de 30ms).
Call #0: CONFIRMED [duration: 00:23:52.945]
To:
L’environnement de test est composé d’un Asterisk, configuré en standard (UA vers UA en back-to-back), sans adaptation de codec et de téléphones IP sur un réseau local. L’Asterisk est embarqué sur un Linux Debian dans une machine virtuelle VMware, qui ne favorise pas la gestion rapide des trames.
Dans le sip.conf, il faut prévoir une entrée pour chaque poste :
[pjsip-uac]
type=friend
context=perftest
fromdomain=192.168.16.185
insecure=very
qualify=no
[pjsip-uas]
type=peer
allow=all
host=192.168.16.186
qualify=no
et une entrée dans le plan d’appel afin de joindre l’UAS, on utilisera volontairement une option de transfer afin de conserver le chemin du média à travers l’Asterisk (pas de reinvite).
[perftest]
exten => 1111,1,Dial(SIP/ua@pjsip-uas,20,t)
La version de pjsip est la 0.5.10.3, compilé sur Mac OS X (10.3) avec quelques modifications du code pour la communication avec Asterisk et l’utilisation du G.711 loi A par défaut. On préférera utiliser cet outil directement sur son réseau longue distance afin de valider la qualité de service, sur le réseau local ce test n’a pas beaucoup de sens.
Si la compilation d’un logiciel n’est pas une activité que vous affectionnez, vous préfererez probablement les versions disponibles, mais un peu plus ancienne. La verion 0.5.9 propose une version Linux RedHat, une version Mac OS et une version Microsoft Windows.
- disponible sur http://www.pjsip.org/ [↩]
- User Agent Client [↩]
- User Agent Server [↩]
|
Posté par: Alexandre Chauvin-Hameau, le 15/05/2007 Trackback | Popularité: 33% marqué QoS, RTP, SIP et sip.conf |
|







Bonjour,
Suite à l’utilisation de ce tuto qui m’a été très utile, j’ai une configuration à tester la suivante :
1 poste serveur, 2 postes clients et je teste via l’asterisk la liaison entre les deux clients.
cependant quand je le fait, je n’ai aucune informations dans la partie TX et RTT, comme si asterisk ne supportait pas le RTCP.
Alors qu’en direct entre les deux clients j’ai les résultats.
Je me permets donc de vous exposer mon soucis etant donné que dans votre doc vous passez via un asterisk et vous avez des résultats!
Cordialement,
Antoine
le 09/04/2008 à 11:42