Screen Caller, Announce Caller, and give Callee Options?

FreePBX includes a crude Call Screening option for extensions. The tooltip reads:

Call Screening requires external callers to say their name, which will be played back to the user and allow the user to accept or reject the call. Screening with memory only verifies a caller for their CallerID once. Screening without memory always requires a caller to say their name. Either mode will always announce the caller based on the last introduction saved with that CallerID. If any user on the system uses the memory option, when that user is called, the caller will be required to re-introduce themselves and all users on the system will have that new introduction associated with the caller’s CallerID.

You could use that as is, modify the logic to better suit your needs, or use your existing dial plan code instead. The latter would have to be modified to conform to FreePBX variable conventions, etc. FreePBX has various hooks and customization options to make this easier. See

Since screening imposes a burden on both customer and agent, your “new” system should probably have logic to avoid it when possible. If you have a CRM system, a call from anyone in the system would display their name on the phone and you could answer (or not). New customers or potential customers would be entered into the system so they would be screened only once.

Without CRM, if you have a suitable name to display (from your contacts or the carrier), use that and skip the screening. If not, add new callers (after screening) to the contact list. This might even be automated with speech to text.