gammu sms gateway autorespon with php _ stieven kalengkian

Upload: jorelan-nunumete

Post on 12-Oct-2015

53 views

Category:

Documents


0 download

DESCRIPTION

Gammu SMS Gateway Autorespon With PHP _ Stieven Kalengkian

TRANSCRIPT

  • 6/12/2014 Gammu SMS Gateway Autorespon with PHP | Stieven Kalengkian

    http://stieven.wordpress.com/2008/03/20/gammu-sms-gateway-autorespon-with-php-2/ 1/11

    Stieven Kalengkian

    Hidup adalah usaha mendapatkan apa yang sudah ada, bukan mencari apa yang tidak pernah ada

    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/

    (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.iopus.com/guides/winscheduler.htm)- http://www.astahost.com/Cron-Jobs-Tutorial-t2324.html (http://www.astahost.com/Cron-

    Jobs-Tutorial-t2324.html)

    3. Selanjutnya pastikan anda tahu hubungan antara poin 1 & 2 diatas, kalau belum jangan malasuntuk kunjungi situs berikut : http://www.devarticles.com/c/a/PHP/PHP-CLI-and-Cron/

    (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. (http://www.google.com)

    Requirement :

    - Web Server with PHP 5.0 or latest version http://www.php.net/ (http://www.php.net/)- Database Server MySQL 5.0 or latest version http://www.mysql.com/ (http://www.mysql.com/)- Gammu 1.10 or latest version http://www.gammu.org/ (http://www.gammu.org/)

    - Class PHP API for Gammu http://www.phpclasses.org/browse/package/3865.html(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)

  • 6/12/2014 Gammu SMS Gateway Autorespon with PHP | Stieven Kalengkian

    http://stieven.wordpress.com/2008/03/20/gammu-sms-gateway-autorespon-with-php-2/ 2/11

    4. Buatkan folder sms di www_root/home_web

    Contoh:

    *WinPath = 'C:\Program Files\httpd\www\sms'

    Jalankan Windows Command/CMDketik: 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

    6. Buatkan database baru di mysql dengan menggunakan MySQL Client Favorit anda atau ExportSQL 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/class.sms.php

    Contoh: /var/www/sms/autosms.php

    ketik kode berikut :

    enable_sudo(0); //Set 0 for windows

  • 6/12/2014 Gammu SMS Gateway Autorespon with PHP | Stieven Kalengkian

    http://stieven.wordpress.com/2008/03/20/gammu-sms-gateway-autorespon-with-php-2/ 3/11

    echo "Download SMS dari HP\n";$data = $sms->Get(); //Download SMS dari HP//Simpan Inboxforeach ($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 Outboxforeach ($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 disinijika 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") {

  • 6/12/2014 Gammu SMS Gateway Autorespon with PHP | Stieven Kalengkian

    http://stieven.wordpress.com/2008/03/20/gammu-sms-gateway-autorespon-with-php-2/ 4/11

    8. Selanjutnya buatkan satu file untuk eksekusi php

    Untuk *WinBuat 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 Schedulelewat 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/LinuxTambahkan pada cron job: crontab -e (Edit cront job with vi editor)

    # Execute every 5 minutes

    */5 * * * * PATH/php PATH/autosms.php

    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;

    }

    }?>

  • 6/12/2014 Gammu SMS Gateway Autorespon with PHP | Stieven Kalengkian

    http://stieven.wordpress.com/2008/03/20/gammu-sms-gateway-autorespon-with-php-2/ 5/11

    Selamat Mencoba

    This entry was posted on Kamis, Maret 20th, 2008 at 3:42 pm and is filed under PHP, SMS Gateway,Tutorial. You can follow any responses to this entry through the RSS 2.0 feed. Anda dapat merespon,

    or trackback dari website anda.

    24 Balasan ke Gammu SMS Gateway Autorespon with PHP

    Anonymous mengatakan:Maret 24, 2008 pukul 9:20 pm

    mas nanya ini > $sms->enable_sudo(0)

    enable_sudo itu fungsi sdh ada atau yg sdh di fungsikan di class ?.. kalo di class saya tidakmenemukan enable_sudo

    Balas

    stieven mengatakan:

    Maret 25, 2008 pukul 11:50 amAnda dapat mendisable (comment)

    fungsi itu jika menggunakan windows atau tidak menggunakan sudo untuk menjalan gammucommand execute.

    Tapi jika anda menggunakan sudo

    silahkan download Version update 2.1 di

    http://www.phpclasses.org/browse/package/3865.html

    BalasMardhie mengatakan:

    Maret 26, 2008 pukul 1:39 pmwah,salut abis dech buat mas steven..

    mas, 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..

    Balasmapays mengatakan:

    April 1, 2008 pukul 9:27 pmmalam mas?

    mas, kalo mau jalanin perintah konsol di PHP gimana caranya mas?

    misal saya mau menampilkan Jenis Handset saya. kalo lewat konsol kan pake #gammu identify,

    About these ads (http://en.wordpress.com/about-these-ads/)

  • 6/12/2014 Gammu SMS Gateway Autorespon with PHP | Stieven Kalengkian

    http://stieven.wordpress.com/2008/03/20/gammu-sms-gateway-autorespon-with-php-2/ 6/11

    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..

    Balas

    mapays mengatakan:April 2, 2008 pukul 9:26 pm

    Selamat Malam mas Stiev?

    mas, 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 masukyang 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.1Linux 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

    Balasmapays mengatakan:April 22, 2008 pukul 5:16 pm

    gunanya apa sich ngisi komentar / pertanyaan disini???bisa dijawab mas admin?

    BalasAnonymous mengatakan:April 22, 2008 pukul 8:32 pmGunanya 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 cansearch another references, there are many tutorial about sms gateway just search it

  • 6/12/2014 Gammu SMS Gateway Autorespon with PHP | Stieven Kalengkian

    http://stieven.wordpress.com/2008/03/20/gammu-sms-gateway-autorespon-with-php-2/ 7/11

    BalasAnonymous mengatakan:Juli 8, 2008 pukul 12:04 pm

    mas kalau misalnya saya punya kasus seperti ini;user mengirim format sms#reg#ack#nama tempat yg akan dilaporkan#comment#,dengan kondisi inputan nama tempatyang akan dilaporkan dan comment terserah formatnya trus yg sya mau tanayakan ::

    ->bgm script untuk memecah isi sms, sehingga hanya inputan yang terserah formatnya yangdimasukkan ke data base? scriptnya boleh php/mysql terserah mas.trima kasih,ditunggupencerahannya mas..

    Balasstieven mengatakan:Juli 8, 2008 pukul 12:18 pm

    $hasil=explode(#,$pesannya);

    See manual PHP explode() function for mor detail

    BalasiRene mengatakan:Juli 10, 2008 pukul 11:54 am

    Mas mau tanya klo setelah saya jalankan commandgammu smsd MYSQL smsdrc

    hasilnya seperti ini :

    41A : 54T:2B+: ..1 At+CPIN?

    2 +CPIN:READYRECEIVED frame type 000/length 019/2541A : 54T:2B+: ..Security status received nothing to enter

    1 OKRECEIVED frame type 000/length 004/44FO:4BK:0D:0A

    UPDATE phones SET TimeOut = (NOW() + INTERVAL 10 SECOND)+) WHERE IMEI=354350009355467Getting security code statusSENDING frame type 000/length 009/9

    muncul berulang2 sampai ga ada berhenti2nya sampai berjam2, kira2 itu yg salah apa yah? aaumemang hasilnya harusnya seperti itu? Mohon pencerahannya . Thx before

    Balasstieven mengatakan:Agustus 7, 2008 pukul 6:04 pm

    irene> maaf ya, kayaknya itu dari gammu, saya bukan developer gammu silahkan merujuk

  • 6/12/2014 Gammu SMS Gateway Autorespon with PHP | Stieven Kalengkian

    http://stieven.wordpress.com/2008/03/20/gammu-sms-gateway-autorespon-with-php-2/ 8/11

    irene> maaf ya, kayaknya itu dari gammu, saya bukan developer gammu silahkan merujukwebsitenya gammu. http://www.gammu.org

    BalasAnonymous mengatakan:Agustus 26, 2008 pukul 11:07 am

    irene ya memamng muncul berulang2, namanya sms servernya di start so running donk

    Balascreative-jual mengatakan:

    November 16, 2008 pukul 12:35 amMas saya nau tanya kok muncul pesan erro seperti ini ya saat saya coba autosms.php nya

    Fatal 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.

    Balas

    creative-jual mengatakan:November 16, 2008 pukul 1:56 pmMas terima kasih sudah menjawab pertanyaan saya sebelumnya dan alhamdulillah schedule tasksnya sudah jalan.

    ada sedikit pertanyaan mas mengenai php_custom.ini itu isinya sama dengan php.ini ataukah adayang dirubah settingannya? terus saya pengen buat info valas berbasis sms dimana data kurs kitaambil dari web lain semisal BCA kemudian kita simpan didatabase lokal terus data2 kurs dari

    yang lama sampai yang terbaru itu masih tersimpankira2 ada saran nggk mas baik itu darimodel databasenya atau lainnya? terima kassih sebelumnya.

    Balas

    Anonymous mengatakan:November 27, 2008 pukul 4:37 pmmas aku da tugas database. tlg jelasin tentang mysql api pd php?

    Balas

  • 6/12/2014 Gammu SMS Gateway Autorespon with PHP | Stieven Kalengkian

    http://stieven.wordpress.com/2008/03/20/gammu-sms-gateway-autorespon-with-php-2/ 9/11

    stieven mengatakan:

    November 29, 2008 pukul 4:19 amMySQL API untuk PHP boleh baca disini : http://id2.php.net/mysql

    Balas

    Anonymous mengatakan:Februari 10, 2009 pukul 7:29 amKemeeruh Mas.. Yen Gak Iso Gak Usah Posting. Jancokkkkkkkkkkkk

    Balasaadz mengatakan:Februari 21, 2009 pukul 6:15 pm

    Hallo mas, aq bwt auto reply nya pake scheduler windows udah bisa. Terima kasih ataspostingannya mas =)

    Trs 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

    BalasAnonymous mengatakan:Februari 22, 2009 pukul 4:07 pmdi linux

    umumnya ada di /usr/bin/phpuntk tau pasti lokasi phpketik

    > whereis php

    BalasAnonymous mengatakan:

    Maret 19, 2009 pukul 5:40 pmmas steiven saya mau bertanya, kalau dari gammu bisa ngak sih kita mengirim linked sms (1 smsterdiri dari > 160 karakter)??

    kalau 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 linkedsms??? karena saya liat ditabel default ada outbox multipart segala, tapi penggunaan tabel ini dariforum yang saya dapat di internet tetap mengirim lebih dari 1 sms jika panjang > 160 karakterAtau bisa nga kita menjalankan perintah sendsmsnya dari php?? jadi bukan dari command

  • 6/12/2014 Gammu SMS Gateway Autorespon with PHP | Stieven Kalengkian

    http://stieven.wordpress.com/2008/03/20/gammu-sms-gateway-autorespon-with-php-2/ 10/11

    prompt, terima kasih untuk yang punya jawaban atau sekedar sharing pengalaman bisa email ke email saya:[email protected]

    BalasFreddy Siburian's Family mengatakan:Mei 2, 2009 pukul 5:51 pmmas kalau menggunakan windows settingan class nya gimana yah?

    terima kasih mas

    Balas

    Anonymous mengatakan:Juni 28, 2009 pukul 8:50 pmmas steve, klo ada pertanyaan dari pembaca direspon dgn baik donk, kok kesannya gak ikhlasgitu. percuma donk anda menulis jika kurang manfaat!!! tul ga'???? ntar malaikat yg input amal

    anda juga setengah2 lho hehehe

    Balas

    Anonymous mengatakan:Juni 28, 2009 pukul 10:06 pmya sabar donk mas,yang bersangkutan mungkin lagi sibuk,

    sudah untung beliau mau bagi ilmu gratis.. kan masih banyak referensi lain. Tuh kalo baca baik2artikel ini liat aja point terakhir"Anda kesulitan ??? sebaikanya anda tanya guru saya Mr. Goo."

    alias tanya om google

    Balas503w0nd0 mengatakan:

    Juli 9, 2010 pukul 3:49 pmMau nanya nich mas,Saya salut dan sangat berterima kasih dengan tulisan dan objek PHP yang telah Mas relakan

    untuk di download secara bebas agar mempermudah untuk mempelajari bahkan memanfaatkanbuat memproduksi.Tapi ada satu hal yang malah bikin saya bingung, soal fitur yang disediakan oleh versi lama :class.gammu.sms.php

    Kok kayaknya lebih lengkap dibandingkan dengan class yang versi baru nyaclass.gammu.phpMisal fasilitas untuk :

    delete sms dari HP monitor tingkat level batterey monitor tingkat level network dll

    Kok di class yang baru, fasilitas-fasilitas itu seakan-akan malahdihilangkan kenapa Mas ???Terima kasih

  • 6/12/2014 Gammu SMS Gateway Autorespon with PHP | Stieven Kalengkian

    http://stieven.wordpress.com/2008/03/20/gammu-sms-gateway-autorespon-with-php-2/ 11/11

    Balas

    The Contempt Theme.Buat website atau blog gratis di WordPress,com.