Install Asterisk di Debian

Install Asterisk di Debian

Menyiapkan Debian 13 untuk Instalasi Asterisk.

Panduan ini membahas instalasi Asterisk dari source pada Debian 13 Trixie, yaitu versi stable Debian terbaru saat artikel ini ditulis. Instalasi dilakukan pada VPS berbasis x86_64 dengan 4 vCPU dan menggunakan Asterisk 22.10.1. Debian 13 saat ini berada pada point release 13.6, sedangkan source Asterisk 22.10.1 tersedia dari server unduhan resmi Asterisk.

Metode compile dari source dipilih agar versi Asterisk, modul, codec, sound package, dan opsi build dapat ditentukan secara langsung. Dokumentasi Asterisk juga menyebutkan bahwa compile dari source memberikan kontrol paling besar terhadap instalasi.

Lingkungan yang Digunakan.

Panduan ini dijalankan dengan lingkungan berikut:

Sistem operasi : Debian 13 Trixie
Arsitektur : x86_64
CPU : 4 vCPU
Asterisk : 22.10.1
Metode : Compile dari source
User instalasi : root
User runtime : asterisk

Instalasi ini ditujukan untuk penggunaan SIP/PJSIP. DAHDI dan LibPRI tidak wajib dipasang apabila server tidak menggunakan kartu telepon fisik, perangkat telepon tradisional, atau fitur tertentu yang bergantung pada DAHDI.

Memperbarui Debian.

Perbarui daftar paket dan seluruh paket sistem terlebih dahulu:

apt update
apt full-upgrade -y

Setelah pembaruan selesai, reboot server:

reboot

Login kembali melalui SSH setelah server aktif.

Menggunakan Screen agar Proses Tidak Terputus.

Compile Asterisk dapat berlangsung cukup lama. Jika koneksi SSH terputus, proses yang berjalan di terminal biasa juga dapat berhenti. Untuk menghindarinya, gunakan screen.

Install screen:

apt install -y screen

Buat session bernama asterisk:

screen -S asterisk

Pastikan sudah berada di dalam session:

echo $STY

Hasilnya kurang lebih:

74926.asterisk

Untuk keluar sementara tanpa menghentikan proses, tekan:

Ctrl+A

Lepaskan kedua tombol, lalu tekan:

d

Lihat session yang tersedia:

screen -ls

Masuk kembali:

screen -r asterisk

Jika hanya ada satu session:

screen -r

Setelah semua pekerjaan selesai, tutup session dengan:

exit

Menutup SSH, mematikan komputer lokal, atau kehilangan koneksi internet tidak menghentikan proses di dalam screen. Session hanya akan hilang jika VPS direboot atau proses screen dihentikan.

Menginstal Dependency Dasar.

Install paket yang diperlukan untuk mengunduh, mengonfigurasi, dan mengompilasi Asterisk:

apt install -y build-essential git wget curl subversion pkg-config autoconf automake libtool bison flex uuid-dev libxml2-dev libsqlite3-dev libjansson-dev libssl-dev libedit-dev libncurses-dev libnewt-dev libcurl4-openssl-dev libspeex-dev libspeexdsp-dev libopus-dev libgsm1-dev libogg-dev libvorbis-dev libasound2-dev libldap2-dev unixodbc-dev libpopt-dev libical-dev libspandsp-dev libcodec2-dev libfftw3-dev liblua5.4-dev libsnmp-dev ca-certificates

Asterisk juga menyediakan script install_prereq di dalam source untuk memeriksa dan memasang dependency sesuai sistem operasi. Script tersebut dapat digunakan setelah source diekstrak.

Mengunduh Asterisk 22.10.1.

Masuk ke direktori source:

cd /usr/src

Download source Asterisk 22.10.1:

wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22.10.1.tar.gz

Ekstrak:

tar xzf asterisk-22.10.1.tar.gz

Masuk ke direktori source:

cd /usr/src/asterisk-22.10.1

Jika masih ada dependency yang belum terpasang, jalankan:

contrib/scripts/install_prereq install

Script tersebut dapat menambahkan paket yang dibutuhkan oleh versi Asterisk dan distribusi Linux yang digunakan.

Mengambil Source MP3.

Untuk mengaktifkan dukungan format MP3, jalankan:

