<font face="trebuchet ms,sans-serif">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?<br>
</font><br><div class="gmail_quote">On Wed, Mar 28, 2012 at 2:31 PM, Bogdan-Andrei Iancu <span dir="ltr"><<a href="mailto:bogdan@opensips.org">bogdan@opensips.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<u></u>
<div bgcolor="#ffffff" text="#000000">
Hi Ali,<br>
<br>
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).<br>
<br>
Regards,<br><font color="#888888">
Bogdan</font><div><div></div><div class="h5"><br>
<br>
On 03/27/2012 07:36 PM, Ali Pey wrote:
<blockquote type="cite">
<div><br>
</div>
What are the differences between the Dynamic Routing and
Load-Balancer Modules?
<div><br>
</div>
<div>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?</div>
<div><br>
</div>
<div><br>
</div>
<div>Regards,</div>
<div>Ali<br>
<div><br>
</div>
<div><br>
<br>
<div class="gmail_quote">On Fri, Mar 23, 2012 at 9:11 AM,
Bogdan-Andrei Iancu <span dir="ltr"><<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#ffffff" text="#000000"> <tt>Hi all<br>
<br>
In OpenSIPS 1.8.0, the Dynamic Module comes with some
major changes and enhancements :<br>
<br>
Carrier concept added<br>
----------------------<br>
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.<br>
<br>
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.<br>
<br>
Ex:<br>
gateways : g1, g2, g3, g4, g5<br>
carriers : c1 = g1=75,g2=25 (a premium carrier),
ordering based on weight<br>
c2 = </tt><tt>g3,g4 (a standard
carrier), ordering based on given order<br>
rules: prefix= 004021 ; list = #c1,#c2,g5 -
first we will try do distribute 75/25 the traffic <br>
between the gws from carrier c1 and
if all fail, we will try gws from carrier c2<br>
(according the ordering defined for
c2), and so on<br>
<br>
</tt><tt> prefix= 004072 ; list =
#c2=50,g5=50 - all traffic will be weight balanced
between carrier<br>
c2 and gw g5; of course, if carrier
c2 is to be used, the corresponding traffic will<br>
routed over the c2 gateways
according to its definition<br>
</tt><br>
<tt><br>
do_routing() enhancements</tt><tt><br>
--------------------------<br>
The do_routing() function takes several flags (as
second optional parameter) to control the matching and
ordering in the rules:<br>
</tt>
<div>
<ul type="circle">
<li><tt><span><i>W</i></span> - Instead of using
the destination (from the rule definition) in
the given order, sort them based on their
weight. </tt></li>
<li><tt><span><i>F</i></span> - 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. </tt></li>
<li><tt><span><i>L</i></span> - Do strict length
matching over the prefix - actually DR engine
will do full number matching and not prefix
matching anymore. </tt></li>
</ul>
</div>
<tt>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)<br>
</tt><tt><br>
<br>
Rule fallback<br>
--------------<br>
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.<br>
The fallback is transparent done, via the
use_next_gw() function.<br>
<br>
Ex:<br>
prefix 004072, prio 10 => g1,g2<br>
</tt><tt> </tt><tt> prefix 004072, prio 1 => g3<br>
</tt><tt> prefix 0040, prio 1 => g4,g5<br>
<br>
when dialing 00407221234567 and using fallback, the
gws g1, g2 (first rule), g3 (second rule) and g4 , g5
(third rule) will be used.<br>
<br>
</tt><br>
<tt>New routing functions<br>
----------------------<br>
route_to_gw(gw_id) - function to trigger the direct
routing to a given gateway. Attributes and per-gw
preocessing will be available.<br>
<br>
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)<br>
</tt><tt><br>
<br>
<br>
For more, please see the online documentation for the
DR module:<br>
<a href="http://www.opensips.org/html/docs/modules/1.8.x/drouting.html" target="_blank">www.opensips.org/html/docs/modules/1.8.x/drouting.html</a><br>
<br>
<br>
Regards,<br>
Bogdan<span><font color="#888888"><br>
</font></span></tt><span><font color="#888888">
<pre cols="72">--
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a></pre>
</font></span></div>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
<pre><fieldset></fieldset>
_______________________________________________
Users mailing list
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
</blockquote>
<br>
<br>
<pre cols="72">--
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a></pre>
</div></div></div>
<br>_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
<br></blockquote></div><br>