L1 DAFTAR LAMPIRAN Lampiran A Function.php
L2 echo "<meta http-equiv='refresh' content='0;URL=./kuesioner/index.php'>"; } else return false; } function delUserFromConf($nim) { $fileName = "/etc/asterisk/sip_additional.conf"; $flag=0;
$arr = file($fileName); $start=0; while (list ($line_num, $line) = each ($arr)) { $j=1; if(($line[$j-1]=="[" && $flag==0) || $flag==1) { $parser=NULL; while($line[$j] != "]") { $parser=$parser.$line[$j]; $j++; } if($parser==$nim)
L3 { $flag=1; } } if($flag==0) $start++; else if($flag==1) break; }
for($j=0;$j<15;$j++) { unset($arr[$start]); $start++; }
$fp = fopen($fileName, 'w+');
foreach($arr as $line) fwrite($fp,$line);
fclose($fp); } function delUserFromPresence($nim)
L4 { $fileName = "/etc/asterisk/extensions_presence.conf"; $flag=0;
$arr = file($fileName); $start=0; //exten => 100,hint,SIP/peername while (list ($line_num, $line) = each ($arr)) { if($start==0) { $start++; continue; } $j=9; $parser=NULL; while($line[$j] != ",") { $parser=$parser.$line[$j]; $j++; } if($parser==$nim) { $flag=1; }
L5 if($flag==0) $start++; else if($flag==1) break; }
for($j=0;$j<1;$j++) { unset($arr[$start]); $start++; }
$fp = fopen($fileName, 'w+');
foreach($arr as $line) fwrite($fp,$line);
fclose($fp); } function gantiPassAsterisk($id,$pass) { mysql_select_db("asterisk") or die("database tidak ada"); $query1 = "update sip set data='".$pass."' where id='".$id."' AND keyword='secret'";
L6 $result1 = mysql_query($query1) or die(mysql_error()); mysql_select_db("skripsi") or die("database tidak ada"); } function tambahSIP($id,$pass,$name) { $context="from-internal"; mysql_select_db("asterisk") or die("database tidak ada"); $query="INSERT INTO `sip` (`id`, `keyword`, `data`, `flags`) VALUES ('".$id."', 'secret', '".$pass."', 0), ('".$id."', 'dtmfmode', 'rfc2833', 0), ('".$id."', 'canreinvite', 'no', 0), ('".$id."', 'context', '".$context."', 0), ('".$id."', 'host', 'dynamic', 0), ('".$id."', 'type', 'friend', 0), ('".$id."', 'nat', 'yes', 0), ('".$id."', 'port', '5060', 0), ('".$id."', 'qualify', 'yes', 0), ('".$id."', 'dial', 'SIP/".$id."', 0), ('".$id."', 'accountcode', '', 0), ('".$id."', 'mailbox', '".$id."@default', 0), ('".$id."', 'account', '".$id."', 0), ('".$id."', 'callerid', '".$name." <".$id.">', 0)"; $result = mysql_query($query) or die(mysql_error()); mysql_select_db("skripsi") or die("database tidak ada");
L7 } function dtkToMin($dtk) { if($dtk % 60 == 0) { if($dtk==0) return "0 Detik"; $ret = $dtk/60; $ret = $ret." Menit"; return $ret; } else { $mnt = floor($dtk/60)." Menit ".($dtk%60)." Detik"; return $mnt; } } function writeSIPAll() { include "/includes/retrieve_sip_conf_from_mysql.php"; return true; } function writePresence($nim) {
L8 $fileName = "/etc/asterisk/extensions_presence.conf"; $additional = ""; $fd = fopen($fileName,"a"); $additional = "exten => ".$nim.",hint,SIP/".$nim."\n"; fputs($fd,$additional); fclose($fd); } function writeSIPUser($id) { //#!/usr/bin/perl -Tw //# Retrieves the sip user/peer entries from the database //# Use these commands to create the appropriate tables in MySQL //# //#CREATE TABLE sip (id INT(11) DEFAULT -1 NOT NULL,keyword VARCHAR(20) NOT NULL,data VARCHAR(50) NOT NULL, flags INT(1) DEFAULT 0 NOT NULL,PRIMARY KEY (id,keyword)); //# //# if flags = 1 then the records are not included in the output file
//use DBI; //################### BEGIN OF CONFIGURATION ####################
//# the name of the extensions table
L9 $table_name = "sip"; //# the path to the extensions.conf file //# WARNING: this file will be substituted by the output of this program $sip_conf = "/etc/asterisk/sip_additional.conf"; //# the name of the box the MySQL database is running on $hostname = $mysqlhost; //# the name of the database our tables are kept $database = "asterisk"; //# username to connect to the database $username = $mysqluser; //# password to connect to the database $password = $mysqlpass;
//################### END OF CONFIGURATION #######################
$additional = "";
$fd = fopen($sip_conf,"a");
$dbh = mysql_connect($hostname,$username,$password); mysql_select_db($database);
L10 $statement = "SELECT data,id from $table_name where id=".$id." and keyword='account' and flags <> 1 group by data";
$queryResult = mysql_query($statement); while($fetch = mysql_fetch_array($queryResult)) { $additional = $additional."[".$fetch["id"]."]\n"; $statement2 = "SELECT keyword,data from ".$table_name." where id=".$fetch["id"]." and keyword <> 'account' and flags <> 1 order by keyword"; $queryResult2 = mysql_query($statement2); while($fetch2 = mysql_fetch_array($queryResult2)) { $additional = $additional.$fetch2["keyword"]."=".$fetch2["data"]."\n"; } $additional = $additional."\n"; }
//echo $additional; fputs($fd,$additional); fclose($fd); } function reloadSIP() {
L11 require_once("includes/StarAstAPI.php");
$astcc=new AstClientConnection(); if($astcc->Login($managerusername,$managerpass,"127.0.0.1",5038)){
//echo "Login Sucessful \r\n"; $ap = $astcc->Cmd("sip reload"); //echo $ap->ToString();
}else { //echo "Login failed\r\n"; } } function reloadExtensions() { require_once("includes/StarAstAPI.php");
$astcc=new AstClientConnection(); if($astcc->Login($managerusername,$managerpass,"127.0.0.1",5038)){ //echo "Login Sucessful \r\n"; $ap = $astcc->Cmd("extensions reload"); //echo $ap->ToString();
}else {
L12 //echo "Login failed\r\n"; } } function getName($id) { session_start(); $nama = "SELECT Nama FROM msbinusian WHERE Nim='".$id."'";
$result1 = mysql_query($nama); $row = mysql_fetch_row($result1);
return $row; } function getNama($id) { session_start(); $nama = "SELECT Nama FROM msuser WHERE ID='".$id."'";
$result1 = mysql_query($nama); $row = mysql_fetch_row($result1);
return $row; } function getTelp($id)
L13 { session_start(); $Telp = "SELECT Phone FROM msuser WHERE ID='".$id."'";
$res = mysql_query($Telp); $rowTelp = mysql_fetch_row($res); return $rowTelp; } function getEmail($id) { session_start(); $Email = "SELECT Email FROM msuser WHERE ID='".$id."'";
$result1 = mysql_query($Email); $row = mysql_fetch_row($result1);
return $row; } function getCity($id) { session_start(); $City = "SELECT City FROM msuser WHERE ID='".$id."'";
$result1 = mysql_query($City);
L14 $row = mysql_fetch_row($result1);
return $row; } function getAddress($id) { session_start(); $Address = "SELECT Address FROM msuser WHERE ID='".$id."'";
$result1 = mysql_query($Address); $row = mysql_fetch_row($result1);
return $row; } function connectMSSQLMahasiswa() { $cn = mssql_connect($mssqlhost, $mssqluser, $mssqlpass) or die("Could not connect: Database"); mssql_select_db("CRM_Dev", $cn) or die("Could not Locate Database Mahasiswa"); return true; } function connectMSSQLDosen() {
L15 $cn = mssql_connect($mssqlhost, $mssqluser, $mssqlpass) or die("Could not connect: Database"); mssql_select_db("Binusian", $cn) or die("Could not Locate Database Dosen"); return true; } function cekbinusian($id,$pass,$role) { if($role == "mahasiswa") { connectMSSQLMahasiswa(); $sp = mssql_init("SP_Getpass_beephone"); // stored proc name
mssql_bind($sp, "@userid", stripslashes($id), SQLVARCHAR, false, false, 10);
$result = mssql_execute($sp); $data = mssql_fetch_array($result);
if(mssql_num_rows($result)==0) { return false; } if ($data[2] == $pass)
L16 { //$_SESSION['id']=$id; return true; } return false; } else if($role == "dosen") { connectMSSQLDosen(); $query = "select * from VPR_Bee_phone_dosen WHERE kddsn='".$id."'"; $result = mssql_query ($query); $data = mssql_fetch_array($result); if(mssql_num_rows($result)==0) { return false; } if ($data[3] == $pass) { //$_SESSION['id']=$id; return true; } return false; }
L17 } function getBinusianIDMSSQLDosen($id) { $query = "select * from VPR_Bee_phone_dosen WHERE kddsn='".$id."'"; $result = mssql_query ($query); $data = mssql_fetch_array($result); return $data[1]; } function getNamaMSSQLDosen($id) { $query = "select * from VPR_Bee_phone_dosen WHERE binusian_id='".$id."'"; $result = mssql_query ($query); $data = mssql_fetch_array($result); return $data[2]; } function getTglLhrMSSQLDosen($id) { $query = "select * from VPR_Bee_phone_dosen WHERE kddsn='".$id."'"; $result = mssql_query ($query); $data = mssql_fetch_array($result); return $data[3];
L18 } function getNamaMSSQLMahasiswa($id) { connectMSSQLMahasiswa(); $sp = mssql_init("SP_Getpass_beephone"); // stored proc name
mssql_bind($sp, "@userid", stripslashes($id), SQLVARCHAR, false, false, 10);
$result = mssql_execute($sp); $data = mssql_fetch_array($result); return $data[1]; } function getPassMSSQLMahasiswa($id) { connectMSSQLMahasiswa(); $sp = mssql_init("SP_Getpass_beephone"); // stored proc name
mssql_bind($sp, "@userid", stripslashes($id), SQLVARCHAR, false, false, 10);
$result = mssql_execute($sp); $data = mssql_fetch_array($result); return $data[2];
L19 } function cekmsuser($id) { $query = "select * from msuser where ID='".$id."'"; $result = mysql_query ($query); if ($data = mysql_fetch_array ($result)) { //$_SESSION['idz']=$id; return true; } return false; } function cekValid($id,$pass) { $query = "select * from msuser where ID='".$id."' and Pass='".md5($pass)."'"; $result = mysql_query ($query); if ($data = mysql_fetch_array ($result)) { $_SESSION['id']=$id; return true; } return false; }
L20 function waktu() { $waktu=date("H"); switch($waktu) { case "00":$greet = "Selamat Malam";break; case "01":$greet = "Selamat Malam";break; case "02":$greet = "Selamat Malam";break; case "03":$greet = "Selamat Malam";break; case "04":$greet = "Selamat Pagi";break; case "05":$greet = "Selamat Pagi";break; case "06":$greet = "Selamat Pagi";break; case "07":$greet = "Selamat Pagi";break; case "08":$greet = "Selamat Pagi";break; case "09":$greet = "Selamat Pagi";break; case "10":$greet = "Selamat Pagi";break; case "11":$greet = "Selamat Siang";break; case "12":$greet = "Selamat Siang";break; case "13":$greet = "Selamat Siang";break; case "14":$greet = "Selamat Siang";break; case "15":$greet = "Selamat Siang";break; case "16":$greet = "Selamat Sore";break; case "17":$greet = "Selamat Sore";break; case "18":$greet = "Selamat Sore";break;
L21 case "19":$greet = "Selamat Malam";break; case "20":$greet = "Selamat Malam";break; case "21":$greet = "Selamat Malam";break; case "22":$greet = "Selamat Malam";break; case "23":$greet = "Selamat Malam";break; } return $greet; } function faq(){ session_start(); $query = "SELECT * FROM msfaq"; $result = mysql_query($query); $i=0; $total = mysql_num_rows($result); while ($data = mysql_fetch_array ($result)) { $results[$i]=$data; $i++; } return $results; } function printuser(){ session_start(); $query = "SELECT * FROM msuser";
L22 $result = mysql_query($query); $i=0; while ($data = mysql_fetch_array ($result)) { $results[$i]=$data; $i++; } return $results; } ?>
L23 Lampiran B Defines.php
define ("WEBROOT", "http://hostname/asterisk-stat-v2/"); define ("FSROOT", "/usr/local/apache2/htdocs/asterisk-stat-v2/"); define ("LIBDIR", FSROOT."lib/"); define ("HOST", "localhost"); define ("PORT", "3306"); define ("USER", "username"); define ("PASS", "password"); define ("DBNAME", "cdr_db"); define ("DB_TYPE", "mysql"); // mysql or postgres define ("DB_TABLENAME", "cdr");
// Regarding to the dst you can setup an application name // Make more sense to have a text that just a number // especially if you have a lot of extension in your dialplan $appli_list['1234']=array("Test Demo"); $appli_list['234']=array("Conference Test"); include (FSROOT."lib/DB-modules/phplib_".DB_TYPE.".php"); function DbConnect() {
L24 $DBHandle = new DB_Sql(); $DBHandle -> Database = DBNAME; $DBHandle -> Host = HOST; $DBHandle -> User = USER; $DBHandle -> Password = PASS; $DBHandle -> connect (); return $DBHandle; } function getpost_ifset($test_vars) { if (!is_array($test_vars)) { $test_vars = array($test_vars); } foreach($test_vars as $test_var) { if (isset($_POST[$test_var])) { global $$test_var; $$test_var = $_POST[$test_var]; } elseif (isset($_GET[$test_var])) { global $$test_var; $$test_var = $_GET[$test_var]; } } }
L25 function display_minute($sessiontime){ global $resulttype; if ((!isset($resulttype)) || ($resulttype=="min")){ $minutes = sprintf("%02d",intval($sessiontime/60)).":".sprintf("%02d",intval($sessiontime%60)); }else{ $minutes = $sessiontime; } echo $minutes; } function display_2dec($var){ echo number_format($var,2); } function display_2bill($var){ $var=$var/100; echo '$ '.number_format($var,2); } function remove_prefix($phonenumber){ if (substr($phonenumber,0,3) == "011"){ echo substr($phonenumber,3); return 1; } echo $phonenumber; }
L26 function display_acronym($field){ echo '
'.substr($field,0,7).'...'; } ?>
Lampiran C Kuesioner sebelum Implementasi 1. Berapa biaya yang anda habiskan sebulan untuk biaya berkomunikasi? a. Kurang dari 50rb b. 50rb – 100rb c. 100 – 200rb d. Lebih 200rb 2. Media apa saja yang anda gunakan untuk berkomunikasi ? Handphone Internet (Chatting, email,dll) surat 3. Apakah anda sudah tahu mengenai VoIP ? a. Ya b. Tidak 4. Apakah anda mempunyai internet ? a. Ya b. Tidak 5. Apakah anda tertarik untuk mencoba teknologi VoIP ?
L27 a. Ya b. Tidak 6. Jika teknologi VoIP dapat menghemat biaya komunikasi, apakah teknologi ini dibutuhkan oleh anda? a. Ya b. Tidak
L28 Lampiran D Wawancara terhadap Staff Networking ATL Bapak Piter Tamanggung., S.Kom. Bisa Bapak jelaskan sedikit mengenai project Bee-Phone yang akan dibuat? Kami akan mencoba memberikan service atau layanan atau fasilitas untuk Binusian agar bisa berkomunikasi lewat telepon dengan gratis.
Landasan apa yang menjadi project Bee-Phone ini? Apakah sebuah kebutuhan atau sebuah fitur tambahan? Tetap berangkat dari sebuah kebutuhan dan juga menjadi sebuah fitur tambahan, karena dari Binus sendiri menyediakan akses internet kepada Binusian. Mahasiswa pada umumnya berkomunikasi dengan menggunakan handphone atau jaringan celuluar dengan biaya yang relatif mahal. Sehingga akan ada kebutuhan untuk mahasiswa bisa saling berkomunikasi dengan biaya yang lebih murah. Dan aplikasi ini disajikan dalam fitur akses internet.
Apa yang Bapak harapkan dari project Bee-Phone ini? Project ini diharapkan dapat diimplementasikan dengan lancar dan bisa bermanfaat dalam komunikasi bagi Binusian, tentunya bisa memudahkan komunikasi dan komunikasi yang murah. Maksud dan tujuan bisa tercapai. Termasuk dimana akan berkembang suatu komunitas maya.
Komunitas maya apa yang Bapak maksudkan ? Layanan Internet sekarang ini begitu banyak disediakan, termasuk Universitas Bina Nusantara itu sendiri. Dan banyak user yang menfaatkan jasa internet ini. Dan ada
L29 rencana pembentukkan komunitas pengguna internet, dan dari aplikasi ini bisa menjadi salah satu sarana terciptanya komunitas maya Bee-Phone. Dan sarana komunikasi antar sesama Binusian
Dengan ini, saya menyatakan bahwa pertanyaan dan jawaban yang tertera diatas adalah benar.
18 Januari 2007,
Piter Tamanggung., S.Kom Staff Networking ATL
L30 Lampiran E Kuisioner Setelah Implementasi 1. Darimana anda tahu program bee-phone ini ? Dosen Teman Kuliah Teman Kost Lainnya 2. Apakah anda merasa mudah dalam melakukan registrasi ? Mudah Sedang Sulit 3. Apakah dengan menggunakan bee-phone dapat menghemat pulsa anda ? Ya Tidak 5. Berapa lama waktu bicara anda ketika sedang menelepon dengan menggunakan handphone ? Kurang dari 5 menit 5 - 15 menit
L31
15 - 30 menit Lebih dari 30 menit 5. Berapa lama waktu bicara anda ketika sedang menelepon dengan menggunakan beephone ? Kurang dari 5 menit 5 - 15 menit 15 - 30 menit Lebih dari 30 menit 6. Bagaimana kualitas suara pada saat anda berkomunikasi menggunakan bee-phone ? Putus - putus Biasa saja Jelas Sangat jelas 7. Apakah anda kesulitan dalam menginstall dan setting softphone ? Ya, karena Tidak, karena 8. Apakah anda memiliki microphone ? Ya
L32
Tidak 9. Seberapa sering anda online menggunakan softphone bee-phone per hari ? (Online disini adalah Standby untuk menerima telp) Kurang dari 30 menit 15 menit - 1 jam 1 - 6 jam lebih dari 6 jam 10. Sejauh ini apakah pernah ada gangguan pada saat anda sedang menelepon (tiba-tiba terputus) ? Ya Tidak 11. Apakah anda juga mempromosikan kepada teman anda untuk menggunakan beephone ini ? Ya, karena Tidak, karena 12. Apakah informasi yang diberikan di web sudah cukup jelas ? Jelas Sedang
L33
Tidak Jelas 13. Apakah sebelumnya anda sudah tahu tentang VoIP ? Ya Tidak 14. Apakah sebelumnya anda sudah pernah menggunakan teknologi seperti bee-phone ini ? Belum pernah Pernah, contohnya
L34 Lampiran F Hasil Kuesioner No Pertanyaan 1
Hasil Kuesioner
Darimana anda tahu program bee- Dosen = 10 phone ini ?
Uraian senior
BNCC
Teman Kuliah = YM 37
dari
binus
Teman Kost = 30
cari kata BINUS dari
Lainnya = 19
Google temen
career
kantor
forum binusmaya browse binus access www.himti.org/forum forum OB pas
iseng
buka
website binus @ccess 2
Apakah anda merasa mudah dalam Mudah = 69 melakukan registrasi ?
Sedang = 22 Sulit = 5
3
Apakah dengan menggunakan bee- Ya = 76 phone dapat menghemat pulsa anda ?
4
Tidak = 20
Berapa jumlah kira – kira pulsa yang < 5rb = 11
L35 telah terhemat?
5rb – 10 rb = 21 10rb – 20rb = 21 >20rb = 23
5
Berapa lama waktu bicara anda ketika < 5menit = 45 sedang
menelepon
dengan 5-15menit = 31
menggunakan handphone ?
15-30menit = 4 >30 menit = 16
6
Berapa lama waktu bicara anda < 5menit = 40 ketika sedang menelepon dengan 5-15menit = 21 menggunakan bee-phone ?
15-30menit = 10 >30 menit = 25
7
Bagaimana kualitas suara pada saat Putus-putus = 27 anda berkomunikasi menggunakan Biasa saja = 48 bee-phone ?
Jelas = 19 Sangat jelas = 2
8
9
Apakah
anda
kesulitan
dalam Ya = 29
menginstall dan setting softphone ?
Tidak 67
Apakah anda memiliki microphone ?
Ya = 78 Tidak = 18
10
Seberapa
sering
anda
online <30 menit = 47
menggunakan softphone bee-phone 30menit–1jam per hari ? (Online disini adalah 18 Standby untuk menerima telp)
1 – 6 jam = 15
=
L36 >6 jam = 16 11
Sejauh
ini
apakah
pernah
ada Ya = 57
gangguan pada saat anda sedang Tidak = 39 menelepon (tiba-tiba terputus) ? 12
Apakah anda juga mempromosikan Ya = 82 kepada
teman
anda
untuk Tidak = 14
menggunakan bee-phone ini ? 13
Apakah informasi yang diberikan di Jelas = 51 web sudah cukup jelas ?
Sedang = 42 Tidak Jelas = 3
14
Apakah sebelumnya anda sudah tahu Ya = 65 tentang VoIP ?
15
Apakah
sebelumnya
pernah
menggunakan
seperti bee-phone ini ?
Tidak = 31 anda
sudah Belum Pernah = YM
teknologi 73 Pernah = 23
skype yahoo
messenger
skype voiprakyat skype skype yahoo YM yahoo messenger & skype
L37 ym Layanan
VoIP
disediakan
yg oleh
Yahoo trixbox YM
dan
yahoo, YM ym voice
MSN
skype,msn