-
Tips blog Cara Membuat SMS Gateway untuk Pemula Dengan Gammu dan
PHP Tips blog Cara Membuat SMS Gateway untuk Pemula Dengan Gammu
dan PHP
Sebelumnya saya sudah membuat aplikasi SMS Gateway dengan gammu
yaitu Aplikasi Reservasi Klinik Rumah Sakit. Sekarang saya akan
menjelaskan bagaimana cara membuat SMS Gateway sendiri dengan Gammu
dan PHP.
Yang perlu dipersiapkan adalah :1. Local WebServer seperti XAMPP
, AppServ , WAMP 1. Aplikasi Gammu, saya memakai OS Windows karena
kebanyakan orang pakai Sistem Operasi ini2. Modem Plug n Play
(Modem GSM,Modem CDMA)
3. Sebuah kartu GSM/CDMA yang sudah terisi pulsa ( kalau tidak
ada pulsa mau ngapain? )4. Sedikit mengetahui pemrograman PHPHanya
itu? ya benar, hanya itu saja yang diperlukan.
Berikut modul step by step nya :pertama ini, saya akan
menjelaskan bagaimana cara installasi Local WebServer . Saya
memakai XAMPP untuk Local WebServer nya. Apa fungsi Aplikasi
Tersebut ? Local WebServer berfungsi untuk menjalankan perintah PHP
dan MySQL (Database)
Download Aplikasi XAMPP
(versi terbaru saat artikel ini dibuat adalah 1.81 )Setelah di
download, jalankan XAMPP Setup, Jika Parental Control masih aktif ,
anda bisa menonaktifkan fitur tersebut atau klik kanan Setup
tersebut Run As Administrator
-
Klik Next
Pilih komponen yang akan diinstall, rekomendasikan pilihan saya
ini, karena kita akan menginstall komponen yang seperlunya saja
Install komponen Apache,MySQL,PHP,Perl dan PhpMyAdmin dan klik
Next
Pilih folder installasi , rekomendasikan juga di C:\xampp
Uncheck Learn More about BitNami for Xampp
-
Klik Next dan Next.
Setelah anda menginstall xampp , maka untuk password defaul
MySQL adalah :username : rootpassword : (kosong)
Tes Local WebServer bekerja apa tidakBuka browser
(firefox/opera/chrome) lalu ketikkan http://localhostJika Local
WebServer bekerja maka ditampilkan halaman ini
Install Service Xampp agar berjalan pada startup Windows.
Fungsinya agar tidak susah payah menjalankan xampp.
Klik Start Windows (bawah kiri Windows ) cari dan klik submenu
Xampp 1.8.1 pilih XAMPP Control Panel
-
1. Klik Stop Action Apache dan MySQL2. Check Module Service
Apache dan MySQL3. Klik Start Actions Apache dan MySQL
kembaliKeterangan : Jika anda memiliki installasi Local WebServer
lainnya yang terinstall pada Port 80, maka disable terlebih dahulu
atau uninstall sekalian 3:)
Selesai, Xampp akan berjalan otomatis saat Windows Start
Download gammu untuk Windows 32 atau 64 Bit ( Jika Windows anda
versi 64 Bit maka ada folder pada C:\program files (x86) ).
Saya mendownload versi minimal , saat artikel ini dibuat versi
gammu 1.33.0
Buat sebuah folder smsku pada c:\xamp\htdocs
Buka file gammu yang didowload tadi dengan winrar atau tools
compression lainnya. Klik folder bin pada file gammu zip tersebut,
lalu copy gammu yang di dowload tadi ke dalam folder smskudengan
menseleksi semua filenya dan drag ke folder smsku
-
Ok guys, kita udah sampai setengah jalan untuk membuat aplikasi
sms gateway dengan gammu dan php
Setelah 2 artikel sebelumnya, sekarang saya akan memberikan
artikel konfigurasi gammu.Ayo,modem USB dan kartu perdana GSM/CDMA
tadi mana? apa sudah registrasi kartunya dan diisi pulsa? Jika
sudah colokin Modem USB ke USB komputer, dan install paket
drivernyaDi sini saya memakai Modem USB Advance
Cari port modem usbJika modem usb sudah terinstall dengan benar,
maka buka Control Panel -> Device Manager
Buka kategori modem, nah di sana ada berbagai macam driver
modem. Jika anda tidak tahu modem usb mana yang tertera pada
kategori modem tersebut, copot lagi modem dan pasang lagi. Nah
device manager otomatis refresh list driver modem nya. Tahu maksud
saya kan? :D Modem USB saya di sini Global Wireless USB Modem, klik
kanan dan klik properties. Klik tab modem
Modem saya menggunakan Port COM9 dan Maximum Port Speed 921600.
Jadi untuk konfigurasi jenis koneksi/speed maximum modem begini
:
-
at = maximum speed 921600
at115200 = maximum speed 115200
Membuat file Konfigurasi Sekarang masuk ke folder
c:\xampp\htdocs\smskuBuka notepad dan tulis :
[gammu]
# isikan port modem USB di bawah ini
port = COM9:
# isikan jenis connection di bawah ini
connection = at
simpan dengan nama gammurc (tidak pakai extension)
Buat database untuk gammu Buka browser dan ketik
(1)http://localhost/phpmyadminKlik (2)Database, Buat sebuah
database (3) smskudb dan klik (4)Create
Buka kembali file gammu yang di download tadi, buka folder share
-> doc -> gammu -> examples -> sql
Lalu import script mysql.sql dengan membuka
http://localhost/phpmyadmin dan klik database smskudb, klik import
. Klik browse, masuk folder smsku dan pilih mysql.sql dan klik
Done
-
Buat konfigurasi database gammuBuka notepad dan ketik :
[gammu]
# isikan port modem USB di bawah ini
port = COM9:
# isikan jenis connection di bawah ini
connection = at
[smsd]
service = mysql
logfile = smsdlog
debuglevel = 0
# Inisial modem
phoneid = Server1
commtimeout = 10
sendtimeout = 10
PIN = 1234
pc = localhost
# isikan user untuk akses ke MySQL (xampp default root)
user = root
# isikan password user untuk akses ke MySQL (xampp defaul null
)
-
password =
# isikan nama database untuk Gammu
database = smskudb
Lalu simpan dengan nama smsdrc
Tes koneksi modemBuka command prompt/cmd ketikkan seperti
gambar
Jika terbaca maka ada info detail modemnya, berarti konfigurasi
nya sukses :)
Install Services Gammu agar jalan otomatis saat Windows
StartupBuka command prompt/cmd dan ketikkan
Konfigurasi gammu selesai :)
Menulis kode kirim sms dengan phpBuka folder
c:\xampp\htdocs\smsku. Buat sebuah file kirimsms.php lalu tulis
kode berikut :
-
No HP Format +62xxxxxxx
Pesan
-
mysql_connect("localhost","root","");
mysql_select_db("smskudb");Query SQL atau bisa dikatakan
perintah untuk MySQL Database. Lihat kembali
http://localhost/phpmyadmin lalu pilih database smskudb, maka ada
tabel outbox, nah tabel outbox tersebut diperintah untuk
diiskan
$query=mysql_query("INSERT INTO outbox (DestinationNumber,
TextDecoded) VALUES ('".$_POST['nohp']."',
'".$_POST['pesan']."')");Jika query sql telah dijalankan, maka
keluarkan output peringatan, kita sedikit menggunakan kode
javascript :)
if($query)
{
echo "alert('Sukses kirim sms')";
}Nah mudah bukan?
tahap finalnya, setelah bisa mengirimkan sms. Sekarang kita akan
membuat auto reply sms nya. Contoh Format REG#Nama#Tanggal#Jenis
Kelamin#Alamat
Membuat kode auto reply sms
Masuk ke folder c:\xampp\htdocs\smsku dan buat sebuah file
autoreply.php , ketikkan kode sebagai berikut:
-
if($pecah[1] !="" and $pecah[2] !="" and $pecah[3] !="")
{
$today = date("Ymd");
$tgl=date("d M Y");
$newDate = date("Y-m-d", strtotime($d_tgl));
$isinyo="Nomor ".$noPengirim." Nama ".$d_nama." JenisKel
".$d_jk." Alamat ".$d_alamat;
$query=mysql_query("INSERT INTO outbox (DestinationNumber,
TextDecoded) VALUES ('".$noPengirim."', '".$isinyo."')");
}else{
$query=mysql_query("INSERT INTO outbox (DestinationNumber,
TextDecoded, CreatorID) VALUES ('".$noPengirim."', 'Gagal
Registrasi. Format : REG#Tanggal#Nama#PRIA/WANITA#Alamat')");
}
}else{
$query=mysql_query("INSERT INTO outbox (DestinationNumber,
TextDecoded) VALUES ('".$noPengirim."', 'Gagal Registrasi.
Format : REG#Tanggal#Nama#PRIA/WANITA#Alamat')");
}
$query3 = "UPDATE inbox SET Processed = 'true' WHERE ID =
'$id'";
mysql_query($query3);
}
?> Keterangan :Query Inbox , melakukan pencarian data inbox
yang masuk dalam modem USB dan tabel inbox
$query = "SELECT * FROM inbox WHERE Processed = 'false'";
$hasil = mysql_query($query);Looping data inbox
while($data= mysql_fetch_array($hasil)){Membuat variabel untuk
record data inbox
$id = $data['ID'];
$noPengirim = $data['SenderNumber'];
$msg = strtoupper($data['TextDecoded']);
-
Membagi format berdasarkan karaktek #
$pecah = explode("#",$msg);
$d_tgl=$pecah[1];
$d_nama=$pecah[2];
$d_jk=$pecah[3];
$d_alamat=$pecah[4];Jadi $d_nama adalah isi dari format sms NAMA
yang dikirimkan
Cek format SMS pertama sekali adalah REG dan Cek semua format
SMS
if($pecah[0]=="REG")
{
if($pecah[1] !="" and $pecah[2] !="" and $pecah[3] !="")
{Konversi tanggal php ke mysql
$today = date("Ymd");
$tgl=date("d M Y");
$newDate = date("Y-m-d", strtotime($d_tgl));Setelah terkirim,
maka status inbox tersebut sudah terkirim "true"
$query3 = "UPDATE inbox SET Processed = 'true' WHERE ID =
'$id'";
mysql_query($query3);
Ops, ini belum selesai. SMS Gateway tidak akan respon jika tidak
ada eksekusi terlebih dahulu. Lalu bagaimana caranya ?Buat sebuah
bat script, buka notepad dan ketikkan :
C:\xampp\php\php -f C:\xampp\htdocs\smsku\autoreply.php Simpan
dengan nama daemon.bat (terserah mau apa namanya)Jadi,jika kita
klik daemon.bat, maka semua sms pada tabel inbox yang statusnya
false akan ter-kirim dengan sendirinya. Tapi apakah harus jalankan
daemon.bat setiap kali?Nah, ini yang jadi pertanyaan. Banyak orang
memakai trigger mysql ataupun dengan memakai konfigurasi
runonreceive pada gammu. Namun ada kendalanyaDengan Trigger :Format
SMS tidak bisa dilakukan sesuka hatiDengan runonreceive :Terkadang
saya mencoba malah tidak jalan
Solusi saya ya bikin aplikasi untuk menjalankan daemon.bat
tersebut dengan Visual Basic hahaha..Caranya mudah kok,tapi saya
tidak menjelaskan dengan detail.Buat sebuah project Visual Basic
dan Masukkan Timer dengan Interval 1000 lalu masukkan script pada
Timer :
Private Sub Timer1_Timer()Shell daemon.bat, vbHideEnd Sub
Lalu compile dan buat sebuah start up dengan menitipkan shortcut
pada folder
:C:\Users\NAMAUSER\AppData\Roaming\Microsoft\Windows\Start
Menu\Programs\Startup