<div dir="ltr">Hi there,<div><br></div><div>I've added a simple black list that rejects incoming requests (REGISTER and INVITE) containing certain text in the message body. Source IP addresses of the rejected requests are going to be banned and added to the ban list:</div><div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">route<br>{<br><span class="gmail-Apple-tab-span" style="white-space:pre">               </span>...<br><br><br>        $var(ban_list_key) = $si + ":" + $sp;<br>        if ($sht(ip_ban_list=>$var(ban_list_key)) != $null) {    <br>            xlog("L_INFO", "$var(log_fmt_tag) The incoming $rm request from: $fU, si: $si, sp: $sp was rejected. The source host is temporarily banned.");<br>            sl_send_reply("400", "Bad request");<br>            exit;               <br>        }  <br><br><span class="gmail-Apple-tab-span" style="white-space:pre">              </span>...<br><br>        if (method=="REGISTER" || method=="INVITE") {  <br>            sht_iterator_start("i1", "black_list");<br>            while(sht_iterator_next("i1")) {<br>                $var(term_is_in_wl) = 0;<br>                $var(collision_idx) = 0;<br>                while($sht(white_list=>$fU[$var(collision_idx)]) != $null ) {<br>                    if($shtitval(i1) == $sht(white_list=>$fU[$var(collision_idx)])) {<br>                        $var(term_is_in_wl) = 1;<br>                        break;<br>                    }<br>                    $var(collision_idx) = $var(collision_idx) + 1;<br>                }  <br>                if ($var(term_is_in_wl) == 0) {<br>                    if ( $mb =~ $shtitval(i1) ) {<br>                        # found a term from the black list. access denied.<br>                        xlog("L_INFO", "$var(log_fmt_tag) The incoming $rm request from: $fU, si: $si, sp: $sp was rejected. SIP message body contains a term from the black list - $shtitval(i1)");<br>                        # add device to banlist<br>                        $var(ban_info) = "" + $Ts + "_" + $shtitval(i1); <br>                        $sht(ip_ban_list=>$var(ban_list_key)) = $var(ban_info);<br>                        xlog("L_INFO", "$var(log_fmt_tag) The source host $si:$sp was banned for 1 hour.");<br>                        sht_iterator_end("i1");<br>                        sl_send_reply("400", "Bad request");<br>                        exit;<br>                    }<br>                }<br>            }<br>            sht_iterator_end("i1");<br>        }<br><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>...<br>}</blockquote><div><br></div><div>All works fine with UPD, but using TCP, kamailio ceases to accept any requests. Please take a look, what do I wrong.</div><div><br></div><div>Thanks,</div><div>Andrey   </div></div><div><br></div></div>