contrib/scripts/get_mp3_source.sh

Modul format_mp3 tetap harus dipilih melalui Menuselect pada langkah berikutnya.

Menjalankan Configure.

Jalankan pemeriksaan dan persiapan build:

./configure

Proses ini memeriksa compiler, library, dependency, arsitektur CPU, dan lingkungan sistem. Jika ada dependency yang belum tersedia, configure akan berhenti dan menampilkan nama komponen yang hilang. Setelah dependency dipasang, jalankan kembali ./configure.

Jika konfigurasi berhasil, bagian akhir output akan menampilkan informasi seperti:

configure: Package configured for:
configure: OS type : linux-gnu
configure: Host CPU : x86_64

Jika perlu menghapus cache konfigurasi sebelum menjalankan ulang proses dari awal:

make distclean
./configure

Memilih Modul dengan Menuselect.

Buka Menuselect:

make menuselect

Menuselect digunakan untuk memilih modul, codec, format audio, sound package, dan opsi compiler yang akan disertakan dalam build.

Untuk instalasi SIP/PJSIP, pastikan modul penting berikut tersedia atau dipilih:

res_pjsip
res_pjsip_session
res_pjsip_registrar
res_rtp_asterisk
chan_pjsip
format_mp3
codec_opus

Sebagian modul biasanya sudah aktif secara default jika dependency-nya tersedia.

Jangan Memilih Semua Sound Package.

Pada instalasi ini sempat terlalu banyak format sound yang dipilih sehingga make install harus mengunduh banyak paket audio.

Untuk penggunaan standar, cukup pilih salah satu format utama:

CORE-SOUNDS-EN-ULAW

Jika menggunakan endpoint HD, dapat ditambahkan:

CORE-SOUNDS-EN-G722

Tidak perlu memilih semua format seperti alaw, gsm, g722, sln, sln16, dan format lainnya sekaligus jika memang tidak digunakan.

Menuselect menjelaskan bahwa Core Sound Packages dan Music On Hold yang dipilih akan diunduh saat proses instalasi.

Simpan konfigurasi dengan menekan:

F12

atau pilih Save and Exit.

Jika ingin mengubah pilihan sound sebelum instalasi selesai, buka kembali:

make menuselect

Jika ingin menghapus seluruh pilihan Menuselect dan kembali memulai dari konfigurasi default:

rm -f menuselect.makeopts
make menuselect

Mengompilasi Asterisk.

Pada VPS dengan 4 vCPU, gunakan:

make -j4

Alternatifnya, gunakan jumlah core yang terdeteksi otomatis:

make -j$(nproc)

Pada VPS dengan RAM terbatas, kurangi jumlah proses paralel:

make -j2

Setelah proses selesai, akan muncul:

Asterisk Build Complete

Dokumentasi Asterisk menyatakan bahwa langkah berikutnya setelah build berhasil adalah menjalankan make install.

Menginstal Asterisk.

Jalankan satu per satu:

make install

Kemudian install konfigurasi contoh:

make samples

Install startup script:

make config

Install konfigurasi logrotate:

make install-logrotate

Perbarui cache shared library:

ldconfig

Perlu diperhatikan bahwa make samples memasang konfigurasi contoh ke /etc/asterisk. Pada server yang sudah memiliki konfigurasi produksi, file lama dapat dipindahkan menjadi file dengan ekstensi .old. Konfigurasi contoh juga tidak boleh langsung dianggap sebagai konfigurasi produksi yang aman.

Perintah make config memasang initialization script agar Asterisk dapat dikelola sebagai service dan dijalankan saat boot.

Jika SSH Terputus Saat Make Install.

Pada proses instalasi ini, koneksi SSH sempat terputus ketika make install sedang berjalan.
Masuk kembali ke server, lalu ke direktori source:

cd /usr/src/asterisk-22.10.1

Pastikan tidak ada proses make yang masih berjalan:

ps aux | grep -E '[m]ake|[g]cc|[l]d'

Jika tidak ada proses aktif, ulangi:

make install
make samples
make config
make install-logrotate
ldconfig

make install dapat dijalankan kembali dari source yang sudah selesai dikompilasi. Tidak perlu mengulang ./configure dan make -j4 selama file hasil build masih tersedia.

