SIPp is a free Open Source test tool / traffic generator for the SIP protocol. It includes a few basic SipStone user agent scenarios (UAC and UAS) and establishes and releases multiple calls with the INVITE and BYE methods.
SIPp project can also reads custom XML scenario files describing from very simple to complex call flows. It features the dynamic display of statistics about running tests (call rate, round trip delay, and message statistics), periodic CSV statistics dumps, TCP and UDP over multiple sockets or multiplexed with retransmission management and dynamically adjustable call rates.
Other advanced features include support of IPv6, TLS, SIP authentication, conditional scenarios, UDP retransmissions, error robustness (call timeout, protocol defense), call specific variable, Posix regular expression to extract and re-inject any protocol fields, custom actions (log, system command exec, call stop) on message receive, field injection from external CSV file to emulate live users.
While optimized for traffic, stress and performance testing, SIPp can be used to run one single call and exit, providing a passed/failed verdict.
Last, but not least, SIPp has a comprehensive documentation available both in HTML and PDF format.
SIPp can be used to test many real SIP equipements like SIP proxies, B2BUAs, SIP media servers, SIP/x gateways, SIP PBX, ... It is also very useful to emulate thousands of user agents calling your SIP system.
What's New in This Release:
· Fix:Issues related to differences between Solaris and other Os.
· Fix: Use globalStat instead of computeStat for global statistics.
· Enh: Option to limit maximum size of log files.
· Fix: xp_parser.c could not handle a quoted closing angle bracket in its arguments.
· Fix: Allow to terminate specification in a printf file.
· Fix: Escaping quotes with backslash in scenario should not include backslash.
· Fix: Correctly terminate string for [fieldX] in printf files.
· Fix: Do not malloc(0) if there are no variables.
· Fix: Removed extra require_arg/check pass. Provided by Martin H. VanLeeuwen.
· Fix: merge video port extraction with audio port extraction function; which to fix a buffer overflow in the video function.
· Fix: Correct memory leaks.
· Fix: 3pcc call creation dropped the first message.
· Fix: HPUX 11.23 build failure fixed.
· Fix: Theoretically, the first message could have a retransmission hash of zero, which would result in an unexpected termination for a UAS scenario.
· Fix: do not lose the first message on scenarios that start with a NOP.
· Fix: Do not use 100% CPU when run in the background, but not with -bg.
· Enh: Allow input files to be indexed by one of the fields, and add a corresponding lookup action. Also allow the [fieldN] substitution to take a line number parameter.
· Enh: add verifyauth action, which allows SIPp to verify the credentials sent by an MD5 challenge.
· Enh: Factor out string parsing of parameters from createAuthHeaderMD5.
· Enh: Allow more than one sending message per action.
· Enh: Allow +,-,/, and * to work with user based benchmarks and warning message action.
· Enh: Timestamp and Last Message keywords.
· Enh: Add -nostdin option, and allow message, shortmessage, error, and logs files to be turned on and off during run.
· Enh: Create a structure for storing call variables.
· Enh: Tie statistics to a scenario.
· Enh: Allow multiple simultaneous scenarios.
· Enh: Use va_args for printing errors rather than several macros.
· Enh: Add a gettimeofday action.
· Enh: Introduce per-user variables.
· Enh: Introduce global variables.
· Enh: Allow a jump on an unexpected message.
· Enh: Add a jump action primitive.
· Enh: Store UAS reply addresses on a per-call basis.
· Enh: Answer out-of-call messages using a scenario rather than built in C code.
· Enh: Respect count_in_stats variable for calls.
· Enh: Refactor and abstract listening for messages and owning a socket into a separate class from calls.
· Enh: Refactor and abstract tasks into a separate structure from calls.
· Enh: Allow control IP address to be specified on the command line, and remove thread in favor of poll.
· Enh: New XML elements for matching transactions on branch ID.
· Enh: Allow SIPp logs to be treated as ring buffers.
· Enh: Add a command to dump running calls.
· Enh: Add a class for dead calls so that messages for a terminated call are not treated as unexpected or out-of-call messages.
· Enh: Add a superclass for calls.
· Enh: Move things that do not need to be public into private section of call.
· Enh: Add -trace_count option to provide CSV interface to screen counts.