[Serusers] 2 questions regarding user location

Greger V. Teigre greger at teigre.com
Thu Jun 29 07:59:52 CEST 2006


Yes, and it should if the source ip:port is different from the contact 
ip:port (client_nat_test("1")). However, the OK to the REGISTER is 
generated by SER (by save()) and will not go through the onreply 
route.Maybe you could create a SIP (ngrep) trace of the registration 
process?
g-)

Kyriakos wrote:
>
> Hello and thank you for the reply.
>
>  
>
> The thing is that in register block I use fix_nated_register but when 
> SER is sending back the 200 OK reply the routeblock for replies uses 
> fix_nated_contact  (I took this out of the getting started  05a 
> configuration for NAT handling).
>
>  
>
>  
>
>  
>
> route[2] {
>
>  
>
>   # -----------------------------------------------------------------
>
>   # REGISTER Message Handler
>
>   # ----------------------------------------------------------------
>
>    log (1,"route[2]:Register detected \n");
>
>   sl_send_reply("100", "Trying");
>
>  
>
>   if (!search("^Contact:[ ]*\*") && client_nat_test("7")) {
>
>      log (1,"route[2]:Caller is nated \n");
>
>     setflag(6);
>
>     fix_nated_register();
>
>     force_rport();
>
>   };
>
>  
>
>   if (!www_authorize("","subscriber")) {
>
>     log (1,"route[2]:Requesting credentials \n");
>
>     www_challenge("","0");
>
>     break;
>
>   };
>
>  
>
>   if (!check_to()) {
>
>     sl_send_reply("401", "Unauthorized");
>
>     break;
>
>   };
>
>  
>
>   consume_credentials();
>
>  
>
>   if (!save("location")) {
>
>     sl_reply_error();
>
>   };
>
> }
>
>  
>
>  
>
>  
>
> onreply_route[1] {
>
>  
>
>   log (1,"onreply route\n");
>
>   if ((isflagset(6) || isflagset(7)) && 
> (status=~"(180)|(183)|2[0-9][0-9]")) {
>
>  
>
>     if (!search("^Content-Length:[ ]*0")) {
>
>      
>
>      log (1,"onreply route:using media proxy\n");
>
>      use_media_proxy();
>
>     };
>
>   };
>
>  
>
>   if (client_nat_test("1")) {
>
>     log (1,"onreply route:fixing nat contact\n");
>
>    fix_nated_contact();
>
>   };
>
>  
>
>  
>
>  
>
> KM
>
> ------------------------------------------------------------------------
>
> *From:* Greger V. Teigre [mailto:greger at teigre.com]
> *Sent:* Wednesday, June 28, 2006 12:20 PM
> *To:* Kyriakos
> *Cc:* serusers at lists.iptel.org
> *Subject:* Re: [Serusers] 2 questions regarding user location
>
>  
>
>
>
> Kyriakos wrote:
>
> Hi,
>
>    I have two questions regarding  user location.
>
>  
>
> 1) Is there a way of getting the user location info for manipulating 
> it in ser.cfg ? Something like lookup but without rewriting anything. 
> Basically what I want to do is check if the caller and the caller are 
> NATed and belong to a certain same network then I should not use media 
> proxy. The criterion for the same network would be that both sides are 
> originating from the same  public ip.  Thus I would have to retrieve 
> the "received" field value for the calee  and compare it with the ip 
> contained in the contact header field of the caller in the INVITE . 
>    Perhaps there is also another way to do this?
>
> Not that I know of. However, cvs head has a new type of route where 
> you can access the actual destination ip and port.
>
>  
>
> 2) What happens when I have multiple phones registered under one user? 
> How lookup(location) works when I have more than one ips in location 
> table for the user? During tests I had a UA  behind NAT  registering 
> to SER with an ip assigned from the dhcp. After a while I had the UA 
> assigned a different ip from the dhcp and the Register on SER under 
> the same user name. The problem was that during registration SER would 
> respond back to the UA for requesting authorisation credentials but 
> when it was time to send the 200 OK message for registration , it 
> would send it only to the previous location of the UA and not the one 
> it sent the REGISTER message from with of course failure to register 
> because UA would not get the OK from SER. I noticed that in Contact 
> header of the 200 message there were more than one return ips (the old 
> one and the new one), Of course as soon as the old location timed out 
> the registration would go ok.
>
>  
>
> This has nothing to do with how location works. A new REGISTER should 
> not NOT hit lookup(location), so you have an error in your script. You 
> should run fix_nated_register() on the message. By default, SER will 
> respond to the rcvd address and not Contact if they are different.
> g-)
>
>  
>
>  
>
>  
>
> Thanks
>
> KM
>
>  
>
>  
>
>  
>
>  
>
>
> ------------------------------------------------------------------------
>
>
>  
> _______________________________________________
> Serusers mailing list
> Serusers at lists.iptel.org <mailto:Serusers at lists.iptel.org>
> http://lists.iptel.org/mailman/listinfo/serusers
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20060629/04d3243e/attachment.htm>


More information about the sr-users mailing list