[Serusers] routing question
Vitaly Nikolaev
vitaly at switchgate.com
Thu Apr 8 15:38:57 CEST 2004
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 at iptel.org]
Sent: Wednesday, April 07, 2004 5:31 PM
To: Vitaly Nikolaev
Cc: serusers at 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 at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
More information about the sr-users
mailing list