Hi

I have setup failover on Kamailio 5.1 using Dispatcher module as below. On a 
round robin algorithm, INVITEs are being sent to BOTH healthy and faulty GW. 
When an INVITE is being sent to the faulty GW, a re-transmission will be sent 
after "t_set_fr" time to the healthy GW and calls are completed successfully.
I was wondering if I can setup the health check correctly so the faulty IP GW 
can be out of round robin till the health check pass it again, i.e. no INVITE 
is being sent to the faulty GW as long as the health check not pass it.

Your help is greatly appreciated,
AL

# dispatcher.list
1 sip:X.X.X.X:5060 0 0
1 sip:Y.Y.Y.Y:5060 0 0

# ----- dispatcher params -----
modparam("dispatcher", "list_file", "/usr/local/etc/kamailio/dispatcher.list")
modparam("dispatcher", "flags", 2)
modparam("dispatcher", "ds_ping_interval", 10)
modparam("dispatcher", "dst_avp", "$avp(AVP_DST)")
modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)")
modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)")
modparam("dispatcher", "ds_probing_mode", 1)
modparam("dispatcher", "ds_ping_reply_codes", "class=2;class=3;class=4")
modparam("dispatcher", "ds_ping_interval", 5)
modparam("dispatcher", "ds_probing_threshold", 1)

# Dispatch requests
route[DISPATCH] {
if(!ds_select_dst("1", "4")) {
send_reply("503", "No destination");
exit;
}
t_on_failure("DISPATCH_FAILOVER");
t_set_fr(0,1000);
route(RELAY);
exit;
}

# Failure Route
failure_route[DISPATCH_FAILOVER]{
if (t_is_canceled()) exit;
if(!ds_next_dst()) {
send_reply("503", "Out of gateways");
exit;
}
t_on_failure("DISPATCH_FAILOVER");
t_relay();
}
_______________________________________________
Kamailio (SER) - Users Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to