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

Reply via email to