|
пре 7 година | |
---|---|---|
replies | пре 7 година | |
.gitignore | пре 7 година | |
README.md | пре 7 година | |
config.yml | пре 7 година | |
lenny.py | пре 7 година | |
requirements.txt | пре 7 година |
Dear english users : don't hesitate to view the google translated page.
Ce projet à pour but de reproduire le comportement de https://www.reddit.com/r/itslenny/ dans le cadre de mon réseau local de mon logement. Mon fournisseur est Sunrise en Suisse et ils ont eu la bonne idée de me fournir une Fritz!Box 7390, qui permet de créer un périphérique VoIP.
Le logiciel intercepte chaque appel, et consulte deux base de donnée sur Internet (ktipp.ch et ch.shouldianswer.net) afin de déterminer si l'appel provient d'un télémarketeur. Si c'est le cas, il répond avant que le téléphone fixe ne sonne, et déclenche la séquence de réponse qui a pour but de le tenir en ligne le plus longtemps possible.
Pour écouter ceux que j'ai attrapé sur ma ligne personnelle, c'est ici
Le logiciel a été testé sous Linux, mais devrait fonctionner sous mac et probablement Windows.
Il a été conçu pour tourner comme un service/daemon.
Il faut installer via le packager de votre système d'exploitation les logiciels suivants :
L'installation décrite ci-dessous est basée sur Arch Linux, avec une installation serveur:
sudo pacman -S python2 lame linphone libxslt opus opus-tools
sudo useradd -m -s /bin/bash callblocker
sudo su - callblocker
git clone https://dev.burdet.ch/git/jfburdet/itslenny.git
cd itslenny
virtualenv -p python2 venv2
./venv2/bin/pip install -r requirements.txt -U
exit
Il faut créer le unit file en conséquence :
vi /etc/systemd/system/callblocker.service
[Unit]
Description=ItsLenny open sequel
[Service]
User=callblocker
Group=callblocker
Type=simple
ExecStart= /home/callblocker/itslenny/venv2/bin/python2 /home/callblocker/itslenny/lenny.py
Restart=always
RestartSec=5
TimeoutSec=10
[Install]
WantedBy=multi-user.target
On configure maintenant itslenny, on lui spécifiant le compte SIP/VOIP auquel il doit se connecter :
sudo su - callblocker
vi itslenny/config.yml
- connection:
domain: "192.168.1.1"
username: "621"
password: "toto"
On rend le service démarable automatiquement :
sudo systemctl enable callblocker
sudo systemctl start callblocker
sudo journalctl -f --since="5 minutes ago" -u callblocker
Cela doit marquer un message du type :
Jun 21 15:16:39 orion systemd[1]: Started ItsLenny open sequel.
Jun 21 15:16:39 orion callblocker.py[12340]: starting 621@192.168.1.1
Jun 21 15:16:39 orion callblocker.py[12340]: Registration status: Registration in progress
Jun 21 15:16:39 orion callblocker.py[12340]: Registration status: Registration successful
On cas de problème de connection, la dernière ligne montrera "io error" ou "unautorized".
Ajouter son propre numéro dans le fichier blacklist.txt puis appeler le numéro VoIP, le log doit ressembler ceci ci-dessous et Lenny doit se mettre à parler :
Jun 21 15:20:43 orion callblocker.py[12671]: starting 621@192.168.1.1
Jun 21 15:20:43 orion callblocker.py[12671]: Registration status: Registration in progress
Jun 21 15:20:43 orion callblocker.py[12671]: Registration status: Registration successful
Jun 21 15:20:53 orion callblocker.py[12671]: state changed : Incoming call
Jun 21 15:20:53 orion callblocker.py[12671]: Incoming call : __votre numéro !__
Jun 21 15:20:53 orion callblocker.py[12671]: telemarketer calling : __votre numéro !__
Au terme de l'appel, le mp3 résultant sera stocké dans le répertoire "out", pex /home/callblocker/itslenny/out
Have fun !