Mengirim SMS lebih dari 160 Karakter dengan GAMMU

Posted on
Dalam artikel tersebut salah satunya adalah pembahasan tentang teknik mengirim SMS dengan panjang karakter lebih dari 160 karakter (long text SMS) yaitu dengan command “gammu-smsd-inject”. Nah.. pada artikel kali ini saya akan menjelaskan cara mengirim long text SMS Gammu menggunakan query SQL.



gammu menyediakan file gammu-smsd-inject.exe untuk mengirimkan sms panjang (lebih dari 160 karakter). sangat praktis digunakan. akan tetapi, beberapak kali saya coba hasilnya kurang memuaskan, karena butuh waktu yang lama untuk mengirimkan sms dengan cara ini. entah ini karena versi gammu yang saya gunakan (1.29.0) stabil dan bisa download disini pada artikel saya sebelumnya : Cara Membuat SMS Gateway Auto Reply dengan Gammu dan PHP

dibawah ini source code :


<html><head><title>Berita</title><meta content='30' http-equiv='refresh'/><link rel="shortcut icon" href="admin/enabled-2.gif"></head><body>SMS CENTER BIODATA NOT RESPONDING<?php   
//koneksi ke mysql dan db nyamysql_connect("localhost", "root", "");mysql_select_db("gammu_db");
// query untuk membaca SMS yang belum diproses $query = "SELECT * FROM inbox WHERE Processed = 'false'";$hasil = mysql_query($query);while ($data = mysql_fetch_array($hasil)) { 
// membaca ID SMS $id = $data['ID'];
// membaca no pengirim $noPengirim = $data['SenderNumber'];
// membaca pesan SMS dan mengubahnya menjadi kapital $msg = strtoupper($data['TextDecoded']);   
// proses parsing   // memecah pesan berdasarkan karakter $pecah = explode("#", $msg);   
// jika kata terdepan dari SMS adalah 'NILAI' maka cari nilai Kalkulus if ($pecah[0] == "INFO") { 
// baca NIM dari pesan SMS $kategori = $pecah[1];   
// cari nilai kalkulus berdasar NIM $query2 = "SELECT info FROM berita WHERE kategori = '$kategori'";$hasil2 = mysql_query($query2);   
// cek bila data nilai tidak ditemukan if (mysql_num_rows($hasil2) == 0) {$reply = "Kategori tidak ditemukan";}else { 
// bila nilai ditemukan $data2 = mysql_fetch_array($hasil2);$info = $data2['info'];$pesan = "Info NR : ".$info;
// menghitung jumlah pecahan$jmlSMS = ceil(strlen($pesan)/153);// memecah pesan asli$pecah  = str_split($pesan, 153);
// proses untuk mendapatkan ID record yang akan disisipkan ke tabel OUTBOX$query = "SHOW TABLE STATUS LIKE 'outbox'";$hasil = mysql_query($query);$data  = mysql_fetch_array($hasil);$newID = $data['Auto_increment'];
// proses penyimpanan ke tabel mysql untuk setiap pecahanfor ($i=0; $i<=$jmlSMS; $i++){   // membuat UDH untuk setiap pecahan, sesuai urutannya   $udh = "050003A7".sprintf("%02s", $jmlSMS).sprintf("%02s", $i);
   // membaca text setiap pecahan   $balas = $pecah[$i-1];
   if ($i==1)   {      // jika merupakan pecahan pertama, maka masukkan ke tabel OUTBOX      $query3 = "INSERT INTO outbox (DestinationNumber, UDH, TextDecoded, ID, MultiPart, CreatorID)                VALUES ('$noPengirim', '$udh', '$balas', '$newID', 'true', 'Gammu')";   }   else   {      // jika bukan merupakan pecahan pertama, simpan ke tabel OUTBOX_MULTIPART      $query3 = "INSERT INTO outbox_multipart(UDH, TextDecoded, ID, SequencePosition)                VALUES ('$udh', '$balas', '$newID', '$i')";   }   // jalankan query   mysql_query($query3);}  // ubah nilai 'processed' menjadi 'true' untuk setiap SMS yang telah diproses   $query3 = "UPDATE inbox SET Processed = 'true' WHERE ID = '$id'"; $hasil3 = mysql_query($query3);
}?></body></html>

atau kesini untuk copy-paste : http://pastebin.com/5c0q4Hpv 

Sumber referensi :
http://blog.rosihanari.net/teknik-mengirim-long-text-sms-gammu-dengan-query-sql/
http://endricahyo.blogspot.com/2010/08/mengirim-long-sms-dengan-gammu.html

hardware yang digunakan :  Modem iCON XY / GI0335
Software : Gammu-1.29.0-Stable

Modem iCON XY

 

Gravatar Image
Suka jalan-jalan, naik sepeda, bermain code-code asal tidak suka mengkode cinta. Hubungi email : andhika.na@gmail.com jika anda butuh website untuk personal maupun bisnis.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.