Tampilkan postingan dengan label SMS Gateway. Tampilkan semua postingan
Tampilkan postingan dengan label SMS Gateway. Tampilkan semua postingan

Rabu, Desember 09, 2009

PHP Class API for Gammu

Hari ini PHP Class Gammu yang saya publish lewat phpclassess.org resmi menjadi official 3rdParty application Gammu
Gammu is the name of the project as well as name of command line utility, which you can use to control your phone. It is written in C and built on top of libGammu. Gammu command line utility provides access to wide range of phone features, however support level differs from phone to phone and you might want to check Gammu Phone Database for user experiences with various phones. Generally following features are supported: Call listing, initiating and handling SMS retrieval, backup and sending MMS retrieval Phonebook listing, export and import (also from standard formats such as vCard) Calendar and tasks listing, export and import (also from standard formats such as vCalendar or iCalendar) Retrieval of phone and network information Access to phone file system (note that some phones work also as USB storage devices and those are not accessible through Gammu) This project has originally forked from Gnokii and up to version 0.58 has been named MyGnokii2. Then need for better name arrived and Gammu was chosen as an acronym for Gammu All Mobile Management Utilities, without knowing that Gammu from the "Heretics of Dune" book written by Frank Herbert exists. The Gammu package does not include just this binary, but as well Gammu SMS Daemon, Gammu library and Python bindings which you can use to develop own application accessing mobile phone.
Gammu adalah salah satu aplikasi untuk SMS Gateway (API) menggunakan Command Line Interface (CLI). Sejak tahun 2007 saya sudah menggunakan Gammu untuk membangun aplikasi SMS Gateway. Dan sejak versi 1.2+ PHP Class API Gammu yang saya tulis sudah di include pada paket Instalasi Gammu (Linux & Windows).
Setelah berbicara dengan salah satu developer (founder) Gammu, Michal Čihař. Akhirnya PHP Class ini resmi di include dalam paket distribus gammu. Class ini sudah diperbarui untuk versi terbaru (Update 8 Des 2009 support gammu versi 1.26+).

Kamis, Maret 20, 2008

Gammu SMS Gateway Autorespon with PHP

Sebelum lebih dalam, berikaitan dengan artikel ini mohon perhatikan hal-hal berikut :
  1. Pastikan anda sudah tahu mengenai PHP CLI, kalau belum anda wajib mengunjungi situs ini dulu http://www.php-cli.com/
  2. 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
  3. 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/
  4. Pastikan juga anda sudah menguasai MySQL dasar & PHP dasar, pertanyaan mengenai penggunaan fungsi-fungsi build MySQL & PHP silahkan merujuk ke masing manual yang ada.
  5. Class PHP API for Gammu sudah siap digunakan, jadi kembangkan sesuai dengan kebutuhan anda, fungsi build dari class tersebut sudah cukup mengakomodir artikel ini.
  6. 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

PHP Google Drive

https://g.co/gemini/share/4ec33b801d4a   Tentu, saya akan membantu Anda membuat kode PHP menggunakan Composer untuk melakukan sinkronisasi (...