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