Demande #1767
Blacklister des numéros de téléphones via le serveur Asterisk
100%
Description
Il serait utile d'avoir un mécanisme pour blacklister des numéros de téléphones via le serveur Asterisk.
Fichiers
Historique
Mis à jour par Frédéric Couchet il y a presque 8 ans
La procédure suivante permet de mettre en place un liste noire de numéro qui lorsqu'ils appellent sont automatiquement
envoyés vers des messages vocaux disant que des fouines ont mangé notre système téléphonique puis des bruits de singes.
Sur scopolamine :
- cp /usr/share/asterisk/sounds/fr_CA_f_June/tt-weasels.gsm /usr/local/share/asterisk/sounds
# cp /usr/share/asterisk/sounds/fr_CA_f_June/tt-monkeys.gsm /usr/local/share/asterisk/sounds
Sur scopolamine, ajouter dans /etc/asterisk/extentions.conf le contexte "blacklisted" :
[blacklisted]
exten => s,1,Answer()
exten => s,n,Wait(3)
exten => s,n,Playback(custom/tt-weasels)
exten => s,n,Playback(custom/tt-monkeys)
exten => s,n,Hangup()
Dans le traitement des appels entrants, ajouter une ligne au début (pour l'extension 80 par exemple) :
exten = 80,1,GotoIf(${DB_EXISTS(blacklist/${CALLERID})}?blacklisted,s,1)
Voici le diff avec la version précédente de extensions.conf pour l'extension 80 :
-exten = 80,1,Playback(custom/Message_repondeur_April_2)
+exten = 80,1,GotoIf(${DB_EXISTS(blacklist/${CALLERID})}?blacklisted,s,1)
+exten = 80,n,Playback(custom/Message_repondeur_April_2)
Pour la gestion des numéros à blacklister, en ligne de commande :
- asterisk -r
Pour lister les numéros blacklistés : database show blacklist
Pour blacklister un numéro : database put blacklist 0102030405 "Bingo loto"
Pour déblacklister un numéro : database del blacklist 0102030405
Pour retrouver un numéro appelant si nécessaire : /var/log/asterisk/cdr-csv/Master.csv
Mis à jour par Frédéric Couchet il y a presque 8 ans
- Fichier tt-concat.gsm tt-concat.gsm ajouté
Les deux fichiers audio concaténés pour écouter le résultat lorsque le numéro blacklisté appelle.
Mis à jour par Frédéric Couchet il y a presque 8 ans
J'ai modifié extensions.conf pour utiliser la bonne syntaxe (même si la précédente fonctionnait) et j'ai ajouté une extension (la 42) qui permet de diffuser en local le message :)
Pour cette modification du fichier :
diff --git a/asterisk/extensions.conf b/asterisk/extensions.conf
index 6293c71..f35b8a7 100644
Mis à jour par Frédéric Couchet il y a presque 8 ans
Benjamin Renard a développé une interface web qui permet de gérer les numéros blacklistés, voir http://git.zionetrix.net/manage-asterisk-blacklist
Mis à jour par Frédéric Couchet il y a plus de 7 ans
- % réalisé changé de 0 à 70
Visiblement le blacklistage de numéros étrangers ne fonctionne pas.
Mis à jour par Frédéric Couchet il y a plus de 7 ans
Benjamin Renard a activé les logs full et on a fait des tests d'appels depuis l'Italie.
Pour l'activation des logs full (et création du fichier /var/log/asterisk/full)
root@scopolamine:/etc/asterisk# git diff extensions.conf
diff --git a/asterisk/extensions.conf b/asterisk/extensions.conf
index 3ff0b67..50eef71 100644
--- a/asterisk/extensions.conf
+++ b/asterisk/extensions.conf
+exten = 80,1,Verbose(2,Check if number ${CDR} is blacklisted)
root@scopolamine:/etc/asterisk# git diff logger.conf
diff --git a/asterisk/logger.conf b/asterisk/logger.conf
index b6cb1f3..e939b98 100644
--- a/asterisk/logger.conf
+++ b/asterisk/logger.conf
-;full => notice,warning,error,debug,verbose,dtmf,fax
+full => notice,warning,error,debug,verbose,dtmf,fax
Le préfixe international du numéro n'est pas présent dans la variable CALLERID. Il faut donc se baser sur une autre variable qui a pour valeur le champ 2 du fichier CDR /var/log/asterisk/cdr-csv/Master.csv
Pour cela, modification de extensions.conf :
diff --git a/asterisk/extensions.conf b/asterisk/extensions.conf
index 3ff0b67..50eef71 100644
--- a/asterisk/extensions.conf
+++ b/asterisk/extensions.conf
-exten = 80,1,GotoIf(${DB_EXISTS(blacklist/${CALLERID})}?blacklisted,s,1)
+exten = 80,n,GotoIf(${DB_EXISTS(blacklist/${CDR})}?blacklisted,s,1)
Mis à jour par Frédéric Couchet il y a plus de 7 ans
Au final, pour activer le blaclistage :
ajouter dans /etc/asterisk/extentions.conf le contexte "blacklisted" :
[blacklisted]
exten => s,1,Answer()
exten => s,n,Wait(3)
exten => s,n,Playback(custom/tt-weasels)
exten => s,n,Playback(custom/tt-monkeys)
exten => s,n,Hangup()
Dans le traitement des appels entrants, ajouter une ligne au début (pour l'extension 80 par exemple) :
exten = 80,1,GotoIf(${DB_EXISTS(blacklist/${CDR})}?blacklisted,s,1)
Pour la gestion des numéros à blacklister, en ligne de commande :
asterisk -r
Pour lister les numéros blacklistés : database show blacklist
Pour blacklister un numéro : database put blacklist 33123456789 "Spammeurs"
Pour déblacklister un numéro : database del blacklist 33123456789
Pour retrouver un numéro appelant si nécessaire : /var/log/asterisk/cdr-csv/Master.csv (le numéro est dans le champ n°2)
Mis à jour par Frédéric Couchet il y a plus de 7 ans
- Statut changé de Nouveau à Fermé
- % réalisé changé de 70 à 100