why does loose_route() not find the first alias?
loose_route() matches the alias as being local (myself condition), but there is no relation between aliases and sockets, so searching a soket using an alias value does not work.
ok, but i don't understand what loose_route() has to do with sockets at all. it should just check if the topmost one or two route uris match itself, and if they do, remove them from the set and then possibly set $du from the next route uri (if any). it is then t_relay that needs to worry about sockets.
The advertise for listen does what you need, if it fits in what you try to achieve:
listen=IP1 advertise IP2
If Route has IP2 then the socket IP1 is used for relaying.
i'll give it a try, but i'm worried about via changes.
the situation is such that proxy behind dispatched should be able to execute loose_route() without errors when one or two topmost route headers match ip and port of the dispatcher (not those of the proxy itself).
-- juha