[OpenSIPS-Users] Question about using load balancing (dispatcher) within failure_route

Bogdan-Andrei Iancu bogdan at voice-system.ro
Thu Oct 23 11:00:15 CEST 2008


Hi Klaus,

The problem is more complex - if you use the ds_next_xxxx() from failure 
route, the function automatically does (internally) append_branch() and 
it is loosing some critical information (like socket_info).

On the other hand, I found idealogical for these functions to do 
automatically the branching :
    1) it is not consistent - everybody expect to do an explicit 
append_branch() from script, in failure_route (like for the rest of the 
other functions)
    2) if I do ds_next_dst(), so setting the destination URI, why this 
should force a whole branch?

Regards,
Bogdan

Klaus Darilion wrote:
> IIRC I also had problems some time ago in combination with 
> force_send_socket (I think append_branch() did not copied the socket 
> info)
>
> klaus
>
> Bogdan-Andrei Iancu schrieb:
>> Hi Woody,
>>
>> I will fix this bug shortly and then you can easily use DISPATCHER 
>> with round-robin, according to your needs.
>>
>> Thanks for report,
>> Bogdan
>>
>> Woody Dickson wrote:
>>> Hi Bogdan,
>>>
>>> Thank you for your prompt reply.
>>> Rightnow, I can hard code ONE B2BUA in the failure_route, but I 
>>> would rather have multiple B2BUA dispatched in a round robin fashion 
>>> when the failure_route is hit and have the IPs extracted from DB.
>>>
>>> Is there any possible workaround that can resolve this problem for 
>>> the short term?
>>>
>>>
>>> Thanks alot.
>>>
>>> Woody
>>>
>>> On Mon, Oct 20, 2008 at 3:46 PM, Bogdan-Andrei Iancu 
>>> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>> wrote:
>>>
>>>     Hi Woody,
>>>
>>>     This is related to a bug I recently found in the dispatcher module
>>>     - the ds_next_dst() function, even if it should set only the
>>>     destination URI, it internally creates a branch - so, you will end
>>>     up with 2 branches actually :
>>>       1) first, with the original URI and the DST from dispatcher
>>>       2) second, with the URI from script (rewrite) and no dst;
>>>
>>>     Regarding the failover support, you need, to set some params, like:
>>>       dst_avp -
>>>      
>>> http://www.opensips.org/html/docs/modules/devel/dispatcher.html#id2529512 
>>>
>>>       grp_avp -
>>>     
>>> http://www.opensips.org/html/docs/modules/devel/dispatcher.html#id2533853 
>>>
>>>       cnt_avp -
>>>     
>>> http://www.opensips.org/html/docs/modules/devel/dispatcher.html#id2509422 
>>>
>>>
>>>     Regards,
>>>     Bogdan
>>>
>>>     Woody Dickson wrote:
>>>
>>>         Hello,
>>>
>>>         I have my dispatcher setup fine for my INVITE so Opensips can
>>>         now distribute calls to one of the two B2BUA.  What I would
>>>         also like to do is that when 486 is recevied, Opensips can
>>>         branch another route back to one of the two B2BUA which will
>>>         play the voicemail.   I tried:
>>>         ds_select_dst("1", "4");
>>>         ds_next_dst();
>>>         rewritehostport("192.168.1.101:5070
>>>         <http://192.168.1.101:5070> <http://192.168.1.101:5070>");
>>>
>>>
>>>         only rewritehostport works, but I don't want to hard code the
>>>         host and port inside the config script.  If I use
>>>         ds_next_dst(), I am getting "WARNING:dispatcher:ds_next_dst:
>>>         failover support disabled".  Does anyone know how to resolve
>>>         this problem?
>>>
>>>         Here is my failure_route block:
>>>
>>>         failure_route[1] {
>>>
>>>               if (t_was_cancelled()) {
>>>                    exit;
>>>            };
>>>            if (t_check_status("486")) {
>>>                   revert_uri();
>>>                      prefix("b");
>>>                      xlog("L_ERR","Stepped into the 486 ruri=<$ru>");
>>>                     #ds_select_dst("1", "4");
>>>                    ds_next_dst();
>>>                #rewritehostport("192.168.1.131:5070
>>>         <http://192.168.1.131:5070> <http://192.168.1.131:5070>");
>>>
>>>                     append_branch();
>>>                     route(1);
>>>                            exit;
>>>            };
>>>
>>>
>>>         Thanks in advance for all your help.
>>>
>>>         Regards,
>>>         Woody
>>>
>>>         
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>>         _______________________________________________
>>>         Users mailing list
>>>         Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>>>         http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>         
>>>
>>>
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>   
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>




More information about the Users mailing list