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(/usr/share/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(/usr/share/asterisk/agi-bin/bloqueo_in.sh,${EXTEN}) same => n,Gotoif($["${answer}"="0"]?corte) same => n,Dial(SIP/SIPKAM/${EXTEN}) same => n(corte),Hangup()
2 comentarios en “Configurar Blacklist en Asterisk por AGI”