Gammu SMS Gateway Autorespon with PHP
Sebelum lebih dalam, berikaitan dengan artikel ini mohon perhatikan hal-hal berikut :
7. Buatkan satu file baru php dengan 'autosms.php' di path yang sama
- 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....
Contoh:
5. Download dan letakkan class.sms.php di path yang dibuat tadi
*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
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) );
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.phpCatatan: 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.phpSelamat Mencoba
mas nanya ini --> $sms->enable_sudo(0)
BalasHapusenable_sudo itu fungsi sdh ada atau yg sdh di fungsikan di class ?.. kalo di class saya tidak menemukan enable_sudo
Anda dapat men'disable' (comment)
BalasHapusfungsi itu jika menggunakan windows atau tidak menggunakan sudo untuk menjalan gammu command execute.
Tapi jika anda menggunakan sudo
silahkan download Version update 2.1 di
http://www.phpclasses.org/browse/package/3865.html
wah,salut abis dech buat mas steven..
BalasHapusmas, btw slide show itu putranya yaa?
wew, lucu juga yaa?
salam buat si kecil..
jangan bosen buat ngoprek sms gatewaynya ya mas..
merdeka buat gammunya..
malam mas?
BalasHapusmas, kalo mau jalanin perintah konsol di PHP gimana caranya mas?
misal saya mau menampilkan Jenis Handset saya. kalo lewat konsol kan pake #gammu --identify, lha kalo di php gimana ya mas?
dibuat seperti link lho mas..
masih bingung nich sampe sekarang.
terima kasih banyak dan sukses selalu ya mas!! salam buat dedek kecil..
Selamat Malam mas Stiev?
BalasHapusmas, saya minta tolong..
saya kesulitan dalam pengembangan aplikasi sms gateway gammu..
btw, script yang ada diblog mas ketika saya jalankan(sudah saya edit)
kok error(gak tampil sama sekali) ya mas?
saya sudah menjalanakan sms gateway bawaan gammu,berhasil sich mas..
tapi sms gatewayku gak bisa autoreply, dia hanya bisa mengirimkan
secara otomatis sesuai Time yang saya berikan.
saya kepingin sms gateway saya bisa autoreply ketika ada sms masuk
yang belum kebaca sesuai yang mas buat.
solusinya gimana ya mas??
ini system saya :
Mysql Version = -4.1.7-4.RHEL4.1
Php Vwersion = -4.3.9-3.1
Linux Kernel = -2.6.9-5.EL
Apache Web Server = 2.0
Gammu version = 1.09.00 built 04:07:58 Mar 13 2008 in gcc 3.4
apa itu berpengaruh mas?
regards,
mardhie / mapays
gunanya apa sich ngisi komentar / pertanyaan disini???
BalasHapusbisa dijawab mas admin?
Gunanya supaya bisa dijawab admin kalo tidak sibuk, sudah untung admin mau menyediakan waktu untuk sedikit menulis tutorial, Admin was not the only one who created this articl e. You can search another references, there are many tutorial about sms gateway just search it
BalasHapusmas kalau misalnya saya punya kasus seperti ini;
BalasHapususer mengirim format sms
#reg#ack#nama tempat yg akan dilaporkan#comment"#,dengan kondisi inputan "nama tempat yang akan dilaporkan" dan "comment" terserah formatnya trus yg sya mau tanayakan ::
->bgm script untuk memecah isi sms, sehingga hanya inputan yang terserah formatnya yang dimasukkan ke data base? scriptnya boleh php/mysql terserah mas.trima kasih,ditunggu pencerahannya mas.....
$hasil=explode("#",$pesannya);
BalasHapusSee manual PHP explode() function for mor detail
Mas mau tanya klo setelah saya jalankan command
BalasHapusgammu --smsd MYSQL smsdrc
hasilnya seperti ini :
41A : 54T:2B+: .....
1 "At+CPIN?"
2 "+CPIN:READY"
RECEIVED frame type 0x00/length 0x19/25
41A : 54T:2B+: .....
Security status received - nothing to enter
1 "OK"
RECEIVED frame type 0x00/length 0x04/4
4FO:4BK:0D:0A
UPDATE 'phones' SET 'TimeOut' = (NOW() + INTERVAL 10 SECOND)+) WHERE 'IMEI' ='354350009355467'
Getting security code status
SENDING frame type 0x00/length 0x09/9
muncul berulang2 sampai ga ada berhenti2nya sampai berjam2, kira2 itu yg salah apa yah? aau memang hasilnya harusnya seperti itu? Mohon pencerahannya :D. Thx before
irene> maaf ya, kayaknya itu dari gammu, saya bukan developer gammu silahkan merujuk websitenya gammu. http://www.gammu.org
BalasHapusirene ya memamng muncul berulang2, namanya sms servernya di start so running donk
BalasHapusMas saya nau tanya kok muncul pesan erro seperti ini ya saat saya coba autosms.php nya
BalasHapusFatal error: Call to undefined method gammu::enable_sudo() in C:\xampp\htdocs\gammu-sms-gateway\autosms.php on line 7
terus pada saat saya coba
C:\Documents and Settings\Windows XP>schtasks /CREATE /SC MINUTE /MO 5 /ST 12:00
:00/TN "AUTO SMS" /TR "PATH\sms.bat" /RU "System"
ERROR: Invalid Argument/Option - 'AUTO SMS'.
Type "SCHTASKS /CREATE /?" for usage.
C:\Documents and Settings\Windows XP>schtasks /CREATE /SC MINUTE /MO 5 /ST 12:00
:00/TN "AUTOSMS" /TR "PATH\sms.bat" /RU "System"
ERROR: Invalid Argument/Option - 'AUTOSMS'.
Type "SCHTASKS /CREATE /?" for usage.
pesannya seperti itu mas.
terimakasih mohon pencerahannya mas.
Mas terima kasih sudah menjawab pertanyaan saya sebelumnya dan alhamdulillah schedule tasks nya sudah jalan.
BalasHapusada sedikit pertanyaan mas mengenai php_custom.ini itu isinya sama dengan php.ini ataukah ada yang dirubah settingannya? terus saya pengen buat info valas berbasis sms dimana data kurs kita ambil dari web lain semisal BCA kemudian kita simpan didatabase lokal terus data2 kurs dari yang lama sampai yang terbaru itu masih tersimpan...kira2 ada saran nggk mas baik itu dari model databasenya atau lainnya? terima kassih sebelumnya.
mas aku da tugas database. tlg jelasin tentang mysql api pd php?
BalasHapusMySQL API untuk PHP boleh baca disini : http://id2.php.net/mysql
BalasHapusKemeeruh Mas........... Yen Gak Iso Gak Usah Posting....... Jancokkkkkkkkkkkk
BalasHapusHallo mas, aq bwt auto reply nya pake scheduler windows udah bisa. Terima kasih atas postingannya mas =)
BalasHapusTrs skg aq mo nyoba pake crontab nya di linux, klo di postingannya kan seperti ni :
*/5 * * * * PATH/php PATH/autosms.php
bwt PATH/php di linux tu dimana yas mas? aq coba nyari di /usr/bin kq gk ada. Mohon bimbingannya...
aq pake Ubuntu intrepid, php5.2.6, apache2.2.9
di linux
BalasHapusumumnya ada di /usr/bin/php
untk tau pasti lokasi php
ketik
> whereis php
mas steiven saya mau bertanya, kalau dari gammu bisa ngak sih kita mengirim linked sms (1 sms terdiri dari > 160 karakter)??
BalasHapuskalau dari dos bisa dengan menggunakan parameter -len
echo {pesan} | gammu --sendsms TEXT {nomer} -len {length karakter}
yang saya mau tanyakan, apa kalau dari gammu ada yang harus disetting untuk mengirim linked sms??? karena saya liat ditabel default ada outbox multipart segala, tapi penggunaan tabel ini dari forum yang saya dapat di internet tetap mengirim lebih dari 1 sms jika panjang > 160 karakter...
Atau bisa nga kita menjalankan perintah sendsmsnya dari php?? jadi bukan dari command prompt, terima kasih...
untuk yang punya jawaban atau sekedar sharing pengalaman bisa email ke email saya: yopie@intraco.co.id
mas kalau menggunakan windows settingan class nya gimana yah?
BalasHapusterima kasih mas :)
mas steve, klo ada pertanyaan dari pembaca direspon dgn baik donk, kok kesannya gak ikhlas gitu. percuma donk anda menulis jika kurang manfaat!!! tul ga'???? ntar malaikat yg input amal anda juga setengah2 lho... hehehe
BalasHapusya sabar donk mas,
BalasHapusyang bersangkutan mungkin lagi sibuk,
sudah untung beliau mau bagi ilmu gratis.. kan masih banyak referensi lain. Tuh kalo baca baik2 artikel ini liat aja point terakhir
"Anda kesulitan ??? sebaikanya anda tanya guru saya Mr. Goo...."
alias tanya om google
wah keren scriptny...thanks yah bro.,..ada yg pnya co kirim kebanyak no menggunakan script php..
BalasHapusmembuat file sms.bat nya dmn mas??
BalasHapus