Juha Heinanen schrieb:
Klaus Darilion writes:
It is not possible to detect if a reply comes
from a proxy or not.
klaus,
yes, but the two via test tells that ua is not taking directly to this
sr instance and i thus don't need to care about it.
could add the alias anyway and handle the problem
in "handle_alias": If
alias parameter is removed from RURI (in-dialog request), set $du only
if it was not already set by loose_route().
i first thought to add the $du test, but looks like the via test makes
it unnecessary. however, loose_route() may be key to solving the reply
problem: if loose_route() sets $du, it means that next hop is another
proxy. then it is possible to set TO_PROXY flag and test it
onreply_route. right?
yes, but only in in-dialog requests.
In my setups currently I do the NAT decision in first request processing
and store the result in a RR-cookie. in-dialog NAT handling is purely
done on RR-cookie. RR-cookie defines if NAT handling is done for caller,
callee or both.
Regarding NAT-detection my decision algorithm is simple and pragmatic:
if request comes from a local account (is_from_local()), then the caller
will be marked for NAT traversal (regardless if behind NAT or not.
Further, target will be analysed and calls to local users will be
NAT-handled.
regards
klaus
I think the functions are great to have, but
would like different naming
(either have "alias" always at the beginning or at the end of the
function name).
e.g: add_alias(), handle_alias()
i can change the names. thanks for helping out on this.
-- juha