pip install callattendantLe préposé des appels ( callAndendant ) est un préposé à l'automobile avec un bloqueur d'appel intégré et un système de messagerie vocale fonctionnant sur un Raspberry Pi. Il empêche les robocaux et les spammeurs ennuyeux d'interrompre votre vie. Laissez le préposé à l'appel intercepter et bloquer les robocallers et les télévendeurs avant le premier anneau sur votre ligne fixe.
Le callAttendant fournit une prise en charge internationale avec des formats de numéro de téléphone configurables, avec des listes de numéros bloqués flexibles et modifiables et autorisés.
Si vous êtes intéressé par ce projet, veuillez fournir des commentaires en lui donnant une étoile , voire mieux, vous impliquer en déposant des problèmes, en rejoignant le forum et / ou en soumettant des demandes de traction. Merci!
Le préposé des appels ( callAndendant ) est un préposé d'appel automatisé basé sur Python qui fonctionne sur un PI de framboise léger, ou un autre système basé sur Linux, couplé à un modem USB US Robotics 5637.
Le Raspberry Pi et le modem sont connectés à votre système de téléphone personnel parallèle avec votre (s) combiné (s). Lorsqu'un appel entrant est reçu, l'appel va à la fois sur votre téléphone et le callAttendant . Pendant la période de la première anneau, le callAndendant analyse l'ID de l'appelant et en fonction de votre configuration, détermine si l'appel doit être bloqué ou autorisé. Les appels bloqués peuvent être simplement suspendus ou acheminés vers le système de messages vocaux. Les appels autorisés sonneront simplement votre téléphone à la maison comme normal. Les appels peuvent être envoyés au système de messagerie vocale intégré si vous le souhaitez. Les mécanismes de filtrage de CallAntendant comprennent un service de recherche en ligne, une liste de nombres autorisés, une liste de numéros bloqués et une correspondance de modèle sur le numéro et / ou le nom de l'appelant.
Vous pouvez consulter l'historique des appels, les messages vocaux, les numéros autorisés et bloqués et effectuer la gestion des appels via l'interface Web du préposé des appels. Voici un exemple de la page d'accueil avec des métriques et une liste convoyante des appels récents. Pour une description complète, voir le guide de l'utilisateur.

Le Wiki du projet sur GitHub contient la documentation du préposé à l'appel:
Le callAttendant utilise le matériel suivant:

