On 14/04/14 11:59, Juha Heinanen wrote:
i called t_newtran() also when request came from proxy itself and after that $ru was aor, not contact uri, in branch-failure route also during the second iteration.
so somehow calling t_newtran() before t_relay() breaks branch-failure route. it would be nice to get it fixed.
t_newtran() before t_relay() doesn't break branch-failure. The fact is that branch-failure is executed with the sip request from the moment when transaction is created.
In your case, for first iteration of request, the transaction is created by t_newtran() having the aor in r-uri. For second iteration, looped request, the transaction is created by t_relay(), after location lookup, thus r-uri is the contact of the target.
The fix (or a new option to run if the current behavior was wanted by developer) is to run branch-failure with the attributes from outgoing request of the branch (not the incoming request, as it is now).
Hope is more clear now.
Daniel