Releases: emxsys/callattendant
Call Attendant Release 1.1.0
Date
17-NOV-2020
Release Summary
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.
Associated GitHub Issues
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 |
Known Issues
Description | Type | Issue # |
---|---|---|
None |
User Facing Changes
- Configuration options have changed. New configuration settings have been added:
PERMIT_NAME_PATTERNS
PERMIT_NUMBER_PATTERNS
PHONE_DISPLAY_FORMAT
PHONE_DISPLAY_SEPARATOR
BLOCK_SERVICE
- Removed USA phone number format restrictions from Add Permitted Number and Add Blocked Number dialogs.
- Alpha characters now allowed in phone numbers.
- Countries other than the USA should set
BLOCK_SERVICE=""
to disable the US-based lookup service.
Install/Update/Removal
Install/Update
pip
is used to install and update the callattendant
pip install callattendant
Removal
pip uninstall callattendant
Operation
Command Line Options
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
Data Files
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.
Configuration file
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.
Documentation
See the project's Wiki pages:
Community
See the project's forum:
Call Attendant Release V1.0.0
Date
1-SEP-2020
Release Summary
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.
- A call blocker that intercepts robocallers and blocked numbers at or before the first ring
- Allows permitted numbers pass straight through to the local phone system for normal call ringing and answering
- Visual indicators (LEDs) show whether the incoming call is from a permitted, blocked or unknown number
- Call history, permitted and blocked numbers, and voice messages are available in a web-based user interface
- Calls can be handled by a voice messaging system that optionally requires human interaction, e.g, "Press 1 to leave a message"
Associated GitHub Issues
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 |
Known Issues
Description | Type | Issue # |
---|---|---|
None. |
User Facing Changes
- Installation has changed. The software is distributed by PyPI is now installed with
pip
. - Data location has changed. The default location for data is now
~/.callattendant
, most likely expanded tohome/pi/.callattendant
- Command line has changed. A system-wide command is provided:
callattendant [--config <cfg file>]
Operation
Command Line Options
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
Data Files
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.
Configuration file
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.
Documentation
See the project's Wiki pages:
Install/Update/Removal
Install/Update
pip
is used to install and update the callattendant
pip install callattendant
Removal
pip uninstall callattendant
Call Attendant Release V0.5 - Release Candidate
Date
23-AUG-2020
Release Summary
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.
- A call blocker that intercepts robocallers and blocked numbers at or before the first ring
- Allows permitted numbers pass straight through to the local phone system for normal call ringing and answering
- Visual indicators (LEDs) show whether the incoming call is from a permitted, blocked or unknown number
- Call history, permitted and blocked numbers, and voice messages are available in a web-based user interface
- Calls can be handled by a voice messaging system that optionally requires human interaction, e.g, "Press 1 to leave a message"
Associated GitHub Issues
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 |
Known Issues
Description | Type | Issue # |
---|---|---|
None. |
User Facing Changes
- Installation has changed. The software is distributed by PyPI is now installed with
pip
. - Data location has changed. The default location for data is now
~/.callattendant
, most likely expanded tohome/pi/.callattendant
- Command line has changed. A system-wide command is provided:
callattendant [--config <cfg file>]
Operation
Command Line Options
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
Data Files
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.
Configuration file
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.
Documentation
See the project's Wiki pages:
Install/Update/Removal
Install/Update
pip
is used to install and update the callattendant
pip install callattendant
Removal
pip uninstall callattendant
Call Attendant Release V0.4 - Beta
Date
15-AUG-2020
Release Summary
The v0.4 is a beta release of the Call Attendant (callattendant). This release includes the following new features:
- Responsive User Interface
- New Dashboard display for the home screen
- Consistent user experience across web interface
- Consistent REST API style web addresses for pages
- Hardware LED support for new message waiting indicator
Associated GitHub Issues
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 |
Known Issues
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 |
User Facing Changes
User interface changes
- User interface screens have changed
- New dashboard page has been added as the home screen
- Navigation has changed
- New voice message recordings
Operation
- This release uses Python 3. On the Raspberry Pi you must use the
python3
command to invoke Python 3 (unless you are running in a virtual environment, in which case you can use thepython
command) - The location of the
callattendant.db
file has changed fromsrc/callattendant.db
todata/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.
Configuration file
- An example configuration is provided:
src/app.cfg.example
. This file should be copied/renamed (e.g., toapp.cfg
) and edited to match your preferences.
Command Line
- The command line options have changed to allow the passing in of a configuration file, example:
cd callattendant
python3 src/callattendant.py --config app.cfg
Documentation
See the project's Wiki pages:
Install/Update/Removal
Install
- Download Release v0.4.
- Unzip the downloaded release. For example, to create the callattendant app under your home folder:
cd
unzip ~/Downloads/callattendant-0.4.zip
cd callattendant-04
You can rename the callattendant-04
folder if you wish.
Removal
- Delete the
callattendant-04
folder and its contents.
Update
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.
Call Attendant Release V0.3 - Alpha
Date
07-AUG-2020
Release Summary
The v0.3 is a alpha release of the Call Attendant (callattendant). This release includes the following new features and bug fixes:
- Voice Messaging
- Improved User Interface
- Configuration Options
Associated GitHub Issues
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 |
Known Issues
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 |
User interface
- Menu item names have changed
Operation
- This release uses Python 3. On the Raspberry Pi you must use the
python3
command to invoke Python 3 (unless you are running in a virtual environment, in which case you can use thepython
command) - The location of the
callattendant.db
file has changed fromsrc/callattendant.db
todata/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.
Configuration file
- An example configuration is provided:
src/app.cfg.example
. This file should be copied/renamed (e.g., toapp.cfg
) and edited to match your preferences.
Command Line
- The command line options have changed to allow the passing in of a configuration file, example:
cd callattendant
python3 src/callattendant.py --config app.cfg
Documentation
See the project's Wiki pages:
Install/Update/Removal
Install
- Download Release v0.3.
- Unzip the downloaded release. For example, to create the callattendant app under your home folder:
cd
unzip ~/Downloads/callattendant-0.3.zip
cd callattendant-03
You can rename the callattendant-03
folder if you wish.
Removal
- Delete the
callattendant-03
folder and its contents.
Update
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
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:
- The system runs on a Raspberry PI 3 B+
- The telco interface is a US Robotics 5637 USB modem
This release has implemented several primary use cases:
- Logs all incoming calls
- Performs call screening based on a permitted number list, a blocked number list and a Nomorobo robocall and scam lookup service
- Implements web interfaces for viewing the call log and managing the membership in the permitted number and blocked number lists
- Call Details:
http://localhost:5000
- Permitted Numbers:
http://localhost:5000/whitelist
- Blocked Numbers:
http://localhost:5000/blacklist
- Manage Caller:
http://localhost:5000/manage_caller/[call-number]
- Call Details:
Features not implemented yet include:
- Call attendant phone menu system
- Recording voice messages
- Playback of voice messages
Release v0.1
Release v0.1 is a prototype of the candidate architecture that demonstrates several primary use cases:
- Prototype runs on a Raspberry PI 3 B+
- A multi-threaded modem interface to a US Robotics 5637 USB modem
- Call logging to a SQLite database
- Call screening based on whitelists, blacklists and Nomorobo service
- Call screening indicators using Raspberry Pi GPIO pins and LEDs
- Call blocking
- View call log in a Flask-based web app