That means that if I want that call in next step use RTP proxy I should enable it in first step regardless if it needed or not ?
That is weird :)
Is there other way to to that ?
I am trying to use rtp proxy only where it is absolutely necessary is anybody accomplish this ?
-----Original Message----- From: Jan Janak [mailto:jan@iptel.org] Sent: Wednesday, April 07, 2004 5:31 PM To: Vitaly Nikolaev Cc: serusers@lists.iptel.org Subject: Re: [Serusers] routing question
failure_route works with the original request (not response). SER will trigger failure_route when it decides what response code (from which branch) should be forwarded upstream. It is not possible to call force_rtp_proxy in this section, you should call force_rtp_proxy in the main routing section.
Jan.
On 07-04 13:45, Vitaly Nikolaev wrote:
Hello,
I have small problem with dinamic routing.. my config looks like: (page down)
as u see i have two steps routing.. second exec_dset return me uri of voicemail or it could be another number. the question is:
how can i do rtp_proxy on second step ? i can not just put force_rtp_proxy(); in failure_route.. it is not allowed....
Please help
short version:
route { if (nat_uac_test("2")) { xlog("L_ALERT", "(%ci) src address different than via
header->NAT detected");
force_rport(); fix_nated_contact(); setflag(5); }
if(uri==myself) { exec_dset("/usr/local/ser/bin/getroute"); route(1); } }
route [1] { xlog("L_ALERT", "(%ci) entering route[1] - relaying SIP
message to online user\n");
if ((isflagset(5)) || (isflagset(6))) { xlog("L_ALERT", "(%ci) at least one of the
participants is NATed->record_route\n");
record_route(); xlog("L_ALERT", "(%ci) -->setting up reply
processing ->onreply_route[1]");
t_on_reply("1"); if (method=="INVITE") { xlog("L_ALERT", "(%ci) INVITE
request-->force_rtp_proxy, set NATED-INVITE flag(7)");
force_rtp_proxy(); append_hf("P-hint: request forced to rtp
proxy\r\n");
setflag(7); }; }; t_on_failure("1"); xlog("L_ALERT", "(%ci) relaying message ...(%tu)"); if (!t_relay()) { xlog("L_ALERT", "(%ci) t_relay error occured\n"); sl_reply_error(); };
}
onreply_route[1] { xlog("L_ALERT", "(%ci) onreply_route[1] entered\n"); if ( (status=~"200" || status=~"183") ) { xlog("L_ALERT", "(%ci) status 2xx or 183"); if ( isflagset(7) ) { xlog("L_ALERT", "(%ci) marked(7) as
NATED-INVITE -> force_rtp_proxy \n");
force_rtp_proxy(); append_hf("P-hint: response forced to rtp
proxy\r\n");
}; };
}
failure_route[3] { /* XX: note: unsafe if preloaded routes without username used */ xlog("L_ALERT", "(%ci) failureroute[1] entered");
exec_dset("/usr/local/ser/bin/getroute vm"); t_on_failure("4"); xlog("L_ALERT", "(%ci) relaying message ...(%tu)"); append_branch(); if (!t_relay()) { xlog("L_ALERT", "(%ci) t_relay error occured\n");
# sl_reply_error(); };
}
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers