EchoPBX is a PBX that aims to be simple to set up. It provides you with an easy-to-use web interface for managing extensions, trunks and queues. It is built on top of Asterisk,
The primary target audience for EchoPBX is for those who want to self-host their VoIP solution, without the hassle that usually comes with it.
Disclaimer: EchoPBX is currently in BETA.
Make sure Docker is installed on your system. If not, you can install it for Ubuntu-based distributions using:
sudo apt install docker.ioThen, run the container
sudo docker run -t --network=host -v /opt/echopbx:/data ghcr.io/ljfloor/echopbx:mainAfter which you can access the Web UI by going to http://(serverip):8740.
For running a SoftPhone (a virtual IP phone on your computer), I recommend using MicroSIP, as it is fairly easy to setup and I use it myself for testing.
Can I install EchoPBX on Windows?
EchoPBX uses Asterisk under the hood. Asterisk does not support Windows, hence you cannot install EchoPBX for Windows directly. However, you can install Docker Desktop on Windows, and run EchoPBX on that as a Docker container.
Besides SIP, are other protocols available?
Nope. Since SIP is by far the most used VoIP protocol, EchoPBX only supports SIP to keep things simple. If you need other protocols like IAX2, you can install FreePBX, which is very feature rich.
Maybe in the future when there is nothing to do. Let's just say that this isn't my priority right now.
So this is "just another frontend" for Asterisk?
Yes and no. While EchoPBX does provide a web interface for managing Asterisk, it also aims to simplify the overall experience of setting up and managing a PBX. It's not just a web interface that replaces config files with bare textboxes. EchoPBX tries to guide you through it, explaining concepts, and providing sensible defaults. In the same way that Plex isn't just a fancy browser for your media files, but a whole lot of features (transcoding, metadata fetching, etc) to make your media experience better.
When you typically make a front-end for an already existing backend, you tend to make it very close to the backend. Every key in the config file translates to a textbox or checkbox in the UI. This is not the case with EchoPBX. EchoPBX abstracts away many of the complexities of Asterisk. This might not be for everyone though, and I respect that. So if you want a more traditional approach, FreePBX is a great alternative.
I hope this more clarifies my idea and vision, and why things like custom dialplan scripting are not available in EchoPBX.
docker build -t echopbx .
The easiest way to develop locally is not with docker, but to install the dependencies directly on your machine. Because EchoPBX uses Asterisk, you will need to install and configure Asterisk first.
Like said before, Asterisk only runs on Linux, so you will need a Linux machine or a Linux VM. Alternatively, you can use Windows Subsystem for Linux (WSL2) on Windows 10/11.
First, install asterisk and other dependencies:
sudo apt install asterisk ffmpegDisable it auto-starting, since EchoPBX will start and stop asterisk, not the system.
sudo systemctl disable asterisk --nowBecause we run asterisk as our normal user, we need to set some permissions
sudo chown -R $USER /etc/asterisk
sudo chown -R $USER /var/spool/asterisk
sudo chown -R $USER /var/lib/asteriskCopy the rootfs files to your system. You shouldn't get any permission denied errors here, since you just changed the ownership of the asterisk directories.
cp -rv rootfs/* /Lastly, give yourself permission to the run dirctory, so EchoPBX can run asterisk -r commands:
sudo mkdir /var/run/asterisk && sudo chown -R $USER /var/run/asteriskNote: Every time you reboot your pc, you will need to run the above command again, since
/var/runis cleared on reboot.