sipp(1)


NAME

   sipp - Session Initiation Protol (SIP) performance testing tool

DESCRIPTION

   Usage:

          sipp remote_host[:remote_port] [options]

          Available options:

   -v     : Display version and copyright information.

   -aa    :  Enable  automatic  200  OK answer for INFO, UPDATE and NOTIFY
          messages.

   -base_cseq
          : Start value of [cseq] for each call.

   -bg    : Launch SIPp in background mode.

   -bind_local
          : Bind socket to local IP address, i.e. the local IP address  is
          used  as  the source IP address.  If SIPp runs in server mode it
          will only listen on the local  IP  address  instead  of  all  IP
          addresses.

   -buff_size
          : Set the send and receive buffer size.

   -cid_str
          :   Call   ID   string   (default   %u-%p@%s).   %u=call_number,
          %s=ip_address, %p=process_number, %%=% (in any order).

   -ci    : Set the local control IP address

   -cp    : Set the local control port number. Default is 8888.

   -d     : Controls the length of calls. More  precisely,  this  controls
          the duration of 'pause' instructions in the scenario, if they do
          not have a 'milliseconds'  section.   Default  value  is  0  and
          default unit is milliseconds.

   -deadcall_wait
          :  How long the Call-ID and final status of calls should be kept
          to improve message and error logs (default unit is ms).

   -default_behaviors: Set the default behaviors that SIPp will use.
          Possbile values are: - all     Use all default behaviors -  none
          Use no default behaviors - bye     Send byes for aborted calls -
          abortunexp      Abort calls on unexpected messages  -  pingreply
          Reply  to ping requests If a behavior is prefaced with a -, then
          it is turned off.  Example: all,-bye

   -f     : Set the statistics report frequency on screen.  Default  is  1
          and default unit is seconds.

   -fd    :  Set  the  statistics dump log report frequency. Default is 60
          and default unit is seconds.

   -i     : Set the local IP address for  'Contact:','Via:',  and  'From:'
          headers. Default is primary host IP address.

   -inf   :  Inject values from an external CSV file during calls into the
          scenarios.  First line of this file say whether the data  is  to
          be  read  in  sequence  (SEQUENTIAL),  random  (RANDOM), or user
          (USER) order.  Each line corresponds to one call and has one  or
          more  ';' delimited data fields. Those fields can be referred as
          [field0], [field1], ... in the xml scenario file.   Several  CSV
          files  can  be  used  simultaneously  (syntax:  -inf f1.csv -inf
          f2.csv ...)

   -infindex
          : file field Create an index of file using field.   For  example
          -inf  users.csv  -infindex  users.csv  0 creates an index on the
          first key.

   -ip_field
          : Set which field  from  the  injection  file  contains  the  IP
          address  from  which the client will send its messages.  If this
          option is omitted and the '-t ui' option is present, then  field
          0 is assumed.  Use this option together with '-t ui'

   -l     :  Set the maximum number of simultaneous calls. Once this limit
          is reached, traffic is decreased until the number of open  calls
          goes down. Default:

          (3 * call_duration (s) * rate).

   -lost  :  Set  the  number  of  packets  to  lose  by default (scenario
          specifications override this value).

   -m     : Stop the test and exit when 'calls' calls are processed

   -mi    : Set the local media IP address

   -master
          : 3pcc extended mode: indicates the master number

   -max_recv_loops
          : Set the maximum number of messages received  read  per  cycle.
          Increase  this  value for high traffic level.  The default value
          is 1000.

   -max_sched_loops : Set the maximum number of calsl run per event loop.
          Increase this value for high traffic level.  The  default  value
          is 1000.

   -max_reconnect
          : Set the the maximum number of reconnection.

   -max_retrans
          :  Maximum  number  of  UDP  retransmissions before call ends on
          timeout.  Default is 5 for INVITE transactions and 7 for others.

   -max_invite_retrans: Maximum number of UDP retransmissions for invite
          transactions before call ends on timeout.

   -max_non_invite_retrans: Maximum  number  of  UDP  retransmissions  for
   non-invite
          transactions before call ends on timeout.

   -max_log_size
          : What is the limit for error and message log file sizes.

   -max_socket
          :  Set  the  max number of sockets to open simultaneously.  This
          option is significant if you use one socket per call. Once  this
          limit  is  reached,  traffic  is  distributed  over  the sockets
          already opened. Default value is 50000

   -mb    : Set the RTP echo buffer size (default: 2048).

   -mp    : Set the local RTP echo port number. Default is 6000.

   -nd    : No Default. Disable all default behavior of SIPp which are the
          following: - On UDP retransmission timeout, abort the call by

          sending a BYE or a CANCEL

          - On receive timeout with no ontimeout attribute, abort

          the call by sending a BYE or a CANCEL

          -  On  unexpected  BYE  send  a  200  OK and close the call - On
          unexpected CANCEL send  a  200  OK  and  close  the  call  -  On
          unexpected  PING  send  a  200 OK and continue the call - On any
          other unexpected message, abort the call by

          sending a BYE or a CANCEL

   -nr    : Disable retransmission in UDP mode.

   -nostdin
          : Disable stdin.

   -p     : Set the local port number.  Default  is  a  random  free  port
          chosen by the system.

   -pause_msg_ign
          :  Ignore  the  messages  received during a pause defined in the
          scenario

   -periodic_rtd
          : Reset response time partition counters each logging interval.

   -r     : Set the call rate (in calls  per  seconds).   This  value  can
          bechanged  during  test by pressing '+','_','*' or '/'.  Default
          is  10.   pressing  '+'  key  to  increase  call  rate  by  1  *
          rate_scale,  pressing  '-'  key  to  decrease  call  rate by 1 *
          rate_scale, pressing '*' key to  increase  call  rate  by  10  *
          rate_scale,  pressing  '/'  key  to  decrease  call rate by 10 *
          rate_scale.  If the  -rp  option  is  used,  the  call  rate  is
          calculated with the period in ms given by the user.

   -rp    :  Specify  the  rate  period  for  the call rate.  Default is 1
          second and default unit is milliseconds.   This  allows  you  to
          have  n  calls  every  m  milliseconds  (by  using  -r n -rp m).
          Example: -r 7 -rp 2000 ==> 7 calls every 2 seconds.

          -r 10 -rp 5s => 10 calls every 5 seconds.

   -rate_scale
          : Control the units for the '+', '-', '*', and '/' keys.

   -rate_increase
          :  Specify  the  rate  increase  every  -fd  units  (default  is
          seconds).   This  allows  you  to  increase  the  load  for each
          independent logging period.  Example: -rate_increase 10 -fd 10s

          ==> increase calls by 10 every 10 seconds.

   -rate_max
          : If -rate_increase is set, then quit  after  the  rate  reaches
          this value.  Example: -rate_increase 10 -rate_max 100

          ==> increase calls by 10 until 100 cps is hit.

   -no_rate_quit
          :  If  -rate_increase is set, do not quit after the rate reaches
          -rate_max.

   -recv_timeout
          : Global receive timeout. Default unit is milliseconds.  If  the
          expected  message  is  not  received,  the call times out and is
          aborted.

   -send_timeout
          : Global send  timeout.  Default  unit  is  milliseconds.  If  a
          message  is not sent (due to congestion), the call times out and
          is aborted.

   -reconnect_close : Should calls be closed on reconnect?

   -reconnect_sleep : How long (in  milliseconds)  to  sleep  between  the
   close and
          reconnect?

   -ringbuffer_files: How many error/message files should be kept after
          rotation?

   -ringbuffer_size  : How large should error/message files be before they
   get
          rotated?

   -rsa   : Set the remote sending address to host:port  for  sending  the
          messages.

   -rtp_echo
          :  Enable  RTP echo. RTP/UDP packets received on port defined by
          -mp are echoed to their sender.  RTP/UDP packets coming on  this
          port  +  2  are  also echoed to their sender (used for sound and
          video echo).

   -rtt_freq
          : freq is mandatory. Dump response times every freq calls in the
          log file defined by -trace_rtt. Default value is 200.

   -s     :  Set  the  username  part  of  the  resquest  URI.  Default is
          'service'.

   -sd    : Dumps a default scenario (embeded in the sipp executable)

   -sf    : Loads an alternate xml scenario file.  To learn more about XML
          scenario  syntax, use the -sd option to dump embedded scenarios.
          They contain all the necessary help.

   -oocsf : Load out-of-call scenario.

   -oocsn : Load out-of-call scenario.

   -skip_rlimit
          : Do not  perform  rlimit  tuning  of  file  descriptor  limits.
          Default: false.

   -slave : 3pcc extended mode: indicates the slave number

   -slave_cfg
          :  3pcc  extended  mode: indicates the file where the master and
          slave addresses are stored

   -sn    : Use a default scenario (embedded in the sipp executable).   If
          this  option  is  omitted, the Standard SipStone UAC scenario is
          loaded.  Available values in this version:

   - 'uac'
          : Standard SipStone UAC (default).

   - 'uas'
          : Simple UAS responder.

   - 'regexp'
          : Standard SipStone UAC - with regexp and

          variables.

   - 'branchc'
          : Branching and conditional branching in

          scenarios - client.

   - 'branchs'
          : Branching and conditional branching in

          scenarios - server.

          Default 3pcc scenarios (see -3pcc option):

          - '3pcc-C-A' : Controller A side (must be started after

          all other 3pcc scenarios)

          - '3pcc-C-B' : Controller B side.  - '3pcc-A'    :  A  side.   -
          '3pcc-B'   : B side.

   -stat_delimiter
          : Set the delimiter for the statistics file

   -stf   : Set the file name to use to dump statistics

   -t     : Set the transport mode: - u1: UDP with one socket (default), -
          un: UDP with one socket per call, - ui: UDP with one socket  per
          IP address The IP

          addresses must be defined in the injection file.

          - t1: TCP with one socket, - tn: TCP with one socket per call, -
          l1: TLS with one socket, - ln: TLS with one socket per  call,  -
          c1: u1 + compression (only if compression plugin

          loaded),

          - cn: un + compression (only if compression plugin

   loaded).
          This plugin is not provided with sipp.

   -timeout
          :  Global  timeout.  Default unit is seconds.  If this option is
          set, SIPp quits after nb units  (-timeout  20s  quits  after  20
          seconds).

   -timer_resol
          :  Set the timer resolution. Default unit is milliseconds.  This
          option has an impact on timers precision.Small values allow more
          precise  scheduling  but impacts CPU usage.If the compression is
          on, the value is set to 50ms. The default value is 10ms.

   -sendbuffer_warn : Produce warnings instead of errors on SendBuffer
          failures.

   -trace_msg
          : Displays sent and received  SIP  messages  in  <scenario  file
          name>_<pid>_messages.log

   -trace_shortmsg
          :  Displays  sent  and received SIP messages as CSV in <scenario
          file name>_<pid>_shortmessages.log

   -trace_screen
          : Dump statistic screens in the <scenario_name>_<pid>_0ms.

   -trace_err
          :   Trace   all   unexpected   messages   in   <scenario    file
          name>_<pid>_errors.log.

   -trace_stat
          :  Dumps  all statistics in <scenario_name>_<pid>.csv file.  Use
          the  '-h  stat'  option  for  a  detailed  description  of   the
          statistics file content.

   -trace_counts
          : Dumps individual message counts in a CSV file.

   -trace_rtt
          :  Allow  tracing  of  all  response  times  in  <scenario  file
          name>_<pid>_rtt.csv.

   -trace_logs
          :  Allow  tracing   of   <log>   actions   in   <scenario   file
          name>_<pid>_logs.log.

   -users : Instead of starting calls at a fixed rate, begin 'users' calls
          at startup, and keep the number of calls constant.

   -3pcc  : Launch the tool in 3pcc mode ("Third Party call control"). The
          passed  ip  address  is  depending on the 3PCC role.  - When the
          first twin command is 'sendCmd' then this is

   the address of the remote twin socket.
          SIPp will try to

          connect to this address:port to  send  the  twin  command  (This
          instance must be started after all other 3PCC scenarii).

          Example: 3PCC-C-A scenario.

          - When the first twin command is 'recvCmd' then this is

          the  address  of  the  local  twin  socket.  SIPp will open this
          address:port to listen for twin command.

          Example: 3PCC-C-B scenario.

   -tdmmap
          : Generate and handle a table of TDM circuits.  A  circuit  must
          be  available  for  the  call  to  be  placed.   Format: -tdmmap
          {0-3}{99}{5-8}{1-31}

   -key   : keyword value Set the generic  parameter  named  "keyword"  to
          "value".

   Signal handling:

          SIPp  can  be  controlled  using  posix  signals.  The following
          signals are handled: USR1: Similar to press 'q' keyboard key. It
          triggers a soft exit

          of  SIPp. No more new calls are placed and all ongoing calls are
          finished before SIPp exits.  Example: kill -SIGUSR1 732

          USR2: Triggers a dump of all statistics screens in

          <scenario_name>_<pid>_screens.log  file.  Especially  useful  in
          background  mode  to  know what the current status is.  Example:
          kill -SIGUSR2 732

   Exit code:

          Upon exit (on fatal error or when the number of asked calls  (-m
          option)  is  reached,  sipp exits with one of the following exit
          code:

          0: All calls were successful 1: At least one call failed

          97: exit on internal command. Calls may have been processed  99:
          Normal exit without calls processed -1: Fatal error

   Example:

          Run sipp with embedded server (uas) scenario:

          ./sipp -sn uas

          On the same host, run sipp with embedded client (uac) scenario

          ./sipp -sn uac 127.0.0.1

          SIPp v3.1, version unknown, built Jun 13 2010, 15:34:03.

          This  program  is  free software; you can redistribute it and/or
          modify it under the terms of the GNU General Public  License  as
          published  by  the Free Software Foundation; either version 2 of
          the License, or (at your option) any later version.

          This program is distributed in the hope that it will be  useful,
          but  WITHOUT  ANY WARRANTY; without even the implied warranty of
          MERCHANTABILITY or FITNESS FOR A PARTICULAR  PURPOSE.   See  the
          GNU General Public License for more details.

          You  should  have  received  a  copy  of  the GNU General Public
          License along with this program;  if  not,  write  to  the  Free
          Software  Foundation,  Inc., 59 Temple Place, Suite 330, Boston,
          MA  02111-1307 USA

          Author: see source files.





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.