Hi Dale and others who have responded,

Thanks for the response; the UPDATE does not contain any SDP as it is just for 
a display update as the call is picked up on another phone

As this behaviour is not covered by the RFCs we are between a rock and a hard 
place, however I can get the customer PBX to use a re-INVITE instead of an 
UPDATE, hopefully that will change things

Regards

-----Original Message-----
From: Dale R. Worley [mailto:wor...@ariadne.com] 
Sent: 14 September 2016 16:56
To: Harrison, Jason, Vodafone UK
Cc: sip-implementors@lists.cs.columbia.edu
Subject: Re: [Sip-implementors] Query on UAS sending 200 for INVITE before it 
receives a 200 for an UPDATE it sent

When looking at a race condition, it is always worth looking at RFC 5407 
("Example Call Flows of Race Conditions in SIP", often abbreviated to "Race 
Conditions in SIP" or even "Hasebe" in honor of the author).  That is the best 
collection of carefully analyzed race conditions.

I've added to your example notation of the offers and answers, because 
offer/answer processing often controls what is valud and what is not.

"Harrison, Jason, Vodafone UK" <jason.harri...@vodafone.com> writes:
> Hi,
>
> I have an issue and I can't identify if the behaviour is wrong:
>
> Here is a working call
> Provider               Customer
> SBC                        SBC
> INVITE (SDP offer 1)-->
> <--100 Trying
> <--180 Ringing (SDP answer 1)
> PRACK -->
> <-- 200OK (PRACK)
> <-- UPDATE (SDP offer 2)
> 200OK UPDATE (SDP answer 2) -->
> <--200OK (INVITE) (SDP answer 1)
> ACK -->
>
> And here is a failed call
> Provider               Customer
> SBC                        SBC
> INVITE (SDP offer 1) -->
> <--100 Trying
> <--180 Ringing (SDP answer 1)
> PRACK -->
> <-- 200OK (PRACK)
> <-- UPDATE (SDP offer 2)
> <--200OK (INVITE) (SDP answer 1)
> 200OK (UPDATE) (SDP answer 2) -->
> ACK -->
> BYE -->
> <--200OK (BYE)
>
> In the failed call I am being told by the provider that their SBC sent 
> a BYE because the 200OK for the INVITE was received before it managed 
> to send the 200OK for the UPDATE, I have checked the RFCs and can't 
> find if the customer SBC is breaking any rules by sending an 200OK for 
> the INVITE before it received a response for the UPDATE

This reasoning seems to be rediculous.  The Provider terminates the call 
because it receives one message before it has been able to process the previous 
message that it received?  The only way for the Customer to avoid that would be 
to send messages in lockstep, only sending one message after the response to 
the previous message had been received.

And for that matter, it is easy for the Provider to handle multiple incoming 
messages -- just postpone processing the new message until the previous message 
has been processed.

Dale
_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors

Reply via email to