Prima di mettere in servizio un server VoIP, gli ingegneri vogliono sapere quante chiamate regge e come si comporta davanti a situazioni anomale. SIPp è stato concepito proprio per rispondere a queste domande. Questo generatore di traffico SIP è stato scritto in origine da ingegneri di Hewlett-Packard, con Richard Gayraud autore del codice iniziale e Olivier Jacques per codice e documentazione, e il vecchio sito del progetto riporta un copyright a partire dal 2004.
Oggi il progetto è curato dalla sua comunità su GitHub, dove si è trasferito a partire dalla versione 3.4. È distribuito con licenza GNU GPL, e l’ultima versione, la 3.7.7, risale al 31 dicembre 2025.
A cosa serve SIPp
SIPp si comporta come uno o più telefoni, ma a un ritmo che nessuna persona potrebbe sostenere. Gli si indica l’indirizzo di un apparato SIP, un numero di chiamate al secondo e uno scenario, e lui apre le sessioni, attende le risposte, misura i ritardi e mostra in tempo reale nel terminale le chiamate riuscite, fallite o in corso. Lo stesso programma può anche mettersi dall’altra parte e rispondere, così un proxy si collauda con un SIPp che chiama da un lato e un altro che risponde dall’altro.
Tutto ruota intorno agli scenari, file XML che descrivono messaggio per messaggio che cosa inviare e che cosa aspettarsi in risposta. Alcuni sono già inclusi, tra cui un client e un server di chiamata di base, varianti con espressioni regolari o diramazioni e il controllo di chiamata da parte di terzi. Per i casi più particolari si scrive un file proprio, inserendo variabili, estraendo un’intestazione dalla risposta, aggiungendo attese o diramazioni in base al codice ricevuto. In questo modo si riproduce con fedeltà un comportamento osservato presso un cliente, compresi messaggi volutamente malformati.
Sul piano del trasporto, SIPp dialoga in UDP, TCP, TLS e SCTP, a seconda delle opzioni scelte in fase di compilazione. Può rimandare l’audio in eco, inviare un flusso RTP o riprodurre pacchetti registrati in un file PCAP, offrendo traffico multimediale reale a un relay come RTPEngine. Le versioni 3.7 hanno introdotto, tra l’altro, le marche temporali in formato RFC 3339, l’indicazione SNI per le connessioni TLS e la possibilità di funzionare contemporaneamente da client e da server, secondo le note pubblicate su GitHub.
SIPp non sorveglia la produzione, la mette alla prova. Per osservare poi l’effetto del traffico di prova, HOMER, presente nella nostra raccolta di software, cattura e indicizza gli scambi SIP. I generatori generici come Ostinato o Scapy costruiscono pacchetti di rete, ma non sanno condurre un dialogo SIP completo che reagisca alle risposte.
Per chi è?
Lo strumento serve ai gruppi che sviluppano o gestiscono server SIP, centralini IP, gateway o relay multimediali. Entra in gioco nei test di carico prima del lancio, nelle suite di regressione automatiche eseguite a ogni nuova build e nella riproduzione di un guasto segnalato da un cliente. Anche i produttori di apparati lo usano per verificare l’interoperabilità dei loro prodotti.
SIPp non ha un’interfaccia grafica e presuppone una solida conoscenza di SIP, perché chi scrive o adatta uno scenario deve capire ogni messaggio. Non valuta nemmeno la qualità audio percepita dall’utente. La documentazione online porta ancora il numero 3.6, in ritardo sul codice. Su Windows passa per l’ambiente Cygwin e una compilazione manuale, e soltanto Linux dispone di un binario pronto da eseguire.
Scaricare SIPp in sicurezza
Le versioni ufficiali sono pubblicate nella pagina delle release del repository SIPp/sipp su GitHub. Ognuna comprende un binario statico per Linux, costruito su Alpine in modo da non dipendere da alcuna libreria di sistema, un archivio del codice sorgente e una pagina di manuale generata automaticamente. Il repository contiene anche file Docker, uno per la build statica e uno basato su Debian con WolfSSL. La compilazione richiede CMake e un compilatore C++17, con opzioni per TLS, PCAP, SCTP o la libreria GSL. La documentazione è su sipp.readthedocs.io, mentre il vecchio sito sipp.sourceforge.net ospita ormai solo le versioni 3.3 e precedenti.
Il software è completamente gratuito e non esiste un’edizione commerciale. Dato che il suo scopo è proprio lanciare migliaia di richieste verso un server, un eseguibile modificato trovato su un forum potrebbe colpire un bersaglio diverso o contenere codice indesiderato. Il binario ufficiale di GitHub, o il pacchetto della propria distribuzione Linux, resta l’unica fonte sensata.
Domande frequenti
SIPp può collaudare un server in produzione?
Tecnicamente sì, ma è sconsigliato. Un test di carico mal dosato può saturare il servizio reale. È più sicuro predisporre una piattaforma di prova o limitare molto frequenza e durata dei test.
Bisogna saper programmare per usarlo?
Non in senso stretto. Gli scenari inclusi bastano per un primo test. Per casi realistici bisogna però scrivere file XML, il che richiede soprattutto una buona padronanza di SIP.
Con quale licenza è distribuito SIPp?
Con la GNU GPL. Il file di licenza del repository indica la versione 2 o qualsiasi versione successiva, e due file ripresi da un altro progetto mantengono una propria licenza permissiva.