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