Hi Paul,
simply do what the error message asks you to do. A chain of |<recv>|
with |optional=true| has to be followed by at least a single |<recv>|
without |optional=true|.
So the result would be
|<label id="wait_for_something"/>||
|
|<recv request="INVITE" optional="true" next="respond_reINVITE"/>||
||||
||<recv request="BYE" timeout="300000" ontimeout="send_own_BYE"/>||
||||
||<send next="scenario_end"> |
| <![CDATA[|
||
|
|| SIP/2.0 200 OK|
||
| ...|
||
| ]]>|
||
|</send>||
||||
||<label id="respond_reINVITE"/>||
||||
||<send> |
| <![CDATA[|
||
|
|| SIP/2.0 200 OK|
||
| ...|
||
| ]]>|
||
|</send>||
|
|||
||<recv request="ACK" next="wait_for_something"/>||
||||
||<label id="send_own_BYE"/>||
||||
||<send> |
| <![CDATA[|
||
|
|| BYE [$received-contact-uri] SIP/2.0||
|
||
| ...|
||
| ]]>|
||
|</send>||
|
|||
||<recv response="481" optional="true" next="scenario_end"/>||
||||
||<recv response="200"/>||
||||
||<label id="scenario_end"/>||
||||
||</scenario>|
P.
Dne 10.10.2016 v 16:20 Paul van den IJssel napsal(a):
Hi,
I can't figure out why my UAC script keeps returning the same error
message: " :<recv> before <send> sequence without a mandatory message.
Please remove one 'optional=true' (element 25)..".
Scenario description:
The UAC scenario sends an INVITE to an IVR, a pcap is played and
option 1 is selected in the IVR. After this the PBX (Avaya) fires off
5 reINVITEs. After these 5 reINVITEs the call is put in a queue. Call
#1 is answered by the agent and after a few seconds the agent
terminates the call. If for some reason the UAC doesn't receive a BYE
from the UAS there is a timeout that triggers the UAC to send a BYE.
If all agents are busy the calls in the queue receive Music on Hold
and an annunciated message. For this the UAS sends 1 or multiple
reINVITEs to the UAC. The number of reINVITEs depends on the queue
depth. So either an incoming receives the standard 5 reINVITEs or more
(6, 7, 8.. I don't know..). I tried to solve this with 'optional',
'next' and 'label id' configuration option, as seen below. But if I
start the SIPp scenario I get an error saying: "2016-10-10
16:16:13.343168 1476108973.343168: <recv> before <send> sequence
without a mandatory message. Please remove one 'optional=true'
(element 25)..".
Anybody any idea how to get this loop to work?
Regards, Paul
-----------------------------------------------------
looping part of UAC scenario:
-----------------------------------------------------
<!-- #6 RE-INVITE and response loop -->
<label id="10"/>
<recv request="INVITE" rrs="true" optional="true" next="11">
</recv>
<send retrans="500">
<![CDATA[
SIP/2.0 200 OK
...
]]>
</send>
<recv request="ACK" rrs="true" crlf="true" next="10">
</recv>
<recv request="BYE" timeout="300000" ontimeout="2" next="3">
</recv>
-----------------------------------------------------
Flow graph between UAC and UAS:
-----------------------------------------------------
[UAC] <------------------> [UAS]
INVITE ---------->
100 <----------
183 <----------
200 <----------
ACK ---------->
Pause [ 20.0s]
[ NOP ]
INVITE <---------- (reINVITE #1)
200 ---------->
ACK <----------
INVITE <---------- (reINVITE #2)
200 ---------->
ACK <----------
INVITE <---------- (reINVITE #3)
200 ---------->
ACK <----------
INVITE <---------- (reINVITE #4)
200 ---------->
ACK <----------
INVITE <---------- (reINVITE #5)
200 ---------->
ACK <----------
INVITE <---------- (optional reINVITE)
200 ---------->
ACK <----------
BYE <----------
BYE ---------->
200 <----------
200 ---------->
-----------------------------------------------------
UAC Scenario:
-----------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<scenario name="UAC with media">
<send retrans="500">
<![CDATA[
INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: sipp
<sip:[field0]@[local_ip]:[local_port]>;tag=[pid]SIPpTag09[call_number]
To: sut <sip:[service]@[remote_ip]:[remote_port]>
Call-ID: [call_id]
CSeq: 1 INVITE
Contact: sip:[field0]@[local_ip]:[local_port]
Max-Forwards: 70
P-Asserted-Identity: <sip:[service]@[remote_ip]:[remote_port]>
Subject: Performance Test
Content-Type: application/sdp
Content-Length: [len]
v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=-
c=IN IP[local_ip_type] [local_ip]
t=0 0
m=audio [auto_media_port] RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-11,16
]]>
</send>
<recv response="100" optional="true" rrs="true">
</recv>
<recv response="183" optional="true" rrs="true">
</recv>
<recv response="200" rrs="true" rtd="true" >
</recv>
<send>
<![CDATA[
ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0
[routes]
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: sipp
<sip:[field0]@[local_ip]:[local_port]>;tag=[pid]SIPpTag09[call_number]
To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
Call-ID: [call_id]
CSeq: 1 ACK
Contact: sip:[field0]@[local_ip]:[local_port]
Max-Forwards: 70
P-Asserted-Identity: <sip:[service]@[remote_ip]:[remote_port]>
Subject: Performance Test
Content-Length: 0
]]>
</send>
<pause milliseconds="20000"/>
<!-- Play a pre-recorded PCAP file (RTP stream) -->
<nop>
<action>
<exec
play_pcap_audio="/usr/local/etc/sipp-3.3.990/pcap/dtmf_2833_1.pcap"/>
</action>
</nop>
<!-- #1 RE-INVITE and response -->
<recv request="INVITE" rrs="true">
</recv>
<send retrans="500">
<![CDATA[
SIP/2.0 200 OK
[last_Record-Route:]
[last_Via:]
[last_From:]
[last_To:];tag=[pid]SIPpTag01[call_number]
[last_Call-ID:]
[last_CSeq:]
Contact: <sip:[field0]@[local_ip]:[local_port]>
Content-Type: application/sdp
Content-Length: [len]
v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=-
c=IN IP[media_ip_type] 0.0.0.0
t=0 0
m=audio [media_port] RTP/AVP 8
a=ptime:20
]]>
</send>
<recv request="ACK" rrs="true" crlf="true">
</recv>
<!-- #2 RE-INVITE and response -->
<recv request="INVITE" rrs="true">
</recv>
<send retrans="500">
<![CDATA[
SIP/2.0 200 OK
[last_Record-Route:]
[last_Via:]
[last_From:]
[last_To:];tag=[pid]SIPpTag01[call_number]
[last_Call-ID:]
[last_CSeq:]
Contact: <sip:[field0]@[local_ip]:5060>
Content-Type: application/sdp
Content-Length: [len]
v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=-
c=IN IP[media_ip_type] [media_ip]
t=0 0
m=audio [media_port] RTP/AVP 8
a=ptime:20
]]>
</send>
<recv request="ACK" rtd="true" crlf="true">
</recv>
<!-- #3 RE-INVITE and response -->
<recv request="INVITE" rrs="true">
</recv>
<send retrans="500">
<![CDATA[
SIP/2.0 200 OK
[last_Record-Route:]
[last_Via:]
[last_From:]
[last_To:];tag=[pid]SIPpTag01[call_number]
[last_Call-ID:]
[last_CSeq:]
Contact: <sip:[field0]@[local_ip]:[local_port]>
Content-Type: application/sdp
Content-Length: [len]
v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=-
c=IN IP[media_ip_type] 0.0.0.0
t=0 0
m=audio [media_port] RTP/AVP 8
a=ptime:20
]]>
</send>
<recv request="ACK" rrs="true" crlf="true">
</recv>
<!-- #4 RE-INVITE and response -->
<recv request="INVITE" rrs="true">
</recv>
<send retrans="500">
<![CDATA[
SIP/2.0 200 OK
[last_Record-Route:]
[last_Via:]
[last_From:]
[last_To:];tag=[pid]SIPpTag01[call_number]
[last_Call-ID:]
[last_CSeq:]
Contact: <sip:[field0]@[local_ip]:[local_port]>
Content-Type: application/sdp
Content-Length: [len]
v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=-
c=IN IP[media_ip_type] 0.0.0.0
t=0 0
m=audio [media_port] RTP/AVP 8
a=ptime:20
]]>
</send>
<recv request="ACK" rrs="true" crlf="true">
</recv>
<!-- #5 RE-INVITE and response -->
<recv request="INVITE" rrs="true">
</recv>
<send retrans="500">
<![CDATA[
SIP/2.0 200 OK
[last_Record-Route:]
[last_Via:]
[last_From:]
[last_To:];tag=[pid]SIPpTag01[call_number]
[last_Call-ID:]
[last_CSeq:]
Contact: <sip:[field0]@[local_ip]:[local_port]>
Content-Type: application/sdp
Content-Length: [len]
v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=-
c=IN IP[media_ip_type] 0.0.0.0
t=0 0
m=audio [media_port] RTP/AVP 8
a=ptime:20
]]>
</send>
<recv request="ACK" rrs="true" crlf="true">
</recv>
<!-- #6 RE-INVITE and response loop -->
<label id="10"/>
<recv request="INVITE" rrs="true" optional="true" next="11">
</recv>
<send retrans="500">
<![CDATA[
SIP/2.0 200 OK
[last_Record-Route:]
[last_Via:]
[last_From:]
[last_To:];tag=[pid]SIPpTag01[call_number]
[last_Call-ID:]
[last_CSeq:]
Contact: <sip:[field0]@[local_ip]:[local_port]>
Content-Type: application/sdp
Content-Length: [len]
v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=-
c=IN IP[media_ip_type] 0.0.0.0
t=0 0
m=audio [media_port] RTP/AVP 8
a=ptime:20
]]>
</send>
<recv request="ACK" rrs="true" crlf="true" next="10">
</recv>
<recv request="BYE" timeout="300000" ontimeout="2" next="3">
</recv>
<label id="2"/>
<send retrans="500">
<![CDATA[
BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
[routes]
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: sipp
<sip:[field0]@[local_ip]:[local_port]>;tag=[pid]SIPpTag09[call_number]
To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
Call-ID: [call_id]
CSeq: 2 BYE
Contact: sip:[field0]@[local_ip]:[local_port]
Max-Forwards: 70
P-Asserted-Identity: <sip:[service]@[remote_ip]:[remote_port]>
Subject: Performance Test
Content-Length: 0
]]>
</send>
<recv response="200" crlf="true" next="4">
</recv>
<label id="3"/>
<send>
<![CDATA[
SIP/2.0 200 OK
[last_To:]
[last_From:]
[last_Call-ID:]
[last_CSeq:]
[last_Via:]
Content-Length: 0
]]>
</send>
<label id="4"/>
<!-- 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>
-----------------------------------------------------
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Sipp-users mailing list
Sipp-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sipp-users
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Sipp-users mailing list
Sipp-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sipp-users