require_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")."
| Filename | Queue Time | Numbers | Done? |
";
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
$complete = "No";
if ($row["result"]) {
$resulttable .= "| ".$row["filename"]." | ".$row["queuetime"]." | ".$row["numbercnt"]." | Yes |
";
} else {
$resulttable .= "| ".$row["filename"]." | ".$row["queuetime"]." | ".$row["numbercnt"]." | No |
";
}
}
$resulttable .= "
";
$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.
";
} 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.
";
} 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;
}