agus syafiudin wrote:
Bisa sharing ilmu cara bikin sms gateway nggak ke milis ini ?
Agus Syafiudin
"Knowledge is Free"
Mas Agus, server untuk service sms gateway itu sebenarnya sudah ada
seperti gnooki, sms server tool dll, saya cuma install dan
mengkonfigurasikan saja ditambah dg aplikasi buatan sendiri bash
script yang isinya campuran sed, grep, awk, cut, perintah mysql, dll
(kayak gado-gado). Pemrogramming saya di linux cuman sebatas bash
saja, tahu sedikit perl (pernah membuat aplikasi untuk billing) dan
pernah compile C source code hehe... Setelah itu tancap gas ...
Baiklah saya coba gambarkan langkah-langkah yg perlu untuk membangun
aplikasi dg SMS Gateway:
1. Install Sistem Operasi yang dibutuhkan, sangat dianjurkan pakai
linux.
2. Device yang diperlukan untuk SMS Gateway, untuk aplikasi yg berat
seperti pooling center kayak AFI dan pilkada ini mutlak memakai
modem GSM, kalau trafik request dari customer tidak terlalu besar,
bisa menggunakan handset murmer seperti siemens/nokia. Cuma kudu
mengatur bagaimana agar transmisi power supply ke handset tsb tdk
akan menyebabkan handset menjadi panas dan akibatnya menjadi hang
atau bahkan rusak. Di milis ini bahkan ada member yg meng-hack
power supply handset untuk secara periodik turn on/off power secara
otomatis.
Selain itu mau tidak mau harus bisa berkomunasi dg modem lewat
minicom, diperlukan untuk setting awal dan jika ada masalah.
Bagi yg pernah ngetik atz, atdt tentu paham dg ini.
3. Untuk service SMS Gateway ini banyak tersedia di internet, yang
saya gunakan sendiri adalah "SMS Server Tools" , linknya
http://smstools.meinemullemaus.de/
4. Service SMS Gateway atau disingkat 'smsd' sesuai dg nama daemonnya
adalah service yg menghandle modem gsm. SMSD ini secara periodik
akan cek apakah ada SMS masuk atau mengirimkan SMS via modem GSM ini.
Selengkapnya bisa Bapak baca di link di atas.
5. SMSD ini punya eventhandler sendiri, jika tidak dikonfigurasikan
atau singkatnya jika kita tidak buat script eventhandler sendiri
atau aplikasi sms gateway, maka setiap SMS masuk tidak akan
diperlakukan khusus, langsung diterima dan disimpan di
/var/spool/sms/incoming. Cukup dg konfigurasi minimal smsd.conf.
Kalau ndak salah beberapa hari yl saya tulis konfigurasinya
di milis ini juga.
6. Untuk membuat aplikasi ini secara teoritis sebenarnya mudah saja.
Kita tinggal menangkap isi FROM (pengirim SMS yang berupa nomor
hp) dan TEXT (isi pesan/SMS). Di source code smsd ini ada contoh-
contoh untuk menangkap isi FROM dan TEXT. Bergerak dari sini,
kita bisa buat aplikasi untuk menangani setiap SMS yg masuk.
Jika FROM dari nomor khusus maka aplikasinya akan menjalankan apa?
Jika TEXT berisi string tertentu maka aplikasinya akan bertindak apa?
Seperti dalam aplikasi sms gateway untuk pilkada ini, jika nomornya
teridentifikasi sebagai nomornya pemantau pemilu maka biarkan dia
lewat setelah itu kita parse TEXT-nya, jika isinya macam begini:
1*1*13*100*12
maka itu berarti ada data masukan berupa hasil perhitungan suara.
Input di atas dijabarkan sebagai no id desa, no tps, suara kandidat
cabup 1, cabup 2 dan cabup 3. Di sini kita mainan dg tool linux
macam grep, sed, atau cut agar data input benar-benar bersih dr
gangguan dan setidaknya kita bisa mempredisikan agar tdk terjadi
pengulangan data yg sama atau bisa membuat semacam ralat jika data
sebelumnya terjadi kekeliruan. Pokoknya membuat yg makai enak
dan yg membuat aplikasi enak juga (krn tdk dikomplain hehehe).
Tapi tetap saja yg makai aplikasi tdk enak, kenapa ? Karena harus
kirim entri data sebanyak jumlah desa x jumlah tps, gempor tuh
jari hehehe ...
kemudian jika nomornya tdk teridentifikasi atau datang dr publik,
lantas kita parsing isi TEXT, dia request apa ? Kalau isinya
pilkada atau PILKADA atau kombinasi huruf yg berbunyi pilkada
maka segera lakukan pelayanan di luar itu biarkan saja lewat ...
Oya selain itu setidaknya harus paham dg database setidaknya yg
ringan kita pakai MYSQL. Apakah jika ada TEXT yg masuk langsung
kita feed-kan ke MYSQL ? Tentu saja tidak, TEXT atau SMS yg masuk
harus di-parsing dulu, dibersihkan dari karakter yg tidak perlu,
kemudian dibaca apakah mengandung instruksi atau permintaan tertentu.
Jika ada kekeliruan segera kirim pesan peringatan (via SMS tentunya)
ke user dalam hal ini pemantau pemilu.
Sebagai contoh nyata berikut ini saya kutip isi aplikasi SMS Gateway,
untuk yg sederhana adalah bagian yg melayani request dr masyarakat
mengenai hasil perhitungan suara total pilkada.
- Bagian yang menangkap data FROM dan TEXT
FROM=`formail -zx From: < $2 | sed 's/"//g'`
TEXT=`formail -I "" < $2 | awk 'NR==2 { print $0 }'`
Nah, kalo ada yg bertanya apa itu paramater $2 ? Saya kutip saja
dari pernyataan pembuatnya:
# This is an example how to use an eventhandler with smsd.
# $1 is the type of the event wich can be SENT, RECEIVED,
# FAILED or REPORT.
# $2 is the filename of the sms.
# $3 is the message id. Only used for SENT messages with status
# report.
- Bagian yang memparse data TEXT
# Then hp number is from local people atau publik
# Check if SM contain 'pilkada' atau sembarang yg berbunyi pilkada
TEXTT=`echo $TEXT | sed -e 's/[\t ]//g'`
if echo $TEXTT | grep -qi "^pilkada$"
then
# Masyarakat dapat menerima 5 SMS per nomor HP
# disini dikasih jatah 5 SMS per hari
JATAHSM=`cat /usr/local/bin/JATAHSM`
# First cek if this number can still receive sm
sumsent=`mysql --skip-column-names $SQL_ARGS "select count(*) \
from sms_log where receiver='$FROM' and type='SENT';"`
sisa=`expr $JATAHSM - $sumsent`
if [ "$sisa" -gt 0 ]
then
# Fungsi untuk menghitung suara total pilkada dan beri info
# ke nomor hp ybs bahwa sisa jatah SMS tinggal berapa
HitSuaraTotSM "$sisa"
# Fungsi untuk kirim SMS ke nomor HP
SendSM "$FROM" "$SM"
exit
fi
- Fungsi yg berfungsi untuk kirim SMS sebenarnya sederhana saja:
SendSM()
{
#$1 = Receipient
#$2 = SM
FILE=`mktemp /var/spool/sms/outgoing/send_XXXXXX`
echo -e "To: $1\n\n$2" > $FILE
}
8. Di situs http://smstools.meinemullemaus.de/ ada ebook lengkap
mengenai bagaimana cara membuat aplikasi sms gateway, diterangkan
mulai dari dasar sampai advanced, seperti pengenalan tool-tool
di linux awk, sed, grep, cut, bahkan mysql dan php juga diajarkan.
Sayang ebook-nya tidak gratis. Tapi sangat dianjurkan untuk mereka
yg belum memahami tool-tool yg ada di linux seperti yg saya sebutkan
di atas. Bisa dilihat daftar isinya di link di atas.
Karena masih pertama kali buat, jadi aplikasi sms gateway untuk pilkada
ini sangat sederhana sekali, jangan dibandingkan dg produk komersial spt
eSMS (?), bagi saya yg penting berfungsi :-D, kata Mao "tdk mengapa
kucing berbulu putih atau hitam asal bisa menangkap tikus !"
Selamat mencoba.
Salam,
Arief Yudhawarman
--
Unsubscribe: kirim email kosong ke [EMAIL PROTECTED]
Arsip, FAQ, dan info milis di http://linux.or.id/milis
Tidak bisa posting? Baca:
http://linux.or.id/problemmilis
http://linux.or.id/tatatertibmilis