- La téléphonie Internet libre basée sur Asterisk par Sylvain Thérien - http://www.tux89.com -

Vérifier les capacités de votre serveur Asterisk via SIPp

Vous êtes-vous déjà demandé quelles étaient les capacités de votre serveur Asterisk en terme de possibilité de traitement d’appels ? Bien voici un outil qui vous permettra d’obtenir un aperçu des limites matérielles et logicielles de votre serveur Asterisk. L’outil de source libre se nomme SIPp [1] et est disponible via Sourceforge.

SIPp est un outil de test ainsi qu’un générateur de trafic basé sur le protocole SIP. Il utilise des scénarios d’agent utilisateur de base SipStone [2] (UAC et UAS) et permet d’établir et de terminer des appels à l’aide des méthodes SIP standard INVITE et BYE.

SIPp offre un affichage dynamique sur les statistiques à l’exécution de tests. Par exemple, on peut voir le taux d’appel en cours, le délai aller-retour entre le client et le serveur, ainsi que les statistiques sur les messages SIP. De plus, l’outil permet  l’utilisation de TCP et de UDP sur de multiples connexions, ainsi que la gestion dynamique du taux d’appel en cours.

Ses fonctionnalités avancées incluent le soutien de IPV6, la transmission sécurisée TLS, l’authentification SIP, l’utilisation de scénarios conditionnels, la retransmission UDP, les expressions régulières pour l’extraction et la réinjection des données de protocole, des actions sur les messages reçus tels que les journaux, appels système et l’arrêt des appels, ainsi que l’injection de données permettant d’émuler des utilisateurs réels.

Vous pouvez aussi avec l’outil effectuer la transmission de médias RTP par le biais de relecture audio avec « ECHO RTP » et « RTP pcap ». Les médias peuvent être audio seulement ou encore audio et vidéo.

Conçues pour les essais de trafic, de stress et de performance, SIPp peut aussi être utilisée pour l’exécution d’un seul appel, fournissant un résultat d’échec ou de succès instantané.

Nous utiliserons donc SIPp afin d’émuler un nombre d’agents utilisateur appelant notre serveur Asterisk.

Installation

Téléchargez le code source de la dernière version « 3.1 » en exécutant les lignes de commandes suivantes :

cd /usr/src
wget http://sourceforge.net/projects/sipp/files/sipp/3.1/sipp.3.1.src.tar.gz/download
tar –zxvf sipp.3.1.src.tar.gz
rm –f sipp.3.1.src.tar.gz
cd sipp.svn
make

Configuration

Nous devons maintenant ajouter un peu de code qui permettra de recevoir les appels en provenance de SIPp et de les traiter. Pour cela, nous définirons une extension 7447, soit SIPP sur le clavier téléphonique, qui répondra à l’appel, jouera la musique en attente pour 20 secondes et finalement terminera l’appel. Pour ce faire, simplement éditer le fichier /etc/asterisk/extensions_custom.conf et ajouter les lignes suivantes :

[sipp]
exten => 7447,1,Answer
exten => 7447,2,SetMusicOnHold(default)
exten => 7447,3,WaitMusicOnHold(20)
exten => 7447,4,Hangup

Vous devez maintenant permettre à SIPp de se connecter à votre serveur et de traiter les appels. Pour ce faire, simplement éditer le fichier /etc/asterisk/sip_custom.conf et ajouter les lignes suivantes :

[sipp]
type=friend
context=sipp
host=dynamic
port=6000
user=sipp
canreinvite=no
disallow=all
allow=ulaw

Maintenant, n’oublions pas de recharger la configuration d’Asterisk en exécutant la ligne de commande suivante :

asterisk -rx reload

Essai pratique

Mise en garde : N’effectuez pas ce test sur un système de production en activité, cela pourrait compromettre la qualité de service de vos utilisateurs.

Avant de débuter le test de stress sur notre serveur Asterisk, regardons l’activité courante sur le serveur via l’interface FreePBX. Nous devrions voir que l’activité en terme d’appel actif est nulle.

[3]

Maintenant, effectuons le test en exécutant la ligne de commande suivante :

./sipp -sn uac -d 20000 -s 7447 127.0.0.1 -l 120

Ce test utilisera un agent utilisateur afin de se connecter à l’extension 7447 sur l’interface locale (127.0.0.1) de notre serveur Asterisk pour une période de 20 secondes (20000 millisecondes). La limite maximale fixée en terme d’appels simultanés sera de 120 appels.

Vous pouvez utiliser les touches suivantes afin de contrôler le déroulement du test :

Vous pourrez voir les résultats du test en analysant les données des divers écrans  de SIPp. Pour passer d’un écran à l’autre, simplement appuyez sur les chiffres de 1 à 9.

[4]

[5]

[6]

[7]

Durant le test, n’oubliez pas de regarder l’activité courante sur le serveur via l’interface FreePBX. Vous devriez constater que l’activité en terme d’appel est de 120 et pourrez aussi voir la charge courante sur votre processeur à ce moment.

[8]

Faites des variances en changeant les paramètres de SIPp. Faites vos propres conclusions quant aux capacités de votre serveur.

Référez vous à la documentation de SIPp [9] pour plus d’information :

Bon stress !

Références :

http://sipp.sourceforge.net/ [1] http://hasnainali.wordpress.com/2009/03/12/using-sipp-for-stress-testing-asterisk/ [10] pixelstats trackingpixel
Comments Disabled (Open | Close)

Comments Disabled To "Vérifier les capacités de votre serveur Asterisk via SIPp"

#1 Comment By Arlindo On 28 juin 2012 @ 7 h 01 min

Muito obrigado, foi de grande ajuda. Obrigado também pelas fontes de referência. Obs. Consegui fazer funcionar SIpp atraves de cliente Elastix em Virtual Box para um asterisk server colocado em IP externo. Não consegui fazer funcionar com Cygwin ou executável para windows.

#2 Comment By Sylvain Thérien On 28 juin 2012 @ 17 h 48 min

Great! Eu nunca tentei Sipp implementação Cygwin, e eu acho que não é estável. Melhor implantar outro fo linux isso.