pjsip-pjproject/tests/pjsua/scripts-sipp/uas-forked-100rel.xml

226 lines
5.4 KiB
XML

<?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="Forked INVITE, one of them require PRACK">
<recv request="INVITE" crlf="true">
<action>
<ereg regexp="branch=([^;]*)"
search_in="hdr"
header="Via"
assign_to="1,2"/>
<assign assign_to="1" variable="2"/>
<ereg regexp="CSeq: [ 0-9A-Z]+"
search_in="msg"
assign_to="4"/>
</action>
</recv>
<send>
<![CDATA[
SIP/2.0 100 Trying
[last_Via:]
[last_From:]
[last_To:]
[last_Call-ID:]
[$4]
]]>
</send>
<!-- Call leg 1 sends 180/Ringing -->
<send retrans="500">
<![CDATA[
SIP/2.0 180 Ringing1
Via: SIP/2.0/UDP 127.0.0.1;received=127.0.0.1;branch=[$2]
[last_From:]
[last_To:];tag=UA_1
[last_Call-ID:]
[$4]
Contact: <sip:UA_1@[local_ip]:[local_port]>
Require: 100rel
RSeq: 1000
Content-Length: 0
]]>
</send>
<recv request="PRACK" crlf="true">
</recv>
<send>
<![CDATA[
SIP/2.0 200 OK
[last_Via:]
[last_From:]
[last_To:]
[last_Call-ID:]
[last_CSeq:]
]]>
</send>
<pause milliseconds="2000" />
<!-- Call leg 2: 180/Ringing -->
<send retrans="500">
<![CDATA[
SIP/2.0 180 Ringing2
Via: SIP/2.0/UDP 127.0.0.1;received=127.0.0.1;branch=[$2]
[last_From:]
[last_To:];tag=UA_2
[last_Call-ID:]
[$4]
Contact: <sip:UA_2@[local_ip]:[local_port]>
Require: 100rel
RSeq: 2000
Content-Length: 0
]]>
</send>
<recv request="PRACK" crlf="true">
</recv>
<send>
<![CDATA[
SIP/2.0 200 OK
[last_Via:]
[last_From:]
[last_To:]
[last_Call-ID:]
[last_CSeq:]
]]>
</send>
<pause milliseconds="2000" />
<!-- Call leg 2: sends Ringing again with correct RSeq -->
<send retrans="500">
<![CDATA[
SIP/2.0 180 Ringing2b
Via: SIP/2.0/UDP 127.0.0.1;received=127.0.0.1;branch=[$2]
[last_From:]
[last_To:];tag=UA_2
[last_Call-ID:]
[$4]
Contact: <sip:UA_2@[local_ip]:[local_port]>
Require: 100rel
RSeq: 2001
Content-Length: 0
]]>
</send>
<recv request="PRACK" crlf="true">
</recv>
<send>
<![CDATA[
SIP/2.0 200 OK
[last_Via:]
[last_From:]
[last_To:]
[last_Call-ID:]
[last_CSeq:]
]]>
</send>
<pause milliseconds="2000" />
<!-- Call leg 2: sends Ringing again with WRONG RSeq. There should be no PRACK -->
<send>
<![CDATA[
SIP/2.0 180 Ringing2c
Via: SIP/2.0/UDP 127.0.0.1;received=127.0.0.1;branch=[$2]
[last_From:]
[last_To:];tag=UA_2
[last_Call-ID:]
[$4]
Contact: <sip:UA_2@[local_ip]:[local_port]>
Require: 100rel
RSeq: 2004
Content-Length: 0
]]>
</send>
<pause milliseconds="2000" />
<!-- Then Call leg 1 sends 180/Ringing again -->
<send retrans="500">
<![CDATA[
SIP/2.0 180 Ringing1b
Via: SIP/2.0/UDP 127.0.0.1;received=127.0.0.1;branch=[$2]
[last_From:]
[last_To:];tag=UA_1
[last_Call-ID:]
[$4]
Contact: <sip:UA_1@[local_ip]:[local_port]>
Require: 100rel
RSeq: 1001
Content-Length: 0
]]>
</send>
<recv request="PRACK" crlf="true">
</recv>
<send>
<![CDATA[
SIP/2.0 200 OK
[last_Via:]
[last_From:]
[last_To:]
[last_Call-ID:]
[last_CSeq:]
]]>
</send>
<pause milliseconds="2000" />
<!-- 603/Decline -->
<send>
<![CDATA[
SIP/2.0 603 Decline
Via: SIP/2.0/UDP 127.0.0.1;received=127.0.0.1;rport=5080;branch=[$2]
[last_From:]
[last_To:];tag=UA_1
[last_Call-ID:]
[$4]
Content-Length: 0
]]>
</send>
<!-- Receive 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>