PABX criado para pesquisas
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

181 lines
8.8 KiB

#!/usr/bin/php -q
<?php
/**
* Autor: Jose Henrique Joanoni
*
* Este Script executa duas procedures no banco de dados de clientes que utilizam
* ERP da CNT Sistemas.
* A execução desta rotina acontece todos os dias às 6:00 da manhã, para verificação
* das permissões do usuário Simples IP.
*
* Dezembro/2017
*
*/
require ("phpmailer/class.phpmailer.php");
$fileLog = '/var/log/asterisk/log_permissoes_cnt.log';
$data = date('d/m/Y H:i:s');
/*
* CLIENTES QUE UTILIZAM CNT E TEM INTEGRACAO
*/
$hosts["NetHome"] = array("ip"=> "168.227.52.8", "usuario" => "simplesip","senha" => "s1mpl3s1p","cliente" => "NetHome","base" => "conadmin","porta" => "3306");
$hosts["GlobalProvider"] = array("ip"=> "192.141.102.238", "usuario" => "simplesip","senha" => "s1mpl3s1p","cliente" => "GlobalProvider","base" => "conadmin","porta" => "3306");
try {
$connPG = ConnectPG();
/*
* Se conecta ao banco do cliente e testa as permissões uma por vez.
*/
foreach ($hosts as $key => $host) {
$nomeCliente = $host['cliente'];
$conn = mysqli_connect($host['ip'], $host['usuario'], $host['senha'], $host['base'], $host['porta']);
mysqli_select_db($conn, 'conadmin');
if (mysqli_errno() || !$conn) {
file_put_contents($fileLog, $data . printf("Falha: %s - ", mysqli_connect_error($conn)) . "\r\n", FILE_APPEND);
$data = date('d/m/Y H:i:s');
$ip_cliente = $host['ip'];
$cliente = $nomeCliente;
$status = 'Erro!';
$mensagem = mysqli_connect_error($conn);
$mensagem = addslashes($mensagem);
$query = "INSERT INTO pbx_teste_permissao(ip_cliente, data_teste, status, mensagem, nome_cliente)"
. "values('{$ip_cliente}','now()','{$status}','{$mensagem}','{$cliente}')";
pg_query($query);
$mail = new PHPMailer(true); // Passing `true` enables exceptions
try {
//Configurações do Servidor
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'mail.simplesip.com.br'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'workflow@simplesip.com.br'; // SMTP username
$mail->Password = '#w0rkFl0w@'; // SMTP password
//$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
//Remetente
$mail->setFrom('desenvolvimento01@simplesip.com.br', 'Desenvolvimento01');
//Recebedores
$mail->addAddress('hugo@cntsistemas.com.br', 'Hugo CNT');
$mail->addCC('suporte@simplesip.com.br', 'Suporte Técnico Simples IP');
$mail->AddBCC('desenvolvimento01@simplesip.com.br', 'Desenvolvimento Simples IP');
//Anexos
$mail->addAttachment($fileLog); // Add attachments
$mail->addAttachment("/var/lib/asterisk/scripts/workflow/logoPrincipal.jpg"); // Optional name
//Conteudo
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Acesso ao Banco de dados CNT';
$mail->Body = "Prezados! <br /> Foi Constatado que o usuário simplesip no banco do cliente: <b>" . $cliente . "</b> Não está conseguindo conexão. <br />"
. "O erro apresentado é: " . $mensagem
. "<hr><b>José Henrique Joanoni - Desenvolvimento. <br /> "
. "Enviado em: " . date('d/m/Y H:i:s');
$mail->send();
file_put_contents($fileLog, $data . " - Email enviado para o Suporte!\r\n - $mensagem \r\n", FILE_APPEND);
} catch (Exception $e) {
file_put_contents($fileLog, $data . " - Erro no envio: [$mail->ErrorInfo]\r\n", FILE_APPEND);
}
} elseif (!testaPermissao($conn)) {
$data = date('d/m/Y H:i:s');
$ip_cliente = $host['ip'];
$cliente = $nomeCliente;
$status = 'Erro!';
$mensagem = mysqli_error($conn);
$mensagem = addslashes($mensagem);
$query = "INSERT INTO pbx_teste_permissao(ip_cliente, data_teste, status, mensagem, nome_cliente)"
. "values('{$ip_cliente}','now()','{$status}','{$mensagem}','{$cliente}')";
pg_query($query);
$mail = new PHPMailer(true); // Passing `true` enables exceptions
try {
//Configurações do Servidor
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'mail.simplesip.com.br'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'workflow@simplesip.com.br'; // SMTP username
$mail->Password = '#w0rkFl0w@'; // SMTP password
//$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
//Remetente
$mail->setFrom('desenvolvimento01@simplesip.com.br', 'Desenvolvimento01');
//Recebedores
$mail->addAddress('hugo@cntsistemas.com.br', 'Hugo CNT');
$mail->addCC('suporte@simplesip.com.br', 'Suporte Técnico Simples IP');
$mail->AddBCC('desenvolvimento01@simplesip.com.br', 'Desenvolvimento Simples IP');
//Anexos
$mail->addAttachment($fileLog); // Add attachments
$mail->addAttachment("/var/lib/asterisk/scripts/workflow/logoPrincipal.jpg"); // Optional name
//Conteudo
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Permissão CNT';
$mail->Body = "Prezados! <br /> Foi Constatado que as permissões do usuário simplesip no banco do cliente: <b>" . $cliente . "</b> Foram perdidas. <br />"
. "É necessário que esta permissão esteja concedida para o correto funcionamento da integração ativa,"
. "Peço que entrem em contato com a CNT para resolverem o problema. <br /> Att."
. "<hr><b>José Henrique Joanoni - Desenvolvimento. <br /> "
. "Enviado em: " . date('d/m/Y H:i:s');
$mail->send();
file_put_contents($fileLog, $data . " - Email enviado para o Suporte!\r\n - $mensagem \r\n", FILE_APPEND);
} catch (Exception $e) {
file_put_contents($fileLog, $data . " - Erro no envio: [$mail->ErrorInfo]\r\n", FILE_APPEND);
}
} else {
$data = date('d/m/Y H:i:s');
$ip_cliente = $host['ip'];
$cliente = $nomeCliente;
$status = 'Sucesso!';
$mensagem = 'Teste Executado com sucesso!';
$query = "INSERT INTO pbx_teste_permissao(ip_cliente, data_teste, status, mensagem, nome_cliente)"
. "values('{$ip_cliente}','now()','{$status}','{$mensagem}','{$cliente}')";
pg_query($query);
file_put_contents($fileLog, $data . ": Teste executado com Sucesso! [$query]\r\n", FILE_APPEND);
}
}
mysqli_close($conn);
} catch (Exception $e) {
/**
* ARMAZENA AS MENSAGENS DE ERRO EM UM ARQUIVO.
*/
$reg_msg = $e->getMessage();
file_put_contents($fileLog, "Erro: $reg_msg \r\n", FILE_APPEND);
}
/**
*
* @param type $acao
* @return string
*
* Função que executa as procedures no banco dos clientes.
*/
function testaPermissao($acao) {
$sql = mysqli_query($acao, 'CALL setLogin(\'ura\');')
. mysqli_query($acao, 'CALL InformaPagamento(@IdLoja, @IdContaReceber,\'\');');
return $sql;
}
/**
*
* @return type
*
* Função de conexão ao banco de dados.
*/
function ConnectPG() {
$dbPort = "5432";
$dbHost = "127.0.0.1";
$dbName = "pbx";
$dbUser = "contacte";
$dbPassword = "ctepgSQL";
$str = "host='$dbHost' port='$dbPort' dbname='$dbName' user='$dbUser' password='$dbPassword'";
return pg_connect($str);
}
?>