At 12:35 AM 2/4/2003, Maxim Sobolev wrote: [...]
t_on_negative() looks like a pretty suitable feature for the job modulo that we need to add some scheme for distinguishing real failures, such as "number is busy", from transient ones.
Agreed. Actually, it was created with such scenarios in mind.
[...]
it is where the problem lies - after appending a new branch ser forwards the request to the host:port specified in the uri directly, but not through the b2bua.
Understood.
Attached patch adds a new variable sticky_relay_to, which if set to non-zero value instructs ser to record proxy address to which transaction was originally forwarded with t_relay_to(). On failure ser forwards request to that address if another branch was appended in reply_route[].
I think that it is generally useful feature and it would be nice to see it integrated into the next release.
I'm too coffeinized right now to review the patch thoroughly -- but would not it be just simpler to _always_ keep forwarding to original destination if t_relay_to was used and to uri if t_relay was used? (i.e. sticky==always_true)
Whichever way we go, it deserves to be fixed.
-Jiri