SSD Nodes Learn 🎉 VPS mulai $5.50/bln
Panduan Matt ConnorOleh Matt Connor

Server VoIP Mandiri: Asterisk atau FreePBX?

Pelajari cara menjalankan Asterisk atau FreePBX di VPS, mengatur SIP trunk dan rentang port RTP, membuat firewall, serta memahami awal mula toll fraud.

Apa yang dimaksud dengan server VoIP yang di-hosting sendiri

Server VoIP yang di-hosting sendiri adalah server SIP yang berjalan pada VPS yang Anda kendalikan. Dengan demikian, panggilan dirutekan oleh mesin Anda sendiri, bukan oleh layanan telepon ter-hosting. VoIP (voice over IP) membawa suara sebagai paket UDP. SIP (session initiation protocol) adalah pensinyalan yang membuat dan mengakhiri panggilan. Audio tidak melewati SIP. Fakta ini menyebabkan sebagian besar masalah yang dibahas di bawah.

Sistem yang berfungsi terdiri atas empat bagian.

  • Perangkat lunak PBX (private branch exchange). Asterisk adalah pilihan yang umum. Perangkat lunak ini menyimpan ekstensi dan dialplan.
  • Endpoint. Endpoint dapat berupa telepon meja atau softphone yang mendaftar ke PBX menggunakan nama pengguna dan secret.
  • SIP trunk. Ini adalah akun berbayar pada provider yang menghubungkan Anda ke jaringan telepon publik dan menyewakan nomor telepon kepada Anda.
  • Jalur media. Aliran RTP (real-time transport protocol) membawa audio melalui port UDP-nya sendiri.

Meng-hosting PBX sendiri bukan berarti Anda juga meng-hosting nomor telepon sendiri. Nomor telepon berasal dari carrier. Anda tetap membayar setiap nomor dan setiap menit penggunaan. Hal yang Anda kendalikan adalah perutean panggilan, voicemail, rekaman, dan daftar ekstensi. Anda juga bertanggung jawab atas keamanan layanan yang menjadi sasaran serangan demi mendapatkan uang.

Port apa yang diperlukan server VoIP yang di-host sendiri?

Pensinyalan SIP menggunakan port 5060 untuk UDP dan TCP, serta port 5061 untuk SIP melalui TLS (transport layer security). Port tersebut hanya digunakan untuk pembentukan panggilan. Audio setiap panggilan menggunakan aliran UDP terpisah yang dikirim ke port dari rentang RTP. Asterisk menyertakan contoh rtp.conf yang menetapkan rtpstart=10000 dan rtpend=20000, sedangkan nilai default bawaan kompilasi adalah 5000 dan 31000. Setiap panggilan menggunakan dua port dari rentang tersebut: satu untuk RTP dan satu untuk RTCP (RTP control protocol).

Pemisahan ini menyebabkan sebagian besar percobaan awal gagal. Panggilan tersambung, kedua telepon menampilkan status terjawab, tetapi tidak ada pihak yang mendengar audio karena firewall mengizinkan 5060 dan menjatuhkan semua paket RTP. Pensinyalan dan media menggunakan aliran yang terpisah, sehingga memerlukan aturan firewall yang terpisah. Jika perbedaan ini masih baru bagi Anda, cara kerja port dan socket listening di Linux layak dibaca sebelum Anda membuka port apa pun.

Perkecil rentangnya sebelum membukanya. Dua puluh ribu port jauh lebih banyak daripada yang diperlukan sistem kecil. Karena setiap panggilan menggunakan dua port, rentang berisi dua ratus port dapat menangani seratus panggilan secara bersamaan.

[general]
rtpstart=10000
rtpend=10200

Terapkan dengan sudo asterisk -rx "core reload".

Apakah Anda perlu menginstal Asterisk atau FreePBX?

Asterisk adalah mesinnya. Anda mengonfigurasinya dengan file teks di /etc/asterisk dan menulis dialplan sendiri. FreePBX adalah antarmuka web yang ditulis dalam PHP dan JavaScript. Antarmuka ini berjalan di atas Asterisk, membuat file tersebut untuk Anda, serta menambahkan modul untuk voicemail dan antrean panggilan.

Perbedaan yang penting pada VPS adalah kepemilikan mesin. Per Agustus 2026, installer resmi FreePBX 17 mengharapkan sistem Debian 12 vanilla. Installer tersebut memasang Asterisk, server web, server database, dan PHP. Jika Anda menjalankannya pada server yang sudah menjalankan layanan lain, hasilnya tidak akan baik. Sediakan VPS khusus untuk FreePBX.

