It is chiefly utilized for Load and Performance Testing

Agenda

SIPp Basics

Running SIPp

Insights and Screens

Summon Line Options

Making Scenarios

Validation

Samples

Getting Started

Low-level learning of the SIP convention and SIP motioning inside IMS

Situations records are composed utilizing XML

Download from http://sipp.sourceforge.net/

"SIPp is sans an Open Source test apparatus and movement generator for the SIP convention "

- sipp.sourceforge.net


Utilized for execution testing and movement era for IMT (and can be utilized for mIMS, however not PoC) Integration & Verification

SIPp Features

Support for both IPv4 and IPv6

RTP media bolster (PCAP)

Call rate disseminations

Settled

Uniform

Exponential

Bolster Authentication

Superior and Reliable

Permits Complex Sceneries

Can be controlled remotely (or remotely)

Reports Statistics

Running SIPp

SIPp has an intelligent and ongoing charge line interface

Very protected and stable to be allowed to sit unbothered, or run out of sight (attempt to dependably utilize most recent form)

Different measurements and reporting screens are accessible

Way out codes:

0 (zero) demonstrate that all calls were effective

1 demonstrates that no less than one call fizzled

97 demonstrates an anomalous exit on inward charge

99 demonstrating an ordinary way out without transforming calls

-1 used to demonstrate a deadly blunder

The Scenario Screen

Default screen (accessed by pressing 1)



















The Statistics Screen

Accessed by pressing 2















Useful Command Line Options
-sf,loads an alternate scenario file
-inf, loads an external CSV file to inject values from
-r, sets the call rate (calls per second)
-rp, specify the rate period (ms) for the call rate (above)
Example: -r 15 -rp 1000, 15 calls every second
-l, maximum number of simultaneous calls
-m, stop and exit when set number of calls are processed
-i, sets the local IP address
-p, sets the local port number
-auth_uri,forces the domain value of the URI for authentication (for example, 401)
-trace_screen,logs the final screens to file (<scenario>_<pid>_screen.log)
-trace_err, logs unexpected messages to file (<scenario>_<pid>_errors.log)
-trace_stat, logs statistics to file (<scenario>_<pid>.csv)
-fd, logs statistics at set interval (seconds)
-nd, disable SIPp’s default behaviors
Finally, we end all SIPp commands with the remote host (and port), for example the P-CSCF

SIPp Supports Authentication
Two authentication algorithms are supported:
Digest / MD5 ("algorithm="MD5"")
Digest / AKA


When receiving:
401 (Unauthorized)
407 (Proxy Authentication Required)
Simply add auth="true" in the <recv> command to take the challenge into account
The authorization header will then be re-injected in the next message using [authentication] keyword

Creating your own Scenarios
  • Authored using XML notation
  • Unfortunately has spaghetti flow
        Using labels and jumps (next attributes)
  • Useful elements:
        <send>
        <recv>
        <pause>, speech time
        <nop>, no operation
        <label>
  • Registration scenario walk through with authentication
  • Always put optional responses first
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<scenario name="UAC Basic Registration">
  <label id="0" />
  <send retrans="500" start_rtd="true">
    <![CDATA[
      REGISTER sip:[field1] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
      From: [field0] <sip:[field0]@[field1]>;tag=[call_number]
      To: [field0] <sip:[field0]@[field1]>
      Call-ID: [call_id]
      CSeq: [cseq] REGISTER
      Contact: [field0] <sip:[field0]@[local_ip]:[local_port]>;expires=691200
      Max-Forwards: 70
      Content-Length: 0
    ]]>
  </send>





















Creating your own Scenarios











Keywords from the Command Line












Keywords from SIPp










Useful SIPp Keywords
  • [len], Computed length of the SIP body used in "Content-Length" header
  • [call_number], index of the call starting at 1 and is incremented by 1 for each call
  • [authentication], is used to include the authentication header
  • [msg_index], provides the message number in the scenario
  • [cseq], provides (or generates) the CSeq value of the last (or next) request received

Injecting External Values
Keywords and values from an external file









Regular Expression Scenario















Definition of a call
  • Successful call:
        Navigates a scenario file from start to finish
        Does not encounter a “stop_call” (or other) command
  • Unsuccessful (failed) call:
        Encounters a “stop_call”, “stop_now”, “stop_gracefully” or other?

Example Time
  • The scenario:
        User 46706560000000 calls user 46706560003000,
        User 46706560000001 calls user 46706560003001,
        User 46706560000002 calls user 46706560003002 and so on…
  • Again we will use CSV files to inject who should call who
  • We assume everyone is provisioned and successfully registered
  • We will use two scenario files:
        A Caller scenario file (to send INVITEs, pauses and BYEs)
        A Callee scenario file (to answer the INVITEs and BYEs)

The Caller
  • CSV Injection File









The Caller











The Caller












The Caller













The Callee
§  CSV Injection File










The Callee














The Callee













The Callee