Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress | Tutorial Java SE


Produk yang direkomendasikan untuk Anda
Ebook Panduan Praktis SMS Gateway dengan PHP dan Gammu
Butuh modem Wavecom untuk SMS Gateway yang support Gammu dan dapat BONUS?? BELI SEKARANG


Membuat Script SMS Auto Forward dengan PHP


July 17th, 2010 | by rosihanari | Cetak Artikel Cetak Artikel


GampSMS SMS Gateway

Maaf ya.. lama saya gak update lagi nih blog, semoga pengunjung setia blog ini gak berpindah ke lain blog :-) OK deh… pada artikel SMS gateway kali ini, saya akan mencoba memaparkan cara membuat script SMS Gateway yang dapat digunakan untuk melakukan auto forwarding SMS dengan script PHP.

Apa sih auto forwarding SMS itu?? Misalkan Anda memiliki sejumlah nomor hp teman atau member yang jumlahnya banyak sekali, bisa ratusan atau ribuan yang tersimpan di database SMS center. Nah… jika Anda ingin mengirim pesan SMS ke semua nomor tersebut, Anda tinggal kirim SMS ke SMS center yang Anda buat sendiri dengan format pesan misalnya: FWD#PESAN maka otomatis pesan akan diteruskan oleh SMS center ke semua nomor hp yang ada di database.

Kalau sudah paham apa itu SMS Auto Forwarding, bagaimana cara membuatnya? Untuk membuat SMS auto forwarding ini, yang Anda butuhkan adalah PC server yang di dalamnya sudah terinstal Gammu sebagai gateway untuk SMS nya, web server (saya sarankan menggunakan AppServ). Di dalam AppServ ini sudah terdapat Apache sebagai webserver, PHP server dan juga mysql. Oya sampai lupa, untuk keperluan sms gateway ini Anda juga harus punya modem untuk pengiriman sms nya.

Adapun langkah pertama yang Anda harus lakukan untuk membuat sms auto forwarding ini adalah instalasi Gammu nya. Setelah instalasi Gammu, Anda akan mendapatkan beberapa buah tabel di database mysql seperti pada gambar berikut ini (gunakan phpmyadmin)

SMS gateway auto forwarding

Di antara beberapa tabel di atas, terdapat sebuah tabel bernama ‘pbk’. Tabel ini merupakan singkatan dari ‘phonebook’ yang nantinya digunakan untuk menyimpan data nomor hp yang nantinya bisa dikirimi pesan SMS auto forwarding ini. Silakan isi beberapa data nomor hp beserta nama pemiliknya.

SMS gateway auto forwarding

Selanjutnya kita buat script PHP untuk memproses SMS auto forwarding ini. Script PHP ini nanti harus senantiasa berjalan di browser. Anda bisa menggunakan teknik auto refresh pada browser atau menggunakan teknik AJAX.

Ide pembuatan script PHP untuk memproses SMS auto forwarding ini kita harus memecah keyword FWD#PESAN terlebih dahulu. Bila diawali dengan keyword FWD maka barulah proses forwarding ini dilakukan. Selanjutnya bila keywordnya benar-benar diawali dengan FWD, maka PESAN akan dikirim ke semua nomor hp yang ada di tabel ‘pbk’. Tanda # digunakan untuk memisahkan keyword dengan pesan yang akan dikirim. Untuk memecah string dari SMS, kita bisa menggunakan function explode() di PHP.

Berikut ini adalah script PHP untuk SMS autoforwarding ini.

run.php

<?php