wget https://github.com/FreePBX/sng_freepbx_debian_install/raw/master/sng_freepbx_debian_install.sh -O /tmp/sng_freepbx_debian_install.sh
sudo bash /tmp/sng_freepbx_debian_install.sh

Log instalasi tersimpan di /var/log/pbx/freepbx17-install.log. Periksa file ini terlebih dahulu jika skrip berhenti lebih awal.

FreePBX mengelola file konfigurasi yang dibuatnya. Jika Anda mengedit pjsip.conf secara manual pada server FreePBX, perubahan tersebut akan hilang saat GUI menulis ulang file itu. FreePBX membaca file terpisah yang nama filenya memuat _custom untuk konfigurasi yang ditulis secara manual, dan file tersebut tidak diubahnya.

Pertimbangannya jelas. FreePBX menyediakan GUI, tetapi juga menempatkan halaman login sistem telepon Anda di Internet publik. Asterisk tanpa GUI tidak memiliki permukaan web sama sekali. Setiap pengaturan berupa direktif terdokumentasi yang dapat Anda baca dalam file dan simpan di git. Jika Anda menginstal FreePBX, batasi akses ke port webnya hanya dari alamat Anda sendiri atau akses melalui VPN. GUI admin untuk PBX merupakan target yang memiliki jalur langsung ke sistem keuangan.

Catatan versi, berlaku per Agustus 2026: Asterisk 22 adalah rilis dukungan jangka panjang saat ini. Versi ini diterbitkan pada Oktober 2024 dan menerima perbaikan keamanan hingga Oktober 2028. Asterisk 23 adalah rilis standar. Ubuntu 24.04 menyediakan Asterisk 20.6.0 dalam repositori universe.

Instal Asterisk pada Ubuntu 24.04

Paket distribusi adalah cara tercepat. Ubuntu menambalnya, dan paket tersebut otomatis berjalan di bawah systemd.

sudo apt update
sudo apt install -y asterisk
sudo asterisk -rx "core show version"

Membangun dari source memberi Anda rilis dukungan jangka panjang terbaru.

sudo apt update
sudo apt install -y build-essential wget
cd /usr/local/src
sudo wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz
sudo tar -xzf asterisk-22-current.tar.gz
cd asterisk-22.*
sudo contrib/scripts/install_prereq install
sudo ./configure
sudo make menuselect
sudo make -j"$(nproc)"
sudo make install
sudo make samples
sudo make config
sudo ldconfig

install_prereq install mengambil dependensi build untuk distribusi Anda, sedangkan install_prereq test menampilkan perintah yang akan dijalankannya tanpa mengubah apa pun. make menuselect membuka pemilih modul. Di sana, aktifkan codec_opus pada bagian Codec Translators. Jalankan make samples hanya pada instalasi baru karena perintah tersebut menulis konfigurasi contoh ke /etc/asterisk. make config memasang skrip init di /etc/init.d/asterisk, lalu systemd menjalankannya melalui lapisan kompatibilitas SysV. Setelah itu, sudo systemctl enable --now asterisk dapat digunakan.

Apa pun metode yang Anda pilih, sudo asterisk -rvvv terhubung ke daemon yang sedang berjalan dan memberi Anda CLI. Jalankan core show version di sana untuk menampilkan apa yang benar-benar Anda instal.

Konfigurasikan SIP trunk dan satu extension

PJSIP adalah driver channel SIP pada Asterisk saat ini. Konfigurasinya berada di /etc/asterisk/pjsip.conf dan tersusun dari section kecil bertipe tertentu yang saling merujuk berdasarkan nama. Section dengan tipe berbeda dapat menggunakan nama yang sama. Karena itu, setiap blok di bawah ini diberi nama mytrunk.

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0

[mytrunk]
type=registration
outbound_auth=mytrunk
server_uri=sip:sip.example.com
client_uri=sip:1234567890@sip.example.com
retry_interval=60

[mytrunk]
type=auth
auth_type=userpass
username=1234567890
password=REPLACE_WITH_A_LONG_RANDOM_SECRET

[mytrunk]
type=aor
contact=sip:sip.example.com:5060

[mytrunk]
type=endpoint
context=from-trunk
disallow=all
allow=ulaw
outbound_auth=mytrunk
aors=mytrunk

[mytrunk]
type=identify
endpoint=mytrunk
match=sip.example.com

