Thanks Henning,

Between the time when the ping realizes it to the next ping, the scenario might happen. I don’t know the dns failure function, that’s my problem :)

David

On Thu, 5 May 2022 at 21:43, Henning Westerholt <hw@gilawa.com> wrote:
Hello, 

It should work out of the box with pinging the gateway. Why do you can not use this method?

Otherwise you can just use the appropriate dispatcher method to set the gateway state as inactive at dns failure.

Cheers,

Henning


Von: sr-users <sr-users-bounces@lists.kamailio.org> im Auftrag von David Villasmil <david.villasmil.work@gmail.com>
Gesendet: Donnerstag, 5. Mai 2022, 20:52
An: Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org>
Betreff: [SR-Users] calling failure_route

Hello guys,

Is it possible to call a failure_route like a normal route?

i.e.:

{
  t_on_failure("myroute");
}
...

route("myroute");

failure_route[myroute] {
...
}

Let me explain:

I have this scenario where a DNS name may get deleted and a dns resolution will fail. There's no pinging to that gateway so i need to:

- skip that gateway when dispatching to the setid
- detect whether the domain is up and available

And failover to the next gateway.

I don't know of any other way so on the DISPATCH route, I'm doing:

route[DISPATCH] {
  # round robin dispatching on gateways group '1'
  if(!ds_select_dst("1", "4")) {
    send_reply("404", "No destination");
    exit;
  }
  xlog("L_DBG", "--- SCRIPT: going to <$ru> via <$du>\n");
    if(dns_query("$du", "xyz")) {
      t_on_failure("RTF_DISPATCH");
      route(RELAY);
    } else {
      route(RTF_DISPATCH);
    }
    exit;
}

to try to resolve and if it fails, it will just go to the failover route.


makes sense?


Regards,

David Villasmil
phone: +34669448337

--
Regards,

David Villasmil
email: david.villasmil.work@gmail.com
phone: +34669448337