Presentasi SMS Gateway.ppt

Post on 03-Dec-2015

279 Views

Category:

Documents

22 Downloads

Preview:

Click to see full reader

DESCRIPTION

sms gateway

Transcript

Membangun SMS Gateway pada Ubuntu 10.04 LTS

Oleh: Devi Ari .L

1. Pengertian SMS

●Short Message Service atau biasa disingkat SMS merupakan sebuah layanan yang banyak diaplikasikan pada sistem komunikasi tanpa kabel (wireless), memungkinkan dilakukannya pengiriman pesan dalam bentuk alphanumeric antara terminal pelanggan atau antar teminal pelanggan dengan sistem eksternal, seperti e-mail, paging, voice mail, dan lain-lain.

Transmisi SMS

●Sifat transmisi SMS yang merupakan short burst membuat jenis aplikasi yang memanfaatkan SMS biasanya berupa aplikasi pengiriman data yang ringkas dan pendek. Sifat perangkat SMS yang mobile dan dapat mengirimkan informasi dari mana saja selama masih dalam cakupan layanan operator, memunculkan aplikasi lapangan dimana informasi-informasi yang dikumpulkan dari lapangan dikirim secara berkala kepada pusat pengolahan informasi.

Keunggulan SMS

●Teknologi SMS memiliki beberapa keunggulan, diantaranya adalah :

1.Harganya murah.2.Merupakan "delivered oriented service“3. Dapat dikirim ke banyak penerima sekaligus pada saat bersamaan.4. Pesan dapat dikirim ke berbagai jenis tujuan, seperti e-mail, IP, ataupun aplikasi lain.5. Kegunaannya banyak, dengan cara diintegrasikan dengan aplikasi content.

1.

2. Cara kerja SMS

●Saat kita menerima pesan SMS/MMS dari handphone (mobile originated), pesan tersebut tidak langsung dikirimkan ke handphone tujuan (mobile terminated), akan tetapi dikirim terlebih dahulu ke SMS Center (SMSC) yang biasanya berada di kantor operator telepon, baru kemudian pesan tersebut diteruskan ke handphone tujuan. Dengan adanya SMSC, kita dapat mengetahui status dari pesan SMS yang telah dikirim, apakah telah sampai atau gagal.

3. Sejarah SMS

●Sejarah SMS muncul pada Desember 1992. Pesan itu dikirim dari sebuah komputer ke sebuah telepon seluler dalam jaringan GSM milik operator seluler Vodafone di Inggris.

4.Topologi SMS Gateway

Gambar. Topologi SMS Gateway

MySQL

Client

SMS

Handphone atau modem

GSM

Server

GAMMU

5. Aplikasi SMS Gateway

●Beberapa contoh aplikasi SMS Gateway yang tersedia di platform Linux, anatara lain:

