Subject: RE: [SIP] INVITE/200 OK/BYE or INVITE/200 OK/ACK/BYE?

From: Jonathan Rosenberg <[email-masked]>
Date: Wed, 22 Nov 2000 11:09:47 -0500

> -----Original Message-----
> From: Vijay Gurbani [mailto:[email-masked]]
> Sent: Wednesday, November 22, 2000 10:37 AM
> To: SIP LIST
> Subject: [SIP] INVITE/200 OK/BYE or INVITE/200 OK/ACK/BYE?
> 
> 
> Hi:
> 
> Assume a UAC sent an INVITE request which reached, through a 
> forking proxy, 
> to 2 UASes.  Both of those UASes send a 200 OK upstream.  The 
> UAC now gets 2
> 200 OKs and wants to talk to one and reject the other.
>  
> Based on some logic, the UAC decides to establish a session 
> with UAS 1, so 
> it sends it a ACK to UAS 1.
>  
> After sending an ACK to UAS 1, the UAC wants to reject UAS 2. 
>  Which is the 
> appropriate message flow:
>  
>    UAC         UAS 2
>    ACK--------->
>    BYE--------->
>    <---------- 200 OK (BYE)
>  
> OR:
>  
>    UAC         UAS 2
>    BYE--------->
>    <---------- 200 OK (BYE)
>  
> I believe the first flow is correct (bis, Section 4.2.4, "BYE": 
>    "A BYE request from either called or calling party 
> terminates any pending
>    INVITE at a UA, but the INVITE request MUST be completed 
> with a final 
>    response and ACK")

Correct. rfc2543 allowed you to skip the ACK. Bis mandates it. The reason is
funamental theorem number 13 of SIP, "all transactions complete independent
of any other transactions". This is needed in order to implement a
reasonable UA that separates low level transaction processing from higher
level call manipulations. Its also needed for sanity in proxies which are
transactional.

>  
> However, reading some of the postings I get the impression 
> that jives with 
> the second flow.
>  
> So, which is it?  
> 
> Could the bis draft include something in Section 16.5 
> "Forking Proxy" call 
> flows; especially where Bell gets two 200 responses from X 
> and Y.  The text 
> now says: "He can either send an ACK to both if human 
> intelligence is needed 
> to determine who he wants to talk to or he can automatically 
> reject one of 
> the two calls."  
>  
> It would be good if the text showed how to reject the other 
> call: by sending 
> an ACK immediately followed by a BYE (if first flow is 
> correct), or by 
> sending a BYE (if second flow is correct).

Thanks; we'll update.

-Jonathan R.
---
Jonathan D. Rosenberg                       72 Eagle Rock Ave.
Chief Scientist                             First Floor
dynamicsoft                                 East Hanover, NJ 07936
[email-masked]                     FAX:   (973) 952-5050
http://www.cs.columbia.edu/~jdrosen         PHONE: (973) 952-5000
http://www.dynamicsoft.com

_______________________________________________
SIP mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/sip