No solicitation or automated incoming whitelist

Having just moved to a FreePBX server at home from using the telco no solicitation, I’m wondering if there is a module for a similar functionality in FreePBX. I’ve looked at the standard and contributed modules, but couldn’t find it.

The idea is as follows:

When call arrives, if it has callerid it is checked against an existing database whitelist. If the number is there, it goes straight through to ring. If it has callerid but isn’t in the database, a message is played asking solicitors to hang up and add the number to their don’t call list, all others to press 5. If a given number calls and 5 is pressed more than something like 3 times in one week, the number is added to the whitelist.

If there is no callerid, call can be transferred to a message requiring entry of the 10 digit phone number, if they are not a solicitor, otherwise add to don’t call list.

Would also be good if there was a web interface to the whitelist, I suppose, and perhaps feature codes as well.

Is there anything like this presently available? Seems like a good way to implement a sort of default deny stance (in firewall terms).

There’s no module I’m aware of that will do what you want, but you can do part of what you want using Inbound Routes and an IVR. Set up an inbound route with your DID, any CID, set Privacy Manager to Yes, and send it to an IVR that plays your message to solicitors and that requests all others press 5, then make an IVR selection for 5 (some folks just tell solicitors to hang up in their initial main IVR message and then proceed to list the main IVR options - that’s up to you). For the whitelist part, make additional inbound routes for your DID and specific CID’s, and send those direct to wherever you want them to go (perhaps an IVR without the “no solicitors” message, or wherever).

Depending on how deep you want to get into system coding, you could actually intercept incoming calls and check them against a list before sending them on to an Inbound Route. An example of intercepting calls in this way is How to automatically reject calls from telemarketers and other “junk” callers (which is something that might interest you anyway) but you’d have to figure out how to create the whitelist and do the lookups.

If you really wanted to create a module, I actually have to think it would be pretty similar to the blacklist except that instead of denying a call if the CID appears on the blacklist, you’d approve the call if the number appears on the whitelist. I’m no coder but I’ll bet probably 90% of the code for the blacklist module could be reused - really the only thing you would not get is your desire to automatically whitelist numbers based on certain criteria.

Or, if you you’re also not a coder, you could always create a feature request in the bug tracker and hope maybe that one will catch the fancy of one of the developers. Or you could poke around the Nerd Vittles site - they seem to be pretty big into various types of incoming call control, and a project like this might just pique their interest.