membuat aplikasi sms gateway di ubuntu 11.10
DESCRIPTION
Gammu adalah salah satu software aplikasi yang dapat melakukan aksi mengirim pesan dan menerima pesan yang disimpan kedalam database (SMS Gateway). Tutorial ini berisi tentang bagaimana kita melakukan instalasi gammu versi 1.30.0 di sistem operasi ubuntu 11.10 dengan jaringan ber proxy.TRANSCRIPT
Computer & Communication Lab Page 1
Membuat aplikasi sms gateway di ubuntu 11.10
(Oneiric Ocelot)
1. Persiapkan terlebih dahulu ubuntu 11.10 dengan koneksi internet yang memadahi. Pada
studi kasus tutorial kali ini, penulis menggunakan akses internet kampus Institute
Teknologi Telkom dengan menggunakan proxy address 172.16.1.1 proxy port 8080.
Untuk repository kita menggunakan server pinguin (Repository Laboratorium CNC).
2. Akses ke pinguin.ittelkom.ac.id/mirror. Kemudian pilih untuk bagian repo ubuntu,
setelah itu pilih untuk versi ubuntunya. Karena disini kita memakai ubuntu 11.10 oneiric
maka kita pilih repo yang sesuai.
Klik untuk how-to.txt. maka akan ada beberapa konfigurasi untuk alamat list
repositorinya.
3. Copykan ke source.list dari ubuntu anda. Dengan cara ketikan pada terminal.
Untuk masuk dalam mode root terlebih dahulu ketikan.
sudo su
Kemudian ganti sources.list
gedit /etc/apt/sources.list
Copykan konfigurasi yang ada pada list web tadi kedalam panel editnya. Dapat dilihat
pada gambar berikut ini. Kemudian save konfigurasinya.
Pilih seri oneiric
Computer & Communication Lab Page 2
Setelah konfigurasi disimpan. Lakukan update dengan cara mengetikkan diterminal.
apt-get update
Jika tidak terjadi proses maka kita harus seting proxy pada terminalnya dengan
mengetikan format berikut kedalam terminal.
export http_proxy=http://yourproxyaddress:proxyport
Keterangan:
yourproxyaddress : Diisi alamat proxy yang digunakan.
proxyport : Diisi untuk port proxy yang digunakan.
Karena kasus kali ini menggunakan proxy address 172.16.1.1 proxy port 8080. Maka
ketikan diterminal seperti ini:
export http_proxy=http://172.16.1.1:8080
Kemudian lakukan update kembali. Jika sukses akan tampil seperti berikut:
Computer & Communication Lab Page 3
4. Install apache2, untuk install apache masuk keterminal dan ketikan:
apt-get install apache2
Maka akan muncul do you want to continue [Y/n]? kemudian ketikan y dan tekan enter.
Jika sudah proses selesai, coba untuk membuka browser dan ketikan alamat
http://localhost jika apache telah terinstal akan memunculkan it works!.
Computer & Communication Lab Page 4
5. Install PHP, untuk menginstall php, ketikan diterminal seperti berikut.
sudo apt-get install php5 libapache2-mod-php5
Proses selanjutnya akan sama dengan proses menginstall apache2.
Setelah terinstall lakukan restart untuk apache2nya dengan mengetikkan
perintah berikut.
/etc/init.d/apache2 restart
Untuk menguji berhasil atau tidaknya PHP yang baru saja kita install, buatlah
sebuah file format php dan disimpan di /var/www/file_anda.php atau anda
langsung bisa mengetikkan ke terminal seperti berikut:
gedit /var/www/phpinfo.php
Kemudian isikan pada phpinfo.php seperti berikut.
<?php
phpinfo()
?>
Computer & Communication Lab Page 5
Kemudian anda langsung bisa mengakses menggunakan browser dan
memasukkan alamat ini. http://localhost/phpinfo.php. jika file bernama lain
maka akses kehalaman,dengan memberikan nama file untuk setelah localhost.
Keterangan: jika muncul maka menandakan php telah terinstall.
6. Install mysql-server, mysql disini berhubungan dengan database kita, dan untuk
menginstalnya hanya perlu mengetikkan perintah berikut keterminal.
apt-get install mysql-server
Tunggu prosesnya, jika ada muncul seperti berikut maka masukkan password
untuk username root mysql anda. Password ini digunakan apabila anda
menggunakan MySQL, jadi ingat baik-baik password anda.
Computer & Communication Lab Page 6
Ulangi passwordnya sesuai dengan password yang anda masukkan tadi.
7. Setelah install MySQL telah selesai, selanjutnya komponen terakhir yang perlu
diinstall untuk membangun webserver yaitu PhpMyAdmin. Sebenarnya tanpa
phpmyadmin sendiri kita sudah bisa menggunakan mysql, hanya untuk pemula
dalam masalah database, maka kita akan sangat mengalami kesulitan sehingga
membutuhkan gui atau interface agar penggunaan database MySQLnya lebih
mudah.
Ketikan perintah berikut.
apt-get install phpmyadmin
Setelah itu akan muncul seperti berikut pilih untuk apache2 kemudian tekan
enter dan pilih no untuk setingan konfigurasi kemudian tekan enter lagi.
Computer & Communication Lab Page 7
8. Selanjutnya, ketikan perintah berikut diterminal.
cp /etc/phpmyadmin/apache.conf /etc/apache2/conf.d
Kemudan lakukan restart apache2nya.
/etc/init.d/apache2 restart
Untuk melihat hasilnya, masukkan alamat http://localhost/phpmyadin. Untuk
masuk loginlah sebagai root dengan password yang telah anda buat.
Computer & Communication Lab Page 8
Jika username dan password benar maka akan muncul halaman muka dari panel
phpmyadminya seperti gambar diatas.
9. Instalasi gammu dan gammu-smsd
apt-get install gammu gammu-smsd
Tunggu sampai proses selesai, pada setingan awal gammu-smsd belum sesuai
dengan konfigurasi sehingga nantinya perlu kita konfigurasi manual.
10. Tahap selanjutnya pasangkan modem atau bisa juga menggunakan device
handphone. Kali ini penulis menggunakan modem ZTE model: MF636.
Cek versi dari gammu yang telah terinstall, ketikkan perintah dalam terminal
dpkg –l gammu
Computer & Communication Lab Page 9
Sebelum mengkonfigurasi, kita perlu mencari tahu dimanakah letak port device
tersebut. Cara melihatnya dapat mengetikkan
dmesg | grep tty
Kemudian kita seting konfigurasi seperti berikut ini. Dengan port yang
sebelumnya kita cek yaitu ttyUSB1.
Keterangan :
Port : letak port yang sebelumnya kita cek.
Connection : tipe koneksinya, untuk melihat database list tipe koneksinya bisa
cek di wammu.eu/phones/.
11. Setelah konfigurasi, lakukan identify apakah modem telah teridentifikasi
sempurna oleh computer ubuntu kita.
Caranya ketikan perintah berikut
gammu –-identify
Computer & Communication Lab Page 10
Jika berhasil seperti gambar diatas, lakukan pengecekkan dengan mangirmkan
sms melalui terminal dengan mengetikkan perintah.
echo isi_pesan | gammu –sendsms TEXT no_tujuan
12. Menggunakan funsionalitas database mysql untuk menyimpan sms yang masuk.
Sehingga nanti semua sms akan masuk kedalam database mysql. Pertama buat
terlabih dahulu nama databasenya, contoh disini memberikan nama parade_cnc.
Kemudian importkan untuk database bawaan dari gammu. Sebelumnya kita
extrak terlebih dahulu file mysql.sql.gz yang berada di folder
/usr/share/doc/gammu/examples/sql/mysql.sql.qz. dengan cara:
cd /usr/share/doc/gammu/examples/sql
Computer & Communication Lab Page 11
Kemudian ketikan perintah berikut untuk mengekstrak mysql.sql.gz menjadi
mysql.sql.
gunzip mysql.sql.gz
Kemudian import mysql.sql seperti berikut pada database yang telah dibuat tadi.
Jika sudah berhasil import maka hasilnya akan seperti berikut:
13. Setelah database kita persiapkan, saatnya konfigurasi agar dapat terhubung.
Langkah awal buat file /etc/gammurc. Anda dapat mengetikkan perintah
gedit /etc/gammurc
Kemudian isikan konfigurasi berikut ini.
[gammu]
Port = /dev/ttyUSB1
Connection = at19200
Logfile = /etc/gammulog
Logformat = textall
Use_locking = yes
Keterangan : semua konfigurasi diatas menyesuaikan port dan jenis
connectionya. Untuk jenis connectionya tergantung devicenya.
Computer & Communication Lab Page 12
Karena tujuan kita akan menghubungkan gammu dengan Mysql, Maka kita
mengedit file /etc/gammu-smsdrc. Lakukan perintah berikut.
gedit /etc/gammu-smsdrc
Kemudian isikan seperti berikut:
[gammu]
Port = /dev/ttyUSB1
Connection = at19200
[smsd]
Service = sql
Logfile = /etc/smsdlog
Debuglevel =255
User = root
Password = paradecnc
PC = localhost
Database = parade_cnc
Driver = native_mysql
Kemudian save, dan untuk menjalankan service gammu-sms hanya perlu
mengetikkan perintah berikut pada terminal.
gammu-smsd
Kemudian lakukan test dengan mengirimkan sms ke no modem atau device lain
yang dipakai untuk sms gateway. Jika semua konfigurasi dan pensetingan telah
sesuai maka akan berhasil dan sms yang masuk akan langsung masuk kedalam
database parade_cnc pada table inbox.
Computer & Communication Lab Page 13
Trigger MySQL
Arti trigger sendiri merupakan suatu pemicu. Misalkan jika ada data masukkan di tabel
inbox maka akan lakukan perintah x. Banyak sekali manfaat dari trigger sendiri, biasanya
trigger digunakan untuk pembackup’an data. Dilain kasus,dengan memanfaatkan trigger
sendiri kita bisa membuat sebuah aplikasi sms auto replay yang cukup baik. Mari kita coba,
Contoh 1: Membuat sms auto replay untuk level 1.
Format -> Ketik CNC<SPASI>DAFTAR
Analoginya sendiri, ketika ada inputan atau sms masuk kedalam tabel inbox maka sistem
akan membaca. Jika tidak ada format pesan yang sesuai dengan apa yang dimiliki program
yaitu CNC<spasi>DAFTAR maka akan dibalas “Maaf Format sms anda salah! Cnc_crew”.
CREATE TRIGGER cnc1
AFTER INSERT ON inbox
FOR EACH ROW BEGIN
if SUBSTRING(new.TextDecoded,5,10)=’DAFTAR’ then
INSERT INTO
outbox ( DestinationNumber, Coding, TextDecoded, CreatorID )
VALUES ( new.SenderNumber, ‘Default_No_Compression’,’Hore Format anda
benar’, ’1′);
else
INSERT INTO
outbox ( DestinationNumber, Coding, TextDecoded, CreatorID )
VALUES ( new.SenderNumber, ‘Default_No_Compression’, ‘Maaf format sms
Anda salah! Cnc_Crew Ketik CNC<spasi>DAFTAR’, ’1′);
end if;
END$$
Computer & Communication Lab Page 14
Keterangan:
CREATE TRIGGER cnc1 Membuat trigger di MySQL untuk nama triggernya cnc1.
Untuk mengecek trigger apa saja yang telah dibuat di MySQL tinggal ketikan.
show triggers
SUBSTRING(new.TextDecoded,5,10)=’DAFTAR’ mengecek table inbox untuk
field TextDecoded untuk isi dar karakter ke 5 sampai 10 apakah berisi DAFTAR. Jika
benar maka akan memasukkan ke table outbox.
END$$ Merupakan sebuah pembatas.
Langkahnya sebagai berikut:
Copy script diatas kedalam field sql yang ada di MySQL. Tampilan seperti dibawah ini.
Langkahnya sebagai berikut:
1. Copy script diatas kedalam field sql yang ada di MySQL. Tampilan seperti dibawah
ini.
2. Kemudian klik go.
3. Coba untuk megirimkan sms ke nomor modem atau device yang anda pakai sebagai
sms gateway.
Contoh 2: Membuat sms untuk cek nilai sesuai NIM mahasiswa.
Format-> ketik CNC<spasi>NIM
Analoginya, mahasiswa ingin melihat nilainya dengan menggunakan sms gateway. Dan
ketika tidak sesuai format akan dibalas “Maaf Format sms anda salah! Cnc_crew”.
CREATE TRIGGER cnc2
AFTER INSERT ON inbox
FOR EACH ROW BEGIN
if SUBSTRING(new.TextDecoded,1,3)=’CNC’ then
INSERT INTO
Ketikan script diatas pada field ini.
Berikan Delimiters $$
Computer & Communication Lab Page 15
outbox ( DestinationNumber, Coding, TextDecoded, CreatorID )
VALUES ( new.SenderNumber, ‘Default_No_Compression’, (
SELECT nilai from tbl_nilai WHERE nim =
SUBSTRING(new.TextDecoded,5,13)), ’1′);
else
INSERT INTO
outbox ( DestinationNumber, Coding, TextDecoded, CreatorID )
VALUES ( new.SenderNumber, ‘Default_No_Compression’, ‘Maaf format sms
Anda salah!. Cnc_crew’, ’1′);
end if;
END$$
Jangan lupa untuk membuat terlebih dahulu tbl_nilai, kemudian mencoba untuk
memasukan nim dan nilai.
Contoh 3: Membuat sms autoreplay dengan perintah insert ke tabel.
Untuk kasus kali ini, kita kan menginputkan nilai di tbl_nilai dengan cara mengirimkan sms.
Format -> ketik INPUT#NIM#NILAI
Dengan , jika perintah format tidak sesuai maka akan mengirimkan pesan “Maaf Format
sms anda salah! Cnc_crew”.
Sebelumnya kita akan memasukkan fungsi pemecah untuk memecah sms dengan “#”
sebagai parameternya.
CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
Computer & Communication Lab Page 16
pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');
Untuk trigger input nilainya dapat dilihat dibawah ini:
CREATE TRIGGER cnc3
AFTER INSERT ON inbox
FOR EACH ROW BEGIN
if SUBSTRING(new.TextDecoded,1,5)='INPUT' then
INSERT INTO tbl_nilai (nim,nilai)
VALUES
(SPLIT_STR(new.TextDecoded,'#','2'),
SPLIT_STR(new.TextDecoded,'#','3'));
INSERT INTO
outbox( DestinationNumber, Coding, TextDecoded, CreatorID )
VALUES (new.SenderNumber,
'Default_No_Compression',concat(‘Nilai’,SPLIT_STR(new.TextDecoded,'#',
'2'),' telah berhasil diinputkan '),'1');
else
INSERT INTO
outbox ( DestinationNumber, Coding, TextDecoded, CreatorID )
VALUES ( new.SenderNumber, 'Default_No_Compression', Maaf Format sms
anda salah! Cnc_crew ', '1');
end if;
END$$ Keterangan:
SPLIT_STR(new.TextDecoded,'#','3') Memecah Field TextDecode dengan
parameter “#” sebagai pembatasnya, dan akan mengambil nilai pada kata ke 3.
Misal untuk INPUT#611090013#80. Maka kata ke 3 yaitu 80.
concat(‘Nilai’,SPLIT_STR(new.TextDecoded,'#','2'),' telah
berhasil diinputkan ') Concat adalah perintah untuk menggabungkan antara
dua variabel menjadi satu bagian. Pada script ini menggabungkan TextDecoded
yang telah dipecah sehingga hanya diambil kata ke 2 kemudian digabungkan dengan
kalimat “telah berhasil diinputkan”.
Contoh: INPUT<spasi>611090013<spasi>80
Maka sistem akan replay sms dengan isi pesan:
Nilai 611090013 telah berhasil diinputkan.
Computer & Communication Lab Page 17
Referensi:
o Agus Saputra. 2011. Trik Kolaborasi Codeigiter & Jquery. Yogyakarta: Lokomedia.
o http://koder.web.id.
o http://wammu.eu/docs/
o http://codeigniter.com/ user_guide.
o http://jagoan-php.blogspot.com/2011/11/cara-install-apache-mysql-php-dan.html.
o http://auliaafifhuda.wordpress.com/2011/01/08/auto-reply-sms-gateway.
o