Sipp is a performance tester for the SIP protocol. It comes with a few basic SipStone user-agents scenarios (UAC & UAS), establishing and releasing multiple calls with the INVITE and BYE methods.
Asterisk configuration for SIP (non-rtp listening) test
Create a context like so:
context testing {
1 => {
Answer();
//modify for your setup.. make it play something, join a queue, whatever. I found that joining a queue works best, queue_helpdesk is my helpdesk macro :)
//Background(6604);
//Wait(2);
//&queue_helpdesk(0);
Hangup();
};
};
Configure a sip “friend” to the IP address of your testing box, obviously substituting ulaw with alaw or another codec (I run two asterisk boxes, so used my second one)
[asterisk02]
type=friend
context=testing
host=192.168.108.3
user=sipp
canreinvite=no
disallow=all
allow=ulaw
and then run from 192.168.108.3 the following command
This pretty much boils down to:
dial through 192.168.108.2 to sip:[email protected] (in the context testing), with a pause of 100000ms before hanging up, and a total concurrent call limit of 256.
I still have to work out how to do RTP testing. Will update with more details 🙂
It can also read XML scenario files describing any performance testing configuration for SIP.
SIPP can run as UAS also so I setup a UAC and UAS to receive the calls, the problem I saw was that when the SIPP UAC sends a BYE to * it hangups the channel but doesn t send the corresponding BYE to the SIPP UAS so
the UASS think that the call wasn t teared down. So I noted if I used nat=yes (in Asterisk config sip.conf) for SIPP UAS and UAC everything went fine I think maybe this is related to the sockets used for each SIPP thread since by default it uses the same socket for each call.