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
Permalink: https://wildix.atlassian.net/wiki/x/JQHOAQ
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:
- priv-recordintro -> ask the caller to record their name, “please say your name after the tone, when done press #”
- 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)
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.