Hello,

regarding your previous question:
“How can such cases be managed and how can they be logged?”

If you want to log the case that a destination goes offline, as mentioned have 
a look to the dispatcher event routes at the bottom of the docs.

If you have another question, please elaborate. 😊

Cheers,

Henning

--
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com<https://gilawa.com/>

From: Marat Gareev <[email protected]>
Sent: Tuesday, September 14, 2021 1:02 PM
To: Henning Westerholt <[email protected]>
Cc: Kamailio (SER) - Users Mailing List <[email protected]>
Subject: Re: [SR-Users] Manage blacklisting on network errors

Hello,

Thank you for replying, but I don't understand how it will help me.

I already use ds_mark_dst() and know how it works. Problem is that I can't 
control network errors with like this:
if (network_error() || timeout()) {
    xlog("L_WARN", "Server $si:$sp has network problems and will be 
blacklisted.\n");
    ds_mark_dst("IP");
}

Marat

вт, 14 сент. 2021 г. в 13:33, Henning Westerholt 
<[email protected]<mailto:[email protected]>>:
Hello,

you probably want to check the dispatcher module docs out for this 
ds_mark_dst(..) function. You find also some RPC commands to e.g. inspect on 
shell. You can also try the event-routes documented there to log some info.

https://kamailio.org/docs/modules/stable/modules/dispatcher.html#dispatcher.f.ds_mark_dst

Cheers,

Henning

--
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com<https://gilawa.com/>

From: sr-users 
<[email protected]<mailto:[email protected]>>
 On Behalf Of Marat Gareev
Sent: Thursday, September 9, 2021 8:02 PM
To: Kamailio (SER) - Users Mailing List 
<[email protected]<mailto:[email protected]>>
Subject: [SR-Users] Manage blacklisting on network errors

Hello!

I have a simple config for routing requests with failover and blacklisting on 
408, 480 and 503 codes from servers.

This is a part of config:
# Wrapper for relaying requests
route[RELAY] {

  # the base event routes
  t_on_branch("MANAGE_BRANCH");
  t_on_reply("MANAGE_REPLY");
  t_on_failure("MANAGE_FAILURE");

  if (!t_relay()) {
    sl_reply_error();
  }
  exit;
}

# Manage incoming replies
onreply_route[MANAGE_REPLY] {
  xlog("L_NOTICE", "$rr ($rs) [$cs] ($ci) $si:$sp - $ua\n");
  if ( t_check_status("(503)|(408)|(480)") ) {
    xlog("L_WARN", "Server will be blacklisted: $si:$sp ($rs)\n");
  }
}

# Manage failure routing cases
failure_route[MANAGE_FAILURE] {

  if ( !t_check_status("(503)|(408)|(480)") ) {
    exit;
  }

  ds_mark_dst("IP"); # blacklist

  if (t_is_canceled()) exit;

  if (!ds_next_domain()) {
    send_reply("503", "Service Unavailable");
    exit;
  }

  route(RELAY);
}

If there is a timeout or network error on the server side, it is blacklisted. 
How can such cases be managed and how can they be logged?
I didn't find this on the module page:
https://www.kamailio.org/docs/modules/stable/modules/tm.html

__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
  * [email protected]
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

Reply via email to