+

Search Tips   |   Advanced Search


SIP - Add a Send request

You can add a Send request to an SIP test and set the attributes of the request.

A best practice for SIP tests is to put a request and its associated response into a transaction. By doing this, the performance information in reports is organized into meaningful units. In addition, the schedule run generates a Transaction report. For instructions on how to put a test element into a transaction, see Add a transaction to a test. To add a Send request to a test:

  1. In the Test Navigator, browse to the test and double-click it.

  2. Click Add > Send Request. The New SIP Request wizard opens.

  3. Select a request method.

  4. Select the context or add a new context.

    1. To use an existing context, click Select a context name from the following list, and select the context.

    2. To create a new context, click Add a new context to the request selected and type its name into the Context name field.

  5. Click Finish. The wizard closes, and the Test Element Details area displays the request attributes.

  6. In the Test Element Details area, edit the attributes as follows:

    General tab

    Method

    The method selected for the request is displayed, but you can specify a different method.

    Scheme

    Select SIP, TEL, or SIPS.

    URI

    Type the request URI without the scheme prefix; for example, alice@example.com:5060 or alice@1.1.1.1:5070.

    Transport

    Select udp, tcp, tls, or none. The following rules apply:

    • If the selected scheme is SIP and the transport is set to none, the request is sent using the UDP transport but the transport=UDP parameter is not added to the URI.

    • If the selected scheme is SIPS and the transport is set to none, the request is sent using the TLS transport but the transport=TLS parameter is not added to the URI.

    • If the selected scheme is SIPS and the transport is set to TCP, the request is sent using the TLS transport even though the transport=TCP parameter is added to the URI.

    • In all other cases, the request is sent using the specified transport and the corresponding transport parameter is added to the URI.

    To use the TLS transport option, first configure the test environment with the required key and truststore.

    URI Parameters

    Optionally add additional parameters. Separate each parameter with a semicolon; for example: user=username; pass=pass.

    Specify different destination

    With the TEL scheme, this option is selected automatically and supply the Outbound Proxy. With the SIP or SIPS scheme, select this option to send the request to an address other than the address listed in the URI field. Specify the proxy in the following form: proxy_host:proxy_port;transport=transport. Omit the SIP prefix, which is supplied at run time. If you do not specify the transport, then the UDP transport is used by default.

    Context

    Select the name of the context to open the SIP Context Registry page, which lists the contexts that the test contains. On the SIP Context Registry page, select the request to return to the Test Element Details area. Click Change to change the name of the context or to add a new context.

    Message Headers

    Message headers are automatically copied to the request if the request uses the same method and the same context as a previous request. The exceptions are CSeq, Max-Forwards (set to 70), and Content-Type (copied only if the current request contains body contents). The mandatory header for each SIP method is displayed. <<Auto>> indicates that the value is set during the run.

    To add a header, click Add. After you have finished, click Table View to return to the Message Headers table.

    Body contents

    Describes what is being communicated at the network packet level. If this request uses the same method and the same context as a previous request, the content is automatically copied to the request. Otherwise, you can optionally type the content of the message.

    Advanced tab

    T1 Retransmission Timer

    Enabled only when Transport is set to none or UDP. Lets you change the retransmission interval from the default of 500 ms, so that you can adjust the test to match the system under test. To disable retransmission, type 0.

    Start new context for each loop iteration

    Enabled only when a Send request is in a loop. Lets you change whether the context is inherited from the previous loop iteration request. You typically select this option when emulating a call repeats over several hours (such as an Invite-Bye scenario). You typically clear this option when emulating a client that includes multiple republish or reregister actions (such as reregistering each hour during the workday).


Example

The following example shows typical Body contents for an Invite message:

v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=-
c=IN IP[media_ip_type] [media_ip]
t=0 0
m=audio [media_port] RTP/AVP 0
a=rtpmap:0 PCMU/8000

The following table shows how test behavior varies depending on the setting of Start new context for each loop iteration.

Test description Start new context... is checked Start new context... is cleared
Test contains a loop. A Send Subscribe request action is inside the loop, and the loop is set to run for n iterations. This scenario demonstrates sending a large number of initial Subscribe requests.

The first iteration of the loop sends the Subscribe request with an initial context and receives 200 OK. Subsequent iterations start a new context by sending the request with new identifiers, and receive 200 OK with new context identifiers.

This scenario demonstrates keeping one Subscribe request alive for a long time. It sends an initial Subscribe request but all subsequent requests are Re-subscribe, because they have the same identifiers.

The first iteration of the loop sends the Subscribe request with an initial context and receives 200 OK. Subsequent iterations bind the Subscribe request to the context identifiers from the first iteration and receive 200 OK.


Related tasks

  • Add a Receive response
  • Add a Receive request
  • Add a Send response
  • Add a delay