Sebelum lebih dalam, berikaitan dengan artikel ini mohon perhatikan hal-hal berikut :
- Pastikan anda sudah tahu mengenai PHP CLI,
kalau belum anda wajib mengunjungi situs ini dulu http://www.php-cli.com/
- Pastikan anda tahu penggunakan Windows Task Schedule untuk pengguna Microsoft Windows dan Cron Job untuk pengguna Linux.
Kalau belum ada sebaiknya kunjungi situs-situs berikut:
- http://www.iopus.com/guides/winscheduler.htm
- http://www.astahost.com/Cron-Jobs-Tutorial-t2324.html
- Selanjutnya pastikan anda tahu hubungan antara poin 1 & 2 diatas, kalau belum jangan malas untuk kunjungi situs berikut : http://www.devarticles.com/c/a/PHP/PHP-CLI-and-Cron/
- Pastikan juga anda sudah menguasai MySQL dasar & PHP dasar, pertanyaan mengenai penggunaan fungsi-fungsi build MySQL & PHP silahkan merujuk ke masing manual yang ada.
- Class PHP API for Gammu sudah siap digunakan, jadi kembangkan sesuai dengan kebutuhan anda, fungsi build dari class tersebut sudah cukup mengakomodir artikel ini.
- Anda kesulitan ??? sebaikanya anda tanya guru saya Mr. Goo....
Requirement :
- Web Server with PHP 5.0 or latest version http://www.php.net/
- Database Server MySQL 5.0 or latest version http://www.mysql.com/
- Gammu 1.10 or latest version http://www.gammu.org/
- Class PHP API for Gammu http://www.phpclasses.org/browse/package/3865.html
1. Install Webserver compile PHP 5.x (silahkan merujuk ke manual webserver dan PHp)
2. Install Database Server MySQL 5.x (silahkan merujuk ke manual MySQL)
3. Install Gammu SMS Gateway (silahkan merujuk ke manual Gammu)
4. Buatkan folder 'sms' di www_root/home_web
Contoh:
*Win
Path = 'C:\Program Files\httpd\www\sms'
Jalankan Windows Command/CMD
ketik: md C:\Program Files\httpd\www\sms
*Nix
Path = '/var/www/sms'
mkdir /var/www/sms
5. Download dan letakkan class.sms.php di path yang dibuat tadi
Contoh: /var/www/sms/class.sms.php
6. Buatkan database baru di mysql dengan menggunakan MySQL Client Favorit anda atau Export SQL Query berikut:
CREATE DATABASE sms;
USE sms;
CREATE TABLE inbox (
id bigint(5) unsigned primary key auto_increment,
mID varchar(80) unique,
tanggal datetime default '0000-00-00 00:00:00',
nomor varchar(40),
pesan text,
pstatus varchar(10)
);
CREATE TABLE outbox (
id bigint(5) unsigned primary key auto_increment,
mID varchar(80) unique,
tanggal datetime default '0000-00-00 00:00:00',
nomor varchar(40),
pesan text,
pstatus varchar(10)
);
7. Buatkan satu file baru php dengan 'autosms.php' di path yang sama
Contoh: /var/www/sms/autosms.php
ketik kode berikut :
enable_sudo(0); //Set 0 for windows
echo "Download SMS dari HP\n";
$data = $sms->Get(); //Download SMS dari HP
//Simpan Inbox
foreach ($data['Inbox'] as $inbox) {
if (!mysql_query("INSERT IGNORE INTO inbox (mID, tanggal, nomor, pesan, pstatus) VALUES ('".$inbox['ID']."', '".$inbox['SentTime']."', '".$inbox['Number']."', '".$inbox['body']."', 'UnRead')")) {
echo mysql_error();
}
else { echo "[INBOX] ".$inbox['Number'].":".$inbox['body']."\n"; }
}
//Simpan Outbox
foreach ($data['Outbox'] as $outbox) {
if (!mysql_query("INSERT IGNORE INTO outbox (mID, tanggal, nomor, pesan, pstatus) VALUES ('".$outbox['ID']."', '".$outbox['SentTime']."', '".$outbox['Number']."', '".$outbox['body']."', '".$outbox['Status']."')")) {
echo mysql_error();
}
else { echo "[OUTBOX] ".$outbox['Number'].":".$outbox['body']."\n"; }
}
//Hapus SMS dari HP
//Hilangkan tanda komentar '#' jika ingin menghapus
# $sms->Del(1,$respon); //Hapus Inbox (Memory SIM)
# echo "$respon\n";
# $sms->Del(2,$respon); //Hapus Outbox (Memory SIM)
# echo "$respon\n";
# $sms->Del(3,$respon); //Hapus Inbox (Memory HP)
# echo "$respon\n";
# $sms->Del(4,$respon); //Hapus Outbox (Memory HP)
# echo "$respon\n";
sleep(5);
echo "Memeriksa format SMS dari Inbox\n";
$query=mysql_query("select * from inbox where pstatus='UnRead'");
while($result=mysql_fetch_assoc($query)) {
$text = explode(" ",$result['pesan']);
if (strtoupper($text[0]) == "CEK" and strtoupper($text[1]) == "SALDO") {
echo "FORMAT: CEK SALDO [ID_ANGGOTA]\n";
/*
Kode Pemeriksaan Saldo Anggota disini
jika valid berikut pesan otomatisnya
*/
$pesan="SALDO ANDA Rp. 123.456";
//Catatan:
//Jumlah saldo diasumsikan telah dicari lewat database berdasarkan
//ID_ANGGOTA = $text[2]
mysql_query("INSERT INTO outbox (mID, tanggal, nomor, pesan, pstatus) VALUES ('".$result['mID']."', now(), '".$result['nomor']."', '".str_replace(array("\t","\r","\n")," ",$pesan)."', 'UnSent')");
echo "[OUTBOX] ".$result['nomor'].": $pesan\n";
}
if (strtoupper($text[0]) == "REG") {
echo "FORMAT: REG [NAMA] [KOTA]\n";
/*
Kode Pendaftaran disini dan jika berhasil
berikut pesan otomatisnya
*/
$pesan="Terima kasih, pendaftaran berhasil Nama: ".$text[1]." Alamat: ".$text[2]." ";
mysql_query("INSERT INTO outbox (mID, tanggal, nomor, pesan, pstatus) VALUES ('".$result['mID']."', now(), '".$result['nomor']."', '".str_replace(array("\t","\r","\n")," ",$pesan)."', 'UnSent')");
echo "[OUTBOX] ".$result['nomor'].": $pesan\n";
}
mysql_query("UPDATE inbox set pstatus='Read' where id='".$result['id']."'");
}
sleep(5);
echo "Mengirimkan SMS dari Outbox\n";
$query=mysql_query("select * from outbox where pstatus='UnSent'");
while($result=mysql_fetch_assoc($query)) {
if ($sms->Send($result['nomor'],$result['pesan'],0,0,0,$respon)) {
echo "[KIRIM] ".$result['nomor'].": ".$result['pesan']."\n";
echo $respon;
mysql_query("UPDATE outbox set pstatus='Sent' where id='".$result['id']."'");
} else {
echo $sms->Error;
}
}
?>
8. Selanjutnya buatkan satu file untuk eksekusi php
Untuk *Win
Buat File: sms.bat
PATH\php.exe -c PATH\php_custom.ini PATH\autosms.php
Catatan:
buatkan custom php.ini (beda dengan php.ini default)
dan perhatikan extension_dir
Kemudian tambahkan pada Windows Task Schedule
lewat Command Line (Windows CMD/Command.com)
schtasks /CREATE /SC MINUTE /MO 5 /ST 12:00:00
/TN "AUTO SMS" /TR "PATH\sms.bat" /RU "System"
*Nix/Linux
Tambahkan pada cron job: crontab -e (Edit cront job with vi editor)
# Execute every 5 minutes
*/5 * * * * PATH/php PATH/autosms.php
Selamat Mencoba