============
Keyword list
============

*If you want a literal left bracket instead of a keyword, use* ``\x5b`` *where you want a* ``[``.


``[service]``
=============
:Default: (service)
:Description: Service field, as passed in the -s service_name

``[remote_ip]``
===============
:Description: Remote IP address, as passed on the command line.

``[remote_port]``
=================
:Default: 5060
:Description: Remote IP port, as passed on the command line.
  You can add a computed offset [remote_port+3] to this value.

``[transport]``
===============
:Default: UDP
:Description: Depending on the value of -t parameter, this will take the values "UDP" or "TCP".

``[local_ip]``
==============
:Description: (Primary host IP address) Will take the value of -i parameter.

``[local_ip_type]``
===================
:Description: Depending on the address type of -i parameter (IPv4 or IPv6),
  local_ip_type will have value "4"  for IPv4 and "6" for IPv6.

``[local_port]``
================
:Default: Chosen by the system
:Description: Will take the value of -p parameter.
  You can add a computed offset [local_port+3] to this value.

``[len]``
==========
:Description: Computed length of the SIP body. To be used in "Content-Length" header.
  You can add a computed offset [len+3] to this value.

``[call_number]``
=================
:Description: Index. The call_number starts from "1" and is incremented by 1 for each call.

``[cseq]``
==========
:Description: Generates automatically the CSeq number. The initial value is 1 by default.
  It can be changed by using the -base_cseq command line option.

``[call_id]``
=============
:Description: A call_id identifies a call and is generated by SIPp for each new call. In client mode, it is mandatory
  to use the value generated by SIPp in the "Call-ID" header. Otherwise, SIPp will not recognise the answer to the
  message sent as being part of an existing call. Note: [call_id] can be pre-pended with an arbitrary string using
  '///'. Example: Call-ID: ABCDEFGHIJ///[call_id] - it will still be recognized by SIPp as part of the same call.

``[media_ip]``
===============
:Description: Depending on the value of -mi parameter, it is the local IP address for RTP echo.

``[media_ip_type]``
===================
:Description: Depending on the address type of -mi parameter (IPv4 or IPv6), media_ip_type
  will have value "4" for IPv4 and "6" for IPv6. Useful to build the SDP independently of the media IP type.

``[media_port]``
================
:Description: Depending on the value of -mp parameter, it set the local RTP echo port number.
  Default is none. RTP/UDP packets received on that port are echoed to their sender.
  You can add a computed offset [media_port+3] to this value.

``[auto_media_port]``
=====================
:Description: Only for pcap. To make audio and video ports begin
  from the value of -mp parameter, and change for each call using a periodical
  system, modulo 10000 (which limits to 10000 concurrent RTP sessions for pcap_play)

``[last_*]``
============
:Description: The '[last_*]' keyword is replaced automatically by the specified header if it was present
  in the last message received (except if it was a retransmission). If the header was not present or if
  no message has been received, the '[last_*]' keyword is discarded, and all bytes
  until the end of the line are also discarded. If the specified header
  was present several times in the message, all occurences are
  concatenated (CRLF separated) to be used in place of the '[last_*]' keyword.

``[field0-n file=<filename> line=<number>]``
============================================
:Description: Used to inject
  values from an external CSV file. See "Injecting values from an
  external CSV during calls" section. The optional file and line
  parameters allow you to select which of the injection files specified
  on the command line to use and which line number from that file.

``[file name=<filename>]``
==========================
:Description: Inserts the entire contents of filename into the
  message. Whitespace, including carriage returns and newlines at the
  end of the line in the file are not processed as with other keywords;
  thus your file must be formatted exactly as you would like the bytes
  to appear in the message.

``[timestamp]``
===============
:Description: The current time using the same format as error log messages.

``[last_message]``
==================
:Description: The last received message.

``[$n]``
========
:Description: Used to inject the value of call variable number n. See `Actions_` section

``[authentication]``
====================
:Description: Used to put the
  authentication header. This field can have parameters, in the
  following form: [authentication username=myusername
  password=mypassword]. If no username is provided, the value from the
  -au (authentication username) or -s (service) command line parameter
  is used. If no password is provided, the value from -ap command line
  parameter is used. See "Authentication" section

``[pid]``
=========
:Description: Provide the process ID (pid) of the main SIPp thread.

``[routes]``
=============
:Description: If the "rrs" attribute in a recv command is set to "true", then the "Record-Route:"
  header of the message received is stored and can be recalled using the [routes] keyword.

``[next_url]``
==============
:Description: If the "rrs" attribute in a recv command
  is set to "true", then the [next_url] contains the contents of the
  Contact header (i.e within the '<' and '>' of Contact)

``[branch]``
============
:Description: Provide a branch value which is a concatenation of magic cookie
  (z9hG4bK) + call number + message index in scenario.
  An offset (like [branch-N]) can be appended if you need to have the
  same branch value as a previous message.

``[msg_index]``
===============
:Description: Provide the message number in the scenario.

``[cseq]``
===========
:Description: Provides the CSeq value of
  the last request received. This value can be incremented (e.g.
  [cseq+1] adds 1 to the CSeq value of the last request).

``[clock_tick]``
================
:Description: Includes the internal SIPp clock tick value in the message.

``[sipp_version]``
==================
:Description: Includes the SIPp version string in the message.

``[tdmmap]``
============
:Description: Includes the tdm map values used by the call in the message
  (see -tdmmap option).

``[fill]``
============
:Description:  Injects filler characters into the
  message. The length of the fill text is equal to the call variable
  stored in the variable=N parameter. By default the text is a sequence
  of X's, but can be controlled with the text="text" parameter.

``[users]``
=============
:Description: If the -users command line option is specified, then this keyword
  contains the number of users that are currently instantiated.

``[userid]``
=============
:Description: If the -users command line option is specified, then this keyword
  containst he integer identifier of the current user (starting at zero
  and ending at [users-1]).
