Hi,
I am currently testing a SIPp scenario and I am experiencing problems
with rrs=true and next=... when receiving optional responses. You can
find the relevant parts of the scenario below.
In my scenario I want to consider some "exceptional" cases, for example
a 480 response to an INVITE request. After receiving such a response I
want to end the SIP dialog in a proper way, in this case by sending an
ACK message.
Now the problem is that this ACK message (at label #12) is never sent
(it is skipped without any error message!) as soon as I use either
[next_url] or [routes]. Unfortunately I have to use both keywords, since
all SIP messages have to be routed via a proxy.
The other ACK message in the scenario (at label #9) also uses the
keywords [next_url] and [routes], but it is processed and sent flawlessly.
Could somebody tell me why the ACK message at label #12 is not sent at
all and there is no error message? (Yes, the message is not sent for
sure, I traced the SIP messages using Wireshark.)
It seems to me as if SIPp is unable to process [next_url] and [routes]
if rrs=true is used in conjunction with next=... when receiving an
optional response. Is this behavior by design or is it a bug?
Any suggestions how I could properly end the SIP dialog in this case?
Bye,
Andreas Winkelbauer
<?xml version="1.0" encoding="ISO-8859-1" ?>
<scenario name="swkn sipp scenario">
<label id="5" />
<send retrans="500">
<![CDATA[
INVITE sip:[field5] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: "[field3]" <sip:[fiel...@[field0]>;tag=[call_number]
To: "[field4]" <sip:[field5]>
Contact: <sip:[fiel...@[local_ip]:[local_port]>
Call-ID: [call_id]
CSeq: [cseq] INVITE
Max-Forwards: 70
User-Agent: [field6]
Content-Type: application/sdp
Content-Length: [len]
... SDP ...
]]>
</send>
<!-- consider exceptional cases -->
...
<recv response="480" optional="true" next="12" rrs="true">
<action>
<exec command="echo Error: ...>> sipp.log" />
</action>
</recv>
...
<!-- receive 100 trying (optional) -->
<label id="6" />
<recv response="100" optional="true" rrs="true">
</recv>
<!-- receive 180 ringing (optional) -->
<label id="7" />
<recv response="180" optional="true" rrs="true">
</recv>
<!-- receive 200 OK -->
<label id="8" />
<recv response="200" rrs="true">
</recv>
<!-- send ACK -->
<label id="9" />
<send>
<![CDATA[
ACK [next_url] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: "[field3]" <sip:[fiel...@[field0]>;tag=[call_number]
To: "[field4]" <sip:[field5]>[peer_tag_param]
Contact: <sip:[fiel...@[local_ip]:[local_port]>
[routes]
Call-ID: [call_id]
CSeq: [cseq] ACK
Max-Forwards: 70
User-Agent: [field6]
Content-Length: 0
]]>
</send>
... play pcap files ...
<!-- send BYE -->
<label id="10" />
<send retrans="500">
<![CDATA[
BYE [next_url] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: "[field3]" <sip:[fiel...@[field0]>;tag=[call_number]
To: "[field4]" <sip:[field5]>[peer_tag_param]
Contact: <sip:[fiel...@[local_ip]:[local_port]>
[routes]
Call-ID: [call_id]
CSeq: [cseq] BYE
Max-Forwards: 70
User-Agent: [field6]
Content-Length: 0
]]>
</send>
<!-- receive 200 OK -->
<label id="11" />
<recv response="200" next="13">
</recv>
<!-- send ACK -->
<!-- ERROR: this message is never sent! -->
<label id="12" />
<send>
<![CDATA[
ACK [next_url] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: "[field3]" <sip:[fiel...@[field0]>;tag=[call_number]
To: "[field4]" <sip:[field5]>[peer_tag_param]
Contact: <sip:[fiel...@[local_ip]:[local_port]>
[routes]
Call-ID: [call_id]
CSeq: [cseq] ACK
Max-Forwards: 70
User-Agent: [field6]
Content-Length: 0
]]>
</send>
<label id="13" />
</scenario>
------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB
_______________________________________________
Sipp-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sipp-users