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