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 <[email protected] <mailto:[email protected]>> 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
    <[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]  <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



_______________________________________________
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