SMS Gateway Menggunakan Gammu Dan MySQL
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 /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 :
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 = at 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 :38
IMEI : SIM IMSI : 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 /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 = at [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, ‘ :00:00’, ‘ :00:00’, NULL, ‘ ‘, ‘Default_No_Compression’, NULL, ‘-1’, ‘coba’, NULL, ‘false’, ‘-1’, NULL, ‘ :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:
/gammu/
/
/
Ramadhika A,
Programmer Sistem Informasi Manajemen
UBAYA 2012