Untuk mengaitkan antar pecahan-pecahan sms tersebut dibuatlah sebuah id yang akan ditempatkan di field yang bernama udh. Kita juga harus mengeset field multipart di tabel outbox menjadi true ketika menginsert ke tabel outbox. Berikut script untuk mengirimkan sms lebih lebih dari 160 karakter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<? | |
// koneksi ke database | |
$hostname_config = "localhost"; | |
$database_config = "smsgateway"; | |
$username_config = "root"; | |
$password_config = "root"; | |
$config = mysql_pconnect($hostname_config, $username_config, $password_config) or trigger_error(mysql_error(),E_USER_ERROR); | |
mysql_select_db($database_config, $config); | |
// isi pesan yang akan di kirim | |
$isisms="Jika pada tutorial sebelumnya saya telah mengajarkan bagaimana prosedur instalasi dari gammu, maka kali ini saya akan menuliskan beberapa cara mengirimkan sms lewat gammu. Ada dua cara mengirimkan sms di gammu. Yang pertama melalui command inject, kemudian yang kedua langsung di insert di tabel outbox yang telah disediakan gammu."; | |
// hitung berapa jumlah sms dengan membaginya dengan 160 | |
$jumsms = ceil(strlen($pesan)/160); | |
// process jika jumlah sms hanya 1 | |
if($jumsms==1) | |
{ | |
$query = mysql_query("INSERT INTO outbox (DestinationNumber, TextDecoded, SenderID, CreatorID, Class) | |
VALUES ('085649921023', '$isisms', 'prolink', 'Gammu', '0')"); | |
} | |
// process jika jumlah sms lebih dari 1 | |
if($jumsms<>1) | |
{ | |
// menghitung jumlah pecahan | |
$hitpecah = ceil(strlen($isisms)/153); | |
// memecah pesan asli | |
$pecah = str_split($isisms, 153); | |
// membuat nilai ID untuk di insert di outbox | |
$query = "SHOW TABLE STATUS LIKE 'outbox'"; | |
$hasil = mysql_query($query); | |
$data = mysql_fetch_array($hasil); | |
$newID = $data['Auto_increment']; | |
// proses penyimpanan ke tabel outbox dan outbox_multipart untuk setiap pecahan | |
for ($i=1; $i<=$jmlSMS; $i++) | |
{ | |
// membuat UDH untuk setiap pecahan, sesuai urutannya | |
$udh = "050003A7".sprintf("%02s", $hitpecah).sprintf("%02s", $i); | |
// membaca text setiap pecahan | |
$msg = $pecah[$i-1]; | |
if ($i == 1) | |
{ | |
// jika merupakan pecahan pertama, maka masukkan ke tabel OUTBOX | |
$query = "INSERT INTO outbox (DestinationNumber, UDH, TextDecoded, ID, MultiPart, SenderID, CreatorID, Class) | |
VALUES ('085649921023', '$udh', '$msg', '$newID', 'true', 'prolink', 'Gammu', '0')"; | |
} | |
else | |
{ | |
// jika bukan merupakan pecahan pertama, simpan ke tabel OUTBOX_MULTIPART | |
$query = "INSERT INTO outbox_multipart(UDH, TextDecoded, ID, SequencePosition) | |
VALUES ('$udh', '$msg', '$newID', '$i')"; | |
} | |
// jalankan query | |
mysql_query($query); | |
} | |
} | |
?> |