SIPp simulatore traffico SIP
SIPp è un generatore di traffico SIP free Open Source, con il quale è possibile disegnare scenari di chiamata tramite file xml da mandare poi in esecuzione. Uno scenario di chiamata descritto su file xml altro non è che un call flow SIP, nel quale è possibile andare a definire nel dettaglio i vari messaggi SIP che si vuole simulare, dal semplice scenario di gestione della sequenza REGISTER - 200OK, a scenari di complessità elevata con re-INTIVE, REFER, ecc…
Essendo un tool molto leggero in termini di allocazione risorse è ottimo per realizzare scenare di stress test, gestendo migliaia di chiamate, ma nello stesso tempo può essere usato per simulare singole chiamate di test. SIPp può eseguire scenari di chiamata lavorando sia come UAS (SIP Server), oppure come UAC (SIP Client), ed include anche la possibilità di gestire i media tramite RTP echo e RTP pcap play. A ciò si aggiungono le funzionalità di reporting necessarie a monitorare l’andamento dello scenario in esecuzione.
In poche parole è un tool estremamente configurabile e facile da usare in tutti quei casi in cui abbiamo necessità di andare ad effettuare test su applicativi di traffico SIP.
Installazione
L’installazione è abbastanza semplice, qui vediamo i passaggi su un server CentOS.
Installiamo quindi prima gli rpm necessari come dipendenza
yum install gcc gcc-c++ ncurses-devel ncurses
Quindi procediamo con il download dell’archivio e la generazione del file eseguibile.
cd /usr/local/src
curl -LO https://sourceforge.net/projects/sipp/files/sipp/3.4/sipp-3.3.990.tar.gz
tar -xvzf sipp-3.3.990.tar.gz
mv sipp-3.3.990 /opt/sipp
cd /opt/sipp
./configure
make
Una volta avviato, SIPp mostrerà sullo schermo le seguenti informazioni
Configurazione scenari di chiamata
Qui ovviamente non andremo a vedere nel dettaglio tutte le possibilità che SIPp offre per l’esecuzione di scenari di chiamata (per questo potete fare riferimento alla ricca documentazione disponibile sul sito ufficiale), ma vedremo come attivare un semplice scenario di tipo UAC, in cui SIPp invia l’INVITE, ed uno di tipo UAS, in cui invece SIPp riceve l’INVITE.
I due scenari realizzati sono i seguenti, li potete scaricare direttamente da qui.
- UAC: basic_uac.xml
- UAS: basic_uas.xml
Volendo quindi avviare SIPp con lo scenario di tipo UAC eseguiamo il comando:
./sipp -l 1 -m 1 -s callednum -sf basic_uac.xml 10.0.1.215:5060
In questo modo il sistema caricherà lo scenario basic_uac.xml che prevede come prima azione la
- -l indica il numero di chiamate contemporanee
- -m indica il numero totale di chiamate da effettuare
- -s service name, viene passato allo scenario in esecuzione sul campo [service]
- -sf è lo scenario da caricare
Se invece vogliamo avviare SIPp con lo scenario di tipo UAS eseguiamo il comando:
./sipp -sf basic_uas.xml
In questo modo il sistema caricherà lo scenario basic_uas.xml che prevede come prima azione la
- -sf è lo scenario da caricare
In questo caso non sono necessarie altre opzioni, almeno per un uso base del sistema, dato che nella modalità UAS SIPp è in attesa di ricevere traffico.