Aplikasi Kirim SMS dengan PHP dan Gammu

SMS Gateway saat ini bisa dikatakan sudah menjadi sebuah kebutuhan dalam sebuah aplikasi. Lihat saja facebook, twitter, line, whatsapp, gmail dan aplikasi-aplikasi sosial media yang lain hampir semua menggunakan nomor handphone dan media sms untuk melakukan pendfaftaran dan verifikasi pendaftaran. Hal ini memeang lebih efektif karena kepemilikan sebuah Handphone yang sifatnya personal. Selain aplikasi sosmed, Aplikasi internet banking juga menggunakan media sms untuk memvalidasi transaksi yang dilakukan nasabahnya, Anggap saja seorang nasabah ingin melakukan transfer, maka kode mToken akan dikirimkan melalui sms ke nomor handphone nasabah yang bersangkutan. Pemberitahuan/Notifikasi juga dikirimkan melalui sms.

Aplikasi SMS Gateway saat ini sudah banyak dikembangkan oleh developer. salah satunya implementasinya yang cukup dikenal orang adalah Gammu. Gammu merupakan sebuah aplikasi yang dikembangkan oleh michal chihar, aplikasi ini dapat digunakan untuk mengelola fungsi-fungsi yang ada pada modem, handphone dan perangkat sejenis lainnya. Adapun fungsi yang dapat dikelola diantaranya adalah fungsi pengiriman sms, manajemen kontak dan sebagainya. Kita dapat memanfaatkan gammu untuk berkomunikasi dengan perangkat pengirim sms. Gambar dibawah ini adalah cara kerja gammu.

Aplikasi Kirim SMS dengan PHP dan Gammu

Gammu, dapat diintegrasikan dengan berbagai bahasa pemrograman termasuk PHP, Java, Python, Pascal/Delphi atau VB karena pada dasarnya Gammu adalah sebuah service pada komputer yang berjalan dibalik layar untuk berkomunikasi dengan perangkat. Jadi untuk dapat menggunakan gammu dengan maksimal anda harus memiliki perangkat pengirim sms yang sudah terhubung ke komputer. saya menyarankan anda menggunakan modem. pada contoh ini saya menggunakan modem huaweii. Sebelum kita mulai mengkonfigurasi gammu, silahkan download gammu disini. dan databasenya disini. Setelah selesai silahkan install gammu dikomputer anda.

Sampai langkah ini, kita sudah berhasil menginstall gammu di windows. kita perlu melakukan sedikit konfigurasi agar gammu dapat berjalan dengan baik. Pastikan modem anda sudah terhubung ke komputer.

1. Edit File gammurc yang ada di c:\gammu\gammurc

; isikan nomor port di bawah ini (lihat di device manager PORTS (COM & LPT))
port = com9: 

; isikan jenis connection di bawah ini (lihat di website gammu (http://wammu.eu/phones/))
connection = at

Lakukan pengujian dengan mengetikan gammu identify. Hal ini bertujuan untuk mengetes koneksi perangkat pengirim sms dengan gammu. jika tampilan yang muncul seperti dibawah ini, maka gammu sudah terhubung dengan modem.

Aplikasi Kirim SMS dengan PHP dan Gammu

2. Buat sebuah database lalu import database gammu yang sudah download sebelumnya. Pada contoh disini yang akan digunakan adalah mysql.

3. Langkah berikutnya adalah mengedit konfigurasi smsdaemon. Hal ini bertujuan untuk konfiguasi gammu dengan database yang telah dibuat pada step 2. isi file konfigurasi file c:\gammu\smsdrc adalah sebagi berikut.

[gammu]
# isikan no port di bawah ini
port = com9:
# isikan jenis connection di bawah ini
connection = at 

# -----------------------------
# Konfigurasi SMS Daemon
# -----------------------------

[smsd]
service = mysql
logfile = smsdlog
debuglevel = 0
phoneid = PonselGammu
commtimeout = 10
sendtimeout = 10
deliveryreport = no
PIN = 1234

# -----------------------------
# Konfigurasi koneksi ke MySQL
# -----------------------------
pc = localhost
# isikan user untuk akses ke MySQL
user = root
# isikan password user untuk akses ke MySQL
password = 
# isikan nama database untuk Gammu
database = gammu

Sampai langkah ini kita sudah selesai melakukan konfigurasi gammu. Sebenarnya dengan konfigurasi ini saja, kita sudah bisa mengirim sms menggunakan gammu teknik ini disebut dengan sms inject. anda dapat mengujinya dengan menggunakan perintah sebagai berikut pada command prompt. 

gammu sendsms TEXT 087765927xxx -text "ISI SMSNYA"

Berbekal informasi tersebut, dengan menggunakan PHP, Perintah gammu tersebut dapat kita terapkan menggunakan fungsi exec(), shell_exec(). contohnya menggunakan source code sederhana ini. 

<form method="post" action="">
No. HP Tujuan : <input type="text" name="hp" value="+62"><br>
Pesan : <textarea name="pesan"></textarea><br>
<input type="submit" name="kirim" value="Kirim SMS">
</form>

<?php
if (isset($_POST['kirim'])){
$hp = $_POST['hp'];
$pesan = $_POST['pesan'];
exec('c:gammugammu sendsms TEXT '.$hp.' -text "'.$pesan.'"');
}

?>

Selain menggunakan teknik sms inject diatas, ada cara lain untuk mengirim sms menggunakan gammu yaitu dengan menginputkan data ke tabel outbox. namun demikian, hal ini dapat berjalan dengan baik hanya jika service gammu sudah berjalan. Untuk manajemen service gammu termasuk menginstall, uninstall, menjalankan dan menghentikan digunakan perintah dibawah ini. Jalankan perintah dibawah ini menggunakan command prompt didalam direktori gammu

; Install Service
gammu-smsd -c smsdrc -i

; Jalankan Service
gammu-smsd -c smsdrc -s

; Uninstall Service
gammu-smsd -u

; Stop Service
gammu-smsd -k

Seperti yang telah saya jelaskan diatas, bahwa jika smsdaemon sudah berjalan (service gammu), maka setiap sms yang masuk ke nomor yang ada dimodem/handphone akan otomatis dipindahkan ke tabel inbox database gammu, sedangkan untuk mengirim sms, dilakukan dengan menginputkan data ke tabel outbox. Jika source code kirim sms dengan teknik sms inject diatas dimodifikasi maka kurang lebih hasilnya seperti berikut

<?php 
$link = mysqli_connect("localhost","root","password","namadb");
?>
<form method="post" action="">
No. HP Tujuan : <input type="text" name="hp" value="+62"><br>
Pesan : <textarea name="pesan"></textarea><br>
<input type="submit" name="kirim" value="Kirim SMS">
</form>

<?php
if (isset($_POST['kirim'])){
$hp = $_POST['hp'];
$pesan = $_POST['pesan'];
mysqli_query($link,"INSERT INTO outbox (DestinationNumber,TextDecoded) VALUES ('".$hp."','".$pesan."')");
}

?>

Untuk melihat sms terkirim silahkan lihat di tabel sentitems, untuk melihat sms masuk cek di tabel inbox. Mari Berdiskusi jika masih ada yang kurang jelas. happy coding. :)

Share this

Related Posts

Latest
Previous
Next Post »

1 comments:

comments

bantu kami untuk lebih baik; jika ada hal yang kurang jelas atau broken link silahkan masukan komentar anda kami akan segera menanggapi dan memperbaikinya. login ke akun gmail anda untuk menampilkan form komentar.