Vous aurez besoin d'un Raspberry Pi exécutant Raspbian ou mieux avec l'accès à Internet pour l'installation du logiciel, et finalement pour les recherches de robocaleur en ligne. Pour le projet, vous aurez besoin d'un modem quelconque pour faire les communications de téléphonie. Le modem USB USR5637 USR5637 56K s'est révélé efficace. Pour certaines installations, cela fonctionne, aucune configuration nécessaire. Il est apparu comme / dev / ttyacm0.
L'installation appelle Python3.x.
Les instructions suivantes créent et activent un environnement virtuel nommé VENV dans le dossier actuel:
# Install virtualenv - if not installed
sudo apt install virtualenv
# Create the virtual environment
virtualenv venv --python=python3
# Activate it
source venv/bin/activate Vous opérez maintenant avec un python virtuel. Pour vérifier, émettez la commande which et assurez-vous que la sortie pointe vers votre environnement virtuel; et vérifiez également la version Python:
$ which python
/home/pi/venv/bin/python
$ python --version
Python 3.7.3 Plus tard, lorsque vous installez le logiciel callAntendant , il sera placé dans le dossier d'environnement virtuel (sous lib/python3.x/site-packages pour être exact). L'environnement virtuel, lorsqu'il est activé, modifie votre chemin afin que le système recherche Python et ses packages dans cette hiérarchie de dossiers.
Le logiciel est disponible sur PYPI. Installer et mettre à jour à l'aide de pip :
# Using the virtual environment you use "pip" to install the software
pip install callattendant
# You must use "pip3" on the Pi if your not using a virtual environment
pip3 install callattendant Si vous n'utilisez pas l'environnement virtuel, vous devrez peut-être redémarrer ou vous connecter / vous connecter pour mettre à jour le $PATH pour votre profil afin de trouver et d'utiliser la commande callattendant .
Le package callAntendant comprend une commande callattendant pour démarrer le système. Exécutez cette commande la première fois avec l'option --create-folder pour créer les données initiales et les fichiers dans le dossier de données par défaut: ~/.callattendant . Il s'agit d'un dossier caché sur la racine de votre répertoire domestique. Vous pouvez remplacer cet emplacement avec l'option --data-path .
Usage: callattendant --config [FILE] --data-path [FOLDER]
Options:
-c, --config [FILE] load a python configuration file
-d, --data-path [FOLDER] path to data and configuration files
-f, --create-folder create the data-path folder if it does not exist
-h, --help displays this help text
# Creating the default data folder with the default configuration
callattendant --create-folder
# Using the default configuration
callattendant
# Using a customized config file in an alternate, existing location
callattendant --config myapp.cfg --data-path /var/lib/callattendantVous devriez voir la sortie du formulaire:
Command line options:
--config=app.cfg
--data-path=None
--create-folder=False
[Configuration]
BLOCKED_ACTIONS = ('greeting', 'voice_mail')
BLOCKED_GREETING_FILE = /home/pi/.local/lib/python3.7/site-packages/callattendant/resources/blocked_greeting.wav
BLOCKED_RINGS_BEFORE_ANSWER = 0
BLOCK_ENABLED = True
BLOCK_NAME_PATTERNS = {'V[0-9]{15}': 'Telemarketer Caller ID'}
BLOCK_NUMBER_PATTERNS = {}
BLOCK_SERVICE = NOMOROBO
CONFIG_FILE = app.cfg
DATABASE = callattendant.db
DATA_PATH = /home/pi/.callattendant
DB_FILE = /home/pi/.callattendant/callattendant.db
DEBUG = False
ENV = production
PERMITTED_ACTIONS = ('greeting', 'record_message')
PERMITTED_GREETING_FILE = /home/pi/.local/lib/python3.7/site-packages/callattendant/resources/general_greeting.wav
PERMITTED_RINGS_BEFORE_ANSWER = 6
PERMIT_NAME_PATTERNS = {}
PERMIT_NUMBER_PATTERNS = {}
PHONE_DISPLAY_FORMAT = ###-###-####
PHONE_DISPLAY_SEPARATOR = -
ROOT_PATH = /home/pi/.local/lib/python3.7/site-packages/callattendant
SCREENED_ACTIONS = ('greeting', 'record_message')
SCREENED_GREETING_FILE = /home/pi/.local/lib/python3.7/site-packages/callattendant/resources/general_greeting.wav
SCREENED_RINGS_BEFORE_ANSWER = 0
SCREENING_MODE = ('whitelist', 'blacklist')
TESTING = False
VERSION = 1.1.0
VOICE_MAIL_GOODBYE_FILE = /home/pi/.local/lib/python3.7/site-packages/callattendant/resources/goodbye.wav
VOICE_MAIL_GREETING_FILE = /home/pi/.local/lib/python3.7/site-packages/callattendant/resources/general_greeting.wav
VOICE_MAIL_INVALID_RESPONSE_FILE = /home/pi/.local/lib/python3.7/site-packages/callattendant/resources/invalid_response.wav
VOICE_MAIL_LEAVE_MESSAGE_FILE = /home/pi/.local/lib/python3.7/site-packages/callattendant/resources/please_leave_message.wav
VOICE_MAIL_MENU_FILE = /home/pi/.local/lib/python3.7/site-packages/callattendant/resources/voice_mail_menu.wav
VOICE_MAIL_MESSAGE_FOLDER = /home/pi/.callattendant/messages
Initializing Modem
Opening serial port
Looking for modem on /dev/ttyACM0
******* Conextant-based modem detected **********
Serial port opened on /dev/ttyACM0
Modem initialized
{MSG LED OFF}
Starting the Flask webapp
Running the Flask server
Waiting for call...
* Serving Flask app "userinterface.webapp" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
Faites quelques appels à vous-même pour tester le service. La sortie standard montrera la progression des appels. Accédez ensuite à http://<pi-address>|<pi-hostname>:5000 dans un navigateur Web pour vérifier l'interface Web.
Appuyez sur ctrl-c pour arrêter le système
http://<pi-address>|<pi-hostname>:5000 Pour afficher l'interface Web, indiquez simplement votre navigateur Web vers le port 5000 sur votre Raspberry Pi. Par exemple, dans le navigateur de votre Raspberry Pi, vous pouvez utiliser:
http://localhost:5000/
Voir le guide de l'utilisateur pour plus d'informations.
Le comportement du préposé d'appel peut être contrôlé par un fichier de configuration. Pour remplacer la configuration par défaut, ouvrez le ~/.callattenant/app.cfg et modifiez son contenu.
nano ~ /.callattendant/app.cfgSpécifiez ensuite le fichier de configuration et le chemin d'accès sur la ligne de commande, par exemple:
callattendant --config app.cfg
Voir la section de configuration du wiki du projet pour plus d'informations.