> -----Original Message----- > From: Arief Yudhawarman [mailto:[EMAIL PROTECTED] > Sent: Friday, June 24, 2005 12:48 AM > To: tanya-jawab@linux.or.id > Subject: [SPAM] - Re: [tanya-jawab] RE: [SPAM] - Re: > [tanya-jawab] Aplikasi SMS Gateway untuk Pilkada Jember - > Email found in subject - Email found in subject > > > 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. > Terimakasih atas sharingnya mas Yudi, Insya Allah jadi amal ibadah
> Salam, > > Arief Yudhawarman Agus Syafiudin > > > > > -- > 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 > -- 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