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

[Digital^Dude] ® millennium.bug at gmail.com
Thu Mar 29 09:26:12 CEST 2012


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>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>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
>>
>>
>> Regards,
>> Bogdan
>>
>> --
>> Bogdan-Andrei Iancu
>> OpenSIPS Founder and Developerhttp://www.opensips-solutions.com
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>
> _______________________________________________
> Users mailing listUsers at lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>
> --
> Bogdan-Andrei Iancu
> OpenSIPS Founder and Developerhttp://www.opensips-solutions.com
>
>
> _______________________________________________
> 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/20120329/fcd9366a/attachment-0001.htm>


More information about the Users mailing list