<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Internet_OFFLINE%3A_Ubuntu_26.04_install_asterisk</id>
	<title>Internet OFFLINE: Ubuntu 26.04 install asterisk - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Internet_OFFLINE%3A_Ubuntu_26.04_install_asterisk"/>
	<link rel="alternate" type="text/html" href="https://onnocenter.or.id/wiki/index.php?title=Internet_OFFLINE:_Ubuntu_26.04_install_asterisk&amp;action=history"/>
	<updated>2026-07-27T05:41:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.4</generator>
	<entry>
		<id>https://onnocenter.or.id/wiki/index.php?title=Internet_OFFLINE:_Ubuntu_26.04_install_asterisk&amp;diff=73700&amp;oldid=prev</id>
		<title>Onnowpurbo: Created page with &quot;# Instalasi Asterisk Ubuntu Server 26.04  ## Extension SIP 1000–1100  Panduan berikut mengadaptasi pendekatan buku *VoIP Desa Menggunakan Asterisk*: instalasi melalui APT, p...&quot;</title>
		<link rel="alternate" type="text/html" href="https://onnocenter.or.id/wiki/index.php?title=Internet_OFFLINE:_Ubuntu_26.04_install_asterisk&amp;diff=73700&amp;oldid=prev"/>
		<updated>2026-07-20T02:41:55Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;# Instalasi Asterisk Ubuntu Server 26.04  ## Extension SIP 1000–1100  Panduan berikut mengadaptasi pendekatan buku *VoIP Desa Menggunakan Asterisk*: instalasi melalui APT, p...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;# Instalasi Asterisk Ubuntu Server 26.04&lt;br /&gt;
&lt;br /&gt;
## Extension SIP 1000–1100&lt;br /&gt;
&lt;br /&gt;
Panduan berikut mengadaptasi pendekatan buku *VoIP Desa Menggunakan Asterisk*: instalasi melalui APT, penggunaan PJSIP, dialplan lokal, firewall, pengujian, dan dokumentasi akun. Buku menggunakan struktur satu akun PJSIP yang terdiri atas **endpoint, authentication, dan AOR**, serta menyarankan server memakai alamat IP statis. &lt;br /&gt;
&lt;br /&gt;
Ubuntu 26.04 LTS menyediakan paket **Asterisk 22.5.2** melalui komponen `universe`, sehingga tidak perlu melakukan kompilasi dari source code. ([Ubuntu Packages][1])&lt;br /&gt;
&lt;br /&gt;
Hasil akhir:&lt;br /&gt;
&lt;br /&gt;
* Asterisk aktif otomatis saat server hidup.&lt;br /&gt;
* SIP menggunakan PJSIP dan UDP port 5060.&lt;br /&gt;
* RTP menggunakan UDP port 10000–20000.&lt;br /&gt;
* Tersedia **101 akun**, dari 1000 sampai 1100.&lt;br /&gt;
* Setiap extension memiliki password acak berbeda.&lt;br /&gt;
* Semua extension dapat saling menelepon.&lt;br /&gt;
* Daftar username dan password tersimpan dalam CSV yang hanya dapat dibaca root.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 1. Siapkan informasi jaringan&lt;br /&gt;
&lt;br /&gt;
Contoh yang digunakan:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
Hostname server : asterisk-desa&lt;br /&gt;
IP server       : 192.168.10.10&lt;br /&gt;
Gateway         : 192.168.10.1&lt;br /&gt;
Jaringan LAN    : 192.168.10.0/24&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Sesuaikan dengan jaringan yang sebenarnya.&lt;br /&gt;
&lt;br /&gt;
Periksa jaringan server:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
ip -br addr&lt;br /&gt;
ip route&lt;br /&gt;
hostnamectl&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Atur hostname:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo hostnamectl set-hostname asterisk-desa&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Tambahkan hostname ke `/etc/hosts`:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo nano /etc/hosts&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Pastikan terdapat baris:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
127.0.1.1 asterisk-desa&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Server Asterisk sebaiknya menggunakan **IP statis** atau DHCP reservation agar alamat server tidak berubah.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 2. Perbarui Ubuntu Server&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt full-upgrade -y&lt;br /&gt;
sudo reboot&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Setelah server hidup kembali, masuk melalui SSH:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
ssh namauser@192.168.10.10&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa versi Ubuntu:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
lsb_release -a&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
atau:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
cat /etc/os-release&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 3. Instal Asterisk dan perangkat bantu&lt;br /&gt;
&lt;br /&gt;
Aktifkan repository `universe`:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo add-apt-repository universe&lt;br /&gt;
sudo apt update&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Instal Asterisk:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
    asterisk \&lt;br /&gt;
    asterisk-core-sounds-en \&lt;br /&gt;
    ufw \&lt;br /&gt;
    fail2ban \&lt;br /&gt;
    sngrep \&lt;br /&gt;
    tcpdump \&lt;br /&gt;
    openssl&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
