I built a home grown Asterisk PBX 15+ years ago that I’m thinking of migrating into FreePBX. Here’s how my system works.
A caller enters the IVR at which time they are presented a few options (direct extension, 1 for sales, 2 for billing, etc). Once they choose an option they are asked to state their name. Once they do the call is either sent to the direct extension, or placed into a queue. When the callee (direct or agent) picks up the phone the callers name is announced and they are presented with a few options. Press 1 to connect the caller, 2 to place call on hold, 3 to send caller to voicemail, 4 to re-announce caller, 5 to hangup on caller). If the callee does not choose an option the caller stays in the queue, or for direct ends up in voicemail.
Does anybody know if this is possible to do in FreePBX or if there is an existing module out their?
I’m extremely new to FreePBX so I’m not sure if this is possible or if maybe I can port over my extensions.conf macros/subs. Honestly they are pretty basic and only about 30 lines of code.
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.