In the current FreePBX 2.3.x, there is a module for BlackList. This feature has significant limitation: users have to enter every complete phone number.
In the future release, I suggest to fade out this module and to isolate the CallerID routing from the “Inbound Routing” module" to implement an independent “CallerID Routing” module. In this module, there will be leading digit tables and each leading digit table has one destination. Leading digit tables are checked by the sequence they are listed. When the first condition met, the destination of that table is used for the call.
Users can enter multiple phone numbers in the each leading digit table. For example, if I want to blcok all calls are from 202 area code, I enter “1202.” and select the destination to be “Core–Hangup” or “Announcement–your call is not allowed”. Or if I like to block a specific number, I enter “12025551234” in the leading digit table.