If you are tired of getting "expiring vehicle warranty" scam calls and similar total wastes of your time, you might find this page interesting:
At this page you can download a list (which is updated daily) that lists the top 100 commented numbers on this site (which usually indicates the number is associated with "junk calls" of some type). The list is in .csv format, which I assume means it could be directly loaded into a database.
Now, what I sort of wish is that someone who has figured out how to write FreePBX modules would create one that would have the ability to download this list nightly, optionally weed out the listings that are not in NANP format, and insert the numbers into a database along with the current date. Numbers that already in the database should be overwritten (so the date is refreshed), not duplicated. This list would then act as a secondary blacklist, and if a call comes in with one of the Caller ID's from this list it would get the blocked call treatment. When the module does its nightly update, it would also check the database for any numbers that haven't been "seen" on the list in the past n days or months (can be set by the user; I'd default to six months or 180 days) and delete those, so you don't wind up with a database that is years out of date.
There are several other services that offer lists of this type; I'm not saying this is the only one or even necessarily the best.