Pages

Search This Blog

Auto Reply SMS Gateway Gammu dengan PHP


Auto Reply SMS Gateway Gammu dengan PHP mungkin sudah banyak yang nulis, tapi karena ada permintaan dari teman juga yang sedang menyelesaikan skripsi tentang SMS Gateway, saya akhirnya memutuskan untuk menulisnya. Mari kita mulai.

Pengguna Software SMS, salah satunya gammu adalah Sofware SMS yang simple dan paling banyak digunakan oleh beberapa pengembang. Mungkin karena lisensinya yang Free dan mudah digunakan.

Gammu berbasis pada command line text, itu yang agak merepotkan. Jadi pengguna harus masuk run windows atau terminal pada linux sebelum berkutat dengan sms gammu. Baik untuk mengirim atau pun membaca sms.

Namun, sudah banyak tutorial mengenai mengirim dengan gammu dan PHP. Bahkan mungkin Auto Reply SMS Gateway Gammu dengan PHP juga sudah banyak. Tapi saya ingin menceoba menggabungkannya dengan jQuery AJAX.

Ini Screenshotnya:


Konsepnya sih sama saja. Ambil data dari pesan masuk/table inbox, parsing pesan,kemudian masukkan pesan ke table outbox. Namun kendalanya adalah jika sms dilakukan secara manual,artinya melakukan event klik atau lainnya dari interface serasa kurang efektif. Oleh karena itu Auto Reply SMS Gateway Gammu dengan PHP dibutuhkan.

Saya bekerja dengan LINUX UBUNTU 10.10, XAMPP for LINUX 1.7.7 dan mysql.sql gammu 1.9.0.0. Mari kita mulai.

Pertama saya asumsikan Anda sudah menginstall gammu, modem sudah terpasang baik dan table mysql sudah ada di Server local.
Sekarang kita buat file dengan nama index.php.

<?php
mysql_connect("localhost","root","");
mysql_select_db("sms");
?>
<html>
    <head>
    <title>Auto Reply</title>
</head>
<body>
<table>
    <tr class="first">
        <td>Pesan</td>
        <td>Pengirim</td>
        <td>Status Kirim</td>
    </tr>
<?php

$query = mysql_query("SELECT * FROM inbox WHERE Processed='true'");
while($data = mysql_fetch_object($query)){
?><tr>
    <td><?php echo $data->Text; ?></td>
        <td><?php echo $data->SenderNumber; ?></td>
        <td><?php echo $data->Processed; ?></td></tr>
<?php
} 

?>
</body>
</html>

pada file tersebut kita akan menampilkan pesan yang sudah terkirim/diproses. Sekarang buat file untuk memproses pesannya.Kita buat dengannama auto_kirim.php.

<?php
mysql_connect("localhost","root","");
mysql_select_db("sms");
$query = mysql_query("SELECT * FROM inbox WHERE Processed='false'");
while($data = mysql_fetch_object($query)){

    //Disini letak Parsing Data
    //Anda bisa tambahkan  parsing Data Anda Sendiri
    $text = "Pesan Anda adalah ".$data->Text;
    //==============================================
    
    //Masukkan pesan ke Table outbox
    $q2 = mysql_query("INSERT INTO outbox(DestinationNumber, TextDecoded, CreatorID) VALUES ('".$data->SenderNumber."','".$text."','Gammu')");

    //Update Pesan Terkirim pada table inbox
    $q3 = mysql_query("UPDATE inbox SET Processed = 'true' WHERE ID = '".$data->ID."'");

    //output berupa row pada table
    ?>
    <tr>
        <td><?php echo $data->Text; ?></td>
        <td><?php echo $data->SenderNumber; ?></td>
        <td>true</td>
    </tr>
    <?php
} 
?>

Perbarui index.php dengan AJAX dan jQuery:

<?php

mysql_connect("localhost","root","");
mysql_select_db("sms");
?>
<html>
    <head>
    <title>Auto Reply</title>
<script language="javascript" src="jquery-1.7.2.min.js"></script>
<script>
$(document).ready(function(){
    autoreplay();
});

function autoreplay(){
    $.ajax({
        url : 'auto_kirim.php',
        success : function(msg) {
            $('tr.first').after(msg).fadeIn(300);
        }
    });
    setTimeout("autoreplay()",10000);
}
</script>
</head>
<body>
<table>
    <tr class="first">
        <td>Pesan</td>
        <td>Pengirim</td>
        <td>Status Kirim</td>
    </tr>
<?php

$query = mysql_query("SELECT * FROM inbox WHERE Processed='true'");
while($data = mysql_fetch_object($query)){
?><tr>
    <td><?php echo $data->Text; ?></td>
        <td><?php echo $data->SenderNumber; ?></td>
        <td><?php echo $data->Processed; ?></td></tr>
<?php
} 

?>
</body>
</html>

Sekarang tinggal jalankan. Jika ada SMS masuk maka akan langsung diproses tanpaharus refresh ataupun klik.


No comments:

 

Most Reading