Home > World Of ICT > SMS Gateway With autoreply, implement for Password Reminder base SMS write on PHP

SMS Gateway With autoreply, implement for Password Reminder base SMS write on PHP


Lanjut Ngoprek, kali ini  membuat aplikasi SMS-Gateway dengan fasilitas auto reply sehingga bisa diimplementasikan sebagai system reminder berbasis SMS bersifat multipurpose problem solving tetap dengan backend aplikasi Gammu dan PHP berjalan dibelakangnya.😀 . Rencananya akan dicoba secara bertahap mulai dari reminder account pengguna layanan proxy, email, hotspot, atau SIAKAD atau LEMLIT (repot memang kalau belum masuk ke single sign on – padahal sdh saya coba usulkan ke yg berwenang untuk hal ini ).

Kondisi  replying system  yg dinginkan adalah sebagai berikut;

  • Hanya user dengan  login valid yang dijawab sistem.
  • User sebelumnya harus sudah mendaftarkan nomor Handphonenya agar  bisa menggunakan layanan ini.
  • Penggabungan antara Matching source No_HP dan ID_Login dibuat sebagai filternya.
  • Informasi yang dikirimkan ke No_HP user adalah informasi account saat ini.

Mari kita buat sample data  dengan membuat tabel baru kedalam database default gammu (jika belum jelas  bentuk databasenya seperti apa bisa lihat disini )

SQL Code
 CREATE TABLE IF NOT EXISTS `proxy` (
   `no_hp` varchar(50) NOT NULL,
   `login` varchar(10) NOT NULL DEFAULT '',
   `password` varchar(20) DEFAULT NULL,
   `expired_date` varchar(60) DEFAULT NULL,
   PRIMARY KEY (`no_hp`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

PHP CODE  autoreply.php

<html>
 <head>
 <!-- refresh script SMS RETRIEVE AUTO REPLY setiap 10 detik -->
 <meta http-equiv="refresh" content="10; url=<?php $_SERVER['PHP_SELF']; ?>">
 </head>
 <body>
 <h1>SMS-GATEWAY Server Is Running....</h1>
 <?php
 //Open Connections to Mysql Server
 mysql_connect("localhost", "root", "xxxx");
 mysql_select_db("gammu");

// query  membaca SMS yang belum diproses
 $query = "SELECT * FROM inbox WHERE Processed = 'false'";
 $hasil = mysql_query($query);
 while ($data = mysql_fetch_array($hasil))
 {
   // membaca ID SMS
   $id = $data['ID'];
  // membaca no pengirim
   $noPengirim = $data['SenderNumber'];
  // membaca pesan SMS dan mengubahnya menjadi kapital
   $msg = $data['TextDecoded'];
  // proses parsing
   // memecah pesan berdasarkan karakter <spasi>
   $pecah = explode(" ", $msg);
  // jika kata terdepan dari SMS adalah 'login' maka cari login  User
   if ($pecah[0] == "login")
   {
      // baca login  dari text  SMS
      $nim = $pecah[1];
     // cari login berdasarkan entri login di sms masuk dan digabung dengan no Pengirim
      $query2 = "SELECT * FROM proxy WHERE  (login='$nim' AND no_hp='$noPengirim')  ";
      $hasil2 = mysql_query($query2);
     // cek bila data Login tidak ditemukan
      if (mysql_num_rows($hasil2) == 0) $reply = "No HP Atau Login anda Tidak Dikenali";
      else
      {
         // bila nilai ditemukan maka
         $data2 = mysql_fetch_array($hasil2);
         $nilai = $data2['login'];
         $nilai4 = $data2['password'];
         $nilai5 = $data2['expired_date'];
         $note    = 'Reminder Untuk User Anda : ';
         $note2    = ' Password:';
         $note3    = ' Masa Aktif:';
     }
   }
   else $reply = "Maaf perintah  Anda salah";
  // Buat SMS balasan ke pengirim Pesan
  $query3 = "INSERT INTO outbox(DestinationNumber, TextDecoded) VALUES ('$noPengirim',  '$note$nilai$note2$nilai4$note3$nilai5')";
   $hasil3 = mysql_query($query3);
  // ubah nilai 'processed' menjadi 'true' untuk setiap SMS yang telah diproses agar SMS tidak direply lagi oleh Mesin
  $query3 = "UPDATE inbox SET Processed = 'true' WHERE ID = '$id'";
   $hasil3 = mysql_query($query3);
 }
 ?>
</body>
 </html>

Terakhir jalan kan  script php   autoreply.php yang sudah dibuat tadi, otomatis setiap 10 detik script akan membaca apakah ada sms masuk didalam tabel inbox kemudian membaca flag sudah diproses atau belum, jika belum diproses system akan memprosesnya kemudian  mengirimkan jawaban berupa sms informasi login ke nomor pengirim.

Demikian Tulisan singkat ini dibuat . as reminder.

  1. March 6, 2012 at 5:46 am

    Saya sudah mengikuti tapi kok autoreply nya isinya hanya balasan kosong ya ?
    apa yang salah?

    • March 6, 2012 at 5:56 am

      @Fadly, saya pernah juga begitu, ada kemungkinan balasan SMS anda tadi lebih dari 160 karakter

  2. March 6, 2012 at 6:24 am

    terus saya harus bagaimana?
    padahal saya cuma sms test . tapi dapat balasan hanya kosong .
    mohon bantuannya

    • March 7, 2012 at 2:05 am

      pada saat query php mengirimkan sms, coba baca log smsd nya , apakah ada informasi text balasan sms ??

  3. March 15, 2013 at 8:55 am

    maaf itu untuk tabel “proxy” disatukan ke database gammu ya….cz mysql_select_db nya “gammu”…
    bisa ga ya klo misal tabel “proxy” nya di database lain…trus gmn sintak mysql_select_db nya? apa dibuat dua,,,,,,,mohon jawabannya thanx

  4. July 7, 2015 at 6:50 am

    Can I simply say what a comfort to find someone who really knows what they are
    discussing over the internet. You definitely realize how to bring a problem to light and make it important.
    More people should look at this and understand this side of your story.

    I was surprised you aren’t more popular since you surely have the gift.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: