<?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="UAS answer multiple formats in early media, UAS supports UPDATE method">
  <!-- 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" />
	<ereg regexp=".*" search_in="hdr" header="Via" assign_to="6"/>
	<ereg regexp=".*" search_in="hdr" header="CSeq" assign_to="7"/>
    </action>
  </recv>

  <!-- 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 seperated)        -->
  <!-- to be used in place of the '[last_*]' keyword.                   -->

  <send>
    <![CDATA[

      SIP/2.0 180 Ringing
      [last_Via:]
      [last_From:]
      [last_To:];tag=[call_number]
      [last_Call-ID:]
      [last_CSeq:]
      Contact: sip:sipp@[local_ip]:[local_port]
      Content-Type: application/sdp
      Content-Length: [len]
      Allow: INVITE, UPDATE, ACK, BYE

      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 4004 RTP/AVP 0 8 3 111
      a=rtpmap:0 PCMU/8000
      a=rtpmap:8 PCMA/8000
      a=rtpmap:3 GSM/8000
      a=rtpmap:111 telephone-event/8000
      a=fmtp:111 0-15

    ]]>
  </send>



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

  <send>
    <![CDATA[

      SIP/2.0 200 OK
      [last_Via:]
      [last_From:]
      [last_To:];tag=[call_number]
      [last_Call-ID:]
      [last_CSeq:]
      Contact: sip:sipp@[local_ip]:[local_port]
      Content-Type: application/sdp
      Content-Length: [len]
      Allow: INVITE, UPDATE, ACK, BYE

      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 4004 RTP/AVP 0 111
      a=rtpmap:0 PCMU/8000
      a=rtpmap:111 telephone-event/8000
      a=fmtp:111 0-15

    ]]>
  </send>

  <pause milliseconds="2000"/>

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

      SIP/2.0 200 OK
      Via[$6]
      [last_From:]
      [last_To:];tag=[call_number]
      [last_Call-ID:]
      CSeq[$7]
      Contact: sip:sipp@[local_ip]:[local_port]
      Content-Type: application/sdp
      Content-Length: [len]
      Allow: INVITE, UPDATE, ACK, BYE

      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 4004 RTP/AVP 0 111
      a=rtpmap:0 PCMU/8000
      a=rtpmap:111 telephone-event/8000
      a=fmtp:111 0-15

    ]]>
  </send>

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

  <pause milliseconds="2000"/>
  
  <send retrans="500">
    <![CDATA[

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

    ]]>
  </send>

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

  <!-- 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>

