How to set up call screening

Call screening feature allows you to find out who is calling before deciding whether or not to answer a call. 

Created: March 2020

Updated: November 2021


Step 1. Create a separate Dialplan procedure 

First, create a procedure to deal with declined calls:

In this case, the call is sent to the called user voicemail (3 digit extension), but it can be configured in any other way.

Step 2. Create audio files

Create 3 audio files:

  1. priv-recordintro -> ask the caller to record their name, “please say your name after the tone, when done press #”
  2. priv-callpending -> announce the called user that there is a call coming, “this is a call from “ (the caller's name recorded on the previous step is pronounced here)
  3. screen-callee-options -> let the called user know the options, “to accept the call press 1, to decline it press 2.                 “. 

    It is important to have a couple of seconds of silence at the end of the audio to give the called user time to select an option.

All of the files need to be named as showed and be placed in /var/lib/callweaver/sounds/ folder. 

Note: You can use mv (move), cd (change directory) or cp (copy) commands. For example: 

mv /var/lib/callweaver/sounds/00000/priv-callpending.* /var/lib/callweaver/sounds

In this case, priv-callpending audio file is moved from /var/lib/callweaver/sounds/00000 directory to /var/lib/callweaver/sounds.

Step 3. Set up call screening

Finally, to dial the target extension, add the following Dialplan applications in users Dialplan (or in any Dialplan users are using). In this case, all 3 digit extensions are screened:

  • Custom Application -> Dial(SIP/${EXTEN},,p)

Dial the user using call screening.

  • Jump to if -> "${HANGUPCAUSE}"="16"

If the called user declines the call, the HANGUPCAUSE  is 16, Dialplan proceeds to the separate procedure that deals with declined calls ("screen" in our case, created in Step 1 of this guide).

  • Hangup -> Reason 16

If the called user accepts the call, the application hang ups once the call is done.