Difference between revisions of "Performance Testing with Sipp"
(3 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
<br><br> | <br><br> | ||
With this test | With this test environment, we can simulate a single user or multiple users calling through MOR/Asterisk. | ||
In the scenario uac_auth.xml, sipp start sending a SIP INVITE to MOR and if AUTH is requested, sipp resend SIP INVITE with PROXY AUTHENTICATION | In the scenario uac_auth.xml, sipp start sending a SIP INVITE to MOR and if AUTH is requested, sipp resend SIP INVITE with PROXY AUTHENTICATION. | ||
Playing with sipp parameters you can increase call data rate and other | |||
Playing with sipp parameters, you can increase the call data rate and other variables, such as call duration. | |||
Line 18: | Line 19: | ||
tar xvfz sipp.3.1.src.tar.gz | tar xvfz sipp.3.1.src.tar.gz | ||
cd sipp.svn | cd sipp.svn | ||
apt-get install libssl-dev / yum install openssl-devel | apt-get install libssl-dev / yum -y install openssl-devel | ||
make ossl | make ossl | ||
Edit a new file "users.csv": | |||
SEQUENTIAL | SEQUENTIAL | ||
Line 31: | Line 32: | ||
user003;[authentication username=user001 password=password001] | user003;[authentication username=user001 password=password001] | ||
Edit a new file "uac_auth.xml": | |||
<?xml version="1.0" encoding="ISO-8859-1" ?> | <?xml version="1.0" encoding="ISO-8859-1" ?> | ||
Line 173: | Line 174: | ||
./sipp -inf users.csv -sf uac_auth.xml -s <extension_to_call> <mor_sip_server_sip> | ./sipp -inf users.csv -sf uac_auth.xml -s <extension_to_call> <mor_sip_server_sip> | ||
For a more complete sipp syntax look here: | For a more complete sipp syntax, look here: | ||
http://sipp.sourceforge.net/doc1.1/reference.html#xmlsyntax | http://sipp.sourceforge.net/doc1.1/reference.html#xmlsyntax |
Latest revision as of 11:59, 28 April 2010
With this test environment, we can simulate a single user or multiple users calling through MOR/Asterisk.
In the scenario uac_auth.xml, sipp start sending a SIP INVITE to MOR and if AUTH is requested, sipp resend SIP INVITE with PROXY AUTHENTICATION.
Playing with sipp parameters, you can increase the call data rate and other variables, such as call duration.
Download and compile the last sipp:
wget http://surfnet.dl.sourceforge.net/sourceforge/sipp/sipp.3.1.src.tar.gz tar xvfz sipp.3.1.src.tar.gz cd sipp.svn apt-get install libssl-dev / yum -y install openssl-devel make ossl
Edit a new file "users.csv":
SEQUENTIAL
user001;[authentication username=user001 password=password001]
user002;[authentication username=user001 password=password001]
user003;[authentication username=user001 password=password001]
Edit a new file "uac_auth.xml":
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE scenario SYSTEM "sipp.dtd"> <scenario name="UAC with AUTH scenario">
<send retrans="500"> <![CDATA[ INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number] To: sut <sip:[service]@[remote_ip]:[remote_port]> Call-ID: [call_id] CSeq: 1 INVITE Contact: sip:[field0]@[local_ip]:[local_port] Max-Forwards: 70 Subject: Performance Test Content-Type: application/sdp Content-Length: [len] v=0 o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] s=- c=IN IP[media_ip_type] [media_ip] t=0 0 m=audio [media_port] RTP/AVP 0 a=rtpmap:0 PCMU/8000 ]]> </send> <recv response="407" auth="true"> </recv> <send> <![CDATA[ ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port] From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number] To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param] Call-ID: [call_id] CSeq: 1 ACK Contact: sip:[field0]@[local_ip]:[local_port] Max-Forwards: 70 Subject: Performance Test Content-Length: 0 ]]> </send> <send retrans="500"> <![CDATA[ INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port] From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number] To: sut <sip:[service]@[remote_ip]:[remote_port]> Call-ID: [call_id] CSeq: 2 INVITE Contact: sip:[field0]@[local_ip]:[local_port] [field1] Max-Forwards: 70 Subject: Performance Test Content-Type: application/sdp Content-Length: [len] v=0 o=user1 53655765 2353687637 IN IP4 127.0.0.1 s=- t=0 0 c=IN IP4 [media_ip] m=audio [media_port] RTP/AVP 0 a=rtpmap:0 PCMU/8000 ]]> </send> <recv response="100" optional="true"> </recv> <recv response="180" optional="true"> </recv> <recv response="183" optional="true"> </recv> <recv response="200" rtd="true"> </recv> <send> <![CDATA[ ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number] To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param] Call-ID: [call_id] CSeq: 1 ACK Contact: sip:[field0]@[local_ip]:[local_port] Max-Forwards: 70 Subject: Performance Test Content-Length: 0 ]]> </send> <pause/> <send retrans="500"> <![CDATA[ BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number] To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param] Call-ID: [call_id] CSeq: 2 BYE Contact: sip:[field0]@[local_ip]:[local_port] Max-Forwards: 70 Subject: Performance Test Content-Length: 0 ]]> </send> <recv response="200" crlf="true"> </recv> <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/> <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
</scenario>
Then run this:
./sipp -inf users.csv -sf uac_auth.xml -s <extension_to_call> <mor_sip_server_sip>
For a more complete sipp syntax, look here:
http://sipp.sourceforge.net/doc1.1/reference.html#xmlsyntax
Configuration pointers for testing
sip.conf
[general] context=playback_test ;rtptimeout=60 ;rtpholdtimeout=300
[1000] type = friend host = dynamic username = 1000 secret = 1000 nat = no context = playback_test disallow = all allow = alaw
[1001] type = friend host = dynamic username = 1001 secret = 1001 nat = no context = playback_test disallow = all allow = alaw
extensions.conf
[playback_test] exten => _X.,1,Answer exten => _X.,2,Background(tt-monkeys) exten => _X.,3,Goto(2) ;exten => _X.,3,Hangup