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
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
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
configure: OS type : linux-gnu
configure: Host CPU : x86_64
Jika perlu menghapus cache konfigurasi sebelum menjalankan ulang proses dari awal:
make distclean
./configure
./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
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
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 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
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
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.