● Alamin (www.alamin.org)● Gammu (www.gammu.org)● Gnokii (www.gnokii.org)● Kannel (www.kannel.org)● SMS Server Tools 3 (http://smstool3.kekekasvi.com/index.php)

6. Persiapan

●Sistem operasi Linux yang sudah terinstalasi dengan baik●Handphone atau modem yang disupport oleh Gammu●Kabel data●LAMP (Linux + Apache + MySQL + PHP )

7. Instalasi Ubuntu 10.04 LTS

●Pertama kita booting melalui CD, tentunya kita sudah menempatkan CD-ROM sebagai first boot pada konfigurasi BIOS. ●Karena menggunakan live CD maka yang dipilih adalah Try Ubuntu 10.04●Setelah desktop tampil klik icon Install Ubuntu 10.04 yang ada didesktop

Try Ubuntu 10.04 LTS

Menu welcome pada instalasi ubuntu 10.04 LTS.

Memilih bahasa yang digunakan saat menginstal. Dilanjutkan settting waktu.

Local time yang digunakan bila tidak sesuai kita bisa merubahnya dan disesuaikan dengan negara dan waktu yang sesuai dengan GMT. Klik Foward untuk melanjukan.

Langkah selanjutnya adalah memilih keyboard layout, pada umumnya standard keyboard yang digunakan adalah USA, tetapi jikaa PC yang dipakai menggunakan keyboard jenis lain, bisa dipilih pada daftar yang tersedia.

Gambar di atas terlihat bahwa sistem operasi terdahulunya dikenali oleh Ubuntu dalam hal ini adalah Ms Windows.

Gambar di atas adalah pemilihan partisi hardisk diserahkan seluruhnya kepada ubuntu.

Gambar di atas adalah pemilihan partisi hardisk diserahkan kepada ubuntu berdasarkan free space dan dipilih partisi hardisk yang paling besar.

Gambar di atas adalah pengaturan partisi dilakukan secara manual dan pilihan inilah yang dipilih karena diasumsikan sebelumnya kita sudah menyiapkan partisi kosong untuk Ubuntu.

Setelah dipilih specify partitions manuall (advanced) maka akan tampil seperti pada gambar di atas dimana telihat 3 partisi /dev/sda1, /dev/sda5 dan free space.

Di free space itulah kita akan menginstal Ubuntu 10.04, disini free space untuk ubuntu hanya 6 Gb dan disini dicontohkan membuat 3 partisi yaitu partisi root (dilambangkan dengan “/”), home dan swap. Yaitu masing-masing root = 2Gb , home = 3Gb dan swap = 1Gb

Membuat partisi /home

Membuat partisi swap

Kemudian dilanjutkan dengan membuat user

Bila diinstall berdampingan dengan sistem operasi yang lain maka akan tampil seperti dibawah ini. Kita dapat mengimport user dari sistem operasi yang lain baik itu user serta folder-folder yang ada di sistem operasi tersebut.

Menu konfigurasi terakhir adalah melihat settingan yang telah kita buat untuk Ubuntu yang akan kita instal bila ada ketidaksesuaian kita bisa kembali untuk memperbaikinya dengan tombol back, namun bila yakin selajutnya tinggal klik Install

Installing System Ubuntu

Bila proses selesai maka akan ada pemberitahuan apakah akan melanjutkan live CD atau merestart komputer

Setelah restart maka tampilan awal ketika komputer hidup akan seperti gambar di atas, bila akan memilih sistem operasi lain maka tinggal kita pilih dan tekan enter

Tampilan Login masukan username dan password yang telah kita buat diatas tadi.

Tampilan Ubuntu 10.04 LTS

8. Instalasi dan Konfigurasi LAMP Server

a.Instalasi Apache2

●Kita sudah menginstal Ubuntu 10.04 LTS. Langkah selanjutnya kita menginstal Apache2 web server. Apache2 merupakan aplikasi web server yang menunjang PHP. Tentunya kita dapat menggunakan aplikasi web server lainnya, contohnya seperti Lighttpd

Instalasi paket apache2

Lalu kita menginstal libapache2-mod-php5 :

# apt-get install libapache2-mod-php5

Jalankan daemon apache2 dengan perintah

# /etc/init.d/apache2 restart

Untuk memastikan apakah instalasi apache2 berhasil, buka web browser dan masukkan URL http://localhost/ pada address bar. Jika berhasil akan muncul tampilan seperti di atas.

b. Instalasi MySQL Server

●MySQL merupakan sebuah server basis data yang banyak digunakan di internet karena kehandalannya, keamanan dan bersifat freeware. MySQL mendukung terhadap pemrogaman C/C++, Delphi, Perl, Java, PHP, dan Python.

Untuk menginstal paket mysql-server, ketik: sudo apt-get install mysql-server

Konfirmasi password untuk root, masukkan password yang sama. Tentu saja jika password yang dimasukkan berbeda sebelumnya akan muncul hint sampai password yang dimasukkan benar.

c. Instalasi php5

Instal paket php5. Paket php5 merupakan paket penunjang phpMyAdmin. Php5 adalah bahasa pemrogaman yang ditujukan untuk membangun sebuah web.

Instal paket mysql-php5 untuk menjembatani koneksi php ke database MySQL

d. Instalasi phpMyAdmin

Instal paket phpMyAdmin. PhpMyAdmin memudahkan untuk memanage database MySQL dan juga bisa untuk memanage SMS Gateway.

Tampilan berikutnya adalah opsi untuk memilih web server apa yang secara otomatis akan dikonfiguarasikan untuk phpMyAdmin. Pilih Apache2 karena sebelumnya kita telah memilih dan menginstal Apache2 sebagai web server.

Akan muncul opsi untuk mengkonfigurasikan database untuk phpMyAdmin dengan dbconfig-common. Pilih Yes jika menggunakannya, atau No untuk mengkonfigurasi secara manual.

Akan muncul sebuah dialog untuk meminta anda mengisikan password administrative account yang digunakan pada database MySQL. Masukkan password yang sama ketika anda mengisi password saat menginstal mysql-server

Masukkan password untuk phpMyAdmin untuk bisa terkoneksi dengan databse server, jika tidak diisi password akan diisikan secara random

Konfirmasi password yang sama dengan sebelumnya.

9. GAMMU

●Gammu (GNU All Mobile Management Utilities) merupakan salah satu pustaka atau library opensource yang dibuat sebagai gateway antara handphone dengan perangkat komputer.

Kelebihan Gammu

●Kelebihan Gammu dari tool sms gateway lainnya adalah:

1.Gammu dapat dijalankan di multiplatform (Windows atau Linux).

2.Banyak device (handphone / modem ) yang kompatiel dengan Gammu.

3.Gammu menggunakan database MySQL atau ProgestSQL, sehingga bisa menggunakan interface web-based.

4.Gammu mensupport banyak koneksi, dari kabel data USB, serial, infrared dan Bluetooth semuanya kompatibel dengan Gammu.

5.Gammu selalu diupdate versinya (testing release) untuk mempatch bugs yang terdapat di versi yang sebelumnya.

a. Instalasi dan Konfigurasi Gammu

Buka terminal dan masuk sebagai root. Ketik ”apt-get install gammu gammu-smsd” lalu Enter

Sambungkan modem GSM pada PC. Untuk mengetahui apakah handphone tersebut telah terdeteksi oleh komputer, ketikkan perintah ”lsusb”. Jika muncul tampilan seperti di bawah ini, berarti handphone sudah terdeteksi oleh komputer.

Untuk mengetahui dimanakah letak port yang terhubung ke handphone ketikkan ”dmesg”. Dalam praktek kali ini port yang terhubung ke handphone Siemens C60 ialah ttyUSB0.

Setelah gammu selesai diinstal, ketik ”sudo gammu-config” di Terminal. Maka akan muncul dialog yang akan kita isi konfigurasinya

Karena nantinya kita akan menghubungkan Gammu dengan PHP dan MySQL, maka kita melanjutkan proses edit file /etc/gammu-smsdrc. Lakukan konfigurasi database MySQL sesuai dengan konfigurasi yang terdapat pada sistem MySQL kita

Buat database “sms” untuk meletakkan struktur database Gammu

Lakukan proses dump struktur tabel Gammu yang terdapat di /usr/share/doc/gammu/examples/sql/mysql.sql.gz ke database sms

Kini database yang dibutuhkan untuk koneksi ke Gammu telah dibuat. Untuk memastikan handphone/modem sudah dapat terdeteksi dengan baik, kita dapat mengetikkan ”gammu --identify”

Untuk memastikan konfigurasi sudah berjalan dengan baik, cek dengan menjalankan service gammu-smsd

Terakhir, uji coba untuk mengirimkan SMS dengan menggunakan Gammu

●Terakhir, uji coba untuk mengirimkan SMS dengan menggunakan Gammu.●Terakhir, uji coba untuk mengirimkan SMS dengan menggunakan Gammu.●Terakhir, uji coba untuk mengirimkan SMS dengan menggunakan Gammu.

Kita dapat melihat perintah manual Gammu dengan mengetikkan ”man gammu”

PROYEK #1 : Layanan SMS Nilai Mata Pelajaran Sekolah

●Selesai melakukan konfigurasi Gammu, selanjutnya kita akan memulai Proyek #1. Proyek pertama yang penulis buat adalah membuat sistem untuk memberikan autorespon nilai mata pelajaran yang di-request oleh siswa. Jika siswa ingin mengetahui nilai mata pelajaran, siswa bersangkutan tinggal mengirim pesan melaluiSMS dengan format “NILAI <spasi> NIS” dan dikirim ke nomor HP yang dijadikan SMS Gateway. Selang beberapa waktu, siswa akan mendapat SMS balasan berisi nilai mata pelajaran yang diperolehnya secara otomatis.

Membuat tabel nilai pelajaran. Tabel ini akan berisi daftar nilai pelajaran dari siswa. Buat struktur tabel sql berikut, dan buat dengan nama nilai-pelajaran.sql.

● Dump struktur tabel nilai-pelajaran.sql ke database sms: # mysql –u root –p sms < nilai-pelajaran.sql

● Selanjutnya buat skrip sms.php berikut, dan letakkan pada direktori /var/www/nilai. Penjelasan skrip dapat langsung dilihat pada baris komentar yang terdapat pada source code:

<html><head><!-- refresh script setiap 30 detik --><meta http-equiv="refresh" content="30; url=<?php $_SERVER['PHP_SELF']; ?>"></head>

<body> <h1>SMS server running....</h1> <?php //koneksi ke mysql dan db nyamysql_connect("localhost", "root", "mcr");mysql_select_db("sms"); // query untuk membaca SMS yang belum diproses$query = "SELECT * FROM inbox WHERE Processed = 'false'";$hasil = mysql_query($query);while ($data = mysql_fetch_array($hasil)){

// membaca ID SMS $id = $data['ID']; // membaca no pengirim $noPengirim = $data['SenderNumber'];

// membaca pesan SMS dan mengubahnya menjadi kapital $msg = strtoupper($data['TextDecoded']); // proses parsing // memecah pesan berdasarkan karakter <spasi> $pecah = explode(" ", $msg); // jika kata terdepan dari SMS adalah 'NILAI' maka cari nilai Kalkulus if ($pecah[0] == "NILAI") { // baca NIM dari pesan SMS $nim = $pecah[1]; // cari nilai pelajaran berdasar NIM $query2 = "SELECT nilai FROM nilaipelajaran WHERE nim = '$nim'"; $hasil2 = mysql_query($query2);

// cek bila data nilai tidak ditemukan if (mysql_num_rows($hasil2) == 0) $reply = "NIM tidak ditemukan"; else { // bila nilai ditemukan $data2 = mysql_fetch_array($hasil2); $nilai = $data2['nilai']; $reply = "Nilai pelajaran Matematiaka Anda: ".$nilai; } } else $reply = "Maaf perintah salah"; // membuat SMS balasan $query3 = "INSERT INTO outbox(DestinationNumber, TextDecoded) VALUES ('$noPengirim', '$reply')"; $hasil3 = mysql_query($query3); // ubah nilai 'processed' menjadi 'true' untuk setiap SMS yang telah diproses $query3 = "UPDATE inbox SET Processed = 'true' WHERE ID = '$id'"; $hasil3 = mysql_query($query3);}?>

</body></html>

Setelah membuat script sms.php, jalankan service gammu-smsd dari terminal.

●Lakukan pengujian pengiriman SMS ke server nomor selular yang digunakan pada perangkat handphone/modem GSm yang terhubung ke SMS Gateway. Jika siswa dengan NIS M197002 ingin mengetahui nilainya, siswa tersebut cukup mengetikan SMS berikut: NILAI M0197002. Lalu, kirim ke 08993351513. Tidak berapa lama kemudian, siswa tersebut akan mendapat SMS balasan yang berisi: Nilai pelajaran Matematika Anda: 79. Namun, apabila format yang dikirimkan salah, maka mendapat SMS yang berisi: Maaf perintah salah. Dan apabila format yang dikirimkan benar tetapi penulisan NIS salah maka akan mendapat SMS yang berisi: NIS tidak ditemukan.

Menu “inbox” sms di phpMyAdmin

Menu ”sentitems” di phpMyAdmin

PROYEK #2: SMS Voting Pemilihan Idol

●Pada proyek #2 ini, kita akan membuat sistem SMS voting pemilihan idol. Skenario yang digunakan, pengguna tinggal mengirimkan SMS: IDOL <spasi> NAMAIDOL, kirim ke nomor GSM yang digunakan oleh SMS Gateway. Sebagai contoh di sini, terdapat empat nama idol, yakni Glenn, Afghan, Rossa, dan Krisdayanti. Jika user ingin memilih Afghan sebagai idol-nya, maka user tinggal mengirimkan SMS: IDOL afghan, dan kirim ke nomor GSM yang digunakan. Untuk melihat berapa banyak pilihan masing-masing idol, kita dapat melihat dari halaman hasil voting yang dapat diakses melalui web.

Buat database “polling”, sebagai database yang akan digunakan oleh SMS Voting

● Buat struktur tabel data polling berikut ke dalam nama file polling.sql : # vim polling.sql

● Dump isi file polling.sql ke database polling yang telah dibuat : # mysql –u root –p polling < polling.sql

CREATE TABLE `data_polling` (`pilihan` varchar(25) NOT NULL,`vote` int(11) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;-- Data pilihan votingINSERT INTO `data_polling` VALUES ('glenn', 0);INSERT INTO `data_polling` VALUES ('afghan', 0);INSERT INTO `data_polling` VALUES ('rossa', 0);INSERT INTO `data_polling` VALUES ('krisdayanti', 0);

● Masuk ke halaman database sms di MySQL: # mysql –u root –p

● Setelah masuk halaman command line database sms di MySQL, buat sebuah trigger pada database ‘sms’ (trigger merupakan skrip SQL untuk memicu fungsi tertentu dalam database). Caranya ketik trigger berikut ke halaman command line MySQL

delimiter $create triggersms.smsAFTERINSERTonsms.inboxfor each row BEGINDECLARE smsx,smsz,smsmasuk varchar(200);DECLARE format,pilihansms,no_pengirim varchar(200);DECLARE error,x,jmlvote int; set smsz=new.TextDecoded;select ltrim(smsz) into smsx;select rtrim(smsx) into smsmasuk;set no_pengirim=new.SenderNumber;select substring_index(smsmasuk,' ',1) into format;select substring(smsmasuk,6) into pilihansms;select count(pilihan) from polling.data_pollingwhere pilihan=pilihansms into x;select vote from polling.data_polling

where pilihan=pilihansms into jmlvote;set jmlvote=jmlvote+1;set error=0; if format='idol' and x>0 thenupdate polling.data_polling set vote=jmlvote where pilihan=pilihansms;elseset error=1;end if;

if error=1 theninsert into sms.outbox values ('', '', '', NULL, no_pengirim, 'Default_No_Compression', NULL, -1, 'Maaf,format yang anda masukkan salah. Silahkan kirim ulang','', 'false',-1, '', '', '', '');end if;

if error=0 theninsert into sms.outbox values ('', '', '', NULL, no_pengirim, 'Default_No_Compression', NULL, -1, 'Terimakasih,pilihan anda telah kami tampung','', 'false',-1, '', '', '', '');end if; END;$

Mengisi trigger di command line MySQL

● Selanjutnya, buat skrip voting.php berikut, dan letakkan pada direktori /var/www/ : # vim /var/www/voting.php

● Source code:<html><head><title>Test Polling</title><meta http-equiv="refresh" content="30"><style type="text/css">*{font-family:Arial, Helvetica, sans-serif;}table{border-width: 1px 1px 1px 1px;border-style: dashed dashed dashed dashed;border-color: gray gray gray gray;}td{background-color:#CCFFCC;}</style></head>

<body><br/><table width="234" border="0" align="center"><tr><th width="240" colspan="2"><div align="center"><font color="#009933">DATA POLLING SEMENTARA</font></div></th></tr><?$mysql_host = "localhost";$mysql_database = "polling";$mysql_user = "root";$mysql_password = "mcr";$dblink=mysql_connect($mysql_host,$mysql_user,$mysql_password);mysql_select_db($mysql_database,$dblink);$qsum="select sum(vote) from data_polling";$execsum=mysql_query($qsum);$dsum=mysql_fetch_row($execsum);$totvote=$dsum[0];$qvote="select * from data_polling";$execvote=mysql_query($qvote);while($dvote=mysql_fetch_row($execvote)){$vote=$dvote[1];$precent=round(($vote/$totvote)*100,2);echo "<tr><td width=120><div align=center><b>$dvote[0]</b></div></td>";echo "<td width=180><div align=center><font color=red>$precent %</font></div></td></tr>";}?></table></body></html>

Setelah membuat jalankan service gammu-smsd dari Terminal

Buka tab Terminal baru (Ctrl+Shift+T), dan cek file log pengiriman pesan yang terkirim atau yang datang dari file /etc/smsdlog

●Lakukan pengujian pengiriman SMS ke server nomor selular yang digunakan pada perangkat handphone/modem GSM yang terhubung ke SMS Gateway. Maka jika user ingin memilih idol afghan misalnya, maka user tinggal mengetikkan SMS berikut: IDOL afghan, dan kirim ke 08993351513. Jika format yang dikirimkan salah, maka pengirim pesan akan mendapat pesan balasan: “Terimakasih, pilihan anda telah kami tampung”, dan persentase idol akan bertambah. Namun jika salah, maka pengirim pesan akan mendapat pesan balasan : “Maaf, format yang Anda masukkan salah. Silakan kirim ulang”, dan persentase idol tidak bertambah.

Untuk melihat persentase idol dapat mengetikkan http://localhost/voting.php di web browser.

Presentase idol sudah terisi

THANKS!!!

top related