Objek registration mengirim REGISTER yang memberi tahu provider tempat untuk meneruskan panggilan Anda. Objek identify digunakan untuk mencocokkan panggilan yang masuk dari provider dengan endpoint ini berdasarkan alamat sumber. Provider biasanya menerbitkan beberapa alamat yang perlu dicantumkan di sana. Registrasi outbound dan endpoint sengaja dibuat sebagai objek terpisah: yang satu memberi tahu provider lokasi Anda, sedangkan yang lain menentukan tindakan terhadap panggilan yang masuk.

Telepon meja memerlukan tiga objek tambahan.

[6001]
type=endpoint
context=internal
disallow=all
allow=ulaw
auth=auth6001
aors=6001
direct_media=no

[auth6001]
type=auth
auth_type=userpass
username=6001
password=REPLACE_WITH_A_LONG_RANDOM_SECRET

[6001]
type=aor
max_contacts=1

direct_media=no membuat Asterisk tetap berada di jalur media. Jika bagian ini dihilangkan, Asterisk akan mencoba membuat kedua endpoint mengirim RTP secara langsung satu sama lain. Cara ini gagal jika telepon berada di belakang NAT (network address translation) pada router rumah. Jangan pernah menyamakan secret dengan nomor extension. Contoh dari upstream menggunakan password=6001 untuk extension 6001 agar contoh mudah dibaca. Scanner mencoba pola tersebut terlebih dahulu.

Dialplan di /etc/asterisk/extensions.conf menentukan tindakan yang diizinkan untuk setiap context.

[internal]
exten => 6001,1,Dial(PJSIP/6001,20)
exten => _9X.,1,Dial(PJSIP/${EXTEN:1}@mytrunk,60)

[from-trunk]
exten => 1234567890,1,Dial(PJSIP/6001,20)
same => n,Hangup()

Kedua context tersebut merupakan batas keamanan. from-trunk menangani panggilan yang masuk dari provider dan hanya dapat membunyikan extension 6001. Context ini tidak dapat mengakses pattern _9X.. Karena itu, panggilan dari luar tidak dapat melakukan panggilan keluar melalui trunk Anda. Jika context digabungkan, Anda membuat jalur toll fraud klasik: orang asing menelepon nomor Anda, dialplan Anda melakukan panggilan keluar menggunakan akun Anda, dan Anda yang membayarnya.

Terapkan konfigurasi dan periksa hasilnya.

sudo asterisk -rx "pjsip reload"
sudo asterisk -rx "pjsip show registrations"
sudo asterisk -rx "pjsip show endpoints"

pjsip show registrations seharusnya mencantumkan mytrunk dengan status Registered. Rejected berarti provider menolak kredensial Anda. Unregistered berarti REGISTER Anda tidak mendapat respons. Selanjutnya, periksa firewall.

Aturan firewall untuk SIP dan RTP

Signalling dan media memerlukan perlakuan yang berbeda karena membawa risiko yang berbeda. Batasi 5060 ke alamat yang benar-benar digunakan provider Anda dan ke jaringan tempat ponsel Anda berada.

sudo ufw allow proto udp from 203.0.113.10 to any port 5060
sudo ufw allow proto tcp from 203.0.113.10 to any port 5060
sudo ufw allow 10000:10200/udp
sudo ufw status verbose

Rentang RTP adalah bagian yang tidak dapat dibatasi terlalu ketat karena media sering tiba dari alamat yang berbeda dari signalling. Tanyakan subnet media kepada provider Anda dan batasi ke subnet tersebut jika provider memublikasikannya. Pertahankan rentang hanya sebesar yang diperlukan pada jam tersibuk. Kebijakan default, urutan aturan, dan model ufw lainnya dibahas dalam panduan dasar firewall ufw untuk VPS.

Periksa IPv6 juga. Jika IPV6=no disetel dalam /etc/default/ufw, ufw sama sekali tidak memfilter IPv6. Dengan demikian, daemon yang terikat ke :: dapat diakses melalui IPv6 tanpa menerapkan aturan di atas. Membuka port untuk IPv6 dengan ufw menjelaskan perbedaan antara kedua keluarga protokol tersebut. Sebagian besar provider juga menyediakan firewall jaringan terpisah di control panel. Firewall tersebut diterapkan sebelum paket Anda mencapai VPS, sehingga port harus dibuka di kedua tempat.

Serangan brute force SIP dan penipuan tarif tidak dapat diabaikan

