rendered paste bodyrequire_once("xajax/xajax.inc.php");
require_once("autodialer.common.php");
$xajax = new xajax("autodialer.server.php");
$xajax->registerFunction("ad_display");
$xajax->registerFunction("ad_results");
$xajax->registerFunction("ad_generate");
$xajax->processRequests();
function ad_display () {
global $dbh;
$sql = "SELECT filename,queuetime,numbercnt,length(results) > 0 as result FROM autodialer_results ORDER BY queuetime DESC LIMIT 30";
$sth = $dbh->prepare($sql);
$sth->execute();
$resulttable = "Last update: ".date("Y-m-d H:i:s")."<table border='0'><tr><th>Filename</th><th>Queue Time</th><th>Numbers</th><th>Done?</th></tr>";
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
$complete = "<font color='red'>No</font>";
if ($row["result"]) {
$resulttable .= "<tr bgcolor='lightblue'><td><a href='' onclick=\"xajax_ad_results('".$row["filename"]."'); return false;\" onclick='xajax'>".$row["filename"]."</a></td><td>".$row["queuetime"]."</td><td align='center'>".$row["numbercnt"]."</td><td align='center'>Yes</td></tr>";
} else {
$resulttable .= "<tr bgcolor='red'><td>".$row["filename"]."</td><td>".$row["queuetime"]."</td><td align='center'>".$row["numbercnt"]."</td><td align='center'>No</td></tr>";
}
}
$resulttable .= "</table>";
$objResponse = new xajaxResponse();
$objResponse->addAssign("resulttable", "innerHTML", $resulttable);
return $objResponse;
}
function ad_results ($filename) {
global $dbh;
$sql = "SELECT results FROM autodialer_results WHERE filename='".$filename."'";
$sth = $dbh->prepare($sql);
$sth->execute();
$row = $sth->fetch(PDO::FETCH_ASSOC);
$objResponse = new xajaxResponse();
$objResponse->addAssign("resultdata", "value", $row["results"]);
$objResponse->addAssign("filename", "innerHTML", "Results for ".$filename);
return $objResponse;
}
function ad_generate ($numbers) {
global $dbh;
$username = $_COOKIE["username"];
if (!isset($username)) {
$username = 'anonymous';
}
$objResponse = new xajaxResponse();
$objResponse->addAssign("filename", "innerHTML", "Generating...");
$numbers_output = "";
$error_output = "";
$numbercnt = 0;
foreach (explode("\n",$numbers) as $number) {
$number = preg_replace("/[^0-9]/","",$number);
if (strlen($number) > 0) {
$numbers_output .= $number."\r\n";
$numbercnt++;
if (strlen($number) != 10) {
$error_output .= $number." is an invalid number. Please fix.\r\n";
}
}
}
if (strlen($numbers_output == 0)) {
$error_output .= "No numbers!\r\n";
}
if (strlen($error_output) == 0) {
$file = $username."-".date("Y-m-d_H:i:s").".txt";
$tmpfile = "tmp/.".$file;
if (!($fh = fopen($tmpfile, 'w'))) {
$error_output .= "Error generating autodialer file.<br>";
} else {
fwrite($fh,"SEQUENTIAL\n");
fwrite($fh,str_replace("\r",";",$numbers_output));
fclose($fh);
if (!($conn = ssh2_connect("172.16.5.116", 22))) {
$error_output .= "Failed to connect to provlinux01.\r\n";
} else {
if (!ssh2_auth_pubkey_file($conn, 'autodial', 'rsa_provlinux01.pub', 'rsa_provlinux01')) {
$error_output .= "Failed to authenticate to provlinux01.\r\n";
} else {
if (!ssh2_scp_send($conn, $tmpfile, "~autodial/number_files_2/$file")) {
$error_output .= "Failed to send file to provlinux01.<br>";
} else {
$sql = "INSERT INTO autodialer_results (filename,queuetime,numbercnt) VALUES ('$file',now(),$numbercnt)";
$sth = $dbh->prepare($sql);
$sth->execute();
$objResponse->addAssign("filename", "innerHTML", "Generated ".$file);
}
}
}
}
unlink($tmpfile);
}
if (!strlen($error_output) == 0) {
$objResponse->addAssign("resultdata", "value", $error_output);
$objResponse->addAssign("numbers", "value", $numbers_output);
} else {
$objResponse->addAssign("numbers", "value", "");
$objResponse->addAssign("resultdata", "value", "");
}
return $objResponse;
}