SIPP Timers &reporting

From open-voip.org

Jump to: navigation, search

Running performance tests also implies measuring response times. You can use SIPp's timers in scenarios to measure those response times:

Contents

Statistics commands

  • start_rtd
<recv response="200" start_rtd="Invite">
the timer named "invite" will start when the message is recieved
  • rtd
  <recv response="200" rtd="Invite">
  the timer "Invite" will stop when the message is recieved
  • -trace_rtt in the command line option

If the -trace_rtt option is set, the response times are also dumped in the >scenario file name<_>pid<_rtt.csv.

The XML scenario

let's add these timers to the Invite scenario so we could create response graph: create a new file /opt/inv_uac_stat.xml

do not copy-paste the code below (it will not work), copy it from here

<?xml version="1.0" encoding="ISO-8859-1" ?>
<DOCTYPE scenario SYSTEM "sipp.dtd">
<--                                                                    -->
<--                 Sipp Invite scenario with timers log               -->
<--                                                                    -->

<scenario name="Basic Sipstone UAC">
 <-- ******************************************************************-->
 <-- Start First Timer   1  ****************************************** -->
 <-- ******************************************************************-->
 <send retrans="500" start_rtd="1">
   <![CDATA[

     INVITE sip:[field0]@[remote_ip]:[remote_port] SIP/2.0
     Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
     From: sipp <sip:[field0]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
     To: sut <sip:[field0]@[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="100"
       optional="true">
 </recv>
   <recv response="401" auth="true">
 </recv>

 <send>
   <![CDATA[
 
     ACK sip:[field0]@[remote_ip]:[remote_port] SIP/2.0
     Via: SIP/2.0/[transport] [local_ip]:[local_port]
     From: sipp <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]
     To: sut <sip:[field0]@[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:[field0]@[remote_ip]:[remote_port] SIP/2.0
     Via: SIP/2.0/[transport] [local_ip]:[local_port]
     From: sipp <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]
     To: sut <sip:[field0]@[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 IP[local_ip_type] [local_ip]
     s=-
     t=0 0
     c=IN IP[media_ip_type] [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" >
 </recv>
 <-- *****************************************************************-->
 <-- Stop  First Timer   1  ****************************************** -->
 <-- ******************************************************************-->
 <send rtd="1">
   <![CDATA[

     ACK sip:[field0]@[remote_ip]:[remote_port] SIP/2.0
     Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
     From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
     To: sut <sip:[field0]@[remote_ip]:[remote_port]>[peer_tag_param]
     Call-ID: [call_id]
     CSeq: 1 ACK
     Contact: sip:sipp@[local_ip]:[local_port]
     Max-Forwards: 70
     Subject: Performance Test
     Content-Length: 0

   ]]>
 </send>

 <pause/>

 <-- *****************************************************************-->
 <-- Start Second Timer   2  ****************************************** -->
 <-- ******************************************************************-->
 <send retrans="500" start_rtd="2">
   <![CDATA[

     BYE sip:[field0]@[remote_ip]:[remote_port] SIP/2.0
     Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
     From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
     To: sut <sip:[field0]@[remote_ip]:[remote_port]>[peer_tag_param]
     Call-ID: [call_id]
     CSeq: 2 BYE
     Contact: sip:sipp@[local_ip]:[local_port]
     Max-Forwards: 70
     Subject: Performance Test
     Content-Length: 0

   ]]>
 </send>
 <-- *****************************************************************-->
 <-- Stop Second Timer   2  ****************************************** -->
 <-- ******************************************************************-->
 <recv response="200" crlf="true" rtd="2">
 </recv>

 <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>

 <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>

</scenario>

Running the script

 ./sipp -s 1000 -ap 1000 -r 5 192.168.0.149:5060 -sf /opt/inv_uac_stat.xml -i 192.168.0.147 -m 200 -d 2000 -inf /opt/Param_file_sequential.txt -trace_rtt 

the flow will look like (note to the timers): File:Sipp_rtd.JPG

Moving to excel

a new file created for example:

 /opt/inv_uac_stat_26393_rtt.csv 

move to excel and make graph, it may look something like: File:sipp_timers_graph.JPG

Personal tools