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