A python-based automated call attendant, call blocker, and voice messaging system running on a Raspberry Pi. Screens callers and block robocalls and scams with a low-cost Raspberry Pi and modem.
17-NOV-2020
This is v1.1 of the Call Attendant (callattendant) . This includes support for countries other than the default USA. International support is through configurable phone number formatting options and the ability to disable the NomoRobo lookup service. This release also includes support for Conextant based modems like the Zoom Model 3095 Data/Fax Modem.
Description | Type | Issue # |
---|---|---|
Add support for Zoom Model 3095 Data/Fax modem | enhancement | #94 |
Add support for other countries | enhancement | #99 |
Add permitted name/number regex patterns | enhancement | #117 |
Call Log search is broken with non-numeric phone numbers | bug | #114 |
No blocked call hang up if BLOCKED_ACTIONS = () | bug | #126 |
+VSD Silence Detection command not working on Conextant-based modems | bug | #116 |
Handle missing caller id data | task | #120 |
Make the online lookup service configurable | task | #113 |
Make phone number display mask configurable | task | #112 |
Remove phone number input mask | task | #111 |
Add .desktop shortcuts to setup.py package install | task | #109 |
Refactor Modem class | task | #10 |
Description | Type | Issue # |
---|---|---|
None |
PERMIT_NAME_PATTERNS
PERMIT_NUMBER_PATTERNS
PHONE_DISPLAY_FORMAT
PHONE_DISPLAY_SEPARATOR
BLOCK_SERVICE
BLOCK_SERVICE=""
to disable the US-based lookup service.pip
is used to install and update the callattendant
pip install callattendant
pip uninstall callattendant
A new callattendant
script is placed on the system path. Use this command to start the software without specifying "python".
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
The location of the database and message files is ~/.callattendant
. You can override this location via the --data-path
command line option.
Running the callattendant with the --create-folder
command line option will create the data folder and the initial data.
An example configuration is provided: app.cfg.example. A copy of this file, named app.cfg
, is placed in the data folder after the first execution of the software. You can copy/rename this file to match its purpose (e.g., debug.cfg
) and edit it to match your preferences.
See the project's Wiki pages:
See the project's forum:
1-SEP-2020
This is v1.0.0 of the Call Attendant (callattendant) . This is the first stable/production release and it includes all of the functionality planned for the system.
Description | Type | Issue # |
---|---|---|
Package and make installable via PyPi | epic | #37 |
Generate end-user documentation in the Wiki | enhancement | #43 |
Document LED Wiring | task | #89 |
Embellish configuration | task | #88 |
Web Interface Improvements | task | #87 |
Need to mock the Modem class/object | task | #81 |
Description | Type | Issue # |
---|---|---|
None. |
pip
.~/.callattendant
, most likely expanded to home/pi/.callattendant
callattendant [--config <cfg file>]
A new callattendant
script is placed on the system path. Use this command to start the software without specifying "python".
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
The location of the database and messages has changed from [application folder]/data/
to ~/.callattendant
. This makes the data easier to locate and backup. You can override this location via the --data-path
command line option.
If you are upgrading from an earlier release, you should move your database file and messages from the data/
folder after starting and stopping the upgraded callattendant. Running the callattendant with the --create-folder
command line option will create the data folder and the initial data. Overwrite the new files with your existing files.
An example configuration is provided: app.cfg.example. A copy of this file, named app.cfg
, is placed in the data folder after the first execution of the software. You can copy/rename this file to match its purpose (e.g., debug.cfg
) and edit it to match your preferences.
See the project's Wiki pages:
pip
is used to install and update the callattendant
pip install callattendant
pip uninstall callattendant
23-AUG-2020
The v0.5 is the Call Attendant (callattendant) release candidate -- ahead of the 1.0 release. This release includes all of the functionality planned for the system.
Description | Type | Issue # |
---|---|---|
Enable Voice Mail for screened and permitted callers | enhancement | #62 |
Add a Settings page | enhancement | #70 |
Add name search capability | enhancement | #78 |
Change the default location of data to ~/.callattendant |
task | #85 |
Add confirmation for delete message | task | #72 |
Move Unit Tests to a tests folder | task | #67 |
"New message" status not reset after playing message | bug | #71 |
Description | Type | Issue # |
---|---|---|
None. |
pip
.~/.callattendant
, most likely expanded to home/pi/.callattendant
callattendant [--config <cfg file>]
A new callattendant
script is placed on the system path. Use this command to start the software without specifying "python".
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
The location of the database and messages has changed from [application folder]/data/
to ~/.callattendant
. This makes the data easier to locate and backup. You can override this location via the --data-path
command line option.
If you are upgrading from an earlier release, you should move your database file and messages from the data/
folder after starting and stopping the upgraded callattendant. Running the callattendant with the --create-folder
command line option will create the data folder and the initial data. Overwrite the new files with your existing files.
An example configuration is provided: app.cfg.example. A copy of this file, named app.cfg
, is placed in the data folder after the first execution of the software. You can copy/rename this file to match its purpose (e.g., debug.cfg
) and edit it to match your preferences.
See the project's Wiki pages:
pip
is used to install and update the callattendant
pip install callattendant
pip uninstall callattendant
15-AUG-2020
The v0.4 is a beta release of the Call Attendant (callattendant). This release includes the following new features:
Description | Type | Issue # |
---|---|---|
Improve web user interface | epic | #40 |
Add Dashboard page | enhancement | #41 |
Add CRUD support to Blocked Numbers page | enhancement | #39 |
Add CRUD support to the Permitted Numbers page | enhancement | #38 |
Add a "New Messages Waiting" LED indicator | enhancement | #55 |
Add Call History page | enhancement | #24 |
Add ACTION column to call log table | task | #23 |
Rerecord Voice Mail .wav files | task | #65 |
Refine Call Log | task | #61 |
Add a Messages table for tracking voice messages | task | #59 |
Default configuration is invalid | bug | #64 |
Play Message modal dialog should set message played status | bug | #63 |
System sometimes fails to answer call | bug | #54 |
Permitted/Blocked name should override CID name in Call Log | bug | #44 |
flask_paginate module not found when run as a service | bug | #42 |
The Cache table is not used | bug | #35 |
Description | Type | Issue # |
---|---|---|
Need a Settings page | enhancement | #70 |
Need to move Unit Tests to a tests folder | task | #67 |
Need to enable Voice Mail for screened and permitted callers | enhancement | #62 |
python3
command to invoke Python 3 (unless you are running in a virtual environment, in which case you can use the python
command)callattendant.db
file has changed from src/callattendant.db
to data/callattendant.db
. If you are upgrading from a v0.2 release, you should move your database file to the data folder before starting the callattendant.src/app.cfg.example
. This file should be copied/renamed (e.g., to app.cfg
) and edited to match your preferences.cd callattendant
python3 src/callattendant.py --config app.cfg
See the project's Wiki pages:
cd
unzip ~/Downloads/callattendant-0.4.zip
cd callattendant-04
You can rename the callattendant-04
folder if you wish.
callattendant-04
folder and its contents.If you are updating from a previous release, you should copy/move the src/callattendant.db
file from the previous release to data/callattendant.db
in this release.
07-AUG-2020
The v0.3 is a alpha release of the Call Attendant (callattendant). This release includes the following new features and bug fixes:
Description | Type | Issue # |
---|---|---|
Add Voice Messaging features | epic | #28 |
Play a voice message via web interface | enhancement | #7 |
Play pre-recorded message to blocked callers | enhancement | #15 |
Add voice messaging menu | enhancement | #9 |
Record voice message | enhancement | #29 |
Create flexible and robust application configuration | enhancement | #27 |
Modem play audio (wav file) fails | bug | #49 |
Deprecate whitelist/blacklist terms in favor of permitted/blocked | task | #26 |
Add pagination to the call log | task | #20 |
Add pagination to the Blocked list | task | #32 |
Add pagination to the Permitted list | task | #33 |
Add a favicon to the web app pages | task | #31 |
Change the mouse cursor to a hand when hovering over a Call Details row | task | #34 |
Add metrics to Call Details | task | #30 |
Use a configuration file to specify regex call patterns | task | #21 |
Port to Python3.x | task | #36 |
Validate configuration items | task | #52 |
Description | Type | Issue # |
---|---|---|
System sometimes fails to answer call | bug | #54 |
Must add create/edit/delete support to Blocked Numbers page | enhancement | #39 |
Must add create/edit/delete support to the Permitted Numbers page | enhancement | #38 |
python3
command to invoke Python 3 (unless you are running in a virtual environment, in which case you can use the python
command)callattendant.db
file has changed from src/callattendant.db
to data/callattendant.db
. If you are upgrading from a v0.2 release, you should move your database file to the data folder before starting the callattendant.src/app.cfg.example
. This file should be copied/renamed (e.g., to app.cfg
) and edited to match your preferences.cd callattendant
python3 src/callattendant.py --config app.cfg
See the project's Wiki pages:
cd
unzip ~/Downloads/callattendant-0.3.zip
cd callattendant-03
You can rename the callattendant-03
folder if you wish.
callattendant-03
folder and its contents.If you are updating from a previous release, you should copy/move the src/callattendant.db
file from the previous release to data/callattendant.db
in this release.
Release v0.2 is a functional prototype that establishes the baselined architecture derived from addressing the architecturally significant scenarios. This release demonstrates that the baselined architecture will support the requirements of the system at a reasonable cost and with a reasonable effort.
This release uses the following hardware:
This release has implemented several primary use cases:
http://localhost:5000
http://localhost:5000/whitelist
http://localhost:5000/blacklist
http://localhost:5000/manage_caller/[call-number]
Features not implemented yet include:
Release v0.1 is a prototype of the candidate architecture that demonstrates several primary use cases: