Asterisk Voicemail integration allows Home Assistant to view, listen to and delete voicemails from a Asterisk voicemail mailbox.
There are two components to the integration:
- A server that runs on the Asterisk PBX host and communicates over an open port.
- A client which can request information from the server.
Both parts are necessary for Asterisk voicemail integration.
The server installation is documented below. The client is integrated inside Home Assistant
Before beginning make sure that you have the following:
- A functional Asterisk PBX setup which is using the default
- Both Home Assistant and Asterisk PBX running on the same LAN (or the same server).
- The Asterisk PBX server has Python 3.5 or newer installed.
- Administrator access on the Asterisk PBX (for python module installation).
- Account access to the
asteriskuser that runs the Asterisk PBX software.
Apply for a Google API key to enable speech-transcription services
$ pip3 install asterisk_mbox_server
Create a configuration file for the server
asteriskuser create an
asterisk_mbox.inifile. You can place this in any directory you choose, but the recommended location is
[default] host = IP_ADDRESS port = PORT password = PASSWORD mbox_path = PATH_TO_VOICEMAIL_FILES cache_file = PATH_TO_CACHE_FILE google_key = GOOGLE_API_KEY cdr = mysql+pymysql://<mysql-user>:<mysql-password>@localhost/asterisk/cdr
host (Optional): The IP address to listen on for client requests. This defaults to all IP addresses on the server. To listen only locally, choose
- port (Optional): The port to listen on for client requests. Defaults to 12345.
- password (Required): A password shared between client and server. Use only alpha-numeric characters and spaces
mbox_path (Required): The path to the storage location of mailbox files. This is typically
cache_file (Required): A fully-qualified path to a file that can be written by the server containing transcriptions of voicemails. Example:
- google_key (Required): Your 40 characters Google API key.
cdr (Optional): Where to find CDR data. Supports various SQL databases as well as a file log. Configuring the CDR will enable the
Once complete, ensure this file is only accessible by the Asterisk user:
$ sudo chown asterisk:asterisk /etc/asterisk/asterisk_mbox.ini $ sudo chmod 600 /etc/asterisk/asterisk_mbox.ini
- host (Optional): The IP address to listen on for client requests. This defaults to all IP addresses on the server. To listen only locally, choose
Interactively start the server to verify it is functioning
$ sudo -u asterisk asterisk_mbox_server -v --cfg /etc/asterisk/asterisk_mbox.ini
Now complete the Home Assistant configuration and verify that Home Assistant can communicate with the server
You can use
Ctrl-cto terminate the server when done testing
Configure the server to start automatically
Copy the following code into
[Unit] Description=Asterisk PBX voicemail server for Home Assistant Wants=network.target After=network.target [Service] Type=simple User=asterisk Group=asterisk ExecStart=/usr/local/bin/asterisk_mbox_server -cfg /etc/asterisk/asterisk_mbox.ini Restart=on-failure [Install] WantedBy=multi-user.target
This assumes that your Asterisk PBX server is using
systemd for init handling. If not, you will need to create the appropriate configuration files yourself.