This is quite tough to achieve, try save_noreply("location") instead of save("location") on the transparent proxy. Alternative is to look at the path module and PATH extension in SIP.
Cheers, Daniel
On 10/13/06 10:51, Lindsey Hans Joseph Lao wrote:
Hello Daniel,
Yes, the authentication happens in the registrar. Basically, this is what I wanted to happen:
client's sip phone is only configured with the registrar's IP. we are deploying openser as a transparent proxy (since client does not know sip traffic is routed to a proxy with only the registrar's IP configured in their sip phone) and as an application level gateway (since we intend that private IP to public IP translation happens in the openser proxy). Unfortunately, fix_nated_contact and fix_nated_register won't work which led me to use subst function from textops module. I only need to save userlocation in the Openser proxy since it will be used to route calls for clients behind NAT.
I am able to save userlocation in openser. However, registration does not complete in the registrar side. The registrar responds with a 401 Unauthoriezed message and my client/proxy no longer responds with a register message containing credentials, thus no completing the register process. I tried placing a save("location") in my onreply route but it won't allow me. Can you help me on this?
Best Regards, Hans
Daniel-Constantin Mierla wrote:
On 10/12/06 09:41, Lindsey Hans Joseph Lao wrote:
Hello,
I currently have this setup
client --> (private interface) OpenSER (public interface) --> registrar (public)
In this scenario, I am configuring OpenSER to function as an application level gateway and at the same time a proxy server. I was able to successfully manipulate the contact headers thru textops module such a way that the IP registering in the registrar is the public one. NAThelper's fix_nated_contact and fix_nated_register won't work. No idea why... What I want to happen is that registration requests from the client would register with OpenSER (save in userlocation) and also register with the registrar, is there a way to do this?
it is possible, who is doing the authentication? the registrar? In this case is is a bit complicated and you may need to do some development, because you will have to take care of the replies to REGISTERs, if they are not 200OK you have to remove the contact from OpenSER. You can use save_noreply() in OpenSER not to sent the reply.
Cheers, Daniel
I'm using this script in the my proxy server such that if the destination uri is not intended for my proxy, it would substitute the contact headers and save it in "location" then relay the register request to its destination:
lookup("aliases"); if(uri != myself) { if(is_method("REGISTER")) { append_hf("P-hint: Registration applied\r\n");
subst('/Contact:(.*)sip:(.*)@(.*)/Contact:sip:\1@10.3.2.38:5060/ig');
save("location"); t_relay(); exit; };
My problem is I am able to log in (i'm using xlite softphone) but upon checking the sip messages, it shows an 401 unauthorized message response from the server. Can anyone help me on this?
Thanks much! Hans