UbuntuUbuntu Based

How To Install Asterisk on Ubuntu 24.04 LTS

Install Asterisk on Ubuntu 24.04

Asterisk stands at the forefront of modern telecommunications technology. As an open-source PBX platform, it offers a versatile suite of tools for managing Voice over IP (VoIP) communications, conferencing, Interactive Voice Response (IVR) systems, and comprehensive call management. Its flexibility and power make it an attractive choice for businesses looking to streamline their communication infrastructure.

Ubuntu 24.04, the latest Long Term Support (LTS) release, provides an ideal environment for hosting Asterisk. The combination of Ubuntu’s stability, robust security features, and extensive community support creates a solid foundation for your Asterisk installation. By leveraging Ubuntu 24.04, you ensure that your PBX system benefits from regular updates and long-term maintenance.

In this guide, we’ll cover everything from system preparation to post-installation configuration. You’ll learn how to install dependencies, compile Asterisk from source, configure system services, and perform basic setup tasks. By the end of this tutorial, you’ll have a fully functional Asterisk system ready for customization to meet your specific needs.

2. Prerequisites

Before diving into the installation process, it’s crucial to ensure your system meets the necessary requirements and is properly prepared. This section outlines the essential prerequisites for a smooth Asterisk installation on Ubuntu 24.04.

System Requirements

  • A machine running Ubuntu 24.04 LTS (server or desktop edition)
  • Minimum of 1 GB RAM (2 GB or more recommended for production use)
  • Multi-core CPU (2 cores minimum, 4 or more recommended for better performance)
  • At least 10 GB of free disk space
  • Active internet connection for downloading packages and dependencies

User Permissions

To install Asterisk, you’ll need administrative privileges on your Ubuntu system. Ensure you have sudo access or are logged in as the root user. Throughout this guide, we’ll use sudo for executing commands that require elevated privileges.

Network Configuration

Verify that your system has a stable internet connection. You’ll need this to download packages and dependencies during the installation process. If you’re using a firewall, make sure it allows outgoing connections to package repositories and download servers.

Dependencies Overview

Asterisk requires several dependencies to compile and run correctly. We’ll install these packages as part of the installation process, but it’s good to be aware of them:

  • build-essential: Provides essential compilation tools
  • git: For version control and downloading additional resources
  • curl: Used for downloading files and scripts
  • libssl-dev: OpenSSL development files for secure communications
  • libncurses5-dev: Development files for the ncurses library
  • libxml2-dev: XML parsing library
  • libsqlite3-dev: SQLite database engine
  • uuid-dev: Universally Unique Identifier library

With these prerequisites in mind, let’s move on to the step-by-step installation process.

3. Step-by-Step Installation Guide

Follow these detailed steps to install Asterisk on your Ubuntu 24.04 system. Each step is crucial for a successful installation, so make sure to execute them in order and carefully.

Step 1: Update System and Install Dependencies

Begin by updating your system’s package list and upgrading existing packages to their latest versions. This ensures you have the most recent software and security updates.

sudo apt update && sudo apt upgrade -y

Next, install the necessary dependencies for compiling and running Asterisk:

sudo apt install -y unzip git sox gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev libedit-dev uuid-dev

These packages provide essential libraries and tools required for the Asterisk build process and its various features.

Step 2: Download and Extract Asterisk Source Code

Now, let’s download the latest stable version of Asterisk. We’ll use the /usr/src directory to store the source files:

cd /usr/src/
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz

After downloading, extract the tarball:

sudo tar zxf asterisk-22-current.tar.gz

Navigate to the extracted directory:

cd asterisk-*/

The asterisk-* wildcard ensures you enter the correct directory regardless of the specific version number.

Step 3: Prepare for Compilation

Before compiling Asterisk, we need to prepare the build environment and ensure all necessary modules are available.

First, fetch the MP3 sources for audio support:

sudo contrib/scripts/get_mp3_source.sh

Next, run the prerequisite installation script to ensure all required packages are installed:

sudo contrib/scripts/install_prereq install

Now, configure the build environment:

sudo ./configure

