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

SIPp dialogue console

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.

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 di un INVITE, quindi invierà una singola chiamata sulla destinazione callednum verso il server 10.0.1.215:5060

  • -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 di un INVITE, e quidi resterà in attesa di chiamate in ingresso.

  • -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.