|
|
|
|
<?php
|
|
|
|
|
/*******************************************************************************
|
|
|
|
|
* IMPORTA AGENDA *
|
|
|
|
|
* *
|
|
|
|
|
* Data: 17/04/2019 *
|
|
|
|
|
* Autor: Jose Henrique Joanoni *
|
|
|
|
|
* *
|
|
|
|
|
* Script criado para replica<EFBFBD><EFBFBD>o da agenda entre unidades de uma mesma empresa*
|
|
|
|
|
* *
|
|
|
|
|
******************************************************************************/
|
|
|
|
|
|
|
|
|
|
$acao = isset($_GET['acao']) ? trim($_GET['acao']) : '';
|
|
|
|
|
$id = isset($_REQUEST['id_servidor']) ? trim($_REQUEST['id_servidor']) : 0;
|
|
|
|
|
$valorInicial = ['server_address','server_port'];
|
|
|
|
|
$server_address = isset($_POST['server_address']) ? $_POST['server_address'] : '';
|
|
|
|
|
$server_port = isset($_POST['server_port']) ? $_POST['server_port'] : '';
|
|
|
|
|
$paramInsert = ValorInicio($valorInicial);
|
|
|
|
|
$tpLayout = 1;
|
|
|
|
|
|
|
|
|
|
if (isset($_POST['btTestar'])) {
|
|
|
|
|
|
|
|
|
|
$arServidores = strripos($_POST['server_address'], ",") == true ? $_POST['server_address'] : str_replace(" ", ",", $_POST['server_address']);
|
|
|
|
|
$arPortas = strripos($_POST['server_port'], ",") == true ? $_POST['server_port'] : str_replace(" ", ",", $_POST['server_port']);
|
|
|
|
|
$testResult = TestaConexao($arServidores, $arPortas);
|
|
|
|
|
|
|
|
|
|
if ($testResult != "Servidores OK!") {
|
|
|
|
|
$jsStartup[] = "alert('{$testResult}');";
|
|
|
|
|
|
|
|
|
|
foreach ($_POST as $key => $valor) {
|
|
|
|
|
$paramInsert[$key] = $valor;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$jsStartup[] = "alert('Servidores OK!');";
|
|
|
|
|
|
|
|
|
|
foreach ($_POST as $key => $valor) {
|
|
|
|
|
$paramInsert[$key] = $valor;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($_POST['btGravar'])) {
|
|
|
|
|
|
|
|
|
|
$servers = strripos($_POST['server_address'], " ") ? explode(" ", $_POST['server_address']) : str_replace(","," ",explode(",", $_POST['server_address']));
|
|
|
|
|
|
|
|
|
|
foreach ($servers as $valor) {
|
|
|
|
|
$query = "INSERT INTO pbx_agenda_servidores (ip_servidores, porta) "
|
|
|
|
|
. "VALUES ('{$valor}','{$_POST['server_port']}')";
|
|
|
|
|
$sql = pg_query($dbcon, $query);
|
|
|
|
|
|
|
|
|
|
if (!$sql) {
|
|
|
|
|
$jsStartup[] = "alert('Erro ao salvar a opera<EFBFBD><EFBFBD>o no banco de dados local!');";
|
|
|
|
|
foreach ($_POST as $key => $valor) {
|
|
|
|
|
$paramInsert[$key] = $valor;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$jsStartup[] = "alert('Servidores Cadastrados com Sucesso!');";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if($acao == 'deleta'){
|
|
|
|
|
$result = pg_query($dbcon, "DELETE FROM pbx_agenda_servidores WHERE id_servidor = '$id' ");
|
|
|
|
|
|
|
|
|
|
if(!$result){
|
|
|
|
|
$jsStartup[] = "alert('Erro ao excluir o registro!');";
|
|
|
|
|
}else{
|
|
|
|
|
$jsStartup[] = "alert('Registro Exclu<EFBFBD>do com Sucesso!');";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if($acao == 'edita'){
|
|
|
|
|
$sql = "SELECT id_servidor, ip_servidores, porta FROM pbx_agenda_servidores WHERE id_servidor = {$id}";
|
|
|
|
|
$result = pg_query($dbcon, $sql);
|
|
|
|
|
$server = pg_fetch_array($result, null, PGSQL_ASSOC);
|
|
|
|
|
|
|
|
|
|
$server_address = $server['ip_servidores'];
|
|
|
|
|
$server_port = $server['porta'];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($_POST['btEditar'])) {
|
|
|
|
|
|
|
|
|
|
$sql = "UPDATE pbx_agenda_servidores SET ip_servidores = '{$_POST['server_address']}', porta = '{$_POST['server_port']}' "
|
|
|
|
|
. "WHERE id_servidor = {$id}";
|
|
|
|
|
|
|
|
|
|
$result = pg_query($dbcon, $sql);
|
|
|
|
|
|
|
|
|
|
if (!$result) {
|
|
|
|
|
$jsStartup[] = "alert('Erro ao editar o registro!');";
|
|
|
|
|
} else {
|
|
|
|
|
$jsStartup[] = "alert('Registro Alterado com Sucesso!');";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$result = pg_query($dbcon, "SELECT id_servidor, ip_servidores, porta FROM pbx_agenda_servidores WHERE 1=1");
|
|
|
|
|
$linhas = '';
|
|
|
|
|
while($row = pg_fetch_array($result, null ,PGSQL_ASSOC)){
|
|
|
|
|
|
|
|
|
|
$editar = sprintf('<a href="index.php?idProg=322&pbxRequest=1&acao=edita&id_servidor=%s" title="Editar servidor">'
|
|
|
|
|
. '<img src="../images/edit.gif" width="16" height="16" border="0" alt="Editar Servidor %s"/></a>',
|
|
|
|
|
$row['id_servidor'], $row['ip_servidores']);
|
|
|
|
|
|
|
|
|
|
$excluir = sprintf('<a href="#" onclick="excluir(\'\', \'ImportaAgenda.php\', '
|
|
|
|
|
. '\'Deseja excluir o Servidor: %s ?\', \'index.php?idProg=322&pbxRequest=1&acao=deleta&id_servidor=%s\', \'\');">'
|
|
|
|
|
. '<img src="../images/delete.gif" width="16" height="16" border="0" /></a>',
|
|
|
|
|
$row['ip_servidores'], $row['id_servidor']);
|
|
|
|
|
|
|
|
|
|
$linhas .= sprintf("<tr><td>%s</td><td>%s</td><td align=\"center\">%s</td><td align=\"center\">%s</td></tr>",
|
|
|
|
|
$row['ip_servidores'], $row['porta'], $editar, $excluir);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$smarty->assign('server_address', $server_address);
|
|
|
|
|
$smarty->assign('server_port', $server_port);
|
|
|
|
|
$smarty->assign('linhas',$linhas);
|
|
|
|
|
$smarty->assign('id_servidor', $_REQUEST['id_servidor']);
|
|
|
|
|
$smarty->assign('edita', $_GET['acao']);
|
|
|
|
|
GetTemplate($smarty, 'importaAgenda.tpl');
|
|
|
|
|
|
|
|
|
|
function TestaConexao($host, $ports) {
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
if(empty($ports)){throw new Exception("Informe a porta de conex<EFBFBD>o!");}
|
|
|
|
|
if(empty($host)){throw new Exception("Informe o servidor para conex<EFBFBD>o!");}
|
|
|
|
|
|
|
|
|
|
$host = explode(",", $host);
|
|
|
|
|
$ports = explode(",", $ports);
|
|
|
|
|
|
|
|
|
|
$res = false;
|
|
|
|
|
foreach ($host as $numeroip) {
|
|
|
|
|
$pingando = shell_exec("ping -c 4 $numeroip");
|
|
|
|
|
$p = explode(",", $pingando);
|
|
|
|
|
$res_ping = substr($p[1], 1, 2);
|
|
|
|
|
|
|
|
|
|
if ($res_ping >= 2) {
|
|
|
|
|
$res = true;
|
|
|
|
|
}else{
|
|
|
|
|
throw new Exception("IP {$numeroip} N<EFBFBD>o responde ao ping!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach ($host as $server) {
|
|
|
|
|
foreach ($ports as $port) {
|
|
|
|
|
$connection = @fsockopen($server, $port);
|
|
|
|
|
|
|
|
|
|
if (is_resource($connection)) {
|
|
|
|
|
$result[] = $server . ':' . $port . ' ' . '(' . getservbyport($port, 'tcp') . ') aberta.' . "\n";
|
|
|
|
|
|
|
|
|
|
fclose($connection);
|
|
|
|
|
} else {
|
|
|
|
|
$result[] = 'Error! - ' . $server . ':' . $port . ' sem resposta.' . "\n";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach ($result as $resultado) {
|
|
|
|
|
if (substr($resultado, 0, 5) == "Error") {
|
|
|
|
|
$prob = explode(":", $resultado);
|
|
|
|
|
$res = "IP {$prob[0]} n<EFBFBD>o possui liberacao na porta ". substr($prob[1], 0,4);
|
|
|
|
|
} else {
|
|
|
|
|
$res = "Servidores OK!";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $res;
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
return $ex->getMessage();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ValorInicio($arFields) {
|
|
|
|
|
$arInput = array();
|
|
|
|
|
foreach ($arFields as $campo) {
|
|
|
|
|
$arInput[$campo] = "";
|
|
|
|
|
}
|
|
|
|
|
return $arInput;
|
|
|
|
|
}
|