[SR-Users] calling failure_route

David Villasmil david.villasmil.work at gmail.com
Fri May 6 13:32:31 CEST 2022


Hello guys,

I ended up doing:

route[DISPATCH] {
  # round robin dispatching on gateways group '1'
  if(!ds_select_dst("1", "4")) {
    send_reply("404", "No destination");
    exit;
  }
  if(!is_ip($(du{s.rm,sip:}{re.subst,/:.*//})) && !dns_query("$du", "xyz"))
{
    xlog("L_DBG", "--- SCRIPT: Marking $du as Inactive/NotProbing!\n");
    ds_mark_dst("ip");
    route(DISPATCH);
  }
  route(RELAY);
}

This will do a dns_query only if $du is not a valid ip address, and if the
resolution fails, will mark the destination as INACTIVE and try again with
the same route.

Hope this makes sense.

Regards,

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


On Fri, May 6, 2022 at 8:50 AM Daniel-Constantin Mierla <miconda at gmail.com>
wrote:

> Hello,
>
> you can put the group of actions inside a route block and then execute
> that route block from failure_route and other locations in your config.
>
> Cheers,
> Daniel
> On 05.05.22 19:50, David Villasmil wrote:
>
> 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
> email: david.villasmil.work at gmail.com
> phone: +34669448337
>
> __________________________________________________________
> Kamailio - Users Mailing List - Non Commercial Discussions
>   * sr-users at lists.kamailio.org
> Important: keep the mailing list in the recipients, do not reply only to the sender!
> Edit mailing list options or unsubscribe:
>   * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
> --
> Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
> Kamailio Advanced Training - Online
>   * https://www.asipto.com/sw/kamailio-advanced-training-online/
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20220506/ed979524/attachment.htm>


More information about the sr-users mailing list