[SR-Users] Health Check on Dispatcher Failover

alirsm alirsm at protonmail.com
Wed Feb 10 20:31:52 CET 2021


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();
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20210210/79e0dc82/attachment.htm>


More information about the sr-users mailing list