Installation of Asterisk and FreePBX GUI on Raspberry Pi
- "Asterisk" is a PBX communication server
- "FreePBX" is a front-end that exposes Asterisk functionality via a web-based GUI
- "FreePBX Distro" (previously called "AsteriskNow") was a pre-configured bundle distribution of Asterisk/FreePBX system based on CentOS. But now discontinued.
- "RaspPBX" is a pre-configured bundle distribution of Asterisk/FreePBX based on Raspbian Buster 10, Asterisk 16.13.0, and FreePBX 15.0.16.75. The latest version is from 2020-10-10, but is no longer supported.
So... this repository intends to document the process of creating an up-to-date Asterisk installation on a Raspberry Pi, based on latest releases as follows:
- Asterisk 22 (2025-01-09)
- FreePBX 17 (2024-08-02)
- Rasp Pi OS, Debian 12 Bookworm (2024-11-19)
This is based on snippets from various sources, primarily https://www.dslreports.com/forum/r30661088-PBX-FreePBX-for-the-Raspberry-Pi .
- a.) Download the latest OS image from https://www.raspberrypi.com/software/operating-systems/ . I'm using 2024-11-19-raspios-bookworm-arm64-lite.img.xz
- b.) Burn the OS image onto an >8Gb SD card. I use DiskImager to do this (but you could alternatively use Etcher etc.)
- a.) Once the OS image is burned, the SD card should automically be mounted in Windows Explorer as a partition named "bootfs"
- b.) Create an empty file in the bootfs root directory named "ssh"
- c.) Create a text file named "userconf" in the bootfs root directory containing the following:
pi:$6$c70VpvPsVNCG0YR5$l5vWWLsLko9Kj65gcQ8qvMkuOoRkEagI90qi3F/Y7rm8eNYZHW8CY6BOIKwMH7a3YYzZYL90zf304cAHLFaZE0
- a.) Insert the SD card into the Raspberry Pi (connected to your LAN via ethernet cable) and power on
- b.) Use WinSCP to create an SFTP connection to:
host: raspberrypi.local
username: pi
password: raspberry
- c.) Copy
installandinstall.tar.gzfrom this repository to the /home/pi directory.
- a.) Use PuTTY to create a SSH connection to:
host: raspberrypi.local
username: pi
password: raspberry
- b.) Set executable permissions on the install script
chmod +x install - c.) Run the install script
sudo ./install
- d.) When prompted...:
- Set pi user password
- Set root user password
- Select FreePBX version
- Select Asterisk version
- Use Edge?
- Disable IPv6 option? ('No' recommended)
- e.) Review selections as follows:
FreePBX Version: 17.0 (c)
Asterisk Version: 22 (d)
Edge Enabled: Yes (y)
IPv6 Enabled: Yes (n)
- a.) System Options->Set Hostname (1/S4)
RasPBX - b.) Localisation Options->Locale (5/L1)
en_GB.UTF-8 - c.) Localisation Options->Timezone (5/L2)
Europe - London - d.) Advanced Options->Expand Filesystem (6/A1)
- e.) Finish/Reboot Now
No
The Raspberry Pi will reboot, closing the connection to PuTTY.

- a.) Create a new PuTTY connection, using the new hostname and/or root credentials set in the previous steps (you may receive a message saying cached key is out-of-date - update it) e.g.
host: raspbx.local
username: root
password: raspberry
- b.) Having connected successfully, FreePBX installation will continue automatically.
The Raspberry Pi will reboot, closing the connection to PuTTY.
- a.) Restart the PuTTY connection using the same root credentials as in the previous step (right click on the PuTTY menu bar and select "Restart Session")
host: raspbx.local
login as: root
[email protected]'s password: raspberry
- b.) Confirm the selection made in 4d., as follows:
FreePBX Version: 17.0 (c)
Asterisk Version: 22 (d)
Edge Enabled: Yes (y)
IPv6 Enabled: Yes (n)
This step will take some time. Also, it does not appear to finish cleanly. My PuTTY connection timed out, with the following as the last message received:
The Raspberry Pi will reboot, closing the connection to PuTTY.
- a.) Restart the PuTTY connection using the same root credentials as in the previous step for one last time (right click on the PuTTY menu bar and select "Restart Session")
host: raspbx.local
login as: root
[email protected]'s password: raspberry
- b.) The FreePBX installation should continue as in previous steps, and will complete with the message
FreePBX Installation Complete
- a.) Log in to the web GUI in a browser by going to
raspbx.local






