Tampilkan postingan dengan label remote. Tampilkan semua postingan
Tampilkan postingan dengan label remote. Tampilkan semua postingan

Minggu, 27 Juni 2010

Mengintegrasikan SMS Gateway di jaringan lokal, dengan Web di Hosting

Mumpung diberi libur dari melakukan perjalanan spiritual, posting tentang SMS Gateway daripada kepikiran lagi nanti..

Seorang bertanya kepada saya:"Mas bisa nggak ya web sekolah saya yang di internet, dikasih fasilitas sms masuk"

Saya jawab:"bisa dengan berbagai catatan,
1. kalau nggak minta ijin ke web hostingnya untuk pasang modem,
2. ya njenengan pesen VAS SMS ke Conten Provider,
3. atau buat sendiri dengan syarat ada koneksi internet.."

Dia bilang:"Ada mas koneksi.. ada modem, ada server yang sudah kita buat itu"

Dan akhirnya secara sederhana bagannya adalah sebagai berikut:


Bagan network sms gateway dengan hosting

PC kita selanjutnya akan diberikan satu script dengan nama sendtohosting.php, yang akan mengambil dari database gammu, yang akan dicrontab seperti ini kira kira

*/1 * * * * /usr/bin/php /var/www/html/script/sendtohosting.php


atau memberikan aksi pada saat SMS masuk pada script smsdrc anda:
runonreceive=/usr/bin/php /var/www/html/script/sendtohosting.php


Terserah tekniknya jika dengan /usr/bin/php tidak dapat dilakukan, bisa dilakukan dengan memanggil curl http://localhost/script/sendtohosting.php.


Buat penggemar Windows silakan menyesuaikan pathnya ya.. Script ini sebaiknya melakukan cek tidak hanya ketika SMS Masuk, namun setiap saat, karena tidak setiap koneksi internet dapat menjamin komunikasi dua server ini. Jika dilakukan crontab 1 atau 2 menit sekali, tentu akan selalu update proses pengiriman smsnya.


Pada sisi hosting akan diletakkan satu file dengan nama : receiver.php. Script ini berjalan ketika terjadi HIT oleh sendtohosting.php di posisi remote dan dihubungkan dengan database SMS yang dipasang disana (terserah formatnya). Script ini, jika sendtohosting.php, alias IP address SMS Gateway statik, maka sebaiknya dikunci dengan menentukan $_SERVER['REMOTE_ADDR'];Jika tidak , hehe menunggu postingan saya berikutnya

Nah berikut script sendtohosting.php yang dipasang di SMS Gateway lokal


<?php

//skrip untuk menghubungkan SMS Gateway lokal dengan hosting.. skrip ini dipasang untuk berhadapan dengan gammu.. Penggunaannya adalah:
//1. harus ada koneksi internet,
//2. database gammu

$urlhosting = "http://localhost/bankscript/receiver.php";
$dbname = 'gammu';
$dbuser = 'root';
$dbpass = '';
$dbhost = 'localhost';


if(mysql_connect($dbhost,$dbuser,$dbpass)){
mysql_select_db($dbname);
}else{
echo 'DB ne ra konek!!';
}

//bukak sms satu persatu

$q = "SELECT `SenderNumber`,`TextDecoded`,`UpdatedInDB` FROM `inbox` WHERE `Processed`='false'";
$mq = mysql_query($q);
$n = mysql_query($q);

while($r=mysql_fetch_array($mq)){
$sms = $r['TextDecoded'];
$nohp = $r['SenderNumber'];
$time = $r['UpdatedInDB'];
$id = $r['ID'];
$url = $urlhosting . "?sms=".$sms."&nohp=".$nohp."&time="$time;
$hostingopen = fopen($url,"r");
$hostingread = fread($hostingopen,100);
//jika sukses mengantarkan URL
if($hostingread=="OK"){

$q2="UPDATE `inbox` SET `Processed`='true' WHERE `ID`='$id'";
mysql_query($q2)
}
}






?>

Untuk $urlhosting silakan dipasang saka url website anda, misal http://sekulakusekolahapik.sch.id/receiver.php

dan pada bagian ini tentukan sesuai dengan database

$dbname            =    'gammu';
$dbuser            =    'root';
$dbpass            =    '';
$dbhost            =    'localhost';


Kemudian pada bagian hosting kita letakkan script php ini untuk memasukkan sms ke dalam tabel smsnya


<?php
$ipallow='127.0.0.1';
//tidak harus disitu



if(($_SERVER['REMOTE_ADDR'])!=$ipallow){
echo "NOT ALLOWED";
}else{


$dbname            =    'smssekolah';
$dbuser            =    'smssekolah';
$dbpass            =    'admine_hosting_mambu_prengus';
$dbhost            =    'localhost';


if(mysql_connect($dbhost,$dbuser,$dbpass)){
    mysql_select_db($dbname);
}else{
    echo 'DB ne ra konek!!';
}



if(isset($_GET['nohp'])){

echo "OK";

$sms=$_GET['sms'];
$nohp=$_GET['nohp'];
$time=$_GET['time'];

$q="INSERT INTO `sms_masuk` (`id`,`nohp`,`sms`,`time`) VALUES ('','$nohp','$sms','$time')";
mysql_query($q);

}
}
?>


Nah sekarang, testlah dengan sms ke nomer SMS Gateway.. dan lihatlah pada data SMS di hosting.. Begitulah kira kira secara sederhana, dan akan saya tambahkan kapan-kapan setelah pengembaraan nanti malam berlanjut...

CMIIW