// koneksi ke database gammu
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// membaca sms yang masuk dan 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 isi sms
   $sms = $data['TextDecoded'];

   // memecah isi sms berdasarkan karakter #
   $pecah = explode("#", $sms);

   // cek keywordnya apakah sama dengan 'FWD'?
   if (strtoupper($pecah[0]) == "FWD")
   {
       // jika keywordnya FWD maka lakukan proses forwarding

       // membaca data phonebook dari tabel 'pbk'
       $query2 = "SELECT * FROM pbk";
       $hasil2 = mysql_query($query2);
       while ($data2 = mysql_fetch_array($hasil2))
       {
         // membaca nomor hp
         $nohp = $data2['Number'];
         // membaca isi pesan yang akan diforward
         $pesan = $pecah[1];
         // proses pengiriman pesan ke setiap no hp
         $query3 = "INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID) VALUES ('$nohp', '$pesan', 'Gammu')";
         mysql_query($query3);
       }
   }

   // menandai sms telah diproses
   $query2 = "UPDATE inbox SET Processed = 'true' WHERE ID = '$id'";
   mysql_query($query2);
}

?>

Keterangan:

Mungkin Anda bertanya-tanya, mengapa di pengecekan keywordnya saya menggunakan strtoupper()? ya… hal ini dikarenakan cara penulisan sms bisa berbeda-beda pada besar kecilnya huruf. Oleh karena itu saya buat menjadi besar semua (kapital). Namun kapitalisasi huruf ini hanya saya berikan pada keywordnya saja, sedangkan untuk pesan yang akan diforward tidak perlu. Kapitalisasi huruf pada keyword ini penting karena di PHP penulisan huruf kecil dan besar pada suatu string itu berbeda (case sensitive). Sebagai contoh penulisan ‘FWD’ dengan ‘Fwd’ atau ‘fwd’ atau ‘fwD’ semuanya berbeda.

Nah… selanjutnya script di atas harus dijalankan terus menerus di web server. Jika secara manual, Anda musti merefresh script di atas pada browser terus menerus supaya bisa memproses SMS yang masuk. Namun hal ini tentu tidak mungkin bukan? So… kita harus membuat sistem otomatisasi supaya script di atas bisa melakukan refresh sendiri. Anda bisa menggunakan teknik auto refresh atau menggunakan AJAX.

Untuk kali ini kita mencoba menggunakan AJAX untuk menjalankan script run.php di atas secara otomatis. Oleh karena itu perlu kita buat script index.html yang di dalamnya kita sisipkan script AJAX untuk menjalankan script run.php.

index.html

<html>
<head>
   <title>SMS Auto Forwarding</title>
   <script type="text/javascript">

  function ajax()
  {
  if (window.XMLHttpRequest)
  {
     xmlhttp=new XMLHttpRequest();
  }
  else
  {
     xmlhttp =new ActiveXObject("Microsoft.XMLHTTP");
  }

  xmlhttp.open("GET","run.php");
  xmlhttp.send();
  setTimeout("ajax()", 5000);
  }
  </script>

</head>

<body onload="ajax()">
      <h1>SMS Auto Forwarding running...</h1>
</body>
</html>

Script AJAX di atas secara otomatis akan melakukan refresh script run.php setiap selang 5 detik (5000 milisekon). Lantas… dari kedua script di atas manakah yang nantinya akan dijalankan di browser? Anda cukup menjalankan index.html nya saja.

Mudah bukan membuatnya? script di atas dijalankan dengan sukses di Gammu 1.25.0, menggunakan modem Wavecom dan dengan browser Firefox.




Share ke Facebook Share ke Twitter
Baca Juga Artikel Terkait
Script Auto Reply SMS Gateway dengan PHP
Cara Membuat Script PHP Untuk Cek Pulsa Dengan Gammu
Membuat Auto Hyperlink dengan Script PHP
Menjalankan Script PHP Untuk SMS Gateway Tanpa Autorefresh Dengan AJAX
Membuat Auto Deletion (Hapus Otomatis) Data Dengan Script PHP

Kata kunci: php sms - script gammu - script sms - sms auto forwarding - sms gammu - SMS Gateway -


