<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">

<!-- 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             -->
<!--                                                                    -->
<!--                 Sipp default 'uas' scenario.                       -->
<!--                                                                    -->

<scenario name="Sending OK and re-INVITE with less media (#16xx)">
  <!-- By adding rrs="true" (Record Route Sets), the route sets         -->
  <!-- are saved and used for following messages sent. Useful to test   -->
  <!-- against stateful SIP proxies/B2BUAs.                             -->

  <recv request="INVITE" crlf="true">
    <action>
	<ereg regexp=".*" search_in="hdr" header="From" assign_to="3"/>
	<ereg regexp="sip:(.*)>" search_in="hdr" header="Contact" assign_to="4,5"/>
        <assign assign_to="4" variable="5" />
    </action>
  </recv>

  <send retrans="500">
    <![CDATA[

      SIP/2.0 200 OK
      [last_Via:]
      [last_From:]
      [last_To:]
      [last_Call-ID:]
      [last_CSeq:]
      Contact: sip:sipp@[local_ip]:[local_port]
      Content-Type: application/sdp
      Content-Length: [len]

      v=0
      o=- 3441953879 3441953879 IN IP4 192.168.0.15
      s=pjmedia
      c=IN IP4 192.168.0.15
      t=0 0
      m=audio 4000 RTP/AVP 0 96
      a=rtpmap:0 PCMU/8000
      a=rtpmap:96 telephone-event/8000
      a=sendrecv

    ]]>
  </send>

  <recv request="ACK" crlf="true">
  </recv>

  <pause milliseconds="2000"/>

  <send retrans="500">
    <![CDATA[

      INVITE sip:[$5] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=z9hG4bK-same-branch
      From: sipp  <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
      To[$3]
      Call-ID: [call_id]
      Cseq: 2 INVITE
      Max-Forwards: 70
      Content-Type: application/sdp
      Content-Length: [len]
        
      v=0
      o=- 3441953879 3441953879 IN IP4 192.168.0.15
      s=pjmedia
      c=IN IP4 192.168.0.15
      t=0 0
      m=audio 4000 RTP/AVP 0 96
      a=rtpmap:0 PCMU/8000
      a=rtpmap:96 telephone-event/8000
      a=sendonly

    ]]>
  </send>

  <recv response="200" rtd="true">
  </recv>

  <send>
    <![CDATA[

      ACK sip:[$5] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=z9hG4bK-same-branch
      From: sipp  <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
      To[$3]
      Call-ID: [call_id]
      Cseq: 1 ACK
      Contact: sip:sipp@[local_ip]:[local_port]
      Max-Forwards: 70
      Content-Length: 0

    ]]>
  </send>    
    
  <recv request="INVITE" crlf="true">
  </recv>

  <send retrans="500">
    <![CDATA[

      SIP/2.0 200 OK
      [last_Via:]
      [last_From:]
      [last_To:]
      [last_Call-ID:]
      [last_CSeq:]
      Contact: sip:sipp@[local_ip]:[local_port]
      Content-Type: application/sdp
      Content-Length: [len]

      v=0
      o=- 3441953879 3441953879 IN IP4 192.168.0.15
      s=pjmedia
      c=IN IP4 192.168.0.15
      t=0 0
      m=audio 4000 RTP/AVP 0 96
      a=rtpmap:0 PCMU/8000
      a=rtpmap:96 telephone-event/8000
      a=inactive

    ]]>
  </send>

  <recv request="ACK" crlf="true">
  </recv>

  <!-- Keep the call open for a while in case the 200 is lost to be     -->
  <!-- able to retransmit it if we receive the BYE again.               -->
  <pause milliseconds="4000"/>


  <!-- definition of the response time repartition table (unit is ms)   -->
  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>

  <!-- definition of the call length repartition table (unit is ms)     -->
  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>

</scenario>

