Daniel,
Sorry was still some testing code, but without the ! it rejects
everything.
Code:
xlog("L_NOTICE", "NOTICE: Chekking blacklist for number
$(avp(ruri_number){s.substr,1,0}) with domain $avp(from_domain) - R=$ru
ID=$ci FU=$fu M=$rm UA=$ua\n");
if (check_user_blacklist("blacklist", "$avp(from_domain)",
"$(avp(ruri_number){s.substr,1,0})")) {
xlog("L_ALERT", "ALERT:
$(avp(ruri_number){s.substr,1,0}) with domain $avp(from_domain) is
blacklisted, rejecting call - R=$ru ID=$ci FU=$fu M=$rm UA=$ua\n");
sl_send_reply("403", "Blacklisted");
exit;
}
In the db:
+----+-----------+----------------+-----------+-----------+
| id | username | domain | prefix | whitelist |
+----+-----------+----------------+-----------+-----------+
| 3 | blacklist |
| 318001234 | 0 |
+----+-----------+----------------+-----------+-----------+
Logging:
Jun 28 08:55:50 sip03 /usr/local/sbin/kamailio[13494]: NOTICE: <script>:
NOTICE: Chekking blacklist for number 318001234 with domain
- R=sip:08001234@oranjelaan.net
ID=A69369F6D60321BCF77A44ACCAD1670405DEC128
FU=sip:testaccount2@oranjelaan.net M=INVITE UA=Acrobits Softphone/4.8
(build 717747; Android 6.0.1; armeabi-v7a-neon)
Jun 28 08:55:50 sip03 /usr/local/sbin/kamailio[13494]: ALERT: <script>:
ALERT: 318001234 with domain
is blacklisted, rejecting
call - R=sip:08001234@oranjelaan.net
ID=A69369F6D60321BCF77A44ACCAD1670405DEC128
FU=sip:testaccount2@oranjelaan.net M=INVITE UA=Acrobits Softphone/4.8
(build 717747; Android 6.0.1; armeabi-v7a-neon)
Jun 28 08:56:12 sip03 /usr/local/sbin/kamailio[13496]: NOTICE: <script>:
NOTICE: Chekking blacklist for number 318001235 with domain
- R=sip:08001235@oranjelaan.net
ID=CC63BE9D40CBF3CD9B55445059C2D9BDFD106426
FU=sip:testaccount2@oranjelaan.net M=INVITE UA=Acrobits Softphone/4.8
(build 717747; Android 6.0.1; armeabi-v7a-neon)
Jun 28 08:56:12 sip03 /usr/local/sbin/kamailio[13496]: ALERT: <script>:
ALERT: 318001235 with domain
is blacklisted, rejecting
call - R=sip:08001235@oranjelaan.net
ID=CC63BE9D40CBF3CD9B55445059C2D9BDFD106426
FU=sip:testaccount2@oranjelaan.net M=INVITE UA=Acrobits Softphone/4.8
(build 717747; Android 6.0.1; armeabi-v7a-neon)
Jan
Daniel-Constantin Mierla schreef op 2016-06-27 16:19:
You have a negation of the function int the if
expression,
respectively:
!check_user_blacklist(...)
If the function returns true on record match and you want to reject in
that case, then just remove the ! in the expression.
Cheers,
Daniel
On 27/06/16 14:11, Jan Hazenberg wrote:
> Daniel,
>
> Seems like it is not working anymore, i now have configured:
>
> if (!check_user_blacklist("blacklist", "oranjelaan.net",
> "318001234")) {
> xlog("L_ALERT", "ALERT: $rU is blacklisted, rejecting
> call - IP=$si PORT=$sp R=$ru ID=$ci FU=$fu M=$rm UA=$ua\n");
> sl_send_reply("403", "Blacklisted");
> exit;
> }
>
> With the following in db:
>
> +----+-----------+----------------+-----------+-----------+
> | id | username | domain | prefix | whitelist |
> +----+-----------+----------------+-----------+-----------+
> | 3 | blacklist |
oranjelaan.net | 318001234 | 0 |
> +----+-----------+----------------+-----------+-----------+
>
> But is is not rejecting the call. If i use the fifo command all is
> fine:
>
>
> [root@sip03 kamailio]# /usr/local/sbin/kamctl fifo check_userblacklist
> blacklist
oranjelaan.net 318001234
> 318001234:: blacklisted=true
>
> [root@sip03 kamailio]# /usr/local/sbin/kamctl fifo check_userblacklist
> blacklist
oranjelaan.net 318001235
> 318001235:: blacklisted=false
>
>
>
> Jan
>
>
> Daniel-Constantin Mierla schreef op 2016-06-27 13:53:
>> Have you done any tests to see if runtime works fine as well? Just to
>> be
>> sure nothing was broken.
>>
>> Cheers,
>> Daniel
>>
>>
>> On 27/06/16 13:46, Jan Hazenberg wrote:
>>> Daniel,
>>>
>>> Yes that seems to fix the problem. Kamailio now starts without
>>> crashing.
>>>
>>> Thanks,
>>>
>>> Jan
>>>
>>>
>>> Daniel-Constantin Mierla schreef op 2016-06-27 13:08:
>>>> Can you try with the master branch or backport the next commit?
>>>>
>>>> -
>>>>
https://github.com/kamailio/kamailio/commit/5fd2c91f512b7311f11c76023da4575…
>>>>
>>>>
>>>>
>>>> If all ok, then I push the backported patch to stable branches.
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>> On 27/06/16 11:57, Daniel-Constantin Mierla wrote:
>>>>> The spec is null, so the crash is obvious. I have to look at the
>>>>> code to
>>>>> see why it expect to be a spec there, while it can be a static
>>>>> string.
>>>>>
>>>>> Cheers,
>>>>> Daniel
>>>>>
>>>>>
>>>>> On 27/06/16 10:57, Jan Hazenberg wrote:
>>>>>> Daniel,
>>>>>>
>>>>>> Here the requested gdb output:
>>>>>>
>>>>>> (gdb) frame 1
>>>>>> #1 0x00007f22fd252ece in check_user_blacklist_fixup
>>>>>> (param=0x7f23061cdd88, param_no=1) at userblacklist.c:213
>>>>>> 213 if(str2int(&s,
(unsigned
>>>>>> int*)&model->spec->pvp.pvn.u.isname.name.n) != 0) {
>>>>>> (gdb) info locals
>>>>>> model = 0x7f23061c9400
>>>>>> s = {s = 0x7f23061ce0b8 "blacklist", len = 9}
>>>>>> __FUNCTION__ = "check_user_blacklist_fixup"
>>>>>> (gdb) p *model
>>>>>> $1 = {text = {s = 0x7f23061ce0b8 "blacklist", len = 9},
spec =
>>>>>> 0x0,
>>>>>> next = 0x0}
>>>>>> (gdb) p *model->spec
>>>>>> Cannot access memory at address 0x0
>>>>>> (gdb)
>>>>>>
>>>>>>
>>>>>> Jan
>>>>>>
>>>>>> Daniel-Constantin Mierla schreef op 2016-06-23 19:46:
>>>>>>> Can you get the output of following commands in gdb:
>>>>>>>
>>>>>>> frame 1
>>>>>>>
>>>>>>> info locals
>>>>>>>
>>>>>>> p *model
>>>>>>>
>>>>>>> p *model->spec
>>>>>>>
>>>>>>> Cheers,
>>>>>>> Daniel
>>>>>>>
>>>>>>>
>>>>>>> On 23/06/16 14:45, Jan Hazenberg wrote:
>>>>>>>> Daniel,
>>>>>>>>
>>>>>>>> Here the output of the bt command. This was generated
with
>>>>>>>> kamailio
>>>>>>>> 4.4.1
>>>>>>>>
>>>>>>>> Core was generated by `/usr/local/sbin/kamailio -P
>>>>>>>> /var/run/kamailio.pid -m 768 -M 16 -u kamailio -g
k'.
>>>>>>>> Program terminated with signal 11, Segmentation fault.
>>>>>>>> #0 0x00007f22fd2526fb in str2int (_s=0x7ffc529b73c0,
_r=0x30)
>>>>>>>> at
>>>>>>>> ../../parser/../parser/../ut.h:643
>>>>>>>> 643 *_r = 0;
>>>>>>>> Missing separate debuginfos, use: debuginfo-install
>>>>>>>> glibc-2.12-1.166.el6_7.7.x86_64
keyutils-libs-1.4-5.el6.x86_64
>>>>>>>> krb5-libs-1.10.3-42z1.el6_7.x86_64
>>>>>>>> libcom_err-1.41.12-22.el6.x86_64
>>>>>>>> libselinux-2.0.94-5.8.el6.x86_64
>>>>>>>> libxml2-2.7.6-20.el6_7.1.x86_64
>>>>>>>> mysql-libs-5.1.73-5.el6_6.x86_64
>>>>>>>> nss-softokn-freebl-3.14.3-23.el6_7.x86_64
>>>>>>>> openssl-1.0.1e-42.el6_7.4.x86_64 pcre-7.8-7.el6.x86_64
>>>>>>>> zlib-1.2.3-29.el6.x86_64
>>>>>>>> (gdb) bt
>>>>>>>> #0 0x00007f22fd2526fb in str2int (_s=0x7ffc529b73c0,
_r=0x30)
>>>>>>>> at
>>>>>>>> ../../parser/../parser/../ut.h:643
>>>>>>>> #1 0x00007f22fd252ece in check_user_blacklist_fixup
>>>>>>>> (param=0x7f23061cdd88, param_no=1) at
userblacklist.c:213
>>>>>>>> #2 0x0000000000531e49 in fix_actions (a=0x7f23061cdd28)
at
>>>>>>>> route.c:919
>>>>>>>> #3 0x00000000005613b7 in fix_rval (rv=0x7f23061cfa68)
at
>>>>>>>> rvalue.c:2876
>>>>>>>> #4 0x000000000057323e in fix_rval_expr
(p=0x7f23061cfa60) at
>>>>>>>> rvalue.c:3797
>>>>>>>> #5 0x0000000000573253 in fix_rval_expr
(p=0x7f23061cf350) at
>>>>>>>> rvalue.c:3808
>>>>>>>> #6 0x000000000052da79 in fix_actions (a=0x7f23061ce7f0)
at
>>>>>>>> route.c:706
>>>>>>>> #7 0x000000000053da17 in fix_rl (rt=0xac8640) at
route.c:2088
>>>>>>>> #8 0x000000000053da4d in fix_rls () at route.c:2104
>>>>>>>> #9 0x00000000004b83ea in main (argc=11,
argv=0x7ffc529b8158)
>>>>>>>> at
>>>>>>>> main.c:2605
>>>>>>>> (gdb)
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>>
>>>>>>>> Jan
>>>>>>>>
>>>>>>>> Daniel-Constantin Mierla schreef op 2016-06-23 12:53:
>>>>>>>>> Hello,
>>>>>>>>>
>>>>>>>>> send the all the output of 'bt' command
inside gdb. It will
>>>>>>>>> give
>>>>>>>>> the
>>>>>>>>> full execution stack, likely the problem is not in
frame 0,
>>>>>>>>> but
>>>>>>>>> in a
>>>>>>>>> previous one.
>>>>>>>>>
>>>>>>>>> Cheers,
>>>>>>>>> Daniel
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 23/06/16 12:47, Jan Hazenberg wrote:
>>>>>>>>>> I just tried to use the check_user_blacklist
function but
>>>>>>>>>> then
>>>>>>>>>> kamailio crashed when i start it. I'm using
the following
>>>>>>>>>> code:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> if
(!check_user_blacklist("blacklist",
>>>>>>>>>> "$avp(from_domain)",
>>>>>>>>>> "$(avp(ruri_number){s.substr,1,0})"))
{
>>>>>>>>>> xlog("L_ALERT",
"ALERT: $rU is blacklisted,
>>>>>>>>>> rejecting
>>>>>>>>>> call - IP=$si PORT=$sp R=$ru ID=$ci FU=$fu M=$rm
UA=$ua\n");
>>>>>>>>>> sl_send_reply("403",
"Forbidden");
>>>>>>>>>> exit;
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> This is the GDB output:
>>>>>>>>>>
>>>>>>>>>> Core was generated by `/usr/local/sbin/kamailio
-P
>>>>>>>>>> /var/run/kamailio.pid -m 768 -M 16 -u kamailio -g
k'.
>>>>>>>>>> Program terminated with signal 11, Segmentation
fault.
>>>>>>>>>> #0 0x00007fdf4b2be6fb in str2int
(_s=0x7fff312b7bd0,
>>>>>>>>>> _r=0x30) at
>>>>>>>>>> ../../parser/../parser/../ut.h:643
>>>>>>>>>> 643 *_r = 0;
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I have kamailio 4.4.0 installed, just tested with
4.4.1 and
>>>>>>>>>> the
>>>>>>>>>> result
>>>>>>>>>> is the same.
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>>
>>>>>>>>>> Jan
>>>>>>>>>>
>>>>>>>>>> Jan Hazenberg schreef op 2016-06-23 09:47:
>>>>>>>>>>> Hello,
>>>>>>>>>>>
>>>>>>>>>>> I'm trying to use the userblacklist
module to implement a
>>>>>>>>>>> global
>>>>>>>>>>> blacklist. I have a few questions about the
module.
>>>>>>>>>>>
>>>>>>>>>>> Is it possible to use a avp for the
check_blacklist
>>>>>>>>>>> function?
>>>>>>>>>>> If i'm
>>>>>>>>>>> correct it will only parse the request URI,
but i'm
>>>>>>>>>>> rewriting the
>>>>>>>>>>> URI
>>>>>>>>>>> in a branch route to allow different formats
to different
>>>>>>>>>>> destinations. Or is this only possible with
the
>>>>>>>>>>> check_user_blacklist
>>>>>>>>>>> function?
>>>>>>>>>>>
>>>>>>>>>>> I also have a issue with numbers in E164
format with a
>>>>>>>>>>> leading
>>>>>>>>>>> +. I
>>>>>>>>>>> tried to escape this with a \ in the database
but it will
>>>>>>>>>>> not
>>>>>>>>>>> load the
>>>>>>>>>>> entry's when i use the + in front of the
number. Is the +
>>>>>>>>>>> supported by
>>>>>>>>>>> this module or should i strip it before the
function and add
>>>>>>>>>>> it
>>>>>>>>>>> again
>>>>>>>>>>> afterwards?
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>>
>>>>>>>>>>> Jan
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
_______________________________________________
>>>>>>>>>>> SIP Express Router (SER) and Kamailio
(OpenSER) - sr-users
>>>>>>>>>>> mailing
>>>>>>>>>>> list
>>>>>>>>>>> sr-users(a)lists.sip-router.org
>>>>>>>>>>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>>>>> _______________________________________________
>>>>>>>>>> SIP Express Router (SER) and Kamailio (OpenSER) -
sr-users
>>>>>>>>>> mailing
>>>>>>>>>> list
>>>>>>>>>> sr-users(a)lists.sip-router.org
>>>>>>>>>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>>> _______________________________________________
>>>>>>>> SIP Express Router (SER) and Kamailio (OpenSER) -
sr-users
>>>>>>>> mailing list
>>>>>>>> sr-users(a)lists.sip-router.org
>>>>>>>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>>> _______________________________________________
>>>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users
>>>>>> mailing
>>>>>> list
>>>>>> sr-users(a)lists.sip-router.org
>>>>>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>
>>> _______________________________________________
>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing
>>> list
>>> sr-users(a)lists.sip-router.org
>>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing
> list
> sr-users(a)lists.sip-router.org
>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users