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
From: sr-users <sr-users-bounces@lists.kamailio.org>
On Behalf Of Marat Gareev
Sent: Thursday, September 9, 2021 8:02 PM
To: Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org>
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: