Hi, imagine a UAC sending a request that arrives to UAS from IP_A:port_A.

Later the UAC closes the TCP connection or UDP link and resend the *same* 
request (same "branch", "sent-by" and "method") from IP_B:port_B.

If UAC is behind NAT then "Via" "received" and "rport" parameters would be 
different in both identical requests.

Is it a valid retransmission? I think so since it respects the 3 points:

------------------------
 17.2.3 Matching Requests to Server Transactions
   The  request matches a transaction if:

      1. the branch parameter in the request is equal to the one in the
         top Via header field of the request that created the
         transaction, and

      2. the sent-by value in the top Via of the request is equal to the
         one in the request that created the transaction, and

      3. the method of the request matches the one that created the
         transaction, except for ACK, where the method of the request
         that created the transaction is INVITE.
------------------------


The problem is that the UAS transaction layer must reply with the last 
response for the original request, but this reply is not exactly the same 
since top Via can be different ("received" and "rport") so the reply would be 
modified before re-send. Also the socket to use is different.


Is it then a valid retransmission? Does any implementation consider this 
issue?

Thanks.





-- 
Iñaki Baz Castillo

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

Reply via email to