> 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
