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
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_DEBUGdebug=4log_stderror=yes#!elsedebug=4log_stderror=yes#!endifmemdbg=5memlog=5log_facility=LOG_LOCAL0fork=yeschildren=10/* comment the next line to enable TCP */disable_tcp=yes/* uncomment the next line to disable the auto discovery of local aliasesbased on revers DNS on IPs (default on) */auto_aliases=no/* uncomment and configure the following line if you want Kamailio tobind on a specific interface/port/proto (default bind on all available) */listen=udp:eth0:5060sip_warning=no####### Modules Section #########set module pathmpath="/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 UAsmodparam("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 logicroute {append_hf("X-VSIP-CUST-IP: $si\r\n");route(DISPATCH);route(RELAY);}# Dispatch requestsroute[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 routefailure_route[RTF_DISPATCH] {if (t_is_canceled()) {exit;}# next DST - only for 500 or local timeoutif (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