Selasa, 13 Agustus 2024
Menggunakan WebSocket Secure (WSS) untuk SIP
Menggunakan WebSocket Secure (WSS) untuk SIP memungkinkan Anda untuk menjalankan aplikasi VoIP berbasis WebRTC, seperti klien SIP di browser, yang berkomunikasi dengan server SIP melalui protokol WebSocket yang dienkripsi (WSS). Berikut ini adalah panduan langkah demi langkah untuk menginstal dan mengkonfigurasi WSS di Asterisk, yang melibatkan instalasi Asterisk, pengaturan WebSocket dan TLS, serta konfigurasi NGINX sebagai proxy WSS jika diperlukan.
Langkah 1: Instalasi Asterisk
Update dan Install Dependensi:
Pertama, update sistem dan instal beberapa dependensi yang diperlukan untuk mengkompilasi Asterisk:
bash
Copy code
sudo apt update
sudo apt install -y build-essential libncurses5-dev libssl-dev libxml2-dev libsqlite3-dev uuid-dev
Download dan Install Asterisk:
Download dan ekstrak Asterisk dari situs resmi:
bash
Copy code
cd /usr/src
sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
sudo tar -xzvf asterisk-20-current.tar.gz
cd asterisk-20.*/
Install dependensi tambahan untuk Asterisk:
bash
Copy code
sudo contrib/scripts/install_prereq install
Konfigurasi dan kompilasi Asterisk:
bash
Copy code
./configure
make menuselect
make
sudo make install
sudo make samples
sudo make config
sudo ldconfig
Mulai Asterisk:
bash
Copy code
sudo systemctl start asterisk
sudo systemctl enable asterisk
sudo asterisk -rvvv
Langkah 2: Mengaktifkan WebSocket dan TLS di Asterisk
Konfigurasi http.conf:
Edit file http.conf untuk mengaktifkan layanan HTTP di Asterisk:
ini
Copy code
[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088 ; Port untuk HTTP
tlsenable=yes ; Mengaktifkan TLS
tlsbindaddr=0.0.0.0:8089 ; Port untuk HTTPS
tlscertfile=/etc/asterisk/keys/asterisk.pem ; Path ke file sertifikat
tlsprivatekey=/etc/asterisk/keys/asterisk.pem ; Path ke file kunci privat
Pastikan sertifikat dan kunci privat telah dibuat dan berada di path yang ditentukan. Anda dapat membuat sertifikat self-signed dengan OpenSSL.
Konfigurasi sip.conf atau pjsip.conf:
Jika menggunakan chan_sip, edit file sip.conf untuk mengaktifkan WebSocket:
ini
Copy code
[general]
context=default
udpbindaddr=0.0.0.0:5060
transport=udp,tcp,ws,wss
[sip-ws]
type=transport
protocol=ws
bind=0.0.0.0
[sip-wss]
type=transport
protocol=wss
bind=0.0.0.0
Jika menggunakan PJSIP, edit file pjsip.conf:
ini
Copy code
[transport-wss]
type=transport
protocol=wss
bind=0.0.0.0:5061
cert_file=/etc/asterisk/keys/asterisk.pem
priv_key_file=/etc/asterisk/keys/asterisk.pem
Langkah 3: Membuat Sertifikat TLS
Buat Sertifikat Self-Signed:
Buat folder untuk menyimpan sertifikat:
bash
Copy code
sudo mkdir /etc/asterisk/keys
cd /etc/asterisk/keys
Buat sertifikat self-signed dengan OpenSSL:
bash
Copy code
sudo openssl req -new -x509 -days 365 -nodes -out asterisk.pem -keyout asterisk.pem
Setel izin untuk sertifikat:
bash
Copy code
sudo chown asterisk:asterisk /etc/asterisk/keys/asterisk.pem
sudo chmod 600 /etc/asterisk/keys/asterisk.pem
Langkah 4: Konfigurasi Dialplan dan Endpoint
Konfigurasi Dialplan:
Tambahkan dialplan sederhana di extensions.conf untuk menangani panggilan:
ini
Copy code
[default]
exten => 1001,1,Dial(PJSIP/1001,20)
exten => 1002,1,Dial(PJSIP/1002,20)
Konfigurasi Endpoint SIP (untuk PJSIP):
Tambahkan konfigurasi endpoint di pjsip.conf:
ini
Copy code
[1001]
type=endpoint
context=default
disallow=all
allow=ulaw
auth=auth1001
aors=1001
webrtc=yes
[auth1001]
type=auth
auth_type=userpass
password=supersecret
username=1001
[1001]
type=aor
max_contacts=1
Langkah 5: Menggunakan NGINX sebagai Proxy WSS (Opsional)
Install NGINX:
Install NGINX di server Anda:
bash
Copy code
sudo apt install nginx
Konfigurasi NGINX untuk WSS:
Buat konfigurasi baru untuk NGINX:
bash
Copy code
sudo nano /etc/nginx/sites-available/sip-proxy.conf
Tambahkan konfigurasi berikut:
nginx
Copy code
server {
listen 443 ssl;
server_name sip.example.com;
ssl_certificate /etc/nginx/ssl/sip.example.com.crt;
ssl_certificate_key /etc/nginx/ssl/sip.example.com.key;
location /ws {
proxy_pass https://127.0.0.1:8089/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Aktifkan konfigurasi ini dan restart NGINX:
bash
Copy code
sudo ln -s /etc/nginx/sites-available/sip-proxy.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Langkah 6: Uji Koneksi WebSocket
Gunakan Klien SIP Berbasis WebRTC:
Anda dapat menggunakan klien SIP berbasis WebRTC seperti JsSIP atau sipML5 untuk menguji koneksi WSS ke server Asterisk Anda.
Konfigurasi Klien SIP:
Di klien SIP, pastikan untuk mengonfigurasi server proxy ke wss://sip.example.com/ws dan gunakan username serta password yang telah diatur di Asterisk (1001 dalam contoh ini).
Pantau Log Asterisk:
Gunakan konsol Asterisk untuk memantau apakah klien terhubung dan apakah panggilan dapat dilakukan:
bash
Copy code
sudo asterisk -rvvv
Kesimpulan
Dengan mengikuti langkah-langkah di atas, Anda dapat mengatur dan mengkonfigurasi Asterisk untuk mendukung SIP melalui WebSocket Secure (WSS), memungkinkan komunikasi SIP yang aman dari browser berbasis WebRTC. Jika Anda memiliki pertanyaan lebih lanjut atau menghadapi masalah selama proses ini, jangan ragu untuk bertanya!
Langganan:
Posting Komentar (Atom)
Terbaru
modul pwm dengan arduino pro mini dilengkapi dengan batrai level meter 5 led
🔋 Contoh Indikator Level Baterai dengan LED (4 Tingkat) 🔧 Tujuan: LED1 menyala jika tegangan ≥ 12.6V (full) LED2 menyala jika teg...
Lainya
-
Untuk menghitung jumlah lilitan primer dan sekunder pada transformator dengan frekuensi kerja 60 kHzUntuk menghitung jumlah lilitan primer dan sekunder pada transformator dengan frekuensi kerja 60 kHz, tegangan input primer 12V, dan teganga...
-
Menggunakan WebSocket Secure (WSS) untuk SIP memungkinkan Anda untuk menjalankan aplikasi VoIP berbasis WebRTC, seperti klien SIP di browser...
-
Untuk menghitung jumlah lilitan (N) dalam sebuah generator yang menghasilkan 1 volt, kita bisa menggunakan persamaan dasar dari hukum Farada...
-
📌 Cara Menjalankan Node.js Bersamaan dengan XAMPP Jika kamu ingin menggunakan Node.js di dalam proyek XAMPP , ada beberapa cara: 1️⃣ Me...
-
Fiber glass (serat kaca) yang digunakan pada kapal biasanya terbuat dari kombinasi bahan-bahan berikut: Serat Kaca: Serat kaca adalah mat...
-
Pembuatan S-glass (serat kaca jenis S) melibatkan beberapa tahap utama mulai dari pemilihan bahan baku, peleburan, hingga proses pembentukan...
-
Berikut adalah beberapa langkah dalam memilih IGBT yang tepat: 1. Tentukan Aplikasi dan Kebutuhan IGBT banyak digunakan dalam berbagai a...
-
Mesin las inverter dengan IGBT 160A biasanya menggunakan konverter DC-DC berbasis IGBT untuk menghasilkan arus tinggi dengan efisiensi tin...
-
whatsapp-web.js punya banyak fitur keren yang bisa dipakai untuk membuat bot WhatsApp yang powerful. Berikut beberapa fitur paling hebatn...
-
Kekuatan tarik S-glass dibandingkan dengan baja menunjukkan perbedaan yang signifikan dalam sifat mekaniknya. Berikut ini adalah perbandinga...
Tidak ada komentar:
Posting Komentar