Eric C. Snowdeal III wrote:
i thought i had started out with the RTP config in the nathelper directory of the release tarball, but maybe i had made one too many modifications to make it recognizeable :-)
in any case, i put what you posted in my config file and re-discovered that the "Cisco ATA" function breaks the server in the release. so i removed that, but kept everything else the same [ see below ]. the however, i'm still getting the same behavior - a busy signal and 408 request timeouts.
again, thanks for the help.
# ------------------------- request routing logic -------------------
# main routing logic
route{
# initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { sl_send_reply("513", "Message too big"); break; }; # compulsory processing of Route header fields and adding RR loose_route(); /* registration (uses rewritten contacts) */ if (method=="REGISTER") { save("location"); break; }; if (method=="INVITE") { record_route();
There is no way this config can pass thru here since the flag is never set. If you are not interested in discriminating then remove the isflagset check and just do force_rtp_proxy for every INVITE:
if (isflagset(1)) { # ATA ? force_rtp_proxy(); }; /* set up reply processing */ t_on_reply("1"); }; if (method == "INVITE" || method == "CANCEL") { if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; }; /* set up reply processing and forward statefuly */ t_relay();
}
# all incoming replies for t_onrepli-ed transactions enter here onreply_route[1] { if (status=~"2[0-9][0-9]") fix_nated_contact(); force_rtp_proxy(); }
Andres wrote:
Eric,
I think you should just try out the example RTP config in the nathelper directory. It is this one:
# main routing logic
route{
# compulsory processing of Route header fields and adding RR loose_route(); # ATA's are symmetric but don't advertise it -- force use of
rport if (search("User-Agent: Cisco ATA.*")) { setflag(1); # remember this is ATA force_rport(); fix_nated_contact(); };
/* registration (uses rewritten contacts) */ if (method=="REGISTER") { save("location"); break; }; if (method=="INVITE") { record_route(); if (isflagset(1)) { # ATA ? force_rtp_proxy(); }; /* set up reply processing */ t_on_reply("1"); }; if (method == "INVITE" || method == "CANCEL") { if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; }; /* set up reply processing and forward statefuly */ t_relay();
}
# all incoming replies for t_onrepli-ed transactions enter here onreply_route[1] { if (status=~"2[0-9][0-9]" && search("Server: Cisco ATA.*")) fix_nated_contact(); force_rtp_proxy(); }
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers