> Since RFC gives first reliable response special treatment 
> (due to initial RSeq value).
> Can we say:
> If first reliable response of a dialog is not acknowledged 
> then we can't send any provisional/final response to UAC 
> even if they are part of different dialog.

No.  If a proxy forks a request from A to B and C, how would C know if B had or 
had not sent a reliable provisional response?  It can't; thus you shouldn't try 
to impose such behavior upon a B2BUA "proxying" 18x responses for different 
dialogs.

However since you mention final responses, there is special treatment for a 2xx 
response within an existing dialog.

"The UAS MAY send a final response to the initial request before
 having received PRACKs for all unacknowledged reliable provisional
 responses, unless the final response is 2xx and any of the
 unacknowledged reliable provisional responses contained a session
 description.  In that case, it MUST NOT send a final response until
 those provisional responses are acknowledged."

"If the UAS had placed a session description in any reliable
 provisional response that is unacknowledged when the INVITE is
 accepted, the UAS MUST delay sending the 2xx until the provisional
 response is acknowledged.  Otherwise, the reliability of the 1xx
 cannot be guaranteed, and reliability is needed for proper operation
 of the offer/answer exchange."

<snip>
 
> Another question:
> When we say reliable responses are acknowledged then do we 
> just meant PRACK or PRACK & its 200OK ?

>From a UAS perspective, receiving the expected PRACK means that you received 
>acknowledgement that the reliable response was received.

Since you mentioned 200 instead of 2xx... the following are two important 
quotes; however their interpretation is still being debated since tables 1 and 
2 and RFC 3261 indicate many more potential status codes. :)

"PRACK is like any other request within a dialog, and the UAS core processes it 
according to the procedures of Sections 8.2 and 12.2.2 of RFC 3261."

"If a PRACK request is received by the UA core that does not match any
 unacknowledged reliable provisional response, the UAS MUST respond to
 the PRACK with a 481 response.  If the PRACK does match an
 unacknowledged reliable provisional response, it MUST be responded to
 with a 2xx response.  The UAS can be certain at this point that the
 provisional response has been received in order.  It SHOULD cease
 retransmissions of the reliable provisional response, and MUST remove
 it from the list of unacknowledged provisional responses."

_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to