At 03:06 PM 10/8/2003, Yang Xiang wrote:
Hi,
a user, we say yang, is registered from different locations, therefor there are multiple contacts in the location table like this:
aor : 'yang@domain' Contact: 'sip:10.20.0.100:5060' q: 1.00
aor :'yang@domain' Contact: 'sip:192.44.30.122:16621' q: 0.00
I have configured SER as following:
if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; if (!uri=~"^sip:(.+@)?(10\.20\.).*") { forward("192.168.252.2"); break; }; t_relay();
That says the INVITE should be forwarded to an outbound proxy 192.168.252.2 if the user is not located in our internal network, e.g. 10.20.0.0/24. However, the Request-URI will be overwritten with the highest-q rated contact, in this case with the contact 'sip:10.20.0.100:5060' and the if-block will be skiped. This induces the INVITE to 'sip:192.44.30.122:16621' will be also directly sent but not via our outbound proxy 192.168.252.2, what means the messages will be discarded by the firewall.
Is there any chance to resolve this problem?
If the proxy which you use as outbound has the capability to get over firewall, why don't you use it as opposed to having yet another proxy? It seems to me a fairly unsafe idea to accept registration from places which can't be reached.
-jiri