Skip to main content

VoicemailBox

VoicemailBox is an application for reading voice messages left on a fixed telephone line.

Its graphical interface is based on the Kivy framework.

Created to run on a Raspberry Pi with a touch screen, it should work on any GNU/Linux system.

Purpose

In France, some operators offer, as an option, to send voice messages left on a fixed line to a given email address.

VoicemailBox retrieves the voicemail messages thus sent, signals their arrival and offers a graphical interface to read them.

For now, it is designed to work with the French operator Bouygues Telecom.

Installation - General case

VoicemailBox can be installed with pip :

pip install voicemailbox

Installation - Raspberry Pi

The app has been tested on a Raspberry Pi 3, running Raspberry Pi OS Lite (Buster release), and the following hardware :

  • official Raspberry Pi touchscreen ;
  • OneNiceDesign touchscreen case ;
  • adafruit speaker bonnet ;
  • adafruit stereo enclosed speaker set.

On this system, some packages have to be installed first (Source) :

apt install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev \ 
libsdl2-ttf-dev pkg-config libgl1-mesa-dev libgles2-mesa-dev \
python3-setuptools python3-dev libmtdev-dev \ 
xclip xsel libjpeg-dev ffmpeg

Then, Kivy and VoicemailBox can be installed (virtual environment recommended) :

pip install --upgrade pip setuptools Cython
pip install kivy[base,media] --no-binary kivy
pip install voicemailbox

To allow rpi-backlight to manage touchscreen backlight without root access, a udev rule has to be created :

$ echo 'SUBSYSTEM=="backlight",RUN+="/bin/chmod 666 /sys/class/backlight/%k/brightness /sys/class/backlight/%k/bl_power"' | sudo tee -a /etc/udev/rules.d/backlight-permissions.rules

Additionnal configuration

The following instructions enable VoicemailBox to be integrated with the hardware described above :

  • edit /boot/config.txt :

    • touchscreen rotation : add lcd_rotate=2
    • GPU's memory set to 256 Mb : add gpu_mem=256
    • adafruit speaker bonnet :
      • add dtoverlay=hifiberry-dac
      • add dtoverlay=i2s-mmap
      • comment dtparam=audio=on
  • for speaker bonnet support, create /etc/asound.conf with the following content :

     pcm.speakerbonnet {
        type hw card 0
     }
    
     pcm.dmixer {
        type dmix
        ipc_key 1024
        ipc_perm 0666
        slave {
          pcm "speakerbonnet"
          period_time 0
          period_size 1024
          buffer_size 8192
          rate 44100
          channels 2
        }
     }
    
     ctl.dmixer {
         type hw card 0
     }
    
     pcm.softvol {
         type softvol
         slave.pcm "dmixer"
         control.name "PCM"
         control.card 0
     }
    
     ctl.softvol {
         type hw card 0
     }
    
     pcm.!default {
         type             plug
         slave.pcm       "softvol"
     }	   
    
  • Wi-Fi : create wpa_supplicant.conf file in /boot with following content (Source) :

     ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
     update_config=1
     country=<Insert 2 letter ISO 3166-1 country code here>
     
     network={
      ssid="<Name of your wireless LAN>"
      psk="<Password for your wireless LAN>"
     }
    
  • to use kivy with Raspberry Pi touchscreen, modify ~/.kivy/config.ini, add under [input] section :

     mouse = mouse
     mtdev_%(name)s = probesysfs,provider=mtdev
     hid_%(name)s = probesysfs,provider=hidinput
    
  • create systemd service to run at startup :

    • create /etc/systemd/system/voicemailbox.service with the follonwing content :

       [Unit]
       Description=voicemailbox
       After=multi-user.target
       
       [Service]
       Type=idle
       Environment=KIVY_AUDIO=ffpyplayer
       ExecStart=/home/pi/.venv/bin/python -m voicemailbox
       WorkingDirectory=/home/pi/
       User=pi
       
       [Install]
       WantedBy=multi-user.target
      
    • run at start-up :

      sudo systemctl enable voicemailbox
      
  • use Log2Ram :

    • install :
       echo "deb http://packages.azlux.fr/debian/ buster main" | sudo tee /etc/apt/sources.list.d/azlux.list
       wget -qO - https://azlux.fr/repo.gpg.key | sudo apt-key add -
       apt update
       apt install log2ram
      
    • modify frequency : run systemctl edit log2ram-daily.timer and add :
       [Timer]
       OnCalendar=weekly
      

Usage

Some environment variables have to be defined before running the application :

VOICEMAILBOX_IMAP_SERVER # IMAP server address
VOICEMAILBOX_EMAIL_ADDRESS # User email address
VOICEMAILBOX_EMAIL_PASSWORD # User password

Then VoicemailBox can be launched :

python -m voicemailbox

Third party libraries and dependencies

VoicemailBox makes use of the following third party projects :

VoicemailBox also includes :

License

VoicemailBox is placed under CeCILL license (version 2.1).

Metadata

Release files for voicemailbox 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for voicemailbox 0.1.5
File Size Uploaded Provenance Actions
voicemailbox-0.1.5.tar.gz 580.6 kB Without provenance Details for voicemailbox-0.1.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for voicemailbox 0.1.5
File Interpreter ABI Platform Actions
voicemailbox-0.1.5-py3-none-any.whl Python 3 none any Details for voicemailbox-0.1.5-py3-none-any.whl

Total release size: 1.2 MB

Release files / voicemailbox-0.1.5.tar.gz

Download URL voicemailbox-0.1.5.tar.gz
Size 580.6 kB
Tags Source
SHA-256 checksum
How to use checksums
dc16bc12dd41da0da9a1fa173501ff07e2876ece4dbfe37300717bd979ebc742
BLAKE2b-256 checksum
How to use checksums
6adffbf6c5c329faaf675093e05278a341b4a2a995455689dd3d8fe388e4b1aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.4 CPython/3.6.9 Linux/5.4.0-65-generic

Release files / voicemailbox-0.1.5-py3-none-any.whl

Download URL voicemailbox-0.1.5-py3-none-any.whl
Size 581.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7e3786cdf8ddea0ad1f7c3985e5a693b2f279dbe3e16352307f2e5ec589be963
BLAKE2b-256 checksum
How to use checksums
710e0235c35c26dfc4adb7c73990a5e2479eb2e409ed49dcd4e0fb37b09d5e32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.4 CPython/3.6.9 Linux/5.4.0-65-generic

Security for voicemailbox 0.1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page