225 lines
5.4 KiB
XML
225 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>
|
|
|