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)
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.
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
01.<?php
02.
03.// koneksi ke
database gammu
04.mysql_connect("dbhost",
"dbuser", "dbpass");
05.mysql_select_db("dbname");
06.
07.// membaca sms yang
masuk dan belum diproses
08.$query =
"SELECT * FROM inbox WHERE Processed = 'false'";
09.$hasil =
mysql_query($query);
10.while ($data =
mysql_fetch_array($hasil))
11.{
12. //
membaca id sms
13. $id =
$data['ID'];
14. //
membaca isi sms
15. $sms =
$data['TextDecoded'];
16.
17. //
memecah isi sms berdasarkan karakter #
18. $pecah =
explode("#", $sms);
19.
20. //
cek keywordnya apakah sama dengan 'FWD'?
21. if (strtoupper($pecah[0])
== "FWD")
22. {
23. //
jika keywordnya FWD maka lakukan proses forwarding
24.
25. //
membaca data phonebook dari tabel 'pbk'
26. $query2 =
"SELECT * FROM pbk";
27. $hasil2 =
mysql_query($query2);
28. while ($data2 =
mysql_fetch_array($hasil2))
29. {
30. //
membaca nomor hp
31. $nohp =
$data2['Number'];
32. //
membaca isi pesan yang akan diforward
33. $pesan =
$pecah[1];
34. //
proses pengiriman pesan ke setiap no hp
35. $query3 =
"INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID) VALUES
('$nohp', '$pesan', 'Gammu')";
36. mysql_query($query3);
37. }
38. }
39.
40. //
menandai sms telah diproses
41. $query2 =
"UPDATE inbox SET Processed = 'true' WHERE ID = '$id'";
42. mysql_query($query2);
43.}
44.
45.?>
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
01.<html>
02.<head>
03. <title>SMS
Auto Forwarding</title>
04. <script type="text/javascript">
05.
06. function
ajax()
07. {
08. if
(window.XMLHttpRequest)
09. {
10. xmlhttp=new
XMLHttpRequest();
11. }
12. else
13. {
14. xmlhttp
=new ActiveXObject("Microsoft.XMLHTTP");
15. }
16.
17. xmlhttp.open("GET","run.php");
18. xmlhttp.send();
19. setTimeout("ajax()",
5000);
20. }
21. </script>
22.
23.</head>
24.
25.<body onload="ajax()">
26. <h1>SMS
Auto Forwarding running...</h1>
27.</body>
28.</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.
Thanks for reading & sharing KEPOIN IT
0 comments:
Post a Comment