Ada 46 komentar dalam artikel ini.



  1. hadi says:

    mas, kok value processed di inbox langsung ‘true’ ya?
    cara ngeset agar ‘false’ dulu gimana?
    ini blom jalan auto forwardnya..

  2. hadi says:

    ok mas, masalah sudah teratasi..
    btw, autoforward bisa buat long sms gak mas?
    udah pernah nyoba?

    • rosihanari says:

      @hadi: untuk cara di atas gak bisa mas, karena di gammu long sms yang diterima pasti akan terpotong2 menjadi beberapa record. Supaya auto forward long sms bisa, ya anda harus gabung dahulu record yang terpotong2 tersebut baru di forward.

  3. amir ahmad says:

    mas… bagaimana mahu membuat bila ada inbox masuk terus di notification dan ada bunyi msg masuk?…bleh minta tlg ya pak… baru belajar ni.. ;-)

    • rosihanari says:

      @amir ahmad: itu pakai javascript mas, konsepnya sama seperti autoreply sms, begitu ada sms masuk (lihat field Processed di tabel INBOX), maka jalankan javascript untuk play sound.

  4. amir_ahmad says:

    terima kasih pak ari..kerna menjwb soalan saya mas ari.. script javascript tu pak ari ada?..bisa x tunjukkan mas.. terima kasih..

  5. taufik says:

    Mantabbb…Pak,
    jangan bosan – bosan bagi ilmunya yaa…
    semoga menjadi bekal amal ibadah di akhirat nanti..amiennn

    Taufik.D

  6. jo says:

    om saya mau nanya
    saya mengubah skrip diatas jadi

    mysql_connect(“localhost”, “root”, “”);
    mysql_select_db(“smsd”);

    tapi kenapa ga bisa jalan ya?
    apakah ada yang salah?

  7. jo says:

    udah bisa om thanx

    om ada ga aplikasi gammu berbasis web yang kaya nowsms?
    dimana saya dapat mendownloadnya?

  8. Ipul says:

    pak saya salah satu pembeli buku anda dan pembaca setia web bapak heheheh

    saya mau nanya tentang sms forward pak… ga ada masalah sih sebenarnya…
    cuma saya pengen nanya saya pengen nambahin satu keyword lagi misalnya untuk sms kritik dan saran..

    dimana sya menambahkan kode if $pecah==”kritik”
    saya bingung nambahin koding tersebut pak…
    bingung penempatan blok ifnya kurung kurawal… mohon bantuannya ya pak…

  9. Ipul says:

    oh iya pak ari makasih sebelumnya…

    udah berhasil hehehehehehe..

    pengen request tutorial dong pak please…
    buat sms penjadwalan studi kasusnya terserah …
    selain ucapan ulang tahun yang udah bapak post sebelumnya… + request sms reg dan unreg …

    kalau berkenan kirim aja ke email ku pak..
    ipulgzstar@gmail.com

    maksih :)

  10. candra says:

    pak rosihan.. gmana cara memvalidasi nomor dari pengirim pesan pertama agar SI kita tidak disalahgunakan…

  11. akbar mubarok says:

    gan koo ke kirimnya cuma ke satu nomer doang yah?

  12. irsal says:

    pak scripts untuk eksekusi dr gammu nya apa sehingga ada data sms yg masuk, krn scripts di atas hanya untuk penyimpanan saja dan auto refresh

  13. Didik H says:

    Pak Saya ingin dibuatkan program aplikasi setor, tarik, cek saldo tabungan dan kredit untuk BPR yang bisa diprint lewat hp dengan print bluethoot (print portable) yang mudah dibawa-bawa ( untuk keliling tabungan) itu bisa nggak ya dengan sms gateaway, kalau bisa harganya sekitar berapa?



 

Komentar/pertanyaan Anda!

Mohon maaf, komentar/pertanyaan yang menggunakan email palsu atau komentar bernada negatif, cemooh, umpatan, cacian atau sejenisnya secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

Mohon maaf jika seandainya ada beberapa pertanyaan Anda yang tidak direspon atau ditanggapi mengingat banyaknya komentar yang masuk dan keterbatasan kemampuan/ilmu saya dalam menjawab pertanyaan satu persatu. Saya harap Anda bisa memahami dan memakluminya.

Semua komentar atau pertanyaan yg masuk tidak akan langsung tampil di halaman ini, karena akan dimoderasi dahulu.


*