From 0f76ed7c64c0912cc4793e3c6c62a30a248c7679 Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Mon, 15 Jul 2013 11:54:22 +1000 Subject: [PATCH] Set downloading voip client as the default Use same tmp dir as Limesurvey Check if tmp dir writable before using to avoid server overloading --- status.php | 4 +-- voip/downloadvoipclient.php | 71 +++++++++++++++++++------------------ 2 files changed, 39 insertions(+), 36 deletions(-) diff --git a/status.php b/status.php index e23ea28f..08246e19 100644 --- a/status.php +++ b/status.php @@ -92,9 +92,9 @@ if (is_voip_enabled($operator_id)) $exta = $exts[1]; $extp = get_extension_password($operator_id); if (get_extension_status($operator_id)) - print "
" . T_("VoIP On") . "
"; + print "
" . T_("VoIP On") . "
"; else - print "
" . T_("VoIP Off") . "
"; + print "
" . T_("VoIP Off") . "
"; } else print "
" . T_("No VoIP") . "
"; diff --git a/voip/downloadvoipclient.php b/voip/downloadvoipclient.php index 70b2b84b..d181401b 100644 --- a/voip/downloadvoipclient.php +++ b/voip/downloadvoipclient.php @@ -47,7 +47,7 @@ function tempdir($dir, $prefix='', $mode=0700) return $path; } -$tempdir = realpath(dirname(__FILE__) . '/tmp'); +$tempdir = realpath(dirname(__FILE__) . '/../include/limesurvey/tmp'); $operator_id = get_operator_id(); if ($operator_id) @@ -61,42 +61,45 @@ if ($operator_id) if (!empty($rs)) { - $zipdir=tempdir($tempdir); - - $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']); - if (preg_match('/linux/', $userAgent)) { - //assume linux - copy(realpath(dirname(__FILE__) . '/../voipclient'),"$zipdir/voipclient"); - $f1 = "$zipdir/voipclient"; - $f2 = "$zipdir/startvoip"; - file_put_contents($f2, "./voipclient -i -u {$rs['ext']} -p {$rs['extension_password']} -h " . $_SERVER['SERVER_NAME']); - - } - else + if (is_writable($tempdir)) { - //assume windows - copy(realpath(dirname(__FILE__) . '/../voipclient.exe'),"$zipdir/voipclient.exe"); - $f1 = "$zipdir/voipclient.exe"; - $f2 = "$zipdir/startvoip.bat"; - file_put_contents($f2, "voipclient.exe -i -u {$rs['ext']} -p {$rs['extension_password']} -h " . $_SERVER['SERVER_NAME']); + $zipdir=tempdir($tempdir); + $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']); + if (preg_match('/linux/', $userAgent)) { + //assume linux + copy(realpath(dirname(__FILE__) . '/../voipclient'),"$zipdir/voipclient"); + $f1 = "$zipdir/voipclient"; + $f2 = "$zipdir/startvoip"; + file_put_contents($f2, "./voipclient -i -u {$rs['ext']} -p {$rs['extension_password']} -h " . $_SERVER['SERVER_NAME']); + + } + else + { + //assume windows + copy(realpath(dirname(__FILE__) . '/../voipclient.exe'),"$zipdir/voipclient.exe"); + $f1 = "$zipdir/voipclient.exe"; + $f2 = "$zipdir/startvoip.bat"; + file_put_contents($f2, "voipclient.exe -i -u {$rs['ext']} -p {$rs['extension_password']} -h " . $_SERVER['SERVER_NAME']); + + } + + require_once(dirname(__FILE__) . "/../include/limesurvey/admin/classes/phpzip/phpzip.inc.php"); + $z = new PHPZip(); + $zipfile="$tempdir/voipclient.zip"; + $z->Zip($zipdir, $zipfile); + + unlink($f1); + unlink($f2); + rmdir($zipdir); + + header('Content-Type: application/octet-stream'); + header('Content-Disposition: attachment; filename="voipclient.zip"'); + header('Content-Transfer-Encoding: binary'); + // load the file to send: + readfile($zipfile); + unlink($zipfile); } - - require_once(dirname(__FILE__) . "/../include/limesurvey/admin/classes/phpzip/phpzip.inc.php"); - $z = new PHPZip(); - $zipfile="$tempdir/voipclient.zip"; - $z->Zip($zipdir, $zipfile); - - unlink($f1); - unlink($f2); - rmdir($zipdir); - - header('Content-Type: application/octet-stream'); - header('Content-Disposition: attachment; filename="voipclient.zip"'); - header('Content-Transfer-Encoding: binary'); - // load the file to send: - readfile($zipfile); - unlink($zipfile); } } exit();