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 <[email protected] <mailto:[email protected]>> 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
    [email protected] <mailto:[email protected]>
    http://lists.opensips.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


--
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to