Crear el siguiente script:

nano /var/lib/asterisk/agi-bin/bloqueo_in.sh

Agregar el siguiente codigo:

#!/bin/bash

vacio="`ls -lrt  /var/lib/asterisk/blacklist/ | wc -l`"
if [ "$vacio" != "-1" ]; then

if [ "$1" == "" ]; then
        VALUE=0;
        echo "numero vacio" >>/etc/asterisk/log_blacklist.txt
else
        if [ "${1:0:3}" == "803" ]; then
                VALUE=0;
                echo "803 BLOQUEADO: " $1 >>/etc/asterisk/log_blacklist.txt
        else
                LastArchivo="`ls -t1  /var/lib/asterisk/blacklist/* `"
                IsBlackListed="`grep $1 $LastArchivo`"

                if [ "$IsBlackListed" != "" ]; then
                        VALUE=0;
                        echo "SI BLACKLIST: " $1 >>/etc/asterisk/log_blacklist.txt
                else
                                VALUE=1;
                                echo "NO BLACKLIST: " $1 >>/etc/asterisk/log_blacklist.txt
                        fi
                fi
fi
else

VALUE=1;
echo "FICHERO VACIO" >>/etc/asterisk/log_blacklist.txt

fi
echo -e "SET VARIABLE answer $VALUE"




Asignarle permisos de ejecución al script creado:

chmod +x /var/lib/asterisk/agi-bin/bloqueo_in.sh

Crear el siguiente archivo y agregar en el, los teléfonos a bloquear (solo un teléfono por línea):

nano /var/lib/asterisk/blacklist/1

Podemos subir tantos archivos con numeros a bloquear como queramos, el script analiza todos los archivos del directorio.

Modificar el archivo de Dialplan:

nano /etc/asterisk/extensions.conf

Ejemplo para bloquear numeros entrantes:

exten => 9XXXXXXXX,1,Set(llamante=${CALLERID(num)})
		same => 2,ANSWER(3)
		same => 3,agi(/var/lib/asterisk/agi-bin/bloqueo_in.sh,${CALLERID(num)})
		same => 4,Gotoif($["${answer}"="0"]?corte)
		same => 5,Playback(/var/lib/asterisk/sounds/LOCBIENVENIDA)
		same => 6,GOTO(horarios,s,1)
		same => 7,Set(CALLERID(num)=0${llamante})
		same => n,Dial(SIP/60,15,r)
		same => n,ExecIf($["${DIALSTATUS}"!="ANSWER"]?Dial(SIP/67,15))
		same => n,ExecIf($["${DIALSTATUS}"!="ANSWER"]?Dial(SIP/41,15))
		same => n,ExecIf($["${DIALSTATUS}"!="ANSWER"]?Playback(/var/lib/asterisk/sounds/LINEASOCUPADAS)
		same => n,VoiceMail(67)
		same => n(corte),Hangup()

Ejemplo para bloquear numeros salientes:

 exten => _0X.,1,Set(CALLERID(num)=9xxxxxxxx)
        same => n,agi(/var/lib/asterisk/agi-bin/bloqueo_in.sh,${EXTEN})
		same => n,Gotoif($["${answer}"="0"]?corte)
		same => n,Dial(SIP/SIPKAM/${EXTEN})
		same => n(corte),Hangup()