ports/68036: [NEW PORT] net/sipp: SIP testing tool
Jesper Dalberg
jesper at jdn.dk
Thu Jun 17 07:50:35 UTC 2004
>Number: 68036
>Category: ports
>Synopsis: [NEW PORT] net/sipp: SIP testing tool
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Thu Jun 17 07:50:21 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator: Jesper Dalberg
>Release: FreeBSD 5.2.1-RELEASE i386
>Organization:
>Environment:
System: FreeBSD stan.jdn.dk 5.2.1-RELEASE FreeBSD 5.2.1-RELEASE #0: Sat May 15 15:17:44 CEST 2004
>Description:
Sipp is a performance test tool / traffic generator for the SIP protocol.
It comes with a few basic SipStone user-agents scenarios (UAC & UAS), i
establishing and releasing multiple calls with the INVITE and BYE methods.
WWW: http://sipp.sourceforge.net/
Generated with FreeBSD Port Tools 0.50
>How-To-Repeat:
>Fix:
--- sipp-0.3_1.shar begins here ---
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# sipp
# sipp/Makefile
# sipp/distinfo
# sipp/pkg-descr
# sipp/files
# sipp/files/patch-Makefile
# sipp/files/sipp.1
# sipp/files/patch-comp.h
#
echo c - sipp
mkdir -p sipp > /dev/null 2>&1
echo x - sipp/Makefile
sed 's/^X//' >sipp/Makefile << 'END-of-sipp/Makefile'
X# New ports collection makefile for: sipp
X# Date created: 15 Jun 2004
X# Whom: jesper at jdn.dk
X#
X# $FreeBSD$
X#
X
XPORTNAME= sipp
XPORTVERSION= 0.3
XPORTREVISION= 1
XCATEGORIES= net
XMASTER_SITES= ${MASTER_SITE_SOURCEFORGE_EXTENDED}
X
XMAINTAINER= jesper at jdn.dk
XCOMMENT= SIP testing tool
X
XWRKSRC= ${WRKDIR}/${PORTNAME}
XPLIST_FILES= bin/sipp
XMAN1= sipp.1
X
Xpre-install:
X @${CP} ${FILESDIR}/${MAN1} ${WRKSRC}/
X
Xdo-install:
X ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin
X ${INSTALL_MAN} ${WRKSRC}/sipp.1 ${PREFIX}/man/man1/sipp.1
X
X.include <bsd.port.mk>
END-of-sipp/Makefile
echo x - sipp/distinfo
sed 's/^X//' >sipp/distinfo << 'END-of-sipp/distinfo'
XMD5 (sipp-0.3.tar.gz) = e088f4aa98bda0f3300b1250bd24094a
XSIZE (sipp-0.3.tar.gz) = 57099
END-of-sipp/distinfo
echo x - sipp/pkg-descr
sed 's/^X//' >sipp/pkg-descr << 'END-of-sipp/pkg-descr'
XSipp is a performance test tool / traffic generator for the SIP protocol.
X
XIt comes with a few basic SipStone user-agents scenarios (UAC & UAS), i
Xestablishing and releasing multiple calls with the INVITE and BYE methods.
X
XWWW: http://sipp.sourceforge.net/
END-of-sipp/pkg-descr
echo c - sipp/files
mkdir -p sipp/files > /dev/null 2>&1
echo x - sipp/files/patch-Makefile
sed 's/^X//' >sipp/files/patch-Makefile << 'END-of-sipp/files/patch-Makefile'
X--- Makefile.orig Tue Jun 15 14:25:12 2004
X+++ Makefile Tue Jun 15 14:25:28 2004
X@@ -30,6 +30,7 @@
X
X # Libraries directories
X LIBDIR_linux=
X+LIBDIR_FreeBSD=
X LIBDIR_hpux=
X LIBDIR_tru64=
X
X@@ -50,6 +51,7 @@
X # SYSTEM nickname
X SYSTEM_HP-UX=hpux
X SYSTEM_Linux=linux
X+SYSTEM_FreeBSD=freebsd
X SYSTEM_OSF1=tru64
X SYSTEM=$(SYSTEM_$(OSNAME))
X
X@@ -60,29 +62,34 @@
X CPP_hpux=aCC
X CPP_linux=gcc
X CPP_tru64=cxx
X+CPP_freebsd=g++
X CPP=$(CPP_$(SYSTEM))
X
X #C Compiler Flags
X CFLAGS_hpux=-D__HPUX +DAportable
X CFLAGS_linux=-D__LINUX -pthread
X+CFLAGS_freebsd=-D__LINUX -pthread
X CFLAGS_tru64=-D__OSF1 -pthread
X CFLAGS=$(CFLAGS_$(SYSTEM)) -D__3PCC__
X
X #C++ Compiler Flags
X CPPFLAGS_hpux=-AA -mt -D__HPUX +DAportable
X CPPFLAGS_linux=-D__LINUX -pthread
X+CPPFLAGS_freebsd=-D__LINUX -pthread
X CPPFLAGS_tru64=-D__OSF1 -pthread
X CPPFLAGS=$(CPPFLAGS_$(SYSTEM)) -D__3PCC__
X
X #Linker mapping
X CCLINK_hpux=aCC
X CCLINK_linux=gcc
X+CCLINK_freebsd=g++
X CCLINK_tru64=cxx
X CCLINK=$(CCLINK_$(SYSTEM))
X
X #Linker Flags
X LFLAGS_hpux=-AA -mt +DAportable
X LFLAGS_linux=
X+LFLAGS_freebsd=
X LFLAGS_tru64=
X LFLAGS=$(LFLAGS_$(SYSTEM))
X
X@@ -90,6 +97,7 @@
X LIBS_linux= -ldl -lpthread -lcurses -lstdc++
X LIBS_hpux= -lcurses
X LIBS_tru64= -lcurses -lpthread
X+LIBS_freebsd= -lcurses -pthread
X LIBS=$(LIBS_$(SYSTEM))
X
X # Operating system detection rule
END-of-sipp/files/patch-Makefile
echo x - sipp/files/sipp.1
sed 's/^X//' >sipp/files/sipp.1 << 'END-of-sipp/files/sipp.1'
X.\"
X.\" Standard preamble:
X.\" ========================================================================
X.de Sh \" Subsection heading
X.br
X.if t .Sp
X.ne 5
X.PP
X\fB\\$1\fR
X.PP
X..
X.de Sp \" Vertical space (when we can't use .PP)
X.if t .sp .5v
X.if n .sp
X..
X.de Vb \" Begin verbatim text
X.ft CW
X.nf
X.ne \\$1
X..
X.de Ve \" End verbatim text
X.ft R
X.fi
X..
X.\" Set up some character translations and predefined strings. \*(-- will
X.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
X.\" double quote, and \*(R" will give a right double quote. | will give a
X.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
X.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
X.\" expand to `' in nroff, nothing in troff, for use with C<>.
X.tr \(*W-|\(bv\*(Tr
X.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
X.ie n \{\
X. ds -- \(*W-
X. ds PI pi
X. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
X. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
X. ds L" ""
X. ds R" ""
X. ds C` ""
X. ds C' ""
X'br\}
X.el\{\
X. ds -- \|\(em\|
X. ds PI \(*p
X. ds L" ``
X. ds R" ''
X'br\}
X.\"
X.\" If the F register is turned on, we'll generate index entries on stderr for
X.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
X.\" entries marked with X<> in POD. Of course, you'll have to process the
X.\" output yourself in some meaningful fashion.
X.if \nF \{\
X. de IX
X. tm Index:\\$1\t\\n%\t"\\$2"
X..
X. nr % 0
X. rr F
X.\}
X.\"
X.\" For nroff, turn off justification. Always turn off hyphenation; it makes
X.\" way too many mistakes in technical documents.
X.hy 0
X.if n .na
X.\"
X.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
X.\" Fear. Run. Save yourself. No user-serviceable parts.
X. \" fudge factors for nroff and troff
X.if n \{\
X. ds #H 0
X. ds #V .8m
X. ds #F .3m
X. ds #[ \f1
X. ds #] \fP
X.\}
X.if t \{\
X. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
X. ds #V .6m
X. ds #F 0
X. ds #[ \&
X. ds #] \&
X.\}
X. \" simple accents for nroff and troff
X.if n \{\
X. ds ' \&
X. ds ` \&
X. ds ^ \&
X. ds , \&
X. ds ~ ~
X. ds /
X.\}
X.if t \{\
X. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
X. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
X. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
X. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
X. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
X. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
X.\}
X. \" troff and (daisy-wheel) nroff accents
X.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
X.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
X.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
X.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
X.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
X.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
X.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
X.ds ae a\h'-(\w'a'u*4/10)'e
X.ds Ae A\h'-(\w'A'u*4/10)'E
X. \" corrections for vroff
X.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
X.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
X. \" for low resolution devices (crt and lpr)
X.if \n(.H>23 .if \n(.V>19 \
X\{\
X. ds : e
X. ds 8 ss
X. ds o a
X. ds d- d\h'-1'\(ga
X. ds D- D\h'-1'\(hy
X. ds th \o'bp'
X. ds Th \o'LP'
X. ds ae ae
X. ds Ae AE
X.\}
X.rm #[ #] #H #V #F C
X.\" ========================================================================
X.\"
X.IX Title "sipp 3"
X.TH sipp 3 "2004-06-16" "sipp" "User Contributed Documentation"
X.SH "NAME"
Xsipp \- A benchworking tool for the SIP protocol.
X.SH "DESCRIPTION"
X.IX Header "DESCRIPTION"
XSipp is a performance test tool / traffic generator for the \s-1SIP\s0
Xprotocol. It comes with a few basic SipStone user-agents
Xscenarios (\s-1UAC\s0 & \s-1UAS\s0), establishing and releasing multiple
Xcalls with the \s-1INVITE\s0 and \s-1BYE\s0 methods.
X.PP
XIt can also read \s-1XML\s0 scenario files describing any performance
Xtesting configuration for \s-1SIP\s0.
X.SH "SYNTAX"
X.IX Header "SYNTAX"
X.Vb 1
X\& sipp remote_host[:remote_port] [options]
X.Ve
X.SH "OPTIONS"
X.IX Header "OPTIONS"
X.Vb 1
X\& -v : Display version and copyright information.
X.Ve
X.PP
X.Vb 1
X\& -bg : Launch the tool in background mode.
X.Ve
X.PP
X.Vb 2
X\& -p local_port : Set the local port number. Default is a
X\& random free port chosen by the system.
X.Ve
X.PP
X.Vb 3
X\& -i local_ip : Set the local IP address for 'Contact:',
X\& 'Via:', and 'From:' headers. Default is
X\& primary host IP address.
X.Ve
X.PP
X.Vb 5
X\& -d duration : Controls the length (in milliseconds) of
X\& of calls. More precisely, this controls
X\& the duration of 'pause' instructions in
X\& the scenario, if they do not have a
X\& 'milliseconds' section. Default value is 0.
X.Ve
X.PP
X.Vb 3
X\& -r rate (cps) : Set the call rate (in calls per seconds).
X\& This value can be changed during test by
X\& pressing ENTER. Default is 10.
X.Ve
X.PP
X.Vb 5
X\& -sf filename : Loads an alternate xml scenario file.
X\& To learn more about XML scenario syntax,
X\& use the -sd option to dump embedded
X\& scenarios. They contain all the necessary
X\& help.
X.Ve
X.PP
X.Vb 3
X\& -sn name : Use a default scenario (embedded in
X\& the sipp executable). Available values
X\& in this version:
X.Ve
X.PP
X.Vb 4
X\& 'uac' : Standard SipStone UAC (default).
X\& 'uas' : Simple UAS responder (UDP only).
X\& 'regexp' : Standard SipStone UAC - with
X\& regexp and variables.
X.Ve
X.PP
X.Vb 1
X\& Default 3pcc scanerios (see -3pcc option):
X.Ve
X.PP
X.Vb 5
X\& '3pcc-C-A' : Controller A side (must be started
X\& after all other 3pcc scenarios)
X\& '3pcc-C-B' : Controller B side.
X\& '3pcc-A' : A side.
X\& '3pcc-B' : B side.
X.Ve
X.PP
X.Vb 2
X\& -sd name : Dumps a default scenario (embeded in
X\& the sipp executable)
X.Ve
X.PP
X.Vb 1
X\& -t [u1|un|t1|tn] : Set the transport mode:
X.Ve
X.PP
X.Vb 4
X\& u1: UDP with one socket (default),
X\& un: UDP with one socket per call,
X\& t1: TCP with one socket,
X\& tn: TCP with one socket per call.
X.Ve
X.PP
X.Vb 2
X\& -trace_msg : Displays sent and received SIP messages in
X\& sipp_messages.log
X.Ve
X.PP
X.Vb 3
X\& -trace_stat : Dumps all statistics in the <scenario_name.csv>
X\& file. Use the '-h stat' option for a detailed
X\& description of the statistics file content.
X.Ve
X.PP
X.Vb 6
X\& The -trace_stat option dumps all statistics in the
X\& <scenario_name.csv> file. The dump starts with one header
X\& line with all counters. All following lines are 'snapshots' of
X\& statistics counter given the statistics report frequency
X\& (-fd option). This file can be easily imported in any
X\& spreadsheet application, like Excel.
X.Ve
X.PP
X.Vb 3
X\& In counter names, (P) means 'Periodic' - since last
X\& statistic row and (C) means 'Cumulated' - since sipp was
X\& started.
X.Ve
X.PP
X.Vb 1
X\& Available statistics are:
X.Ve
X.PP
X.Vb 2
X\& - StartTime:
X\& Date and time when the test has started.
X.Ve
X.PP
X.Vb 2
X\& - LastResetTime:
X\& Date and time when periodic counters where last reseted.
X.Ve
X.PP
X.Vb 2
X\& - CurrentTime:
X\& Date and time of the statistic row.
X.Ve
X.PP
X.Vb 2
X\& - ElapsedTime:
X\& Elapsed time.
X.Ve
X.PP
X.Vb 2
X\& - CallRate:
X\& Call rate (calls per seconds).
X.Ve
X.PP
X.Vb 2
X\& - IncomingCall:
X\& Number of incoming calls.
X.Ve
X.PP
X.Vb 2
X\& - OutgoingCall:
X\& Number of outgoing calls.
X.Ve
X.PP
X.Vb 2
X\& - TotalCallCreated:
X\& Number of calls created.
X.Ve
X.PP
X.Vb 2
X\& - CurrentCall:
X\& Number of calls currently ongoing.
X.Ve
X.PP
X.Vb 2
X\& - SuccessfulCall:
X\& Number of successful calls.
X.Ve
X.PP
X.Vb 2
X\& - FailedCall:
X\& Number of failed calls (all reasons).
X.Ve
X.PP
X.Vb 3
X\& - FailedCannotSendMessage:
X\& Number of failed calls because Sipp cannot send the
X\& message (transport issue).
X.Ve
X.PP
X.Vb 3
X\& - FailedMaxUDPRetrans:
X\& Number of failed calls because the maximum number of
X\& UDP retransmission attempts has been reached.
X.Ve
X.PP
X.Vb 3
X\& - FailedUnexpectedMessage:
X\& Number of failed calls because the SIP message received
X\& cannot be associated to an existing call.
X.Ve
X.PP
X.Vb 4
X\& - FailedCallRejected:
X\& Number of failed calls because of Sipp internal error.
X\& (a scenario sync command is not recognized or a scenario
X\& action failed or a scenario variable assignment failed).
X.Ve
X.PP
X.Vb 4
X\& - FailedCmdNotSent:
X\& Number of failed calls because of inter-Sipp
X\& communication error (a scenario sync command failed to
X\& be sent).
X.Ve
X.PP
X.Vb 5
X\& - FailedRegexpDoesntMatch:
X\& Number of failed calls because of regexp that doesn't
X\& match (there might be several regexp that don't match
X\& during the call but the counter is increased only by
X\& one).
X.Ve
X.PP
X.Vb 3
X\& - FailedRegexpHdrNotFound:
X\& Number of failed calls because of regexp with hdr
X\& option but no matching header found.
X.Ve
X.PP
X.Vb 1
X\& -stf file_name : Set the file name to use to dump statistics
X.Ve
X.PP
X.Vb 2
X\& -trace_err : Trace all unexpected messages in
X\& sipp_errors.log.
X.Ve
X.PP
X.Vb 2
X\& -s service_name : Set the username part of the resquest URI.
X\& Default is 'service'.
X.Ve
X.PP
X.Vb 2
X\& -f frequency : Set the statistics report frequency on screen
X\& (in seconds). Default is 1.
X.Ve
X.PP
X.Vb 2
X\& -fd frequency : Set the statistics dump log report frequency
X\& (in seconds). Default is 60.
X.Ve
X.PP
X.Vb 4
X\& -l calls_limit : Set the maximum number of simultaneous
X\& calls. Once this limit is reached, traffic
X\& is decreased until the number of open calls
X\& goes down. Default:
X.Ve
X.PP
X.Vb 1
X\& (3 * call_duration (s) * rate).
X.Ve
X.PP
X.Vb 2
X\& -m calls : Stop the test and exit when 'calls' calls are
X\& processed.
X.Ve
X.PP
X.Vb 3
X\& -mp local_port : Set the local RTP echo port number. Default
X\& is none. RTP/UDP packets received on that
X\& port are echoed to their sender.
X.Ve
X.PP
X.Vb 1
X\& -mi local_rtp_ip : Set the local IP address for RTP echo.
X.Ve
X.PP
X.Vb 5
X\& -3pcc ip:port : Launch the tool in 3pcc mode ("Third Party
X\& call control"). The passed ip address
X\& is the address of the twin sipp 3pcc tool
X\& The used scenario must be a 3pcc relative
X\& scenario
X.Ve
X.PP
X.Vb 1
X\& -nr : Disable retransmission in UDP mode.
X.Ve
X.SH "EXIT CODE"
X.IX Header "EXIT CODE"
X.Vb 7
X\& Upon exit (on fatal error or when the number of asked calls (-m
X\& option) is reached, sipp exits with one of the following exit
X\& code:
X\& 0: All calls were successful
X\& 1: At least one call failed
X\& 99: Normal exit without calls processed
X\& -1: Fatal error
X.Ve
X.SH "EXAMPLES"
X.IX Header "EXAMPLES"
X.Vb 4
X\& Run sipp with embedded server (uas) scenario:
X\& ./sipp -sn uas
X\& On the same host, run sipp with embedded client (uac) scenario
X\& ./sipp -sn uac 127.0.0.1
X.Ve
X.SH "AUTHORS"
X.IX Header "AUTHORS"
X.Vb 2
X\& Richard Gayraud <richard_gayraud at users.sourceforge.net>
X\& O Jacques <ojacques at users.sourceforge.net>
X.Ve
END-of-sipp/files/sipp.1
echo x - sipp/files/patch-comp.h
sed 's/^X//' >sipp/files/patch-comp.h << 'END-of-sipp/files/patch-comp.h'
X--- comp.h.orig Thu Jun 17 08:32:56 2004
X+++ comp.h Thu Jun 17 08:33:04 2004
X@@ -19,6 +19,9 @@
X * From Hewlett Packard Company.
X */
X
X+#if __FreeBSD__ < 5
X+#include <sys/types.h>
X+#endif
X #include <sys/socket.h>
X
X #ifdef __cplusplus
END-of-sipp/files/patch-comp.h
exit
--- sipp-0.3_1.shar ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list