APT merupakan mekanisme resmi Ubuntu untuk memasang dan memelihara paket perangkat lunak. ([Ubuntu][2])&lt;br /&gt;
&lt;br /&gt;
Aktifkan layanan Asterisk:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo systemctl enable --now asterisk&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa status:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo systemctl status asterisk --no-pager&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa versi:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo asterisk -rx &amp;quot;core show version&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa modul PJSIP:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo asterisk -rx &amp;quot;module show like pjsip&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
PJSIP menghubungkan sebuah endpoint dengan objek autentikasi dan AOR; endpoint harus memiliki AOR agar Asterisk mengetahui kontak tujuan panggilan. ([Asterisk Documentation][3])&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 4. Backup konfigurasi bawaan&lt;br /&gt;
&lt;br /&gt;
Jangan langsung menghapus konfigurasi asli.&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
BACKUP_DIR=&amp;quot;/root/asterisk-config-$(date +%Y%m%d-%H%M%S)&amp;quot;&lt;br /&gt;
sudo mkdir -p &amp;quot;$BACKUP_DIR&amp;quot;&lt;br /&gt;
sudo cp -a /etc/asterisk/. &amp;quot;$BACKUP_DIR/&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa hasil backup:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo ls -lah &amp;quot;$BACKUP_DIR&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 5. Membuat konfigurasi utama PJSIP&lt;br /&gt;
&lt;br /&gt;
Buat ulang `/etc/asterisk/pjsip.conf`:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo tee /etc/asterisk/pjsip.conf &amp;gt;/dev/null &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
;==========================================================&lt;br /&gt;
; Konfigurasi PJSIP Asterisk Desa&lt;br /&gt;
; Ubuntu Server 26.04&lt;br /&gt;
; Extension 1000-1100&lt;br /&gt;
;==========================================================&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
type=global&lt;br /&gt;
user_agent=Asterisk-Desa&lt;br /&gt;
&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
; Transport SIP&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
[transport-udp]&lt;br /&gt;
type=transport&lt;br /&gt;
protocol=udp&lt;br /&gt;
bind=0.0.0.0:5060&lt;br /&gt;
&lt;br /&gt;
; Apabila seluruh perangkat hanya berada di LAN,&lt;br /&gt;
; external_media_address dan external_signaling_address&lt;br /&gt;
; tidak diperlukan.&lt;br /&gt;
&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
; Template endpoint&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
[endpoint-template](!)&lt;br /&gt;
type=endpoint&lt;br /&gt;
transport=transport-udp&lt;br /&gt;
context=internal&lt;br /&gt;
disallow=all&lt;br /&gt;
allow=ulaw&lt;br /&gt;
allow=alaw&lt;br /&gt;
&lt;br /&gt;
; DTMF untuk IVR dan layanan berbasis tombol telepon&lt;br /&gt;
dtmf_mode=rfc4733&lt;br /&gt;
&lt;br /&gt;
; Pengaturan yang membantu client Wi-Fi/NAT&lt;br /&gt;
direct_media=no&lt;br /&gt;
rtp_symmetric=yes&lt;br /&gt;
force_rport=yes&lt;br /&gt;
rewrite_contact=yes&lt;br /&gt;
&lt;br /&gt;
; Jangan izinkan pemanggilan tanpa autentikasi&lt;br /&gt;
allow_subscribe=yes&lt;br /&gt;
language=en&lt;br /&gt;
&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
; Template autentikasi&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
[auth-template](!)&lt;br /&gt;
type=auth&lt;br /&gt;
auth_type=userpass&lt;br /&gt;
&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
; Template Address of Record&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
[aor-template](!)&lt;br /&gt;
type=aor&lt;br /&gt;
&lt;br /&gt;
; Satu extension hanya boleh dipakai satu perangkat&lt;br /&gt;
max_contacts=1&lt;br /&gt;
&lt;br /&gt;
; Hapus registrasi lama bila perangkat berganti alamat&lt;br /&gt;
remove_existing=yes&lt;br /&gt;
&lt;br /&gt;
; Pemeriksaan berkala perangkat&lt;br /&gt;
qualify_frequency=60&lt;br /&gt;
&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
; Akun extension dibuat otomatis di file berikut&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;pjsip-extensions.conf&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Konfigurasi sengaja menggunakan template agar 101 extension tidak harus memiliki seluruh parameter yang ditulis berulang kali.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 6. Membuat extension 1000–1100 otomatis&lt;br /&gt;
&lt;br /&gt;
Buat skrip generator:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo tee /usr/local/sbin/generate-asterisk-extensions.sh &amp;gt;/dev/null &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
set -euo pipefail&lt;br /&gt;
&lt;br /&gt;
CONFIG_FILE=&amp;quot;/etc/asterisk/pjsip-extensions.conf&amp;quot;&lt;br /&gt;
PASSWORD_FILE=&amp;quot;/root/asterisk-extension-passwords.csv&amp;quot;&lt;br /&gt;
TEMP_CONFIG=&amp;quot;$(mktemp)&amp;quot;&lt;br /&gt;
TEMP_PASSWORD=&amp;quot;$(mktemp)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cleanup() {&lt;br /&gt;
    rm -f &amp;quot;$TEMP_CONFIG&amp;quot; &amp;quot;$TEMP_PASSWORD&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
trap cleanup EXIT&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt; &amp;quot;$TEMP_CONFIG&amp;quot; &amp;lt;&amp;lt;'HEADER'&lt;br /&gt;
;==========================================================&lt;br /&gt;
; Dibuat otomatis oleh generate-asterisk-extensions.sh&lt;br /&gt;
; Jangan menyimpan file password ke repository publik.&lt;br /&gt;
;==========================================================&lt;br /&gt;
&lt;br /&gt;
HEADER&lt;br /&gt;
&lt;br /&gt;
printf '%s\n' '&amp;quot;extension&amp;quot;,&amp;quot;username&amp;quot;,&amp;quot;password&amp;quot;,&amp;quot;server&amp;quot;,&amp;quot;transport&amp;quot;' \&lt;br /&gt;
    &amp;gt; &amp;quot;$TEMP_PASSWORD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SERVER_IP=&amp;quot;$(hostname -I | awk '{print $1}')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [[ -z &amp;quot;$SERVER_IP&amp;quot; ]]; then&lt;br /&gt;
    SERVER_IP=&amp;quot;GANTI_DENGAN_IP_SERVER&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for EXTENSION in $(seq 1000 1100); do&lt;br /&gt;
    PASSWORD=&amp;quot;$(openssl rand -hex 16)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    cat &amp;gt;&amp;gt; &amp;quot;$TEMP_CONFIG&amp;quot; &amp;lt;&amp;lt;EOF_CONFIG&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
; Extension ${EXTENSION}&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
[${EXTENSION}](endpoint-template)&lt;br /&gt;
auth=auth-${EXTENSION}&lt;br /&gt;
aors=aor-${EXTENSION}&lt;br /&gt;
callerid=&amp;quot;Extension ${EXTENSION}&amp;quot; &amp;lt;${EXTENSION}&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[auth-${EXTENSION}](auth-template)&lt;br /&gt;
username=${EXTENSION}&lt;br /&gt;
password=${PASSWORD}&lt;br /&gt;
&lt;br /&gt;
[aor-${EXTENSION}](aor-template)&lt;br /&gt;
&lt;br /&gt;
EOF_CONFIG&lt;br /&gt;
&lt;br /&gt;
    printf '&amp;quot;%s&amp;quot;,&amp;quot;%s&amp;quot;,&amp;quot;%s&amp;quot;,&amp;quot;%s&amp;quot;,&amp;quot;UDP&amp;quot;\n' \&lt;br /&gt;
        &amp;quot;$EXTENSION&amp;quot; \&lt;br /&gt;
        &amp;quot;$EXTENSION&amp;quot; \&lt;br /&gt;
        &amp;quot;$PASSWORD&amp;quot; \&lt;br /&gt;
        &amp;quot;$SERVER_IP&amp;quot; &amp;gt;&amp;gt; &amp;quot;$TEMP_PASSWORD&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
install -o root -g asterisk -m 0640 \&lt;br /&gt;
    &amp;quot;$TEMP_CONFIG&amp;quot; &amp;quot;$CONFIG_FILE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
install -o root -g root -m 0600 \&lt;br /&gt;
    &amp;quot;$TEMP_PASSWORD&amp;quot; &amp;quot;$PASSWORD_FILE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Berhasil membuat extension 1000 sampai 1100.&amp;quot;&lt;br /&gt;
echo &amp;quot;Konfigurasi : $CONFIG_FILE&amp;quot;&lt;br /&gt;
echo &amp;quot;Password    : $PASSWORD_FILE&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Jadikan executable:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo chmod 750 /usr/local/sbin/generate-asterisk-extensions.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo /usr/local/sbin/generate-asterisk-extensions.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa jumlah extension:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo grep -Ec '^\[[0-9]{4}\]\(endpoint-template\)$' \&lt;br /&gt;
    /etc/asterisk/pjsip-extensions.conf&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Output seharusnya:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
101&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa beberapa konfigurasi awal:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo sed -n '1,80p' /etc/asterisk/pjsip-extensions.conf&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Lihat daftar akun:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo column -s, -t &amp;lt; /root/asterisk-extension-passwords.csv | head&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Jangan membagikan seluruh file CSV secara terbuka karena berisi password semua pengguna.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 7. Membuat dialplan panggilan&lt;br /&gt;
&lt;br /&gt;
Buat `/etc/asterisk/extensions.conf`:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo tee /etc/asterisk/extensions.conf &amp;gt;/dev/null &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
;==========================================================&lt;br /&gt;
; Dialplan Asterisk Desa&lt;br /&gt;
; Extension yang diizinkan: 1000-1100&lt;br /&gt;
;==========================================================&lt;br /&gt;
&lt;br /&gt;
[general]&lt;br /&gt;
static=yes&lt;br /&gt;
writeprotect=no&lt;br /&gt;
clearglobalvars=no&lt;br /&gt;
&lt;br /&gt;
[globals]&lt;br /&gt;
RINGTIME=30&lt;br /&gt;
&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
; Panggilan internal&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
[internal]&lt;br /&gt;
&lt;br /&gt;
; Extension 1000 sampai 1099&lt;br /&gt;
exten =&amp;gt; _10XX,1,NoOp(Panggilan internal ${CALLERID(num)} ke ${EXTEN})&lt;br /&gt;
 same =&amp;gt; n,Dial(PJSIP/${EXTEN},${RINGTIME})&lt;br /&gt;
 same =&amp;gt; n,Hangup()&lt;br /&gt;
&lt;br /&gt;
; Extension 1100&lt;br /&gt;
exten =&amp;gt; 1100,1,NoOp(Panggilan internal ${CALLERID(num)} ke 1100)&lt;br /&gt;
 same =&amp;gt; n,Dial(PJSIP/1100,${RINGTIME})&lt;br /&gt;
 same =&amp;gt; n,Hangup()&lt;br /&gt;
&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
; Nomor pengujian&lt;br /&gt;
;----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
; 600 - Echo test&lt;br /&gt;
exten =&amp;gt; 600,1,Answer()&lt;br /&gt;
 same =&amp;gt; n,Wait(1)&lt;br /&gt;
 same =&amp;gt; n,Echo()&lt;br /&gt;
 same =&amp;gt; n,Hangup()&lt;br /&gt;
&lt;br /&gt;
; 601 - Menyebutkan nomor extension pemanggil&lt;br /&gt;
exten =&amp;gt; 601,1,Answer()&lt;br /&gt;
 same =&amp;gt; n,Playback(your)&lt;br /&gt;
 same =&amp;gt; n,Playback(extension)&lt;br /&gt;
 same =&amp;gt; n,SayDigits(${CALLERID(num)})&lt;br /&gt;
 same =&amp;gt; n,Hangup()&lt;br /&gt;
&lt;br /&gt;
; Nomor tidak dikenal&lt;br /&gt;
exten =&amp;gt; i,1,Playback(invalid)&lt;br /&gt;
 same =&amp;gt; n,Hangup()&lt;br /&gt;
EOF&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Dialplan `_10XX` hanya menerima nomor 1000–1099, sementara 1100 dibuat secara eksplisit. Dengan demikian, nomor 1101 dan seterusnya tidak dapat dipanggil.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 8. Memastikan rentang RTP&lt;br /&gt;
&lt;br /&gt;
Periksa konfigurasi RTP:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo grep -Ev '^[[:space:]]*(;|$)' /etc/asterisk/rtp.conf&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Bila belum jelas, buat konfigurasi berikut:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo tee /etc/asterisk/rtp.conf &amp;gt;/dev/null &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
[general]&lt;br /&gt;
rtpstart=10000&lt;br /&gt;
rtpend=20000&lt;br /&gt;
strictrtp=yes&lt;br /&gt;
icesupport=yes&lt;br /&gt;
EOF&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
SIP dipakai untuk mengatur sesi dan registrasi, sedangkan suara dikirim melalui RTP. Konsep ini juga menjadi dasar konfigurasi pada buku. &lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 9. Atur kepemilikan dan permission&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo chown root:asterisk \&lt;br /&gt;
    /etc/asterisk/pjsip.conf \&lt;br /&gt;
    /etc/asterisk/pjsip-extensions.conf \&lt;br /&gt;
    /etc/asterisk/extensions.conf \&lt;br /&gt;
    /etc/asterisk/rtp.conf&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo chmod 640 \&lt;br /&gt;
    /etc/asterisk/pjsip.conf \&lt;br /&gt;
    /etc/asterisk/pjsip-extensions.conf \&lt;br /&gt;
    /etc/asterisk/extensions.conf \&lt;br /&gt;
    /etc/asterisk/rtp.conf&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Pastikan file password hanya dapat dibaca root:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo chmod 600 /root/asterisk-extension-passwords.csv&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 10. Validasi lalu restart Asterisk&lt;br /&gt;
&lt;br /&gt;
Restart:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo systemctl restart asterisk&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa layanan:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo systemctl status asterisk --no-pager&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa log jika gagal:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo journalctl -u asterisk -n 100 --no-pager&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Masuk CLI:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo asterisk -rvvv&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Di dalam CLI, jalankan:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
core show version&lt;br /&gt;
pjsip show transports&lt;br /&gt;
pjsip show endpoints&lt;br /&gt;
dialplan show internal&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Keluar:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
exit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa jumlah endpoint dari shell:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo asterisk -rx &amp;quot;pjsip show endpoints&amp;quot; |&lt;br /&gt;
    grep -E 'Endpoint: +[0-9]{4}/' |&lt;br /&gt;
    wc -l&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Targetnya:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
101&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 11. Konfigurasi firewall&lt;br /&gt;
&lt;br /&gt;
Ubuntu menggunakan `ufw` sebagai perangkat firewall host yang mudah dikelola. ([Ubuntu][4])&lt;br /&gt;
&lt;br /&gt;
**Sangat penting:** izinkan SSH sebelum mengaktifkan firewall agar koneksi administrator tidak terputus.&lt;br /&gt;
&lt;br /&gt;
Contoh untuk LAN `192.168.10.0/24`:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo ufw default deny incoming&lt;br /&gt;
sudo ufw default allow outgoing&lt;br /&gt;
sudo ufw allow OpenSSH&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Izinkan SIP hanya dari jaringan LAN:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo ufw allow from 192.168.10.0/24 to any port 5060 proto udp \&lt;br /&gt;
    comment 'Asterisk SIP dari LAN'&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Izinkan RTP hanya dari LAN:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo ufw allow from 192.168.10.0/24 to any port 10000:20000 proto udp \&lt;br /&gt;
    comment 'Asterisk RTP dari LAN'&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Aktifkan firewall:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo ufw enable&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo ufw status numbered&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Jangan membuka UDP 5060 dan 10000–20000 ke seluruh Internet kecuali benar-benar diperlukan. Untuk akses antarlokasi, pendekatan yang lebih aman adalah membawa SIP dan RTP melalui VPN seperti WireGuard. Buku juga merekomendasikan komunikasi antar-Asterisk melalui WireGuard daripada mengekspos SIP langsung ke Internet. &lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 12. Registrasi Linphone&lt;br /&gt;
&lt;br /&gt;
Ambil satu akun uji:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo grep '^&amp;quot;1000&amp;quot;' /root/asterisk-extension-passwords.csv&lt;br /&gt;
sudo grep '^&amp;quot;1001&amp;quot;' /root/asterisk-extension-passwords.csv&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Contoh pengaturan perangkat pertama:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
Display name : Extension 1000&lt;br /&gt;
Username     : 1000&lt;br /&gt;
Password     : password dari CSV&lt;br /&gt;
Domain       : 192.168.10.10&lt;br /&gt;
SIP server   : sip:192.168.10.10&lt;br /&gt;
Transport    : UDP&lt;br /&gt;
Port         : 5060&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Perangkat kedua:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
Display name : Extension 1001&lt;br /&gt;
Username     : 1001&lt;br /&gt;
Password     : password dari CSV&lt;br /&gt;
Domain       : 192.168.10.10&lt;br /&gt;
Transport    : UDP&lt;br /&gt;
Port         : 5060&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Pada beberapa versi Linphone, identitas SIP ditulis:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
sip:1000@192.168.10.10&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Proxy/server:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
sip:192.168.10.10;transport=udp&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Pastikan smartphone dan server berada dalam jaringan yang dapat saling menjangkau.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 13. Pengujian&lt;br /&gt;
&lt;br /&gt;
### Periksa registrasi&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo asterisk -rx &amp;quot;pjsip show contacts&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
atau:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo asterisk -rx &amp;quot;pjsip show endpoint 1000&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Endpoint belum terdaftar biasanya terlihat:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
Unavailable&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Setelah registrasi berhasil, akan muncul alamat kontak perangkat.&lt;br /&gt;
&lt;br /&gt;
### Uji panggilan&lt;br /&gt;
&lt;br /&gt;
Lakukan:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
1000 → 1001&lt;br /&gt;
1001 → 1000&lt;br /&gt;
1000 → 1100&lt;br /&gt;
1100 → 1000&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Uji juga nomor yang tidak tersedia:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
1101&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Panggilan ke 1101 seharusnya ditolak karena berada di luar numbering plan.&lt;br /&gt;
&lt;br /&gt;
### Uji suara&lt;br /&gt;
&lt;br /&gt;
Hubungi:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
600&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Bicaralah ke mikrofon. Suara seharusnya dikirim kembali melalui aplikasi `Echo()`.&lt;br /&gt;
&lt;br /&gt;
### Monitor panggilan langsung&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo asterisk -rvvv&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Kemudian:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
core show channels&lt;br /&gt;
pjsip show contacts&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Aktifkan SIP logger hanya ketika troubleshooting:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
pjsip set logger on&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Matikan kembali setelah selesai:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
pjsip set logger off&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Dokumentasi resmi Asterisk juga menyarankan pemeriksaan hubungan `auth`, endpoint, dan AOR ketika registrasi PJSIP gagal. ([Asterisk Documentation][5])&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 14. Troubleshooting cepat&lt;br /&gt;
&lt;br /&gt;
### Asterisk tidak dapat dijalankan&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo systemctl status asterisk&lt;br /&gt;
sudo journalctl -u asterisk -b --no-pager&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa konfigurasi:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo asterisk -rx &amp;quot;pjsip show endpoints&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### Client tidak dapat register&lt;br /&gt;
&lt;br /&gt;
Periksa port:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo ss -lunp | grep ':5060'&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Seharusnya terdapat proses Asterisk yang mendengarkan pada:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
0.0.0.0:5060&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa firewall:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo ufw status verbose&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa log:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo tail -f /var/log/asterisk/full&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Jika `/var/log/asterisk/full` belum tersedia, gunakan:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo journalctl -u asterisk -f&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### Username atau password ditolak&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo asterisk -rx &amp;quot;pjsip show endpoint 1000&amp;quot;&lt;br /&gt;
sudo grep -A4 '\[auth-1000\]' \&lt;br /&gt;
    /etc/asterisk/pjsip-extensions.conf&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Pastikan client menggunakan username **1000**, bukan `auth-1000`.&lt;br /&gt;
&lt;br /&gt;
### Telepon berdering tetapi suara tidak terdengar&lt;br /&gt;
&lt;br /&gt;
Periksa:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo ufw status&lt;br /&gt;
sudo ss -lunp | grep asterisk&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Pantau RTP:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo tcpdump -ni any udp portrange 10000-20000&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Penyebab umum:&lt;br /&gt;
&lt;br /&gt;
* Firewall RTP tertutup.&lt;br /&gt;
* Client berada pada jaringan NAT berbeda.&lt;br /&gt;
* Wi-Fi memiliki client isolation.&lt;br /&gt;
* Router memblokir komunikasi antarklien.&lt;br /&gt;
* Alamat server yang dimasukkan salah.&lt;br /&gt;
&lt;br /&gt;
### Melihat paket SIP dengan sngrep&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo sngrep&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Gunakan tombol:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
Enter : membuka call flow&lt;br /&gt;
F10   : keluar&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 15. Backup setelah konfigurasi berhasil&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo tar \&lt;br /&gt;
    --create \&lt;br /&gt;
    --gzip \&lt;br /&gt;
    --preserve-permissions \&lt;br /&gt;
    --file=&amp;quot;/root/asterisk-ready-$(date +%Y%m%d-%H%M%S).tar.gz&amp;quot; \&lt;br /&gt;
    /etc/asterisk \&lt;br /&gt;
    /root/asterisk-extension-passwords.csv&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Periksa:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo ls -lh /root/asterisk-ready-*.tar.gz&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Backup tersebut mengandung seluruh password extension. Simpan secara terenkripsi dan jangan diletakkan di web server atau repository Git publik.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 16. Checklist hasil akhir&lt;br /&gt;
&lt;br /&gt;
Jalankan seluruh pemeriksaan berikut:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
systemctl is-enabled asterisk&lt;br /&gt;
systemctl is-active asterisk&lt;br /&gt;
sudo asterisk -rx &amp;quot;core show version&amp;quot;&lt;br /&gt;
sudo asterisk -rx &amp;quot;pjsip show transports&amp;quot;&lt;br /&gt;
sudo asterisk -rx &amp;quot;pjsip show endpoints&amp;quot;&lt;br /&gt;
sudo asterisk -rx &amp;quot;dialplan show internal&amp;quot;&lt;br /&gt;
sudo ufw status&lt;br /&gt;
sudo ss -lunp | grep -E ':5060|asterisk'&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Kondisi yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
Asterisk service       : active&lt;br /&gt;
Start saat boot        : enabled&lt;br /&gt;
Transport SIP          : UDP 0.0.0.0:5060&lt;br /&gt;
Jumlah extension       : 101&lt;br /&gt;
Nomor pertama          : 1000&lt;br /&gt;
Nomor terakhir         : 1100&lt;br /&gt;
Dialplan               : internal&lt;br /&gt;
RTP                    : UDP 10000-20000&lt;br /&gt;
Password akun          : berbeda untuk setiap extension&lt;br /&gt;
Firewall               : hanya membuka SIP/RTP dari LAN&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Konfigurasi ini sudah cukup untuk **telepon internal 1000–1100**. Layanan lanjutan seperti voicemail, ring group, IVR, ConfBridge, paging, queue, SIP trunk, dan WireGuard dapat ditambahkan setelah registrasi serta panggilan dasar stabil.&lt;br /&gt;
&lt;br /&gt;
[1]: https://packages.ubuntu.com/resolute/asterisk?utm_source=chatgpt.com &amp;quot;Details of package asterisk in resolute&amp;quot;&lt;br /&gt;
[2]: https://ubuntu.com/server/docs/how-to/software/package-management/?utm_source=chatgpt.com &amp;quot;Install and manage packages - Ubuntu Server documentation&amp;quot;&lt;br /&gt;
[3]: https://docs.asterisk.org/Configuration/Channel-Drivers/SIP/Configuring-res_pjsip/PJSIP-Configuration-Sections-and-Relationships/?utm_source=chatgpt.com &amp;quot;PJSIP Configuration Sections and Relationships&amp;quot;&lt;br /&gt;
[4]: https://ubuntu.com/server/docs/how-to/security/firewalls/?utm_source=chatgpt.com &amp;quot;Firewall - Ubuntu Server documentation&amp;quot;&lt;br /&gt;
[5]: https://docs.asterisk.org/Configuration/Channel-Drivers/SIP/Configuring-res_pjsip/Asterisk-PJSIP-Troubleshooting-Guide/?utm_source=chatgpt.com &amp;quot;Asterisk PJSIP Troubleshooting Guide&amp;quot;&lt;/div&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
</feed>