[Users] Routing to NATed gateways

Leonid Fainshtein LFAIN at boscom.com
Thu Nov 10 16:06:33 CET 2005


Great! 
Bogdan, you are genius! I'll try it.
Thank you very much!
Leonid

-----Original Message-----
From: Bogdan-Andrei Iancu [mailto:bogdan at voice-system.ro] 
Sent: Thursday, November 10, 2005 17:05
To: Leonid Fainshtein
Cc: users at openser.org
Subject: Re: [Users] Routing to NATed gateways

if you want to try the next gateway if lookup() fails, you may try to
simulate loops by recursive call of the same  route block.

regards,
bogdan

Leonid Fainshtein wrote:

>Hi Bogdan,
>Yes, it does. Please pay attention that the called number must be 
>restored in  branch_route[].
>Also, I still don't know what to do if lookup() fails (the gateway is 
>temporary down and therefore is not registered...) Any idea? Is it 
>planned to add loops possibility to  script language?
>
>Best regards,
>Leonid
>
>-----Original Message-----
>From: Bogdan-Andrei Iancu [mailto:bogdan at voice-system.ro]
>Sent: Thursday, November 10, 2005 15:36
>To: Leonid Fainshtein
>Cc: users at openser.org
>Subject: Re: [Users] Routing to NATed gateways
>
>Hi Leonid,
>
>does the logic solved your problem? on a first view, the script look
ok.
>regarding the failure of lookup(); you can stick to sending an error 
>reply or you can try the next gateway provided by LCR.
>
>regards,
>bogdan
>
>Leonid Fainshtein wrote:
>
>  
>
>>In other words, the simplified configuration may be as the following:
>>
>>   # Save original user name (the called phone number).
>>   avp_printf("$orig_called_num", "$rU");
>>   if (load_gws())
>>   {
>>       if (next_gw())
>>       {
>>          if (lookup("location")) 
>>          {
>>               avp_pushto("$ruri/username", "$orig_called_num");
>>               t_on_failure("2");
>>               route(x); # NAT and other usual staff there
>>               exit;
>>          }
>>          else 
>>          {
>>               xlog("L_INFO", "I have to think what to do in this 
>>situation.\n");
>>               sl_send_reply("404", "User Not Found");
>>          }
>>       }
>>   }
>>
>>failure_route[2]
>>{
>>   if (method=="INVITE" && t_check_status("408|500|503"))
>>   {
>>       if (!next_gw())
>>       {
>>           t_reply("503", "Service not available, no more gateways");
>>       }
>>       else
>>       {
>>           if (!lookup("location")) 
>>           {
>>               xlog("L_INFO", "I have to think what to do in this 
>>situation.\n");
>>               t_reply("503", "Service not available, no more 
>>gateways");
>>               exit;
>>           };
>>           t_on_failure("2");
>>           t_on_branch("2");
>>           t_relay();
>>       }
>>   }
>>}
>>
>>branch_route[2]
>>{
>>   avp_pushto("$ruri/username", "$orig_called_num");
>>}      
>>
>>Am I correct? Actually I don't know what to do if one of the gateways 
>>is off-line (lookup() failed).
>>
>>Best regards,
>>Leonid Fainshtein
>>-----Original Message-----
>>From: Bogdan-Andrei Iancu [mailto:bogdan at voice-system.ro]
>>Sent: Tuesday, November 08, 2005 5:30 PM
>>To: Leonid Fainshtein
>>Cc: users at openser.org
>>Subject: Re: [Users] Routing to NATed gateways
>>
>>Hi Leonid,
>>
>>the scenario you are probing might be already doable. Set in the LCR 
>>table some IP addresses which will be used as aliases: private 
>>addresses in 10.10.x.x class for example. Then register this IPs in 
>>usrloc pointing to the real GWs address.
>>So you can do lcr (next_gw) and then lookup.
>>
>>for this to work, lcr must operate on RURI and not on DST_URI (not 
>>sure
>>    
>>
>
>  
>
>>how exactly is working).
>>
>>regards,
>>bogdan
>>
>>Leonid Fainshtein wrote:
>>
>> 
>>
>>    
>>
>>>Hi,
>>>I'd like to use OpenSER for routing calls to NATed gateways. I also 
>>>want to support the LCR feature. Unfortunately, the current LCR 
>>>module
>>>      
>>>
>
>  
>
>>>doesn't support NAT. I mean that the gateway IP addresses must be 
>>>defined explicitly  in the "gtw" table. Now I'm looking for a way to 
>>>force OpenSer to use information from the "location" table.
>>>I want to write a module that will have the similar functionality 
>>>like
>>>      
>>>
>
>  
>
>>>the current LCR module has but resolving procedure will be more 
>>>complicated (not based on prefix and From only). The module should 
>>>build avp list where each gateway will have symbolic user name. For 
>>>example, g1, g2 etc. The gateways will also be registered on the 
>>>proxy
>>>      
>>>
>
>  
>
>>>with those names. Then I think it will be possible to call
>>>lookup("location") after successful call the next_gtw() from the
>>>   
>>>
>>>      
>>>
>>script.
>> 
>>
>>    
>>
>>>Is it feasible? Is there another way to solve my problem?
>>>
>>>Thank you in advance,
>>>Leonid Fainshtein
>>>
>>>_______________________________________________
>>>Users mailing list
>>>Users at openser.org
>>>http://openser.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>
>>>   
>>>
>>>      
>>>
>> 
>>
>>    
>>
>
>
>  
>





More information about the sr-users mailing list