At 05:04 PM 1/3/2004, Juha Heinanen wrote:
Greg Fausak writes:
route
{
if(loose_route()) { t_relay(); break; };
if(method=="INVITE") { do that deed, set record_route();
t_relay(); };
if(method=="REGISTER") { do that deed; t_relay(); };
# anything that reaches here is an error???
}
I don't use PRACK, COMET, SUBSCRIBE, NOTIFY.
how about ACK and BYE? don't you use them either?
only INVITEs and SUBSCRIBEs needs to be record-routed. It is not harmful
to record-route other requests (perhaps a new method, FOOBAR, will be used
along with record-routing too and we won't have rewrite script for it then).
All message types with Route already in place are processed in the first line,
and that's good so.
also, i would
suggest doing some checking before calling t_relay() after loose_route
if you care how people are using your proxy or your pstn gw.
indeed.
we do something like bellow....
if (loose_route()) {
# check if someone has not introduced a pre-loaded INVITE -- if so,
# verify caller's privileges before accepting rr-ing
if ((method=="INVITE" || method=="ACK" ||
method=="CANCEL")
&& uri =~ "sip:[+0-9]+@10\.1\.0\.1") {
route(3); # Forward to PSTN gateway (that;s where all the ACLs are placed)
} else {
append_hf("P-hint: rr-enforced\r\n");
# account all BYEs
if (method=="BYE") setflag(1);
route(1); # Generic forward
};
break;
};
-jiri