[OpenSIPS-Users] [NEW] Dynamic Routing enhancements in OpenSIPS 1.8.0

Vlad Paiu vladpaiu at opensips.org
Fri Mar 30 10:46:05 CEST 2012


Hello,

Yes, you could do that. Just use the drouting's is_from_gw() function ( 
docs at [1] ) to detect direction. If is_from_gw() returns true, apply 
your load-balancer logic, otherwise apply the DR logic.

[1] http://www.opensips.org/html/docs/modules/1.8.x/drouting.html#id293884

Regards,

Vlad Paiu
OpenSIPS Developer
http://www.opensips-solutions.com


On 03/29/2012 11:53 PM, Ali Pey wrote:
> Is it possible to use the load balancer module on one direction- from 
> carriers to media gateways and the DR module on the other direction- 
> from media gateways to carriers.
>
> Regards,
> Ali
>
>
> On Thu, Mar 29, 2012 at 4:28 AM, Vlad Paiu <vladpaiu at opensips.org 
> <mailto:vladpaiu at opensips.org>> wrote:
>
>     Hello,
>
>     The latest dynamic routing improvements allow to distribute the
>     load on multiple gw's within a carrier, based on weights.
>     So for example you can define a new carrier, c1, that has two
>     gateways, g1 and g2, like this
>         c1 = g1=50,g2=50
>     and then, for a specific prefix rule, set c1 in the gw list and
>     the load will be distributed evenly between the two gateways.
>
>     You might want to read again Bogdan's initial email, in order to
>     get a better grasp of the newly available features.
>
>
>     Regards,
>
>     Vlad Paiu
>     OpenSIPS Developer
>     http://www.opensips-solutions.com  
>
>
>     On 03/29/2012 10:26 AM, [Digital^Dude] ® wrote:
>>     If I set DR to route based on all dialed prefixes, can I achieve
>>     load balanced setup with failover? If yes, how do I configure
>>     them? I have been able to configure them individually, but how to
>>     made these two modules work together?
>>
>>     On Wed, Mar 28, 2012 at 2:31 PM, Bogdan-Andrei Iancu
>>     <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>>
>>         Hi Ali,
>>
>>         Both modules are routing engines - the DR module routes based
>>         on dialled prefix, while the LB routes based on the load of
>>         the destinations (active calls).
>>
>>         Regards,
>>         Bogdan
>>
>>
>>         On 03/27/2012 07:36 PM, Ali Pey wrote:
>>>
>>>         What are the differences between the Dynamic Routing and
>>>         Load-Balancer Modules?
>>>
>>>         They seem very similar except that we don't have rules in
>>>         Load-Balancer Module. Can DR module be used as a
>>>         load-balancer? Is it possible to have the features of both
>>>         modules together? A load-balancer with rules?
>>>
>>>
>>>         Regards,
>>>         Ali
>>>
>>>
>>>
>>>         On Fri, Mar 23, 2012 at 9:11 AM, Bogdan-Andrei Iancu
>>>         <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>>>
>>>             Hi all
>>>
>>>             In OpenSIPS 1.8.0, the Dynamic Module comes with some
>>>             major changes and enhancements :
>>>
>>>             Carrier concept added
>>>             ----------------------
>>>             Now you can group the GWs in carrier, so you can achieve
>>>             a better control over the destinations. A carrier is a
>>>             list of gws - for each carrier, you can define how the
>>>             gws should be sort - based on the definition order, or
>>>             based on weigths . Once again, this setting is per
>>>             carrier. Also you can enabled / disable carriers (via
>>>             MI) during runtime. The carrier has attached an
>>>             attribute string that will be pushed to script when a
>>>             gws from the carrier will be used.
>>>
>>>             When defining a routing rule, you can define a list of
>>>             gws and carriers to be used (a mixed list). How the list
>>>             from the rule is interpreted (order or weight), depends
>>>             on a flag in do_routing() function.
>>>
>>>             Ex:
>>>                 gateways :  g1, g2, g3, g4, g5
>>>                 carriers :  c1 = g1=75,g2=25  (a premium carrier),
>>>             ordering based on weight
>>>                             c2 = g3,g4  (a standard carrier),
>>>             ordering based on given order
>>>                 rules:   prefix= 004021 ; list = #c1,#c2,g5  - first
>>>             we will try do distribute 75/25 the traffic
>>>                               between the gws from carrier c1 and if
>>>             all fail, we will try gws from carrier c2
>>>                               (according the ordering defined for
>>>             c2), and so on
>>>
>>>                          prefix= 004072 ; list = #c2=50,g5=50  - all
>>>             traffic will be weight balanced between carrier
>>>                               c2 and gw g5; of course, if carrier c2
>>>             is to be used, the corresponding traffic will
>>>                               routed over the c2 gateways according
>>>             to its definition
>>>
>>>
>>>             do_routing() enhancements
>>>             --------------------------
>>>             The do_routing() function takes several flags (as second
>>>             optional parameter) to control the matching and ordering
>>>             in the rules:
>>>
>>>                 * /W/ - Instead of using the destination (from the
>>>                   rule definition) in the given order, sort them
>>>                   based on their weight.
>>>                 * /F/ - Enable rule fallback; normally the engine is
>>>                   using a single rule for routing a call; by setting
>>>                   this flag, the engine will fallback and use rules
>>>                   with less priority or shorter prefix when all the
>>>                   destination from the current rules failed.
>>>                 * /L/ - Do strict length matching over the prefix -
>>>                   actually DR engine will do full number matching
>>>                   and not prefix matching anymore.
>>>
>>>             Also, the function takes a new third optional parameter
>>>             - a white list of gateways -> during the routing, only
>>>             the gateways from this list will be considered valid
>>>             (from the gws specified by the routing rules)
>>>
>>>
>>>             Rule fallback
>>>             --------------
>>>             Before, the dr module was matching and using a single
>>>             rule. Now, via the F flag, you can instruct the DR
>>>             engine to fallback and use additional rules that match
>>>             (with looser matching) the dialed prefix - like rules
>>>             with same prefix but lower priority, rules with shorter
>>>             prefix.
>>>             The fallback is transparent done, via the use_next_gw()
>>>             function.
>>>
>>>             Ex:
>>>                prefix 004072, prio 10  => g1,g2
>>>               prefix 004072, prio  1  => g3
>>>                prefix 0040,   prio  1  => g4,g5
>>>
>>>                when dialing 00407221234567 and using fallback, the
>>>             gws g1, g2 (first rule), g3 (second rule) and g4 , g5
>>>             (third rule) will be used.
>>>
>>>
>>>             New routing functions
>>>             ----------------------
>>>             route_to_gw(gw_id) - function to trigger the direct
>>>             routing to a given gateway. Attributes and per-gw
>>>             preocessing will be available.
>>>
>>>             route_to_carrier(carrier_id) -f unction to trigger the
>>>             direct routing to a given carrier. In this case the
>>>             routing is not done prefix based, but carrier based
>>>             (call will be sent to the GWs of that carrier, based on
>>>             carrier policy)
>>>
>>>
>>>
>>>             For more, please see the online documentation for the DR
>>>             module:
>>>             www.opensips.org/html/docs/modules/1.8.x/drouting.html
>>>             <http://www.opensips.org/html/docs/modules/1.8.x/drouting.html>
>>>
>>>
>>>             Regards,
>>>             Bogdan
>>>
>>>             -- 
>>>             Bogdan-Andrei Iancu
>>>             OpenSIPS Founder and Developer
>>>             http://www.opensips-solutions.com
>>>
>>>
>>>             _______________________________________________
>>>             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  <mailto:Users at lists.opensips.org>
>>>         http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>>         -- 
>>         Bogdan-Andrei Iancu
>>         OpenSIPS Founder and Developer
>>         http://www.opensips-solutions.com
>>
>>
>>         _______________________________________________
>>         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  <mailto:Users at lists.opensips.org>
>>     http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>     _______________________________________________
>     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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20120330/fe99da02/attachment-0001.htm>


More information about the Users mailing list