Buka port 5060 pada alamat publik, lalu pemindaian akan dimulai. Polanya konsisten: permintaan REGISTER dan INVITE dari banyak alamat sumber, yang mencoba nomor ekstensi umum dengan secret umum. Asterisk mencatat setiap kegagalan, dan barisnya berbentuk seperti ini.

Request 'REGISTER' from '<sip:1000@198.51.100.20>' failed for '198.51.100.20:5060' (callid: 5f1a5c0d) - No matching endpoint found

Masalah ini perlu ditangani secara serius karena menyangkut biaya. Ekstensi yang dicuri digunakan untuk melakukan panggilan internasional berbiaya tinggi, sering kali ke nomor tarif premium yang memberikan sebagian pendapatan kepada penyerang. Tagihannya menjadi tanggung jawab Anda karena panggilan tersebut menggunakan kredensial Anda. Serangan ini berjalan dengan kecepatan mesin dan biasanya berlangsung sepanjang malam.

Enam kontrol berikut wajib diterapkan, bukan sekadar hardening tambahan.

  • Jangan pernah membuat ekstensi yang secret-nya sama dengan nomornya sendiri atau berupa kata pendek. Buat secret dengan openssl rand -base64 24, lalu tempelkan hasilnya.
  • Nonaktifkan panggilan masuk anonim. PJSIP menolak panggilan yang tidak teridentifikasi secara default dan hanya menerimanya jika Anda membuat endpoint bernama anonymous. Jangan membuat endpoint tersebut.
  • Pisahkan context trunk dari context mana pun yang dapat melakukan panggilan keluar, seperti ditunjukkan di atas.
  • Batasi signalling berdasarkan alamat sumber, baik di ufw maupun di firewall jaringan milik provider Anda.
  • Tetapkan batas pengeluaran dengan provider SIP trunk Anda dan nonaktifkan tujuan internasional yang tidak pernah Anda hubungi. Hanya kontrol ini yang membatasi kerugian ketika kontrol lainnya gagal.
  • Jalankan fail2ban terhadap log Asterisk.

Asterisk juga dapat menghasilkan security event setelah menerima permintaan yang tidak cocok secara berulang dari satu alamat. Bagian [global] pada pjsip.conf menerima unidentified_request_count, yang secara default bernilai 5, dan unidentified_request_period, yang secara default bernilai 5 detik. Artinya, lima permintaan yang tidak cocok dari satu alamat dalam waktu lima detik akan menghasilkan security event yang dapat ditindaklanjuti oleh fail2ban.

Blokir pemindai dengan fail2ban

fail2ban menyediakan jail asterisk yang sudah ditulis. Jail ini mencakup port 5060 dan 5061, membaca /var/log/asterisk/messages, dan secara default menggunakan maxretry = 10. Jail tersebut tetap nonaktif sampai Anda mengaktifkannya di /etc/fail2ban/jail.local.

[asterisk]
enabled = true
maxretry = 5
findtime = 600
bantime = 86400
sudo systemctl restart fail2ban
sudo fail2ban-client status asterisk

Hasil yang benar mencantumkan file log jail dan jumlah alamat yang saat ini diblokir. Pada port 5060 publik, jumlah tersebut biasanya tidak lagi nol dalam satu hari. Filter yang disediakan mencocokkan notifikasi No matching endpoint found di atas, serta mencocokkan baris SecurityEvent terstruktur milik Asterisk. Peristiwa tersebut masuk ke saluran log terpisah yang dikomentari di /etc/asterisk/logger.conf. Aktifkan saluran itu di sana, lalu tambahkan file tersebut ke logpath jail jika Anda ingin mencocokkannya.

[logfiles]
console => notice,warning,error
messages.log => notice,warning,error
security.log => security

Muat ulang logger dengan sudo asterisk -rx "logger reload". Filter tersebut juga memiliki journalmatch untuk asterisk.service. Karena itu, backend journal dapat digunakan jika Anda tidak ingin menyimpan file log. Instalasi, struktur jail.local, dan pembatalan pemblokiran alamat yang tidak sengaja Anda kunci tercakup dalam panduan fail2ban untuk Ubuntu 24.04.

Latensi dan pemilihan codec pada VPS yang jauh

