This commit is contained in:
Thomas Ries
2017-04-13 15:37:39 +00:00
parent f087cadfd1
commit e9212ad80c
2 changed files with 13 additions and 5 deletions
+4 -4
View File
@@ -530,15 +530,15 @@ plugin_fix_fbox_anoncall_networks = 192.168.0.0/16,10.0.0.0/8,172.16.0.0/20
#
# This plugin maintains count of failed REGISTER attempts of
# individual local UACs (clients) and does block outgoing requests
# from such a UAC once a limit /hitcount) has been reached. The
# from such a UAC once a limit (hitcount) has been reached. The
# duration of the block is configurable. It is required that a blocked
# UAC does *not* send any packets that are going to be blocked
# during the duration to recover (the UAC must remain silent during
# this period)
# during the recovery duration the UAC must remain silent during
# this period).
#
# ...dbpath: path where the database is located
# ...mode: 0: no block, 1: IP based, 2: IP and SIP-user based
# ...simulate: 0: block UACs once the failure count limit has been reached
# ...simulate: 0: block UACs once the failure limit is reached
# 1: simulate, only log but don't block
# ...duration: block duration in seconds, 0: forever
# ...hitcount: required failed REGISTER attempts until blocked.
+9 -1
View File
@@ -254,6 +254,7 @@ static int blacklist_check(sip_ticket_t *ticket) {
osip_uri_t *from_url = NULL;
char *from=NULL;
char *call_id=ticket->sipmsg->call_id->number;
osip_authorization_t *auth=NULL;
DEBUGC(DBCLASS_BABBLE, "entering blacklist_check");
@@ -293,6 +294,13 @@ static int blacklist_check(sip_ticket_t *ticket) {
sql_stmt = NULL;
if (MSG_IS_REGISTER(ticket->sipmsg)) {
/* Disarm initial REGISTER requests that carry no Authentication header data. */
/* So if no Auth Header is present, then set CALL-Id=<empty> */
if (osip_message_get_authorization(ticket->sipmsg, 0, &auth) < 0) {
DEBUGC(DBCLASS_BABBLE, "REGISTER without Auth data");
call_id="";
}
/* Query 3: UPDATE OR IGNORE REGISTER request into requests DB */
/* bind */
sql_stmt = &sql_statement[SQL_CHECK_3];
@@ -328,7 +336,7 @@ static int blacklist_check(sip_ticket_t *ticket) {
/* free resources */
osip_free(from);
DEBUGC(DBCLASS_BABBLE, "leaving blacklist_check, UAC is permittet");
DEBUGC(DBCLASS_BABBLE, "leaving blacklist_check, UAC is permitted");
return STS_SUCCESS;
}