At 03:33 PM 4/22/2003, Alejandro Olchik wrote:
I need some help to implement load balance
when sending invites to an external sip
proxy server.
I would like to be able to balance load
between to IPs (10.0.0.1 and 10.0.0.2) and
use the backup IP when the primary one
fails.
Below is the routing code I have:
if (!lookup("location")) {
rewritehost("10.0.0.1");
if (!t_relay_to("10.0.0.1","5060")) {
sl_send_reply("404", "Not Found");
};
break;
};
How can I add this behaviour?
That depends on the distribution scheme you would like to use.
For example, you can implement a distribution function that
splits requests based on some downstream weights.
e.g.,
modparam("distrib", "weights",
# ...
# rewrite host-part with one of values using the distribution
# 20-30-50
distribute("10.0.0.1/20%, 10.0.0.2/30%, 10.0.0.3/50%)
t_on_negative("1")
t_relay_to();
# ...
reply_route[1] {
# look at destinations that failed, and update their probabilities
# according to some strategy; for example, temporary 0% weight --
# note that this would take shared memory for keeping the weights
# and a timer
update_weights();
# if coupled to TM, it can look at previous attempts to eliminate
# retrying to a previously failed destination
distribute("10.0.0.1/20%, 10.0.0.2/30%, 10.0.0.3/50%)
}
-Jiri