Hi,
  Consider the following scenario ( proxies between UAC and UAS are not shown)
  UAC                                                 UAS
                               INVITE
  |-------------------------------------------->|
                          180
  |<--------------------------------------------|
        first 200 OK with record route1
  |<--------------------------------------------|
              ACK with route set1
  |----------------------------------------------->|
         retransmitted 200 OK with record route2
  |<------------------------------------------------|
  retransmitted ACK with route set = route set1 or route set2 ??
  |--------------------------------------------------->|
   
  The retransmitted 200 OK is same as the first 200 OK except it differs in 
record route. This might be due to the fact that retransmitted 200 OK has 
traced the path different from the first 200 OK. I have following queries 
related to this issue.
  1) Is it possible for the retransmitted 200 OK to have a different Record - 
route than that of the first 200 OK i.e, can retransmitted 200 OK trace a path 
that is different from the one the first 200 OK had traced ??
  Some info: section 16.7.8 of RFC 3261 says the following:
  If the selected response contains a Record-Route header field value 
originally provided by this proxy,
  the proxy MAY choose to rewrite the value before forwarding the response. 
This allows the proxy to
  provide different URIs for itself to the next upstream and downstream 
elements. A proxy may choose
  to use this mechanism for any reason. For instance, it is useful for 
multi-homed hosts.
  Here is it only for the first response or is it also valid for the 
retransmitted responses??
   
  2) If the scenario of (1) is possible then should the ACK be recomputed with 
different route set before sending it to its peer??
  Some info: 
  (i) RFC 3261 section 13.2.2.4 quotes:
  "Once the ACK has been constructed, the procedures of [4] are used to
  determine the destination address, port and transport. However, the
  request is passed to the transport layer directly for transmission,
  rather than a client transaction. This is because the UAC core
  handles retransmissions of the ACK, not the transaction layer. The
  ACK MUST be passed to the client transport every time a
  retransmission of the 2xx final response that triggered the ACK
  arrives. 
  The UAC core considers the INVITE transaction completed 64*T1 seconds
  after the reception of the first 2xx response."
   
  Here it mentions about the retransmission but not about recomputation of ACK 
with new Route set. 
   
  (ii)RFC 3261 section 13.2.2.4 quotes:
  If the dialog identifier in the 2xx response matches the dialog identifier of 
an existing dialog, the dialog
  MUST be transitioned to the "confirmed" state, and the route set for the 
dialog MUST be recomputed based
  on the 2xx response using the procedures of Section 12.2.1. Otherwise, a new 
dialog in the "confirmed"
  state MUST be constructed using the procedures of Section 12.1.2.
   
  I hope this is only for first 2xx received or for the forked 2xx. Is it valid 
for retransmitted 2xx also??
   
  Let me know if further clarification is desired.
   
  Thanks in advance,
  Praveen

       
---------------------------------
 Share files, take polls, and discuss your passions - all under one roof.  
Click here.
_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to