After configuration, use the menuselect tool to choose which modules to compile. This step allows you to customize your Asterisk installation:

sudo make menuselect

In the menuselect interface, ensure that core sound modules are enabled. Also, enable MP3 support by selecting the format_mp3 module. Use the arrow keys to navigate, the spacebar to select/deselect options, and Enter to confirm your choices.

Step 4: Compile and Install Asterisk

With the configuration complete, it’s time to compile Asterisk. This process may take some time, depending on your system’s performance:

sudo make -j$(nproc)

The -j$(nproc) option tells make to use all available CPU cores, speeding up the compilation process.

After compilation, install Asterisk:

sudo make install

Install sample configuration files to provide a starting point for your Asterisk setup:

sudo make samples

For a basic PBX configuration, you can also run:

sudo make basic-pbx

Step 5: Configure System Services for Asterisk

To ensure Asterisk starts automatically with your system and can be managed as a service, install the init scripts:

sudo make config

Update the shared library cache to ensure all Asterisk libraries are recognized by the system:

sudo ldconfig

Step 6: Create a Dedicated User for Asterisk

For security reasons, it’s best to run Asterisk under a dedicated user account. Create the asterisk user and group:

sudo groupadd asterisk
sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk

Set the correct ownership and permissions for Asterisk directories:

sudo chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib/asterisk

Step 7: Start and Verify Asterisk

With everything set up, it’s time to start the Asterisk service:

sudo systemctl start asterisk

Enable Asterisk to start automatically on system boot:

sudo systemctl enable asterisk

Verify that Asterisk is running correctly by accessing the Asterisk Command Line Interface (CLI):

sudo asterisk -rvvv

If you see the Asterisk CLI prompt, congratulations! Your Asterisk installation is up and running.

4. Post-installation Configuration

After successfully installing Asterisk, there are a few additional configuration steps to ensure optimal performance and security.

Firewall Configuration

If you’re using Ubuntu’s built-in ufw firewall, you’ll need to open the necessary ports for Asterisk to communicate. Here’s how to allow SIP traffic:

sudo ufw allow proto udp from any to any port 5060,5061 comment 'Allow SIP'

For RTP media streaming, open a range of ports (typically 10000-20000, but adjust as needed):

sudo ufw allow proto udp from any to any port 10000:20000 comment 'Allow RTP Media'

Basic Dialplan Setup

The dialplan is the heart of Asterisk’s call routing logic. Here’s a simple example to get you started. Edit the /etc/asterisk/extensions.conf file:

sudo nano /etc/asterisk/extensions.conf

Add the following basic configuration:

[internal]
exten => 100,1,Answer()
same => n,Wait(1)
same => n,Playback(hello-world)
same => n,Hangup()

[from-external]
exten => 200,1,Answer()
same => n,Dial(SIP/internal/100,20)
same => n,Voicemail(100@default)
same => n,Hangup()

This simple dialplan creates an internal extension (100) that plays a “hello world” message and an external number (200) that rings extension 100 and falls back to voicemail if unanswered.

5. Troubleshooting Common Issues

Even with careful installation, you might encounter some issues. Here are solutions to common problems:

Dependency Errors During Installation

If you encounter dependency errors, try running the install_prereq script again:

sudo contrib/scripts/install_prereq install

If issues persist, manually install the missing packages using apt.

Service Not Starting

If Asterisk fails to start, check the system logs for clues:

sudo journalctl -xe | grep asterisk

Common issues include permission problems or port conflicts. Ensure all Asterisk directories have the correct ownership and that no other services are using Asterisk’s ports.

Connectivity Issues with SIP Clients

If SIP clients can’t connect, verify your firewall settings:

sudo ufw status

Ensure that the necessary ports (5060, 5061, and your RTP range) are open. Also, check Asterisk’s SIP settings in /etc/asterisk/sip.conf or /etc/asterisk/pjsip.conf for any misconfigurations.

Congratulations! You have successfully installed Asterisk. Thanks for using this tutorial for installing the Asterisk open-source PBX platform on Ubuntu 24.04 LTS system. For additional help or useful information, we recommend you check the official Asterisk website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button