I don't understand your reply. At the bottom of the config there is a onreply_route and a failure_route and the logging statements in each do get written out. What I don't see is isflagset(1) return true.
-----Original Message----- From: Iqbal [mailto:iqbal@gigo.co.uk] Sent: Wednesday, April 27, 2005 4:51 PM To: Greg Martin; serusers@lists.iptel.org Subject: Re: [Serusers] handling failure after directing to application server
on failure and reply you are telling it where to go, but that route doesnt exist, or not at least in ur config given below.
Also route [2] doesnt really do anything..
Iqbal
On 4/27/2005, "Greg Martin" Greg.Martin@TELUS.COM wrote:
I'm trying to direct requests to registered users to another proxy which has an application server. Right now the proxy simply
sends a 404 back. In that case I want to simply complete the call. What I am doing is looping until the ser has had enough. I've tried to set a flag to prevent it but the flag is in fact never set although the logs indicate it's the same transaction. Any comments?
debug=3 fork=yes log_stderror=no dns=no rev_dns=no fifo="/tmp/ser_fifo" fifo_db_url="mysql://ser:heslo@localhost/ser"
loadmodule "/usr/local/lib/ser/modules/mysql.so" loadmodule "/usr/local/lib/ser/modules/sl.so" loadmodule "/usr/local/lib/ser/modules/tm.so" loadmodule "/usr/local/lib/ser/modules/rr.so" loadmodule "/usr/local/lib/ser/modules/maxfwd.so" loadmodule "/usr/local/lib/ser/modules/usrloc.so" loadmodule "/usr/local/lib/ser/modules/registrar.so" loadmodule "/usr/local/lib/ser/modules/exec.so" loadmodule "/usr/local/lib/ser/modules/xlog.so"
modparam("usrloc", "db_mode", 1) modparam("rr", "enable_full_lr", 1)
route {
#
# Sanity Check Section #
if (!mf_process_maxfwd_header("10")) { sl_send_reply("483", "Too Many Hops"); break; };
if (msg:len > max_len) { sl_send_reply("513", "Message Overflow"); break; };
xlog("L_NOTICE", "Method <%rm> r-uri <%ru>\n");
#
# Record Route Section #
if (method != "REGISTER") { record_route(); };
#
# Loose Route Section #
if (loose_route()) { route(1); break; };
#
# Call Type Processing Section #
if (uri != myself) { route(1); break; };
if (uri == myself) { if (method == "REGISTER") { route(2); break; };
if (!lookup("location")) { sl_send_reply("404", "User Not Found"); break; }; route(1);
}; }
route[1] { #
# Default Message Handler #
xlog("L_NOTICE", "route[1] *****\n");
t_on_reply("1");
if(isflagset(1)) { xlog("L_NOTICE", "RELAYING.\n"); resetflag(1); if (!t_relay()) { sl_reply_error(); break; }; };
t_on_failure("1");
t_relay_to_udp("app_servers_address", "5060");
}
route[2] { #
# REGISTER Message Handler #
if (!save("location")) { sl_reply_error(); }; }
onreply_route[1] { xlog("L_NOTICE", "Reply status %rs: Reason %rr\n"); }
failure_route[1] { setflag(1); xlog("L_NOTICE", "FAILURE LOGIC.\n"); revert_uri(); append_branch(); t_relay(); }
Greg Martin Technology & Operations TELUS Communication Inc. office: 780-493-2786 cell: 780-718-4139
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers