Kannel:
Kannel adalah WAP open source dan SMS gateway untuk jaringan GSM. Selain itu, Kannel dapat mengirim/menerima SMS menggunakan Modem GSM Serial atau USB. Ini dapat diakses melalui HTTP API dan dapat digunakan dalam mengirim SMS massal, OTP, dll.
Jadi, Kannel memiliki tiga program utama yang disebut kotak:bearerbox , kotak sms , wapbox .
- Antarmuka Bearerbox menuju ponsel. Ia menerima pesan WAP dan SMS dari telepon dan mengirimkannya ke kotak lain.
- SMSbox menangani fungsionalitas gerbang SMS.
- WAPbox menangani fungsionalitas gerbang WAP.
Dimungkinkan untuk memiliki beberapa kotak SMS dan beberapa kotak WAP pada host yang berbeda yang memungkinkannya menangani beban yang lebih besar.
Kannel juga mendukung integrasi database dan mendukung mysql , pgsql , sdb , mssql , sqlite3 , peramal , redis dan cassandra .
Kannel memiliki berbagai dukungan Modem GSM; apalagi Modem GSM apa pun yang dapat diakses melalui port Serial atau USB dengan driver yang tepat dan mendukung perintah AT akan digunakan dengan Kannel.
Bersiap untuk menginstal Kannel SMS Gateway:
Di sini kita akan menginstal Kannel SMS Gateway versi stabil terbaru 1.4.5 dari file tar sumber di Debian 10 (buster) . Di sini kita akan mengkonfigurasi komponen inti:bearerbox dan kotak sms yang digunakan untuk SMS Gateway.
IP Host SMS-GW | 192.168.10.38 |
IP Host Klien Windows | 192.168.10.31 |
IP Host Klien Linux | 192.168.10.37 |
Model Modem GSM | Modem USB Huawei E303 3G/GSM |
Periksa rilis OS
root@sms-gw:~# cat /etc/os-release
Keluaran:
Hubungkan USB Modem dengan Linux Host dan Periksa apakah modem mendeteksi dengan mengeluarkan lsusb perintah
root@sms-gw:~# lsusb
Keluaran:
Modem telah terdeteksi di Bus 2.
Sekarang kita harus mencari TTY modem yang terhubung
root@sms-gw:~# ls /dev/ttyUSB*
Keluaran:
Kami melihat modem terhubung di /dev/ttyUSB0 dan /dev/ttyUSB1 .Biasanya baud rate modem tersebut adalah 9600 atau 115200.
Ada alat yang berguna wvdial , untuk mengidentifikasi TTY USB dan kecepatan baud untuk Modem. panggilanwv biasanya digunakan sebagai dialer PPP baris perintah untuk menggunakan Internet Seluler.
Instal wvdial untuk menemukan USB TTY dan baud rate untuk Modem.
root@sms-gw:~# apt-get update
root@sms-gw:~# apt-get install -y wvdial
Masalah wvdialconf perintah untuk menemukan TTY dan kecepatan Baud Modem
root@sms-gw:~# wvdialconf
Keluaran:
Dari output kami menemukan bahwa modem terhubung di /dev/ttyUSB0 dan baud rate id 9600. wvdialconf juga menulis konfigurasi modem dasar di /etc/wvdial.conf berkas.
Sekarang instal dependensi yang diperlukan untuk Kannel
root@sms-gw:~# apt-get install -y linux-headers-$(uname -r) build-essential make gcc cpp wget curl libxml2 libxml2-dev bison flex byacc zlib1g-dev libiconv-hook1 libtoolMemasang Kannel SMS Gateway:
Unduh tarball sumber dari https://kannel.org/download/1.4.5/gateway-1.4.5.tar.gz
root@sms-gw:~# wget --no-check-certificate https://kannel.org/download/1.4.5/gateway-1.4.5.tar.gzBuka tar file dan masuk ke direktori sumber
root@sms-gw:~# tar -zxf gateway-1.4.5.tar.gz
root@sms-gw:~# cd gateway-1.4.5/Jalankan konfigurasi file dengan awalan direktori home kannel dan start-stop-deamon, di sini kita menggunakan /usr/local/kannel sebagai direktori home kannel
root@sms-gw:~/gateway-1.4.5# ./configure --enable-start-stop-daemon --prefix=/usr/local/kannelKami juga dapat menonaktifkan wapbox karena kami tidak akan menggunakannya
root@sms-gw:~/gateway-1.4.5# ./configure --enable-start-stop-daemon --prefix=/usr/local/kannel --disable-wapSetelah berhasil menyelesaikan konfigurasi skrip dijalankan, kompilasi paket
root@sms-gw:~/gateway-1.4.5# makeInstal program dengan file data dan dokumentasi
root@sms-gw:~/gateway-1.4.5# make installIni akan menginstal binari, perpustakaan, dan dokumen yang diperlukan di direktori yang berbeda di /usr/local/kannel/ lokasi.
Catatan: Jika mengalami masalah saat membuat kita dapat membersihkan atau menghapus dan memulai dari awal. Untuk membersihkan jalankan make clean , untuk uninstall jalankan make uninstall perintah.
Sekarang buat dll , lari dan log direktori
root@sms-gw:~# mkdir /usr/local/kannel/etc
root@sms-gw:~# mkdir /usr/local/kannel/run
root@sms-gw:~# mkdir /var/log/kannel/Buat file konfigurasi kannel /usr/local/kannel/etc/kannel.conf dengan konten di bawah ini
##INTI
kelompok =inti
port admin =13000
smsbox-port =13001
password-admin =sms-gw-admin-passwd
status-password =sms-gw-status-passwd
admin-deny-ip ="*.*.*.*"
admin-allow-ip ="*.*.*.*"
box-deny-ip ="*.*.*.*"
box-allow-ip ="*.*.*.*"
tingkat log =0
log-file ="https://1118798822.rsc.cdn77.org/var/log/kannel/kannel.log"
dlr-penyimpanan =internal
sms-kirim ulang-coba lagi =1
##SMSC
grup =smsc
smsc =at
smsc-id =smsc01
diperbolehkan-smsc-id =smsc01
pilihan-smsc-id =smsc01
tipe modem =Huawei
perangkat =/dev/ttyUSB0
kecepatan =9600
alt-charset ="GSM"
penyangga sim =benar
file-log =/var/log/kannel/smsc01-gsm1.log
tingkat log =0
##MODEM
grup =modem
id =Huawei
aktifkan-mms =benar
init-string ="ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0;+CNMI=1,3,2,2,1;+CMEE=1;+CPMS=\"SM\",\"SM\" ,\"SM\";+CMGF=0;+CSCS=GSM
kecepatan =9600
deteksi-string ="huawei"
##SMSBOX
grup =kotak sms
bearerbox-host =localhost
sendsms-port =13013
pengirim global =13013
mo-recode =benar
sendsms-chars ="0123456789 +-"
log-file ="https://1118798822.rsc.cdn77.org/var/log/kannel/smsbox.log"
tingkat log =0
access-log ="https://1118798822.rsc.cdn77.org/var/log/kannel/access.log"
##SMS-USER
grup =sendsms-pengguna
user-deny-ip ="*.*.*.*"
user-allow-ip ="*.*.*.*"
nama pengguna =kannel
kata sandi =kannelpasswd
default-smsc =smsc01
gabungan =1
pesan maks =10
##SMS-SERVICE
grup =layanan sms
kata kunci =default
get-url =" "http://%S"
menerima-x-kannel-header =benar
pesan maks =10
gabungan =benar
tangkap semua =benar
hilangkan-kosong =benarCatatan: dapatkan-url config direktif di sms-serice group menunjukkan gaya panggilan API HTTP dari server HTTP jarak jauh. Contoh:untuk server PlaySMS jarak jauh
get-url ="http://PLAYSMS-SERVER-IP/playsms/plugin/gateway/kannel/geturl.php?t=%t&q=%q&a=%aQ=%Q&smsc=%i"Buat init skrip untuk memulai/menghentikan kotak kannel sebagai /etc/init.d/kannel
#!/bin/bash
# Memulai/menghentikan kotak Kannel:Satu kotak pembawa dan satu kotak SMS.
BOXPATH=/usr/local/kannel/sbin
PIDFILES=/usr/local/kannel/run
CONFDIR=/usr/local/kannel/etc
CONF=$CONFDIR/kannel.conf
PENGGUNA=kannel
VERSI=""
RB=$BOXPATH/run_kannel_box$VERSION
BB=$BOXPATH/bearerbox$VERSION
WB=$BOXPATH/wapbox$VERSION
SB=$BOXPATH/smsbox$VERSION
SSD=$BOXPATH/start-stop-daemon$VERSION
PATH=$BOXPATH:$PATH
kasus "$1" di
Mulailah)
echo -n "Memulai gateway WAP:bearerbox"
$SSD --start --quiet --pidfile $PIDFILES/kannel_bearerbox.pid --exec $RB -- --pidfile $PIDFILES/kannel_bearerbox.pid $BB -- $CONF
echo -n "kotak sms"
$SSD --start --quiet --pidfile $PIDFILES/kannel_smsbox.pid --exec $RB -- --pidfile $PIDFILES/kannel_smsbox.pid $SB -- $CONF
tidur 3
gema "."
;;
berhenti)
echo -n "Menghentikan gerbang WAP:"
echo -n "kotak sms"
$SSD --stop --quiet --pidfile $PIDFILES/kannel_smsbox.pid --exec $RB
echo -n "kotak pembawa"
$SSD --stop --quiet --pidfile $PIDFILES/kannel_bearerbox.pid --exec $RB
gema "."
;;
status)
CORE_CONF=$(grep -r 'group[[:space:]]*=[[:space:]]*core' $CONFDIR | cut -d:-f1)
ADMIN_PORT=$(grep '^admin-port' $CORE_CONF | sed "s/.*=[[:spasi:]]*//")
ADMIN_PASS=$(grep '^admin-password' $CORE_CONF | sed "s/.*=[[:spasi:]]*//")
STATUS_URL="http://127.0.0.1:${ADMIN_PORT}/status.txt?password=${ADMIN_PASS}"
ikal $STATUS_URL
;;
isi ulang)
# Kami belum memiliki dukungan untuk ini.
keluar 1
;;
mulai ulang | paksa-muat ulang)
$0 berhenti
tidur 3
$0 mulai
;;
*)
echo "Penggunaan:$0 {start|stop|status|reload|restart|force-reload}"
keluar 1
esac
keluar 0Catatan: Script di atas adalah default init.d skrip untuk Kannel. Konfigurasi ini sesuai untuk situs kecil yang menjalankan Kannel pada satu mesin. Harap pastikan bahwa binari Kannel dapat ditemukan di $BOXPATH atau di tempat lain di sepanjang $PATH . run_kannel_box harus di $BOXPATH .
Buat /etc/init.d/kannel file dapat dieksekusi
root@sms-gw:~# chmod +x /etc/init.d/kannelMulai kannel
root@sms-gw:~# /etc/init.d/kannel startKeluaran:
Centang kannel bearerbox dan kotak sms status mendengarkan
Periksa status Kannel dari dalam kotak Linux
root@sms-gw:~# /etc/init.d/kannel statusGunakan http://192.168.10.38:13000/status?password=sms‑gw‑admin‑passwd URL dari browser mesin klien windows untuk memeriksa status
Mengirim SMS menggunakan Kannel SMS Gateway:
Kami dapat mengirim SMS dari browser mesin klien mana pun menggunakan URL. Contoh:
http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=01700000000&text=SMS+from+kannel+01Halaman web menunjukkan kode balasan SMS Push 0:Diterima untuk pengiriman , yang menunjukkan bahwa Kannel telah menerima SMS untuk pengiriman ke penerima
Mengirim SMS dari kotak Linux menggunakan curl
root@host1:~# curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=01700000000&text=SMS+from+kannel+02"Keluaran:
Kirim SMS menggunakan teks SMS dari file menggunakan curl
root@host1:~# echo "SMS dari file menggunakan curl"> smsfile.txt
root@host1:~# curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=01700000000" -G --data-urlencode [email protected]Mengirim SMS dengan piping output ke curl
root@host1:~# printf "SMS dari keluaran" | curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=01700000000" -G --data-urlencode text@-SMS Diterima oleh Perangkat Seluler
Catatan: Ada beberapa kode balasan SMS Push dari Kannel
Kode Status | Badan Pesan | Artinya |
202 | 0:Diterima untuk pengiriman | SMS telah diterima dan dikirimkan ke driver SMSC |
202 | 3:Antri untuk pengiriman nanti | Kotak pembawa menerima dan menyimpan pesan dalam antrian untuk dikirimkan nanti |
4xx | (bervariasi) | Ada yang salah dalam permintaan atau konfigurasi Kannel, periksa permintaan dan konfigurasi Kannel. |
503 | Kegagalan sementara, coba lagi nanti | Terjadi kegagalan sementara, coba lagi nanti. |
Memeriksa Log:
Kami akan menemukan inti Kannel bearerbox masuk /var/log/kannel/kannel.log berkas.
/var/log/kannel/access.log file log permintaan akses yang berhasil dari klien.
Contoh Log:
/var/log/kannel/smsbox.log mencatat permintaan klien dan komunikasi dengan bearerbox.
Log terkait Modem GSM akan ditemukan di /var/log/kannel/smsc01-gsm1.log berkas.
Log Tingkat Keparahan:
tingkat log config direktif di setiap grup konfigurasi di kannel.conf file mendefinisikan tingkat Keparahan Log untuk grup itu dan masuk sesuai dengan log-file diberikan dalam grup . Level Log adalah:
0> debug
1> info
2> peringatan
3> kesalahan
4> panik
Kiat Keamanan:
- admin-deny-ip dan admin-allow-ip arahan menentukan daftar alamat IP yang diizinkan atau dilarang untuk mengakses portal admin kannel. Setiap daftar dapat memiliki beberapa alamat yang dipisahkan oleh “;” , “*” mewakili semua angka dalam oktet. Contoh:jika kita ingin mengizinkan 192.168.10.31 dan localhost dapat mengakses portal admin dan semua alamat IP lainnya harus diblokir maka arahan konfigurasi akan seperti di bawah ini
admin-deny-ip =“*.*.*.*”
admin-allow-ip =“127.*.*.*; 192.168.10.31”
- Demikian pula box-deny-ip dan box-allow-ip arahan menentukan daftar alamat IP yang diizinkan untuk mengakses bearerbox . Ini berguna ketika kita menggunakan beberapa smsbox . Kami akan membuat daftar smsbox Alamat IP di box‑allow‑ip untuk mengakses bearerbox program.
- ip-penyangkal-pengguna dan pengguna-izinkan-ip digunakan untuk mengizinkan/menolak alamat IP pengguna.
- Lebih baik menggunakan direktif tolak daripada mengizinkan alamat IP selektif untuk setiap jenis kontrol akses.
- Gunakan nama pengguna/sandi yang sangat aman untuk semua opsi nama pengguna/sandi yang ditampilkan di kannel.conf berkas.
Referensi:
- https://www.kannel.org/download/kannel-userguide-snapshot/userguide.html