Hello,
On 9/21/12 10:38 AM, jh@tutpro.com wrote:
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.
when there is double record-routing, the second is used to detect outgoing socket, because it is the case of transport layer bridging. Otherwise, for example, udp-tcp conversion will not work transparently and send sockets would need to be forced manually.
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).
Via headers are for replies, which should go back through the same path as the request, so it might break you case, because there will be two Vias with the dispatcher IP.
It looks a bit strange for me that you add Record-Route to dispatcher and then you want the proxy to consume the Routes, but I don't know what you want to achieve. If there will be no transport layer bridging, so no double record routing, all should go fine. Actually all should go fine anyway, just a warning message is printed because loose routing is expecting a local socket on double Route headers.
Cheers, Daniel