Latensi ditentukan oleh faktor geografis dan tidak dapat dihilangkan melalui konfigurasi. ITU-T G.114 merekomendasikan latensi satu arah di bawah 150 ms untuk percakapan normal dan menganggap latensi hingga sekitar 400 ms masih dapat digunakan. Audio dari telepon dikirim ke VPS Anda, lalu diteruskan ke provider trunk. Karena itu, VPS di region yang salah harus menempuh perjalanan tersebut dua kali. Tempatkan VPS dekat telepon atau dekat provider. Jika keduanya berada di lokasi yang berbeda, prioritaskan kedekatan dengan telepon karena jalur ini biasanya melewati Internet konsumen yang memiliki jitter paling tinggi.

Pemilihan codec menentukan bandwidth untuk setiap panggilan. Setiap codec di sini mengirim paket setiap 20 ms, yaitu 50 paket per detik. Setiap paket membawa header IP, UDP, dan RTP sebesar 40 byte selain payload audio.

ChartBandwidth per concurrent call, one direction, 20 ms packets
The data behind this chart
[
  {
    "label": "G.711 ulaw",
    "payload_kbps": 64,
    "ip_kbps": 80
  },
  {
    "label": "G.722",
    "payload_kbps": 64,
    "ip_kbps": 80
  },
  {
    "label": "Opus at 24 kbps",
    "payload_kbps": 24,
    "ip_kbps": 40
  },
  {
    "label": "G.729",
    "payload_kbps": 8,
    "ip_kbps": 24
  }
]

G.711 ulaw adalah codec default pada sebagian besar trunk. Payload-nya sebesar 64 kbps. Dengan header, panggilan aktif menggunakan 80 kbps pada setiap arah. Opus pada 24 kbps menggunakan 40 kbps, sedangkan G.729 menurunkannya menjadi 24 kbps dengan konsekuensi penurunan kualitas audio dan tambahan waktu CPU. Angka ini dihitung berdasarkan header, bukan hasil pengukuran: laju payload ditambah 40 byte per paket pada 50 paket per detik. Framing Ethernet atau VLAN menambah sedikit penggunaan bandwidth pada media jaringan.

Transcoding menggunakan CPU. Jika telepon dan trunk Anda sama-sama menggunakan ulaw, izinkan hanya ulaw agar Asterisk meneruskan audio tanpa perubahan. Opus bekerja baik pada koneksi yang mengalami kehilangan paket, tetapi transcoding antara Opus dan G.711 memerlukan modul eksternal codec_opus. Modul tersebut dipilih di make menuselect dan tidak dibuat secara default.

Yang gagal dan string yang akan Anda lihat

Panggilan tersambung, tetapi tidak ada yang mendengar apa pun. RTP tidak sampai. Pastikan rentang pada rtp.conf sama dengan rentang yang Anda buka di firewall, lalu pantau paket dengan sudo tcpdump -ni any udp portrange 10000-10200 saat Anda melakukan panggilan. Jika tidak ada paket sama sekali, firewall Anda atau firewall jaringan provider Anda membuang paket tersebut.

Audio hanya berjalan dalam satu arah. Salah satu sisi mengirim RTP ke alamat yang tidak dapat menerimanya. Ini masalah alamat, bukan masalah port. Jika VPS Anda memiliki alamat publik langsung pada interfacenya, penanganan NAT tidak diperlukan. Jika provider memberikan alamat privat kepada VPS dengan pemetaan publik satu-ke-satu, tetapkan alamat publik pada transport dan cantumkan rentang privat Anda dalam local_net.

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
local_net=10.0.0.0/8
external_media_address=198.51.100.5
external_signaling_address=198.51.100.5

No matching endpoint found di log. Permintaan tersebut tidak cocok dengan endpoint mana pun berdasarkan alamat IP atau username. Jika berasal dari scanner, hal itu normal dan fail2ban akan menanganinya. Jika berasal dari provider Anda sendiri, berarti bagian identify tidak mencantumkan alamat yang digunakan provider untuk menghubungi Anda.

Status registrasi adalah Rejected. Provider menolak kredensial pada bagian auth Anda. Jalankan pjsip set logger on pada CLI, pantau satu REGISTER dan responsnya, lalu bandingkan client_uri dan username dengan data yang diberikan provider kepada Anda.

Tidak ada informasi yang berguna sama sekali di log. Secara default, Asterisk menulis pesan dengan level notice dan yang lebih tinggi ke messages.log. Tingkatkan levelnya dengan core set verbose 4 dan pjsip set logger on saat Anda mereproduksi masalah, lalu nonaktifkan keduanya karena SIP logger menulis setiap paket.

Sebelum mengeksposnya

