Introduction
Welcome to the definitive, no-nonsense, yet slightly cheeky guide on how to install FreePBX (formerly known as AsteriskNOW) on a Linux server. Whether you’re a seasoned sysadmin or a curious tinkerer who once installed Ubuntu by accidentally typing rm -rf /, this tutorial has got your back (without the dangerous bits).
What Is FreePBX?
FreePBX is a web-based open source GUI that controls and manages Asterisk (the world’s most popular telephony engine). It transforms a bare-bones Linux box into a powerful PBX (Private Branch Exchange) for voice, fax, and video calls.
- GUI-driven wizardry to configure extensions, trunks, routes
- Feature-rich: voicemail, IVR, call recording, conferencing
- Community-supported with frequent updates and a healthy ecosystem of modules
Official website: freepbx.org
Why Choose FreePBX?
- Cost-effective – It’s free (as in beer and as in speech).
- Scalable – From a 2-person home office to a 2,000-user call center.
- Customizable – Pick and choose modules like they’re toppings on your pizza.
- Community Commercial Support – When you’re in a pinch, someone’s there to help.
System Requirements
Before you jump in, make sure your hardware and software meet these minimal specs:
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 1 GHz | 4 cores @ 2.5 GHz |
| RAM | 1 GB | 4 GB |
| Disk Space | 20 GB | 100 GB |
| Network | Ethernet | 1 Gbps NIC |
| ISO | FreePBX Distro ISO (64-bit) | |
Step 1: Downloading the ISO
Head over to the official mirror:
Choose the latest FreePBX Distro ISO (64-bit). Save it somewhere safe—like your Downloads folder, or on a USB stick if you’re feeling adventurous.
Step 2: Preparing Installation Media
Option A: USB Stick (Linux)
- Insert a USB drive (4 GB ).
- Identify its device name:
sudo fdisk -l. - Write the ISO:
sudo dd if=FreePBX-15.0.17-x86_64-DVD.iso of=/dev/sdX bs=4M status=progress sync(replace/dev/sdXappropriately).
Option B: USB Stick (Windows)
- Download Rufus.
- Select the ISO, choose the USB drive, click Start.
Step 3: Installing FreePBX
3.1 Boot from USB/DVD
Insert your media, reboot, and choose the USB/DVD from your BIOS/UEFI boot menu.
3.2 Begin Installer
Wait for the FreePBX installer splash screen. Press Enter to start.
3.3 Disk Partitioning
You’ll see anaconda (CentOS installer). Choose Automatic partitioning unless you’re a disk guru with a penchant for LVM magic.
3.4 Network Configuration
- Set a static IP or enable DHCP (static preferred in production).
- Enter DNS servers (e.g. 8.8.8.8).
3.5 Root Password Timezone
- Root password: Choose something complex enough to thwart script kiddies, but not so long you’ll forget it.
- Timezone: Select your local timezone for accurate logs.
3.6 Let It Rip
Click Begin Installation. Grab coffee. The system will install OS, download and configure FreePBX components. This can take 10–20 minutes.
3.7 Reboot
Once done, remove the USB stick and reboot. FreePBX should greet you with a login prompt.
Step 4: Initial Web Configuration
4.1 Access the GUI
On another machine, open a browser and go to https://ltyour-server-ipgt. You’ll see a self-signed certificate warning—add an exception and proceed.
4.2 FreePBX Wizard
- Create the default admin user and set a secure password.
- Accept the GPL license.
- Let the Module Admin update core modules automatically.
4.3 Update Backup
- Navigate to Admin gt Module Admin and apply any pending updates.
- Go to Admin gt Backup Restore to schedule nightly backups. Because Murphy’s Law is real.
Step 5: Post‐Installation Tasks
5.1 Secure Your PBX
- Firewall: Enable the Sysadmin Firewall module and whitelist only trusted IP subnets.
- Fail2Ban: Activate Intrusion Detection to block brute‐force attempts.
- Updates: Regularly check for OS and module patches.
5.2 Create Extensions
- Go to Applications gt Extensions.
- Add a Chan_SIP or Chan_PJSIP extension.
- Configure secret/password, voicemail, and device options.
5.3 Configure Trunks
- Navigate to Connectivity gt Trunks.
- Add your SIP/IAX2 provider credentials.
- Adjust registration string, codecs, and DTMF mode.
5.4 Outbound Inbound Routes
- Outbound Routes: Define dial patterns to send calls via your trunk.
- Inbound Routes: Map incoming DID numbers to extensions or IVRs.
Troubleshooting Tips
- No audio? Check NAT settings, codecs, and RTP port range (UDP 10000–20000).
- Cannot register trunk? Verify credentials, network connectivity, and firewall rules.
- Web GUI unreachable? Ensure Apache is running:
systemctl status httpd. - Logs: Tail
/var/log/asterisk/fulland/var/log/asterisk/messages.
Pro Tips Tricks
- Use FreePBX Endpoint Manager for easy phone provisioning (commercial module).
- Leverage Paging Intercom for quick team announcements.
- Set up Time Conditions for business hours vs. after-hours routing.
- Experiment in a virtual environment (VirtualBox, KVM) before touching production.
Conclusion
That’s it! You’ve built a fully functional, open-source PBX capable of handling calls, voicemails, conferences, and more—without spending a dime on proprietary licenses. Now go forth, impress your colleagues, and remember: with great power comes great responsibility (and occasional firmware updates).
Happy dialing!
Leave a Reply