Re: 404 automatic failover

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: 404 automatic failover

Pacho Baratta [fabbricadigitale]

 

Hi all, i need some help with an issue. i'm quite a newbie, so be patien, please. i need to redirect all calss to a different gateway when the 1st returns a sip404.

my route is like this: if (is_method("INVITE")) {

if(uri=~"^sip:@") {

rewritehostport("172.30.1.110:5060");

#

if (tcheckstatus("404")) { sethostport("192.168.2.100:5060");

          t_relay();

    }

#

route(1);

}

but this doesn't seem to work.

can yoi suggest me the right way to do it?

thanks, Pacho

 

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: 404 automatic failover

Brett Nemeroff
This is not the right way to do it.

just set the initial hostport, then arm the failure route:
t_on_failure("1");

then t_relay() like normal.

Then setup a failure route:
failure_route[1] {

}

and perform your t_check_status and rewrite etc in there (perform a second rewritehostport) then t_relay again..

This is pretty basic scripting stuff.. I'd encourage you to go over the examples.

-Brett


On Mon, Oct 12, 2009 at 10:03 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

 

Hi all, i need some help with an issue. i'm quite a newbie, so be patien, please. i need to redirect all calss to a different gateway when the 1st returns a sip404.

my route is like this: if (is_method("INVITE")) {

if(uri=~"^sip:@") {

rewritehostport("172.30.1.110:5060");

#

if (tcheckstatus("404")) { sethostport("192.168.2.100:5060");

          t_relay();

    }

#

route(1);

}

but this doesn't seem to work.

can yoi suggest me the right way to do it?

thanks, Pacho

 

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: 404 automatic failover

Pacho Baratta [fabbricadigitale]

As I said, I’m really a newbie. So I tried to modify the default routing logic, but no success.

Can you please tell me what’s wrong with this?

Thanks all, pacho

 

 

 

####### Routing Logic ########

 

 

# main request routing logic

 

route{

 

        if (!mf_process_maxfwd_header("10")) {

                sl_send_reply("483","Too Many Hops");

                exit;

        }

 

        if (has_totag()) {

                # sequential request withing a dialog should

                # take the path determined by record-routing

                if (loose_route()) {

                        if (is_method("BYE")) {

                                setflag(1); # do accounting ...

                                setflag(3); # ... even if the transaction fails

                        } else if (is_method("INVITE")) {

                                # even if in most of the cases is useless, do RR for

                                # re-INVITEs alos, as some buggy clients do change route set

                                # during the dialog.

                                record_route();

                        }

                        # route it out to whatever destination was set by loose_route()

                        # in $du (destination URI).

                        route(1);

                } else {

                        /* uncomment the following lines if you want to enable presence */

                        ##if (is_method("SUBSCRIBE") && $rd == "your.server.ip.address") {

                        ##      # in-dialog subscribe requests

                        ##      route(2);

                        ##      exit;

                        ##}

                        if ( is_method("ACK") ) {

                                if ( t_check_trans() ) {

                                        # non loose-route, but stateful ACK; must be an ACK after

                                        # a 487 or e.g. 404 from upstream server

                                        t_relay();

                                        exit;

                                } else {

                                        # ACK without matching transaction ->

                                        # ignore and discard

                                        exit;

                                }

                        }

                        sl_send_reply("404","Not here");

                }

                exit;

 }

 

        #initial requests

 

        # CANCEL processing

        if (is_method("CANCEL"))

        {

                if (t_check_trans())

                        t_relay();

                exit;

        }

 

        t_check_trans();

 

        # authenticate if from local subscriber (uncomment to enable auth)

        # authenticate all initial non-REGISTER request that pretend to be

        # generated by local subscriber (domain from FROM URI is local)

        ##if (!(method=="REGISTER") && from_uri==myself) /*no multidomain version*/

        ##if (!(method=="REGISTER") && is_from_local())  /*multidomain version*/

        ##{

        ##      if (!proxy_authorize("", "subscriber")) {

        ##              proxy_challenge("", "0");

        ##              exit;

        ##      }

        ##      if (!check_from()) {

        ##              sl_send_reply("403","Forbidden auth ID");

        ##              exit;

        ##      }

        ##

        ##      consume_credentials();

        ##      # caller authenticated

        ##}

 

        # preloaded route checking

        if (loose_route()) {

                xlog("L_ERR",

                "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");

                if (!is_method("ACK"))

                        sl_send_reply("403","Preload Route denied");

                exit;

        }

 

        # record routing

        if (!is_method("REGISTER|MESSAGE"))

                record_route();

 

        # account only INVITEs

        if (is_method("INVITE")) {

#######################################

if(uri=~"^sip:*@*") {

rewritehostport("172.30.1.110:5060");

 }

######################################

 

                setflag(1); # do accounting

        }

        if (!uri==myself)

        ## replace with following line if multi-domain support is used

        ##if (!is_uri_host_local())

        {

                append_hf("P-hint: outbound\r\n");

                # if you have some interdomain connections via TLS

                ##if($rd=="tls_domain1.net") {

                ##      t_relay("tls:domain1.net");

                ##      exit;

                ##} else if($rd=="tls_domain2.net") {

                ##      t_relay("tls:domain2.net");

                ##      exit;

                ##}

                route(1);

        }

 

        # requests for my domain

 

        ## uncomment this if you want to enable presence server

        ##   and comment the next 'if' block

        ##   NOTE: uncomment also the definition of route[2] from  below

        ##if( is_method("PUBLISH|SUBSCRIBE"))

        ##              route(2);

 

        if (is_method("PUBLISH"))

        {

                sl_send_reply("503", "Service Unavailable");

                exit;

        }

 

 

        if (is_method("REGISTER"))

        {

                # authenticate the REGISTER requests (uncomment to enable auth)

                ##if (!www_authorize("", "subscriber"))

                ##{

                ##      www_challenge("", "0");

                ##      exit;

                ##}

                ##

                ##if (!check_to())

                ##{

                ##      sl_send_reply("403","Forbidden auth ID");

                ##      exit;

##}

                ##

                ##if (!check_to())

                ##{

                ##      sl_send_reply("403","Forbidden auth ID");

                ##      exit;

                ##}

 

                if (!save("location"))

                        sl_reply_error();

 

                exit;

        }

 

        if ($rU==NULL) {

                # request with no Username in RURI

                sl_send_reply("484","Address Incomplete");

                exit;

        }

 

        # apply DB based aliases (uncomment to enable)

        ##alias_db_lookup("dbaliases");

 

        if (!lookup("location")) {

                switch ($retcode) {

                        case -1:

                        case -3:

                                t_newtran();

                                t_reply("404", "Not Found");

                                exit;

                        case -2:

                                sl_send_reply("405", "Method Not Allowed");

                                exit;

                }

        }

 

        # when routing via usrloc, log the missed calls also

        setflag(2);

 

        route(1);

}

 

 

route[1] {

        # for INVITEs enable some additional helper routes

        if (is_method("INVITE")) {

                t_on_branch("2");

                t_on_reply("2");

                t_on_failure("1");

        }

 if (!t_relay()) {

                sl_reply_error();

        };

        exit;

}

 

 

# Presence route

/* uncomment the whole following route for enabling presence

   NOTE: do not forget to enable the call of this route from the main

     route */

##route[2]

##{

##      if (!t_newtran())

##      {

##              sl_reply_error();

##              exit;

##      };

##

##      if(is_method("PUBLISH"))

##      {

##              handle_publish();

##              t_release();

##      }

##      else

##      if( is_method("SUBSCRIBE"))

##      {

##              handle_subscribe();

##              t_release();

##      }

##

##      exit;

##}

 

 

branch_route[2] {

        xlog("new branch at $ru\n");

}

 

 

onreply_route[2] {

        xlog("incoming reply\n");

}

 

 

failure_route[1] {

        if (t_was_cancelled()) {

                exit;

        }

 

 

        # uncomment the following lines if you want to block client

        # redirect based on 3xx replies.

        ##if (t_check_status("3[0-9][0-9]")) {

        ##t_reply("404","Not found");

        ##      exit;

        ##}

 

        # uncomment the following lines if you want to redirect the failed

        # calls to a different new destination

if (t_check_status("400|486|408")) {

                sethostport("172.30.7.54:5060");

        ##      # do not set the missed call flag again

 xlog("L_ERR",

                "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");

 

#               t_relay();

        }

}

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: lunedì 12 ottobre 2009 17:13
To: OpenSIPS users mailling list
Subject: Re: [OpenSIPS-Users] 404 automatic failover

 

This is not the right way to do it.

 

just set the initial hostport, then arm the failure route:

t_on_failure("1");

 

then t_relay() like normal.

 

Then setup a failure route:

failure_route[1] {

 

}

 

and perform your t_check_status and rewrite etc in there (perform a second rewritehostport) then t_relay again..

 

This is pretty basic scripting stuff.. I'd encourage you to go over the examples.

 

-Brett

 

 

On Mon, Oct 12, 2009 at 10:03 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

 

Hi all, i need some help with an issue. i'm quite a newbie, so be patien, please. i need to redirect all calss to a different gateway when the 1st returns a sip404.

my route is like this: if (is_method("INVITE")) {

if(uri=~"^sip:@") {

rewritehostport("172.30.1.110:5060");

#

if (tcheckstatus("404")) { sethostport("192.168.2.100:5060");

          t_relay();

    }

#

route(1);

}

but this doesn't seem to work.

can yoi suggest me the right way to do it?

thanks, Pacho

 

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

 


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: 404 automatic failover

Brett Nemeroff
Pacho,
This is better than before. But you haven't mentioned what the problem is this time.


On Mon, Oct 12, 2009 at 11:03 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

As I said, I’m really a newbie. So I tried to modify the default routing logic, but no success.

Can you please tell me what’s wrong with this?

Thanks all, pacho



_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: 404 automatic failover

Pacho Baratta [fabbricadigitale]

If a place a call to a number that does not exist, the gateway returns a 404.

I want to redirect this call to a different gateway

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: lunedì 12 ottobre 2009 18:06
To: Pacho Baratta [fabbricadigitale]
Cc: OpenSIPS users mailling list
Subject: Re: [OpenSIPS-Users] 404 automatic failover

 

Pacho,

This is better than before. But you haven't mentioned what the problem is this time.

 

On Mon, Oct 12, 2009 at 11:03 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

As I said, I’m really a newbie. So I tried to modify the default routing logic, but no success.

Can you please tell me what’s wrong with this?

Thanks all, pacho

 


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: 404 automatic failover

Brett Nemeroff
Your config really needs some work. For starters:

if(uri=~"^sip:*@*") {

rewritehostport("172.30.1.110:5060");

 }

(ie: if uri is properly formated then...) Of course, there are other cases you might be checking for here, but I don't think that was the intention..



So it might as well just be:

rewritehostport("172.30.1.110:5060");

(without the IF statement around it).


Next, you do a whole bunch of stuff after that rewrite that might end up rewriting the message again.. do you really want that? What I'm suggesting is that your order (where you stuck the rewrite) is off.


Lastly, in the failure route, you should add a check for the 404 in it:

if (t_check_status("400|486|408|404")) {



See where that gets you..
-Brett

On Mon, Oct 12, 2009 at 11:11 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

If a place a call to a number that does not exist, the gateway returns a 404.

I want to redirect this call to a different gateway

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: lunedì 12 ottobre 2009 18:06
To: Pacho Baratta [fabbricadigitale]
Cc: OpenSIPS users mailling list


Subject: Re: [OpenSIPS-Users] 404 automatic failover

 

Pacho,

This is better than before. But you haven't mentioned what the problem is this time.

 

On Mon, Oct 12, 2009 at 11:03 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

As I said, I’m really a newbie. So I tried to modify the default routing logic, but no success.

Can you please tell me what’s wrong with this?

Thanks all, pacho

 


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: 404 automatic failover

Brett Nemeroff
Please keep this discussion on the list. Other's may benefit from your questions!!


How do you know it isn't called.. stick an xlog in there:

failure_route[1] {

        xlog("L_INFO","****** In failure route 1!!\n");

        if (t_was_cancelled()) {

                exit;

        }


Also, be sure to add the 404 check in:

if (t_check_status("400|486|408|404")) {


On Mon, Oct 12, 2009 at 11:36 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

I don’t understand what you mean.

The

if(uri=~"^sip:*@*") {

rewritehostport("172.30.1.110:5060");

 }

 

Seems to work fine, as I get calls on existing numbers.

 

My failure route is like this:

 

failure_route[1] {

        if (t_was_cancelled()) {

                exit;

        }

 

        # uncomment the following lines if you want to redirect the failed

        # calls to a different new destination

if (t_check_status("400|486|408")) {

                sethostport("172.30.7.54:5060");

#               rewritehostport("172.30.7.54:5060");

        ##      # do not set the missed call flag again

 xlog("L_ERR",

                "404 calls are redirected");

 

                t_relay();

        }

 

But it looks like it is not called

 

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: lunedì 12 ottobre 2009 18:21
To: OpenSIPS users mailling list


Subject: Re: [OpenSIPS-Users] 404 automatic failover

 

Your config really needs some work. For starters:

if(uri=~"^sip:*@*") {

rewritehostport("172.30.1.110:5060");

 }

(ie: if uri is properly formated then...) Of course, there are other cases you might be checking for here, but I don't think that was the intention..

 

 

So it might as well just be:

rewritehostport("172.30.1.110:5060");

(without the IF statement around it).

 

Next, you do a whole bunch of stuff after that rewrite that might end up rewriting the message again.. do you really want that? What I'm suggesting is that your order (where you stuck the rewrite) is off.

 

Lastly, in the failure route, you should add a check for the 404 in it:

if (t_check_status("400|486|408|404")) {

 

See where that gets you..

-Brett

 

On Mon, Oct 12, 2009 at 11:11 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

If a place a call to a number that does not exist, the gateway returns a 404.

I want to redirect this call to a different gateway

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: lunedì 12 ottobre 2009 18:06
To: Pacho Baratta [fabbricadigitale]
Cc: OpenSIPS users mailling list


Subject: Re: [OpenSIPS-Users] 404 automatic failover

 

Pacho,

This is better than before. But you haven't mentioned what the problem is this time.

 

On Mon, Oct 12, 2009 at 11:03 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

As I said, I’m really a newbie. So I tried to modify the default routing logic, but no success.

Can you please tell me what’s wrong with this?

Thanks all, pacho

 


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

 



_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: 404 automatic failover

Pacho Baratta [fabbricadigitale]

Brett,

the problem was with 400… it was not 404 as I believedL

 

thanks so much for the support, as it works fine now

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: lunedì 12 ottobre 2009 18:41
To: [hidden email]
Subject: Re: [OpenSIPS-Users] 404 automatic failover

 

Please keep this discussion on the list. Other's may benefit from your questions!!

 

 

How do you know it isn't called.. stick an xlog in there:

failure_route[1] {

        xlog("L_INFO","****** In failure route 1!!\n");

        if (t_was_cancelled()) {

                exit;

        }

 

Also, be sure to add the 404 check in:

if (t_check_status("400|486|408|404")) {

 

On Mon, Oct 12, 2009 at 11:36 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

I don’t understand what you mean.

The

if(uri=~"^sip:*@*") {

rewritehostport("172.30.1.110:5060");

 }

 

Seems to work fine, as I get calls on existing numbers.

 

My failure route is like this:

 

failure_route[1] {

        if (t_was_cancelled()) {

                exit;

        }

 

        # uncomment the following lines if you want to redirect the failed

        # calls to a different new destination

if (t_check_status("400|486|408")) {

                sethostport("172.30.7.54:5060");

#               rewritehostport("172.30.7.54:5060");

        ##      # do not set the missed call flag again

 xlog("L_ERR",

                "404 calls are redirected");

 

                t_relay();

        }

 

But it looks like it is not called

 

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: lunedì 12 ottobre 2009 18:21
To: OpenSIPS users mailling list


Subject: Re: [OpenSIPS-Users] 404 automatic failover

 

Your config really needs some work. For starters:

if(uri=~"^sip:*@*") {

rewritehostport("172.30.1.110:5060");

 }

(ie: if uri is properly formated then...) Of course, there are other cases you might be checking for here, but I don't think that was the intention..

 

 

So it might as well just be:

rewritehostport("172.30.1.110:5060");

(without the IF statement around it).

 

Next, you do a whole bunch of stuff after that rewrite that might end up rewriting the message again.. do you really want that? What I'm suggesting is that your order (where you stuck the rewrite) is off.

 

Lastly, in the failure route, you should add a check for the 404 in it:

if (t_check_status("400|486|408|404")) {

 

See where that gets you..

-Brett

 

On Mon, Oct 12, 2009 at 11:11 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

If a place a call to a number that does not exist, the gateway returns a 404.

I want to redirect this call to a different gateway

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: lunedì 12 ottobre 2009 18:06
To: Pacho Baratta [fabbricadigitale]
Cc: OpenSIPS users mailling list


Subject: Re: [OpenSIPS-Users] 404 automatic failover

 

Pacho,

This is better than before. But you haven't mentioned what the problem is this time.

 

On Mon, Oct 12, 2009 at 11:03 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

As I said, I’m really a newbie. So I tried to modify the default routing logic, but no success.

Can you please tell me what’s wrong with this?

Thanks all, pacho

 


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

 

 


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: 404 automatic failover

Brett Nemeroff
Sure thing. Glad you got it working.


On Mon, Oct 12, 2009 at 11:53 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

Brett,

the problem was with 400… it was not 404 as I believedL

 

thanks so much for the support, as it works fine now

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: lunedì 12 ottobre 2009 18:41
To: [hidden email]


Subject: Re: [OpenSIPS-Users] 404 automatic failover

 

Please keep this discussion on the list. Other's may benefit from your questions!!

 

 

How do you know it isn't called.. stick an xlog in there:

failure_route[1] {

        xlog("L_INFO","****** In failure route 1!!\n");

        if (t_was_cancelled()) {

                exit;

        }

 

Also, be sure to add the 404 check in:

if (t_check_status("400|486|408|404")) {

 

On Mon, Oct 12, 2009 at 11:36 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

I don’t understand what you mean.

The

if(uri=~"^sip:*@*") {

rewritehostport("172.30.1.110:5060");

 }

 

Seems to work fine, as I get calls on existing numbers.

 

My failure route is like this:

 

failure_route[1] {

        if (t_was_cancelled()) {

                exit;

        }

 

        # uncomment the following lines if you want to redirect the failed

        # calls to a different new destination

if (t_check_status("400|486|408")) {

                sethostport("172.30.7.54:5060");

#               rewritehostport("172.30.7.54:5060");

        ##      # do not set the missed call flag again

 xlog("L_ERR",

                "404 calls are redirected");

 

                t_relay();

        }

 

But it looks like it is not called

 

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: lunedì 12 ottobre 2009 18:21
To: OpenSIPS users mailling list


Subject: Re: [OpenSIPS-Users] 404 automatic failover

 

Your config really needs some work. For starters:

if(uri=~"^sip:*@*") {

rewritehostport("172.30.1.110:5060");

 }

(ie: if uri is properly formated then...) Of course, there are other cases you might be checking for here, but I don't think that was the intention..

 

 

So it might as well just be:

rewritehostport("172.30.1.110:5060");

(without the IF statement around it).

 

Next, you do a whole bunch of stuff after that rewrite that might end up rewriting the message again.. do you really want that? What I'm suggesting is that your order (where you stuck the rewrite) is off.

 

Lastly, in the failure route, you should add a check for the 404 in it:

if (t_check_status("400|486|408|404")) {

 

See where that gets you..

-Brett

 

On Mon, Oct 12, 2009 at 11:11 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

If a place a call to a number that does not exist, the gateway returns a 404.

I want to redirect this call to a different gateway

 

fabbricadigitale srl 

Pacho Baratta | Senior Systems Engineer

Tecnhology Engineering

----------------------------- 

Via A.Volta, 3 - 26041 – Casalmaggiore - CR

Phone +39 0375 284600

Fax +39 02 57760002

[hidden email]
www.fabbricadigitale.it

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brett Nemeroff
Sent: lunedì 12 ottobre 2009 18:06
To: Pacho Baratta [fabbricadigitale]
Cc: OpenSIPS users mailling list


Subject: Re: [OpenSIPS-Users] 404 automatic failover

 

Pacho,

This is better than before. But you haven't mentioned what the problem is this time.

 

On Mon, Oct 12, 2009 at 11:03 AM, Pacho Baratta [fabbricadigitale] <[hidden email]> wrote:

As I said, I’m really a newbie. So I tried to modify the default routing logic, but no success.

Can you please tell me what’s wrong with this?

Thanks all, pacho

 


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

 

 



_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users