Hi,
You describe what you are trying to achieve, but not the result you are seeing.
One thing I noticed is that in your failure route you set t_on_failure("DISPATCH"), but should it not be t_on_failure("RTF_DISPATCH")?
Regards,
Charles On 14 Sep 2013 08:33, "Joseph Watson" joseph.watson@veranetworks.com wrote:
Hello Everyone,
I am really having an issue getting kamailio to try another dispatch route when I get a 500 back from one of my freeswitch servers.
Currently I have a list of freeswitch servers located in my dispatch.list file. If one of then is to busy it will respond with a 500 Maximum Call in Progress. I am trying to get Kamailio to go to the next route in the dispatch.list when it get one of these 503 and if it should exhaust the whole list respond with a 503. Here is my kamailio config
####### Global Parameters #########
#!ifdef WITH_DEBUG debug=4 log_stderror=yes #!else debug=4 log_stderror=yes #!endif
memdbg=5 memlog=5
log_facility=LOG_LOCAL0
fork=yes children=10
/* comment the next line to enable TCP */ disable_tcp=yes
/* uncomment the next line to disable the auto discovery of local aliases based on revers DNS on IPs (default on) */ auto_aliases=no
/* uncomment and configure the following line if you want Kamailio to bind on a specific interface/port/proto (default bind on all available) */ listen=udp:eth0:5060
sip_warning=no
####### Modules Section ########
#set module path
mpath="/usr/local/lib64/kamailio/modules_k/:/usr/local/lib64/kamailio/modules/"
loadmodule "mi_fifo.so" loadmodule "kex.so" loadmodule "tm.so" loadmodule "tmx.so" loadmodule "sl.so" loadmodule "rr.so" loadmodule "pv.so" loadmodule "maxfwd.so" loadmodule "textops.so" loadmodule "siputils.so" loadmodule "xlog.so" loadmodule "sanity.so" loadmodule "ctl.so" loadmodule "mi_rpc.so" loadmodule "acc.so" loadmodule "dispatcher.so"
# ----------------- setting module-specific parameters ---------------
# ----- mi_fifo params ----- modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo")
modparam("xlog", "buf_size", 8192)
# ----- rr params ----- # add value to ;lr param to cope with most of the UAs modparam("rr", "enable_full_lr", 1) # do not append from tag to the RR (no need for this script) modparam("rr", "append_fromtag", 0)
# ----- acc params ----- modparam("acc", "log_flag", 1) modparam("acc", "failed_transaction_flag", 3) modparam("acc", "log_extra", "src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si")
# ----- tm params ----- modparam("tm", "fr_timer", 2000) modparam("tm", "fr_inv_timer", 40000) modparam("tm", "remap_503_500", 0)
# ----- dispatcher params ----- modparam("dispatcher", "list_file", "/usr/local/etc/kamailio/dispatcher.list") modparam("dispatcher", "flags", 2) modparam("dispatcher", "dst_avp", "$avp(i:271)") modparam("dispatcher", "grp_avp", "$avp(i:272)") modparam("dispatcher", "cnt_avp", "$avp(i:273)")
#modparam("dispatcher", "dst_avp", "$avp(AVP_DST)") #modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)") #modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)") #modparam("dispatcher", "ds_append_branch", 1) ####### Routing Logic ########
# main request routing logic
route { append_hf("X-VSIP-CUST-IP: $si\r\n"); route(DISPATCH);
route(RELAY);
}
# Dispatch requests route[DISPATCH] { # round robin dispatching on gateways group '1' if(!ds_select_dst("1", "4")) { send_reply("404", "No destination"); exit; } # xlog("L_DBG", "--- SCRIPT: going to <$ru> via <$du>\n"); t_on_failure("RTF_DISPATCH"); return; }
# Sample failure route failure_route[RTF_DISPATCH] { if (t_is_canceled()) { exit; } # next DST - only for 500 or local timeout if (t_check_status("500") or (t_branch_timeout() and !t_branch_replied())) { if(ds_next_dst()) { t_on_failure("DISPATCH"); route(RELAY); exit; } } }
route[RELAY] { if (!t_relay()) { send_reply("503", "LB01 - All Circuits Are Busy"); # sl_reply_error(); } exit; }
I am very new to kamailio and still learning my way around. Any help you can provide with be fantastic!
Thank you, Joe Watson
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users