Re: secfilter secf_check_country($gip2(src=>cc)) always replies null
Ben Kaufman via sr-users <[email protected]>
| Newsgroups | gmane.comp.voip.ser |
|---|---|
| Message-ID | <DM4PR11MB54071C1B9518B83F2FA2A4C8A42CA@DM4PR11MB5407.namprd11.prod.outlook.com> |
PR submitted. Regards, Kaufman ________________________________ From: Henning Westerholt <[email protected]> Sent: Thursday, August 7, 2025 1:12 PM To: Kamailio (SER) - Users Mailing List <[email protected]> Cc: Ben Kaufman <[email protected]> Subject: 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. Hi Ben, the $? Is not deprecated. Its probably just not documented in the PV page, should be added there. Cheers, Henning From: Ben Kaufman via sr-users <[email protected]> Sent: Donnerstag, 7. August 2025 14:59 To: Kamailio (SER) - Users Mailing List <[email protected]> Cc: Ben Kaufman <[email protected]> Subject: [SR-Users] Re: secfilter secf_check_country($gip2(src=>cc)) always replies null 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://urldefense.com/v3/__https://github.com/kamailio/kamailio-wiki/blob/main/docs/cookbooks/6.0.x/pseudovariables.md__;!!KWzduNI!aAdeqDxKwaSlT-Nwxj56VnoLGATXmzIWR2xhRQGBmn65TUgKp3qkmpVIA_o_v8lpYYqJ4EPC1Q$> https://github.com/kamailio/kamailio-wiki/blob/main/docs/cookbooks/6.0.x/core.md<https://urldefense.com/v3/__https://github.com/kamailio/kamailio-wiki/blob/main/docs/cookbooks/6.0.x/core.md__;!!KWzduNI!aAdeqDxKwaSlT-Nwxj56VnoLGATXmzIWR2xhRQGBmn65TUgKp3qkmpVIA_o_v8lpYYrxETgoVg$> Regards, Kaufman ________________________________ From: Ben Kaufman via sr-users <[email protected]<mailto:[email protected]>> Sent: Thursday, August 7, 2025 7:51 AM To: Kamailio (SER) - Users Mailing List <[email protected]<mailto:[email protected]>> Cc: Ben Kaufman <[email protected]<mailto:[email protected]>> 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 <[email protected]<mailto:[email protected]>> Sent: Thursday, August 7, 2025 3:08 AM To: Kamailio (SER) - Users Mailing List <[email protected]<mailto:[email protected]>> Cc: Samuel Moya Tinoco <[email protected]<mailto:[email protected]>> 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 [email protected]<mailto:[email protected]>} *** 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 [email protected]<mailto:[email protected]>} *** 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 [email protected]<mailto:[email protected]>} *** 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 [email protected]<mailto:[email protected]>} *** 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 [email protected]<mailto:[email protected]>} <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 [email protected]<mailto:[email protected]>} *** 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 [email protected]<mailto:[email protected]>} <script>: 1 2025-08-07T09:42:54.876587+02:00 PRE-KAMAILIO /usr/sbin/kamailio[1393]: exec: {1 1 OPTIONS [email protected]<mailto:[email protected]>} *** 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 [email protected]<mailto:[email protected]>} *** 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 [email protected]<mailto:[email protected]>} <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 [email protected]<mailto:[email protected]>} *** 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 [email protected]<mailto:[email protected]> 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:[email protected]] 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 [email protected]<mailto:[email protected]>. 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 -- [email protected] To unsubscribe send an email to [email protected] Important: keep the mailing list in the recipients, do not reply only to the sender!
image001.png
(image/png, 3.7 KB) - not displayed