After looking through the rest of the secfilter documentation, the examples for 
all other functions it exports evaluate against $? rather than $avp(secfilter), 
 so it seems very likely the documentation is in error.

As a side observation is $? deprecated?  It's not listed at all in the 
pseudovariable documentation, and has only one mention in the core 
documentation.


https://github.com/kamailio/kamailio-wiki/blob/main/docs/cookbooks/6.0.x/pseudovariables.md
https://github.com/kamailio/kamailio-wiki/blob/main/docs/cookbooks/6.0.x/core.md



Regards,
Kaufman

________________________________
From: Ben Kaufman via sr-users <sr-users@lists.kamailio.org>
Sent: Thursday, August 7, 2025 7:51 AM
To: Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org>
Cc: Ben Kaufman <bkauf...@bcmone.com>
Subject: [SR-Users] Re: secfilter secf_check_country($gip2(src=>cc)) always 
replies null


CAUTION: This email originated from outside the organization. Do not click 
links or open attachments unless you recognize the sender and know the content 
is safe.

Not really an answer here, but more of a question:  How is this supposed to 
work? Why would $avp(secfilter) be set at all?  I know that this is basically 
the example from the secfilter documentation:

if (geoip2_match("$si", "src")) {
    secf_check_country($gip2(src=>cc));
    if ($avp(secfilter) == -2) {
        xlog("L_ALERT", "$rm from $si blocked because Country '$gip2(src=>cc)' 
is blacklisted");
        exit;
    }
}

Is $avp(secfilter) automatically reserved by the module?  If so, it doesn't 
appear to be documented.  I would try checking it against $rc, or better yet, 
assigning the return of secf_check_country() to a variable:

$avp(secf_cc_rc) = secf_check_country($gip2(src=>cc));
if ( $avp(secf_cc_rc) == -2 ) {
    ## code here
}


Finally, it looks odd that the argument to secf_check_country() isn't quoted, 
but maybe that's just my early morning eyes.

Regards,
Kaufman

________________________________
From: Samuel Moya Tinoco via sr-users <sr-users@lists.kamailio.org>
Sent: Thursday, August 7, 2025 3:08 AM
To: Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org>
Cc: Samuel Moya Tinoco <sm...@vivelibre.es>
Subject: [SR-Users] secfilter secf_check_country($gip2(src=>cc)) always replies 
null


CAUTION: This email originated from outside the organization. Do not click 
links or open attachments unless you recognize the sender and know the content 
is safe.


Good morning everyone,



Im trying to configure secfilter module to harden our kamailio.

After configuring geoip2 module and checking that using function 
geoip2_match("$si", "src") it shows the country properly. I’ve configured 
secfilter module, and I think it’s also working because kamailio service starts 
and with kamcmd secfilter.print I can see the entries from the DDBB.

But when I call the function secf_check_country($gip2(src=>cc)) it always 
replies with <null> (I saw it in this variable $avp(secfilter)). I’ve also 
tried to use $? Variable and it shows “1”, in the module documentation I saw 
that 1 means “the value is not found”. But when I use kamcmd secfilter.print I 
can see the country in the output and it’s spelled exactly the same that in 
$gip2(src=>cc)



I don’t know if there’s something I’m missing. Any help would be appreciated.

Thanks in advance



This is the code I’m executing

if (geoip2_match("$si", "src")) {

                secf_check_country($gip2(src=>cc));

                xlog("L_ALERT", "La respuesta de de secfilter es 
$avp(secfilter)");

                xlog("L_ALERT", "$?");

                if ($avp(secfilter) == 2) {

                        return;

                }

        xlog("L_ALERT", "$rm from $si blocked because Country '$gip2(src=>cc)' 
is blacklisted");

        exit;

        }

And this is what appears in the logs

2025-08-07T09:42:54.876178+02:00 PRE-KAMAILIO /usr/sbin/kamailio[1393]: exec: 
{1 1 OPTIONS fabe0744-1fca28e3-83050f4@127.0.0.1} *** cfgtrace:dbg_cfg_trace(): 
request_route=[GEOIP] c=[/etc/kamailio/kamailio.cfg] l=1061 a=16 n=if

2025-08-07T09:42:54.876219+02:00 PRE-KAMAILIO /usr/sbin/kamailio[1393]: exec: 
{1 1 OPTIONS fabe0744-1fca28e3-83050f4@127.0.0.1} *** cfgtrace:dbg_cfg_trace(): 
request_route=[GEOIP] c=[/etc/kamailio/kamailio.cfg] l=1049 a=26 n=geoip2_match

2025-08-07T09:42:54.876252+02:00 PRE-KAMAILIO /usr/sbin/kamailio[1393]: exec: 
{1 1 OPTIONS fabe0744-1fca28e3-83050f4@127.0.0.1} *** cfgtrace:dbg_cfg_trace(): 
request_route=[GEOIP] c=[/etc/kamailio/kamailio.cfg] l=1051 a=32 
n=secf_check_country

2025-08-07T09:42:54.876291+02:00 PRE-KAMAILIO /usr/sbin/kamailio[1393]: exec: 
{1 1 OPTIONS fabe0744-1fca28e3-83050f4@127.0.0.1} *** cfgtrace:dbg_cfg_trace(): 
request_route=[GEOIP] c=[/etc/kamailio/kamailio.cfg] l=1052 a=26 n=xlog

2025-08-07T09:42:54.876473+02:00 PRE-KAMAILIO /usr/sbin/kamailio[1393]: ALERT: 
{1 1 OPTIONS fabe0744-1fca28e3-83050f4@127.0.0.1} <script>: La respuesta de de 
secfilter es <null>

2025-08-07T09:42:54.876513+02:00 PRE-KAMAILIO /usr/sbin/kamailio[1393]: exec: 
{1 1 OPTIONS fabe0744-1fca28e3-83050f4@127.0.0.1} *** cfgtrace:dbg_cfg_trace(): 
request_route=[GEOIP] c=[/etc/kamailio/kamailio.cfg] l=1053 a=26 n=xlog

2025-08-07T09:42:54.876556+02:00 PRE-KAMAILIO /usr/sbin/kamailio[1393]: ALERT: 
{1 1 OPTIONS fabe0744-1fca28e3-83050f4@127.0.0.1} <script>: 1

2025-08-07T09:42:54.876587+02:00 PRE-KAMAILIO /usr/sbin/kamailio[1393]: exec: 
{1 1 OPTIONS fabe0744-1fca28e3-83050f4@127.0.0.1} *** cfgtrace:dbg_cfg_trace(): 
request_route=[GEOIP] c=[/etc/kamailio/kamailio.cfg] l=1058 a=16 n=if

2025-08-07T09:42:54.876619+02:00 PRE-KAMAILIO /usr/sbin/kamailio[1393]: exec: 
{1 1 OPTIONS fabe0744-1fca28e3-83050f4@127.0.0.1} *** cfgtrace:dbg_cfg_trace(): 
request_route=[GEOIP] c=[/etc/kamailio/kamailio.cfg] l=1058 a=26 n=xlog

2025-08-07T09:42:54.876651+02:00 PRE-KAMAILIO /usr/sbin/kamailio[1393]: ALERT: 
{1 1 OPTIONS fabe0744-1fca28e3-83050f4@127.0.0.1} <script>: OPTIONS from 
91.228.91.69 blocked because Country 'ES' is blacklisted

2025-08-07T09:42:54.876682+02:00 PRE-KAMAILIO /usr/sbin/kamailio[1393]: exec: 
{1 1 OPTIONS fabe0744-1fca28e3-83050f4@127.0.0.1} *** cfgtrace:dbg_cfg_trace(): 
request_route=[GEOIP] c=[/etc/kamailio/kamailio.cfg] l=1059 a=2 n=exit



The output of kamcmd secfilter.print country

root@PRE-KAMAILIO:/etc/kamailio# kamcmd secfilter.print country



Country

=======

[+] Blacklisted

    -----------



[+] Whitelisted

    -----------

    0001 -> ES





Samuel Moya Tinoco

Departamento de Sistemas y Redes

Móvil: (+34) 606985997

sm...@vivelibre.es<mailto:sm...@vivelibre.es>



ViveLibre

C/ La Orotava 4

28660 Boadilla del Monte

Madrid

www.vivelibre.es<https://urldefense.com/v3/__http://www.vivelibre.es/__;!!KWzduNI!f9kryLOD_oNxwCV3Mqg6p02pmlKK99lfvGemeWBRqt3Ng4VSVEnAYsQgmwgkJOrHqSmjJJcPNnhJQNVGb3MnoY0$>



[cid:image001.png@01DC0780.5D6264D0]



Soluciones inteligentes
para la autonomía personal







"Tanto este mensaje como todos los posibles documentos adjuntos al mismo son 
confidenciales y están dirigidos exclusivamente a los destinatarios de los 
mismos. Por favor, si Usted no es uno de dichos destinatarios, notifíquenos 
este hecho y elimine el mensaje de su sistema. Queda prohibida la copia, 
difusión o revelación de su contenido a terceros sin el previo consentimiento 
por escrito de VIVELIBRE AUTONOMÍA PERSONAL S.L.U. (VIVELIBRE). En caso 
contrario, vulnerará la legislación vigente. De conformidad con lo establecido 
en el Reglamento (UE) 2016/679, General de Protección de Datos, le informamos 
de que sus datos son objeto de tratamiento por VIVELIBRE, en calidad de 
Responsable del Tratamiento. VIVELIBRE tratará sus datos con la finalidad de 
mantener la relación contractual, gestionar su solicitud, así como remitirle 
comunicaciones de carácter comercial relacionadas con su ámbito de actividad y 
los servicios prestados. Si desea ejercitar sus derechos de acceso, 
rectificación, supresión, limitación, oposición o portabilidad, puede dirigirse 
a la dirección postal Calle de la Orotava 4, 28660, Boadilla del Monte, 
(Madrid) o a la dirección de correo electrónico protecciondeda...@vivelibre.es. 
Para obtener más información sobre cómo tratamos sus datos, consulta nuestra 
Política de Privacidad en Política de Privacidad - Vivelibre.”
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions -- 
sr-users@lists.kamailio.org
To unsubscribe send an email to sr-users-le...@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the 
sender!

Reply via email to