Jika Download Core Sounds Menggunakan IPv6.

Tidak ada opsi khusus pada make install untuk menonaktifkan IPv6. Proses download mengikuti pemilihan alamat jaringan oleh sistem.

Jika koneksi IPv6 server bermasalah dan download sound berhenti, utamakan IPv4 melalui /etc/gai.conf:

nano /etc/gai.conf

Aktifkan atau tambahkan:

precedence ::ffff:0:0/96 100

Setelah itu ulangi:

make install

Pengaturan ini membuat aplikasi yang menggunakan getaddrinfo() lebih memprioritaskan IPv4. Tidak perlu mengulang compile Asterisk hanya karena download sound memilih IPv6.

Membuat User Asterisk.

Asterisk sebaiknya tidak berjalan sebagai root, terutama jika nantinya server akan menggunakan FreePBX.

Buat group:

getent group asterisk >/dev/null || groupadd --system asterisk

Buat user:

id asterisk >/dev/null 2>&1 || useradd --system --home-dir /var/lib/asterisk --gid asterisk --shell /usr/sbin/nologin asterisk

Atur ownership:

chown -R asterisk:asterisk /etc/asterisk /var/lib/asterisk /var/log/asterisk /var/spool/asterisk /usr/lib/asterisk

Edit konfigurasi utama:

nano /etc/asterisk/asterisk.conf

Pastikan terdapat:

runuser = asterisk
rungroup = asterisk

Jika baris tersebut diawali tanda titik koma, hapus tanda titik komanya.

Menjalankan Asterisk.

Reload konfigurasi systemd:

systemctl daemon-reload

Aktifkan Asterisk saat boot:

systemctl enable asterisk

Jalankan servicenya:

systemctl start asterisk

Cek status:

systemctl status asterisk --no-pager -l

Cek proses dan user yang menjalankannya:

ps -o user,pid,cmd -C asterisk

Kolom user harus menunjukkan:

asterisk

Bukan:

root

Menguji Asterisk Secara Manual.

Jika service masih menunjukkan:

Active: inactive (dead)

uji binary Asterisk dalam mode foreground:

asterisk -cvvvvv

Jika berhasil, akan muncul:

Asterisk Ready.

Keluar dengan:

Ctrl+C

Jangan meninggalkan Asterisk berjalan melalui asterisk -cvvvvv sebagai root. Mode tersebut hanya digunakan untuk pengujian. Setelah pengujian selesai, jalankan Asterisk melalui service agar menggunakan user asterisk.

Verifikasi Instalasi.

Cek versi:

asterisk -V

Hasil pada instalasi ini:

Asterisk 22.10.1

Cek versi dari instance yang sedang berjalan:

asterisk -rx "core show version"

Contoh hasilnya:

Asterisk 22.10.1 built by root @ voip.example.com on a x86_64 running Linux

Masuk ke Asterisk CLI:

asterisk -rvvvvv

Cek uptime:

core show uptime

Cek modul PJSIP:

module show like pjsip

Keluar dari CLI:

exit

Memastikan Service Aktif Setelah Reboot.

Reboot server:

reboot

Setelah server aktif, login kembali dan jalankan:

systemctl status asterisk --no-pager

Kemudian:

asterisk -rx "core show version"

Jika versi Asterisk tampil, service sudah berjalan dan siap digunakan.

Catatan Penting Sebelum Memasang FreePBX.

Apabila instalasi ini akan dilanjutkan dengan FreePBX, pastikan Asterisk berjalan sebagai user asterisk.

Verifikasi:

ps -o user,pid,cmd -C asterisk

Jika masih berjalan sebagai root, hentikan:

systemctl stop asterisk
killall asterisk 2>/dev/null

Kemudian jalankan kembali:

systemctl start asterisk

Cek ulang:

ps -o user,pid,cmd -C asterisk

FreePBX akan menolak instalasi apabila Asterisk terdeteksi berjalan sebagai root dan biasanya menampilkan pesan:

Asterisk appears to be running as root

Pada tahap ini Asterisk 22.10.1 sudah terpasang dan berjalan pada Debian 13. Instalasi berikutnya dapat dilanjutkan ke FreePBX tanpa perlu mengompilasi ulang Asterisk.
Lebih baru Lebih lama