get_variable('URA', true); $retornoCliente = consultaClienteNoturno($CPF); $ip_verifica = ipAtualizado($retorno_cliente['id_cliente']); if (!empty($ip_verifica) && $ip_verifica['ip_atual'] != $retorno_cliente['ip']) { $ip = $ip_verifica['ip_atual']; } $ping = testePing($ip); $meses = array( '01' => 'janeiro', '02' => 'fevereiro', '03' => 'marco', '04' => 'abril', '05' => 'maio', '06' => 'junho', '07' => 'julho', '08' => 'agosto', '09' => 'setembro', '10' => 'outubro', '11' => 'novembro', '12' => 'dezembro' ); /** * TESTE' */ //$retornoCliente['chamados'] = 1; //$ping = true; if($ping == false){ $chamado = abreChamados($retornoCliente['ip'], $retornoCliente['id_cliente'], $retornoCliente['bairro'], $numero, $retornoCliente['ip'], $ip_verifica['ip_atual']); $telefone = soNumero($retornoCliente['telefonecel']); enviaAviso($telefone, $retornoCliente['email'], 1, $retornoCliente['ip'],$retornoCliente['nome_cliente']); $agi->exec_goto(GetUra('CONEXAO_PROBLEMA')); }elseif($retornoCliente['chamados'] > 0){ $audio = $pathSom.'51chamadoaberto_verb1'; $agi->stream_file($audio); //$retornoCliente['unix_h_chamado'] = date('Y-m-d H:i:s'); //$retornoCliente['unix_h_chamado'] = '2019-03-26 00:00:00'; $valores = explode(" ",$retornoCliente['unix_h_chamado']); $data = explode("-", $valores[0]); if (substr($data[2], 0, 1) == 0) { $dia = str_replace(0, '', $data[2]); $agi->say_digits($dia); } else { foreach (VocalizaData($data[2]) as $valor){ $audio = $pathSom.$valor; $agi->stream_file($audio); } } $audio = $pathSom.'de'; $agi->stream_file($audio); $audio = $pathSom.$meses[$data[1]]; $agi->stream_file($audio); $audio = $pathSom.'de'; $agi->stream_file($audio); foreach(VocalizaData($data[0]) as $valor){ $audio = $pathSom . $valor; $agi->stream_file($audio); } usleep(500000); $telefone = soNumero($retornoCliente['telefonecel']); enviaAviso($telefone, $retornoCliente['email'],2,$retornoCliente['unix_h_chamado']); //enviaAviso('65999797353', 'desenvolvimento01@simplesip.com.br',2,$retornoCliente['unix_h_chamado']); $agi->exec_goto(GetAnuncio('CHAMADO_ABERTO')); }elseif($retornoCliente['STATUS'] == 1 && $retornoCliente['groupname'] != 'REDUZIDO'){ $retorno_cliente = sprintf("%s|%s|%s|IdCliente:%s|Nome:%s|Groupname:%s|Cidade:%s|Bairro:%s|IP:%s", $uid,$numero,'a132', str_replace("|", "", $retornoCliente['id_cliente']), str_replace("|", "", $retornoCliente['nome_cliente']), str_replace("|", "", $retornoCliente['groupname']), str_replace("|", "", $retornoCliente['cidade']), str_replace("|", "", $retornoCliente['bairro']), str_replace("|", "", $retornoCliente['ip'])); $agi->exec_goto(GetAnuncio('REDIRECIONA_ATEND_FORA')); }else{ $agi->exec_goto(GetAnuncio('FORA_DE_HORA')); } } catch (Exception $ex) { $reg_msg = $ex->getMessage(); $reg_status_exec = 'Er'; __logStr("Consulta de Cliente Noturno", $reg_msg . " Documento do Cliente: {$retornoCliente['cpf_cnpj']}", $script, true); } @AtualizaIntegracao($uid, $reg_retorno, $reg_msg, $reg_status_exec, $retorno_cliente); if (!$dadosIntegra) @grava_dadosIntegra($reg_retorno); 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); } function consultaClienteNoturno($paramCPF) { $host = '192.168.77.103'; //$host = '177.125.37.103'; $user = 'voip'; $password = 'simplesip2019'; $database = 'admin'; //$port = '4444'; $port = '3306'; $connect = mysqli_connect($host, $user, $password, $database, $port); try { $sql = "SELECT c.id AS id_cliente,c.nome AS nome_cliente,c.cpfcnpj AS cpf_cnpj,c.telefonecel AS celular, c.email, COUNT(s.id) AS chamados, c.STATUS, l.groupname, l.ip, unix_timestamp(s2.opendata) AS unix_h_chamado, c.cidade,c.bairro FROM clientes AS c LEFT JOIN (SELECT cliente_id, COUNT(id) AS id FROM suporte WHERE STATUS ='A' GROUP BY cliente_id) AS s ON c.id = s.cliente_id LEFT JOIN (SELECT id,cliente_id,opendata FROM suporte WHERE STATUS ='A') AS s2 ON c.id = s2.cliente_id LEFT JOIN login AS l ON c.id = l.cliente_id WHERE c.STATUS IN (1,8) AND REPLACE(REPLACE(REPLACE(c.cpfcnpj,'.',''),'/',''),'-','') = '{$paramCPF}' GROUP BY c.id LIMIT 1;"; $result = mysqli_query($connect, $sql); $valor = mysqli_fetch_assoc($result); } catch (Exception $ex) { return Exception($ex); } mysqli_close($connect); return $valor; } function testePing($ip) { $res = false; $numeroip = $ip; $pingando = shell_exec("ping -c 4 $numeroip"); $p = explode(",", $pingando); $res_ping = substr($p[1], 1, 2); //resposta do ping if ($res_ping >= 2) { $res = true; } return $res; } /** * Função Para Abrir Chamados Automaticamente via URA * * @param Boolean $ping - IP testado * @param Int $id - ID do Cliente * @param String $assunto - Bairro do cliente * @param int $chamador2 - Telefone do Cliente * @param String $ip_verifica - IP do Cadastro do cliente * @param String $ip - IP atual do cliente * @return resource */ function abreChamados($ping, $id, $assunto, $chamador2, $ip_verifica, $ip) { $host = '192.168.77.103'; //$host = '177.125.37.103'; $user = 'voip'; $password = 'simplesip2019'; $database = 'admin'; //$port = '4444'; $port = '3306'; $connect = mysqli_connect($host, $user, $password, $database, $port); $usuario_myauth = 30366; try { ## verifica myauth $testePing = testePing($ping); if ($testePing == false) { $cliente_id = $id; $sql = "INSERT INTO suporte (status,cliente_id,owner_id,type_id,subject,description,opendata) VALUES ('A',$cliente_id,$usuario_myauth,14,'$assunto - URA','CHAMADO AUTOMATICO - $chamador2 - URA - $ip_verifica - $ip',now())"; $result = mysqli_query($connect, $sql); } } catch (Exception $ex) { return $ex; } return $result; } function ipAtualizado($client_id) { $host = '192.168.77.103'; //$host = '177.125.37.103'; $user = 'voip'; $password = 'simplesip2019'; $database = 'admin'; //$port = '4444'; $port = '3306'; $connect = mysqli_connect($host, $user, $password, $database, $port); try { $sql = "SELECT SQL_NO_CACHE c.id, r.username, c.status, r.nasipaddress, r.FramedIPAddress AS ip_atual, l.ip AS ip_cadastro, r.radacctid FROM radius_acct AS r LEFT JOIN login AS l ON r.username = l.user LEFT JOIN clientes AS c ON l.cliente_id = c.id WHERE r.acctstarttime >= date_sub(now(), INTERVAL 1 DAY) AND r.AcctStopTime ='0000-00-00 00:00:00' AND l.ip NOT LIKE '177.125.37%' AND l.ip NOT LIKE '192.168.255%' AND l.cliente_id = {$client_id} ORDER BY 1 LIMIT 1 LOCK IN SHARE MODE"; $result = mysqli_query($connect, $sql); $valor = mysqli_fetch_assoc($result); } catch (Exception $ex) { return Exception($ex); } mysqli_close($connect); return $valor; } /** * Função para enviar email personalizado ao cliente * * @param int $numero Número do cliente * @param string $email Email do cliente * @param int $ident Identifica o tipo de email a ser enviado. * @param string $param1 * @param string $param2 * @return string * @throws Exception */ function enviaAviso($numero, $email, $ident, $param1, $param2 = null) { $host = '192.168.77.101'; //$host = '177.125.37.103'; $user = 'voip'; $password = 'simplesip2019'; $database = 'SIG'; //$port = '4445'; $port = '3306'; $connect = mysqli_connect($host, $user, $password, $database, $port); if ($ident == 1) { $mensagem = "ZUKNET INFORMA: Efetuamos um teste de conexao no IP cadastrado - $param1 " . "e nao obtivemos sucesso, um chamado foi aberto automaticamente para o titular $param2"; try { $sql = "INSERT INTO sms (numero, texto, dt_inclusao, email, email_assunto, email_texto, app)" . "VALUES ('$numero','$mensagem'," . "now(),'$email', 'Erro de ping no IP $param1','$mensagem','VOIP')"; $result = mysqli_query($connect, $sql); if (!$result) { enviaSMS($numero, $mensagem); throw new Exception("ERRO - Não foi possível executar a query!"); } mysqli_close($connect); return "OK - Query executada com sucesso!"; } catch (Exception $ex) { return $ex; } } if ($ident == 2) { $param1 = date('d/m/Y H:i:s', strtotime($param1)); $valores = explode(" ", $param1); $mensagem = "ZUKNET INFORMA: Foi constatada a existencia de um chamado aberto anteriormente em $valores[0] as $valores[1]," ."iremos atende-lo em ate 16 horas uteis, a partir da abertura do chamado, Por favor Aguarde."; try { $sql = "INSERT INTO sms (numero, texto, dt_inclusao, email, email_assunto, email_texto, app)" . "VALUES ('$numero','$mensagem'," . "now(),'$email', 'Chamado aberto em $param1','$mensagem','VOIP')"; $result = mysqli_query($connect, $sql); if (!$result) { enviaSMS($numero, $mensagem); throw new Exception("ERRO - Não foi possível executar a query!"); } mysqli_close($connect); return "OK - Query executada com sucesso!"; } catch (Exception $ex) { return $ex; } } } /** * * @param int $num * @param string $m * @return type */ function enviaSMS($num, $m) { $login = 'zuknet'; $token = 'jlr9hz'; $numero = soNumero($num); $m = utf8_encode($m); $msg = urlencode($m); try { $send = file_get_contents("http://sms.kingtelecom.com.br/kingsms/ api.php?acao=sendsms&login=$login&token=$token&numero=$numero&msg=$msg"); $manage = (array) json_decode($send); $status = $manage["status"]; if ($status != 'success') { throw new Exception('Nao foi possível enviar o SMS!'); } $id = $manage["id"]; if (strlen($id) < 1) { $id = 999988; } } catch (Exception $ex) { return $ex; } return $manage; } ?>