We have known for a while that an easy way to screen robo calls is to answer the call with an IVR. Most automated calling systems don't know to press a digit to connect to the appropriate callee. Only a real person will know to do this. In this example i've replaced the call_screen dialplan step with something custom. This will prompt the caller to press 1 to continue. If 1 is not pressed, the call will hangup.
1. Disable dialplan #880, call_screen.
2. Add this new dialplan step with order #880.
3. Go to an extension and set call_screen=true.
1. Disable dialplan #880, call_screen.
2. Add this new dialplan step with order #880.
Code:
<condition field="${call_screen_enabled}" expression="^true$"/>
<condition field="${call_direction}" expression="^inbound$">
<action application="set" data="playback_delimiter=!"/>
<action application="set" data="playback_sleep_val=500"/>
<action application="answer" data=""/>
<action application="sleep" data="1000"/>
<action application="play_and_get_digits" data="1 1 2 5000 # file_string://voicemail/vm-continue.wav!voicemail/vm-press!digits/1.wav silence_stream://250 res \d+ 1 XML hangup"/>
</condition>
3. Go to an extension and set call_screen=true.