Pendahuluan
SMS Gateway adalah
sebuah gerbang yang menghubungkan antara komputer dengan client melalui
SMS, jadi secara garis besar, SMS Gateway dapat digambarkan seperti
gambar di atas.
Client secara tidak
langsung berinteraksi dengan aplikasi / sistem melalui SMS Gateway. Saat
melakukan SMS, maka informasi terpenting yang diperlukan adalah nomor
tujuan dan pesan, maka itulah yang sebenarnya diolah oleh SMS Gateway.
Contoh aplikasi SMS
Gateway dalam penerapannya di dunia akademik saat ini adalah pengumuman
beasiswa, pengumuman ruang tes, dan lain sebagainya.
Pengumuman-pengumuman tersebut dilakukan secara otomatis satu arah oleh
sistem. Saat informasi internal sudah terkumpul, maka sistem akan
melakukan penulisan ke dalam database yang selanjutnya diolah oleh gammu
agar dapat dikirimkan kepada nomor yang bersangkutan.
Berkas-berkas
pengumuman berupa file spreadsheet ataupun file-file terformat lainnya,
jika berkas belum berupa file terformat maupun berkas yang masih berupa
kertas berisi tulisan, maka masih menjadi tugas kami untuk
men-digitalkan-nya, agar dapat dibaca oleh aplikasi pemgirim SMS.
Aplikasi tidak hanya membaca dari berkas-berkas digital, tetapi juga
dapat membaca informasi dari database BAAK.
Entitas
Aplikasi Pengirim SMS
dapat berupa apa
saja asalkan memiliki kemampuan untuk membaca-tulis database, dan
membaca berkas digital yang sudah disebutkan di atas. Dalam kasus ini,
penulis menggunakan PHP untuk membangun aplikasi pengirim SMS. Kenapa
PHP, karena menurut penulis, bahasa PHP lebih mudah dicerna dan memiliki
banyak fungsi bahkan untuk background process (daemon) sekalipun
(tanpa webserver), PHP mampu. Jadi menurut penulis PHP adalah bahasa
yang paling fleksibel baik untuk web-based maupun program lepas.
Database
dapat berupa apa
saja, dalam penjelasannya, gammu dapat menggunakan database MySQL,
PostgreSQL, bahkan gammu juga menyertakan libdbi untuk mengakses
database seperti SQLite, Ms.SQL Server, Sybase, Firebird, dll. Penulis
menggunakan database MySQL karena memang belum familiar dengan yang
lain.
Dalam database SMS
Gateway yang digenerate otomatis oleh Gammu, berisi layaknya aplikasi
SMS di handphone anda, terdapat inbox, outbox, serta sentitem.
GAMMU
adalah sebuah
aplikasi cross-platform yang digunakan untuk menjembatani /
mengomunikasikan antara database SMS Gateway dengan sms devices.
Aplikasi Gammu berupa daemon yang berjalan secara background. Setiap
saat, gammu memonitor sms devices dan database sms gateway. Saat ada sms
masuk ke sms devices, maka gammu langsung memindahkannya ke dalam inbox
dalam database sms gateway. Sebaliknya saat Aplikasi Pengirim SMS
memasukkan sms ke dalam outbox dalam database sms gateway, maka gammu
mengirimkannya melalui sms devices, dan memindahkan sms ke sentitem
dalam database.
SMS Devices
merupakan alat
pengirim SMS yang berupa modem ataupun handphone. Agar dapat digunakan
dengan semestinya, maka devices ini harus memenuhi syarat-syarat
tertentu agar dapat terintegrasi dengan gammu.
Client
adalah anda yang
sudah menerima informasi pengumuman beasiswa, pengumuman ruang, dan
sebagainya. Semua informasi yang sampai ke tangan anda dilakukan oleh
sistem karena tidak mungkin mengirimkan SMS ke ribuan mahasiswa secara
manual.
Ruang Lingkup
Dalam pengimplementasian, penulis menggunakan
OS : Ubuntu Lucid 10.04,
MySQL : Ver 14.14 Distrib 5.1.41, for debian-linux-gnu (x86_64) using readline 6.1,
Modem : Wavecom GSM Modem M1306B
Instalasi dan Konfigurasi
Gammu adalah
aplikasi open source multi-platform, artinya gammu dapat dijalankan di
sistem operasi yang bermacam-macam. Hal pertama yang harus dilakukan
adalah mendapatkan paket gammu dari website http://wammu.eu/download/gammu/ dan lakukan instalasi seperti pada umumnya. Setelah proses instalasi selesai, pasangkan modem di port USB.
Hal terpenting dari
gammu adalah file konfigurasi, contoh lengkap file konfigurasi
disertakan dalam manual dan website gammu. Ada 2 file konfigurasi untuk 2
sub-aplikasi gammu. Aplikasi tersebut adalah :
-
-
$ gammu
-
$ gammu-smsd
-
Perintah no.1
digunakan untuk melakukan baca tulis modem secara manual, sedangkan
perintah no.2 adalah aplikasi background untuk memonitor database.
Perintah no.1 tidak banyak digunakan, dalam ruang lingkup penulis
menggunakannya sekedar untuk mendeteksi modem.
File konfigurasi untuk aplikasi no.1 bisa bernama apa saja, untuk memudahkan, diberi nama ./gammurc
Isi dari file ./gammurc adalah :
[gammu]
port = /dev/ttyUSB0
connection = at115200
port : letak modem,
connection : menentukan jenis koneksi yang diinginkan. Untuk penjelasan
rinci dapat dilihat di manual maupun website gammu.
Deteksi modem dan integrasinya dengan gammu menggunakan perintah : $ sudo gammu -c ./gammurc identify dan akan dihasilkan :
Manufacturer : Wavecom
Model : unknown (MULTIBAND 900E 1800)
Firmware : 641b09gg.Q2403A 1320676 061804 14:38
IMEI : 012345678901234
SIM IMSI : 510015300171610
Jika sudah muncul seperti di atas, maka modem anda sudah terintegrasi dengan gammu.
Untuk menjalankan
gammu-smsd yang merupakan aplikasi monitor database, maka kita siapkan
dulu database untuk gammu. Persiapkan user dan database dengan nama
tertentu, sesuaikan struktur tabel yang ada menurut http://wammu.eu/docs/manual/smsd/mysql.html
Setelah MySQL
tersesuaikan dengan struktur gammu, atur file konfigurasi untuk aplikasi
background (aplikasi no.2). File konfigurasi kita namakan ./smsdrc dan berisi :
[gammu]
port = /dev/ttyUSB0
connection = at115200
[smsd]
service = MYSQL #database
logfile = /var/log/smsdlog #letak log file
debuglevel = 1 #level debugging, semakin tinggi semakin dalam
commtimeout = 15
sendtimeout = 15
checksecurity = 0
user = user #user database
password = password #password database
pc = localhost #alamat database
database = sms #nama database
Untuk section [gammu] kita sesuaikan seperti yang ada di dalam file ./smsdrc
Section [smsd] adalah pengaturan bagaimana aplikasi background berjalan. Penjelasan lebih lanjut dapat dilihat di manual.
Setelah database dan file konfigurasi tersesuaikan, maka jalankan aplikasi dengan menggunakan perintah : $ gammu-smsd -c ./smsdrc
Untuk mengirim atau
membaca SMS yang masuk, maka operasi database yang berperan. Sebagai
contoh untuk mengirim SMS, maka dilakukan query :
INSERT
INTO `sms`.`outbox` (`UpdatedInDB`, `InsertIntoDB`, `SendingDateTime`,
`Text`, `DestinationNumber`, `Coding`, `UDH`, `Class`, `TextDecoded`,
`ID`, `MultiPart`, `RelativeValidity`, `SenderID`, `SendingTimeOut`,
`DeliveryReport`, `CreatorID`) VALUES (CURRENT_TIMESTAMP, '0000-00-00
00:00:00', '0000-00-00 00:00:00', NULL, '08199999999999',
'Default_No_Compression', NULL, '-1', 'coba', NULL, 'false', '-1', NULL,
'0000-00-00 00:00:00', 'default', '');
dimana `DestinationNumber` adalah nomor yang dituju dan `TextDecoded` adalah isi SMS
Untuk membaca SMS yang masuk, maka dilakukan query :
SELECT * FROM `inbox`
Untuk integrasi
lebih lanjut, semisal pengiriman SMS secara masal, ataupun menyeleksi
SMS masuk, membuat SMS autoreply, bahkan mengintegrasikan dengan
aplikasi yang sudah ada. Semua tertuju pada database gammu, sekarang
silahkan anda berkreasi dengan aplikasi berbahasa apa saja untuk
mengutak atik database sehingga terbentuk aplikasi SMS terintegrasi.
Demikian penjelasan singkat mengenai SMS Gateway menggunakan Gammu dan MySQL.
Terima Kasih dan selamat berkreasi.
Sumber:
Tidak ada komentar:
Posting Komentar