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

<scenario name="Authorization retry after 1xx response test">
  <!-- Wait for INVITE request -->
  <recv request="INVITE" crlf="true">
  </recv>

  <!-- Send 100 Trying -->
  <send>
    <![CDATA[

      SIP/2.0 100 Trying
      [last_Via:]
      [last_From:]
      [last_To:]
      [last_Call-ID:]
      [last_CSeq:]
    ]]>
  </send>

  <!-- Send 180 Ringing (with tag) -->
  <send>
    <![CDATA[

      SIP/2.0 180 Ringing
      [last_Via:]
      [last_From:]
      [last_To:];tag=[call_number]
      [last_Call-ID:]
      [last_CSeq:]
    ]]>
  </send>

  <!-- Send 401 Unauthorized -->
  <send retrans="500">
    <![CDATA[

      SIP/2.0 401 Unauthorized
      [last_Via:]
      [last_From:]
      [last_To:];tag=[call_number]
      [last_Call-ID:]
      [last_CSeq:]
      WWW-Authenticate: Digest realm="sipp", nonce="1234"
      Content-Length: 0
    ]]>
  </send>

  <!-- Wait for ACK -->
  <recv request="ACK"
        optional="false"
        rtd="true"
        crlf="true">
  </recv>

  <!-- Wait for INVITE retransmission -->
  <recv request="INVITE" crlf="true">
  </recv>

  <!-- Send 500 Test Success to terminate the call -->
  <send retrans="500">
    <![CDATA[

      SIP/2.0 500 Test Success
      [last_Via:]
      [last_From:]
      [last_To:];tag=[call_number]
      [last_Call-ID:]
      [last_CSeq:]
      Content-Length: 0
    ]]>
  </send>

  <!-- Wait for ACK -->
  <recv request="ACK"
        optional="false"
        rtd="true"
        crlf="true">
  </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>