PBX berbeda dari layanan lain yang Anda host sendiri. Aplikasi web yang rusak hanya menyebabkan satu halaman tidak dapat digunakan. PBX yang rusak dapat menimbulkan tagihan telepon dalam hitungan jam saat Anda sedang tidur. Jalankan PBX pada VPS yang tidak menjalankan layanan lain, batasi port 5060 ke alamat yang dikenal, gunakan secret acak untuk setiap extension, dan tetapkan batas pengeluaran pada akun trunk. Server tersebut tetap memerlukan konfigurasi dasar yang sama seperti server lain yang terekspos, sebagaimana dijelaskan dalam ulasan tentang seberapa aman hosting VPS sebenarnya.

FAQ

Port apa yang perlu dibuka untuk server VoIP self-hosted?

Port 5060 untuk pensinyalan SIP melalui UDP dan TCP, port 5061 jika Anda menggunakan SIP melalui TLS, serta rentang port UDP untuk media RTP. Contoh rtp.conf dari Asterisk menggunakan 10000 hingga 20000, sedangkan default bawaan saat kompilasi adalah 5000 hingga 31000. Setiap panggilan menggunakan dua port dari rentang tersebut, sehingga rentang 200 port dapat menangani 100 panggilan simultan. Buka rentang RTP sebagai UDP, dan batasi port 5060 ke alamat provider serta jaringan Anda sendiri, bukan membiarkannya terbuka untuk semua pihak.

Sebaiknya saya menginstal Asterisk sendiri atau menggunakan FreePBX?

Instal Asterisk tanpa antarmuka tambahan jika Anda menginginkan permukaan serangan yang kecil, file konfigurasi yang dapat disimpan di git, dan bersedia menulis dialplan. Instal FreePBX jika Anda menginginkan GUI untuk extension, voicemail, dan antrean panggilan. Per Agustus 2026, installer FreePBX 17 mengharapkan mesin Debian 12 standar dan menginstal Asterisk, web server, database server, serta PHP. Karena itu, gunakan VPS khusus untuk FreePBX. FreePBX membuat ulang file konfigurasi yang dikelolanya, sehingga perubahan manual harus ditempatkan dalam file _custom miliknya.

Mengapa tidak ada audio setelah panggilan tersambung?

Pensinyalan berhasil, tetapi media tidak berhasil. SIP menyiapkan panggilan pada port 5060, sedangkan audio menggunakan aliran UDP terpisah ke salah satu port dalam rentang RTP yang sedang diblokir. Periksa apakah rentang dalam rtp.conf sesuai dengan rentang yang dibuka di firewall Anda. Periksa juga network firewall milik provider dan firewall pada server. Jalankan sudo tcpdump -ni any udp portrange 10000-10200 selama panggilan berlangsung. Jika tidak ada paket, berarti paket tersebut diblokir sebelum tiba.

Bagaimana cara menghentikan serangan brute force SIP dan penipuan tarif?

Berikan secret acak yang panjang kepada setiap extension. Jangan gunakan secret yang sama dengan nomor extension. Pisahkan context yang digunakan trunk dari context yang dapat melakukan panggilan keluar. Dengan demikian, panggilan masuk tidak dapat melakukan panggilan keluar kembali menggunakan akun Anda. Batasi port 5060 ke alamat provider. Aktifkan jail asterisk di fail2ban. Jail tersebut membaca /var/log/asterisk/messages dan memblokir alamat yang menghasilkan No matching endpoint found kegagalan. Selanjutnya, tetapkan batas pengeluaran dan blokir tujuan internasional yang tidak digunakan melalui provider. Hanya kontrol tersebut yang dapat membatasi kerugian jika perlindungan lainnya gagal.

Apakah VPS di region yang jauh menurunkan kualitas panggilan?

Ya, karena audio menempuh dua segmen: dari telepon ke VPS, lalu dari VPS ke provider trunk. ITU-T G.114 merekomendasikan delay satu arah di bawah 150 ms. VPS yang ditempatkan di lokasi yang buruk dapat menghabiskan sebagian besar batas tersebut hanya karena jarak. Pilih region yang dekat dengan telepon, karena segmen tersebut biasanya menggunakan Internet konsumen dan jitter paling buruk terjadi di sana. Pilihan codec tidak memperbaiki delay. Codec hanya mengubah kebutuhan bandwidth. G.729 menghemat byte, tetapi tidak akan memperbaiki jalur dengan delay 200 ms.

#voip#asterisk#freepbx#sip#self-hosting