sergey-safarov left a comment (kamailio/kamailio#4315)
I have updated the Kamailio configuration, and it is now working.
<details> <summary>config</summary> ``` listen=udp:127.0.0.1:5060 listen=tcp:127.0.0.1:5060
loadmodule "tm.so"
loadmodule "pv.so" loadmodule "xlog.so" loadmodule "sl.so" loadmodule "siputils.so" loadmodule "tcpops.so" loadmodule "textops.so" loadmodule "rr.so"
loadmodule "stun.so" loadmodule "outbound.so" modparam("outbound", "force_outbound_flag", 1) modparam("outbound", "flow_token_secret", "kamailio")
loadmodule "debugger.so" modparam("debugger", "cfgtrace", 1) modparam("debugger", "log_level_name", "exec")
request_route { loose_route(); switch($rc) { case -3: xlog("L_ERR", "loose_route code -3\n"); break; case -2: xlog("L_ERR", "loose_route code -2\n"); break; case -1: xlog("L_ERR", "loose_route code -1\n"); break; case 1: xlog("L_ERR", "loose_route code 1\n"); break; case 2: xlog("L_ERR", "loose_route code 2\n"); route(TRY_TCP_CONN); break; } record_route();
if (has_totag()) { t_relay(); } else { t_relay_to_udp("127.0.0.1", "5080"); } }
route[TRY_TCP_CONN] { if($(du{uri.transport}{s.tolower})=="udp") { return; }
$var(host_port) = $_s($(du{uri.tosocket}{s.tolower}{re.subst,/^tcp://})); if(!tcp_con_alive("$var(host_port)")) { sl_send_reply("430", "Flow Failed"); exit; } } ``` </details>
Can something be used with the `UDP` transport? Usecase: "outbound client" uses UDP, and the Kamailio outbound module sends keepalives to the client. When no response, then send "430 Flow Failed" response.