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.

358 lines
16 KiB

<?php
$modelos = array(
'FIXO' => 'ZZ[2-5]XXXXXXX||[2-5]XXXXXXX',
'MOVEL' => 'ZZ9XXXXXXXX||9XXXXXXXX'
);
$ipexterno = isset($_POST['ip_lg']) ? $_POST['ip_lg'] : '';
$asteriskTipo = array('ANUNCIOS', 'HORARIOS', 'ROTAS_SAIDA');
$tipos = array('FIXO', 'MOVEL');
$message = '';
$color = '';
try {
if (isset($_POST['btnCadastrar'])) {
/*
* VERIFICACAO DO CAMPO IP
*/
___VerificaDados($ipexterno, 'IP Externo/Dominio');
/*
* INICIA TRANSACAO
* DEVE SER FORA DO (FOR) PARA QUE TODAS AS INFORMACOES SEJAM CADASTRADAS
*/
pg_query('BEGIN;');
/*
* ------------- CADASTRO DE ROTAS [INICIO] -------------
*/
foreach ($tipos as $tipo) {
$res = ___GetRotaSaida($tipo);
/*
* VALIDACAO DOS DADOS FORNECIDOS PELO USUARIO
*/
___VerificaDados($_SESSION["SSchannel{$tipo}"], 'Canais de Sa<EFBFBD>da ' . $tipo);
if (!$res) {
/*
* CADASTRO DE ROTA DE SAIDA FIXO/MOVEL
*/
$sql = "INSERT INTO pbx_rotas_saida (nome,musica_espera,musica,anuncio,operadora,recorte,acrescenta,tipo,portabilidade) VALUES ('LIGUE_GRATIS_$tipo','N', NULL, NULL, NULL,0,NULL,'E',0);";
pg_query($sql);
___GetPGError('inserir', 'a rota de saida');
/*
* BUSCA A ROTA CRIADA PARA INSERCAO DO SEU ID NOS MODELOS E CANAIS
*/
$resp = ___GetRotaSaida($tipo);
/*
* CADASTRO DE MODELOS
*/
$modelosSaida = explode('||', $modelos[$tipo]);
foreach ($modelosSaida as $modelo) {
$sqlModelo = "INSERT INTO pbx_rotas_saida_modelos(id_rota,modelo) VALUES({$resp['id']},'$modelo');";
pg_query($sqlModelo);
___GetPGError('inserir', 'os modelos');
}
} else {
$channel = $_SESSION["SSchannel{$tipo}"];
foreach ($channel as $canal) {
$sqlCanal = "DELETE FROM pbx_rotas_saida_canais WHERE id_rota = {$res['id']};";
pg_query($sqlCanal);
___GetPGError('deletar', 'os canais ' . $tipo);
}
}
/*
* CADASTRO DE CANAIS
*/
$resp = ___GetRotaSaida($tipo);
$channel = $_SESSION["SSchannel{$tipo}"];
foreach ($channel as $canal) {
$sqlCanal = "INSERT INTO pbx_rotas_saida_canais (id_rota,canal,recorta,acrescenta) VALUES({$resp['id']},'$canal',0,null);";
pg_query($sqlCanal);
___GetPGError('inserir', 'os canais');
}
}
/*
* ---------- CADASTRO ROTA [FIM] ---------------
*/
/*
* ---------- CADASTRO DE HORARIO [INICIO] ----------
*/
___VerificaDados($_SESSION['SSmInicio'], 'hor<EFBFBD>rio matutino');
___VerificaDados($_SESSION['SSmFim'], 'hor<EFBFBD>rio matutino');
if (!___GetHorarioLG()) {
$sql = "INSERT INTO pbx_arquivo_som (arq_data,arq_nome,arq_nome_sistema,arq_descricao,arq_path_origem,arq_path_destino,arq_orig_tamanho,arq_dest_tamanho,arq_md5,userreg) VALUES('1995-11-21','fora_de_horario_lg','fora_de_horario_lg','fora_de_horario_lg','/var/lib/asterisk/sounds/customizados/fora_de_horario_lg.mp3','/var/lib/asterisk/sounds/customizados/fora_de_horario_lg.ulaw',133808,66655,'81c016e775ced0bb6815f81161e8e9de','admin');";
pg_query($sql);
$sql1 = "INSERT INTO pbx_anuncios (nome,musica,teste,opcao,acao) VALUES('LIGUE_GRATIS_MENSAGEM','fora_de_horario_lg.ulaw', NULL,NULL, NULL);";
pg_query($sql1);
$sql2 = "SELECT id FROM pbx_anuncios WHERE nome = 'LIGUE_GRATIS_MENSAGEM'";
$resp = pg_fetch_assoc(pg_query($sql2));
$sql3 = "INSERT INTO pbx_horarios (nome, discar, opcao_nao, acao_nao, status) values('LIGUE_GRATIS_VERIFICA', null, 'anuncios', '{$resp['id']}',1);";
pg_query($sql3);
$sql4 = "SELECT id FROM pbx_horarios WHERE nome = 'LIGUE_GRATIS_VERIFICA'";
$resp1 = pg_fetch_assoc(pg_query($sql4));
$sql5 = "INSERT INTO pbx_anuncios (nome,musica,teste,opcao,acao) VALUES('LIGUE_GRATIS_RECEBE','silencio.ulaw', NULL,'horarios', '{$resp1['id']}');";
pg_query($sql5);
$sql6 = "INSERT INTO pbx_anuncios (nome,musica,teste,opcao,acao) VALUES('LIGUE_GRATIS_RETORNA','silencio.ulaw', NULL , NULL, NULL);";
pg_query($sql6);
$sql7 = "SELECT id FROM pbx_anuncios WHERE nome = 'LIGUE_GRATIS_RETORNA'";
$resp2 = pg_fetch_assoc(pg_query($sql7));
___SetHorarioItens($resp1['id'], $_SESSION['SSmInicio'], $_SESSION['SSmFim'], $_SESSION['SSinterval'], $_SESSION['SSintInicio'], $_SESSION['SSintFim'], $resp2['id']);
if ($_SESSION['SSvInicio'] && $_SESSION['SSvFim']) {
___SetHorarioItens($resp1['id'], $_SESSION['SSvInicio'], $_SESSION['SSvFim'], $_SESSION['SSinterval'], $_SESSION['SSintInicio'], $_SESSION['SSintFim'], $resp2['id']);
}
if ($_SESSION['SSsInicio'] && $_SESSION['SSsFim']) {
___SetHorarioItens($resp1['id'], $_SESSION['SSsInicio'], $_SESSION['SSsFim'], '0', 'sat', 'sat', $resp2['id']);
}
} else {
$x = 0;
$horariosItens = ___GetHorarioItens();
foreach ($horariosItens as $horas) {
$SSvars = array('SSmInicio', 'SSmFim', 'SSvInicio', 'SSvFim', 'SSsInicio', 'SSsFim');
$compl = ", semana = '{$_SESSION['SSintInicio']}', semana_fim = '{$_SESSION['SSintFim']}'";
if ($horas['semana'] == 'sat' && empty(trim($_SESSION['SSsInicio']))) {
$query2 = "DELETE FROM pbx_horarios_itens WHERE id = {$horas['id']};";
pg_query($query2);
___GetPGError('deletar', 'os horarios de s<EFBFBD>bado');
break;
}
if ($horas['semana'] == 'sat' && $horas['semana_fim'] == 'sat') {
$compl = '';
} else if (count($horariosItens) <= 2 && $_SESSION['SSsInicio'] && $_SESSION['SSsFim']) {
___SetHorarioItens($horariosItens[0]['id_horarios'], $_SESSION['SSsInicio'], $_SESSION['SSsFim'], 0, 'sat', 'sat', $horariosItens[0]['acao']);
break;
}
$query2 = "UPDATE pbx_horarios_itens SET horario_inicio = '{$_SESSION[$SSvars[$x]]}', horario_fim = '{$_SESSION[$SSvars[$x + 1]]}' $compl WHERE id = {$horas['id']};";
pg_query($query2);
___GetPGError('atualizar', 'os horarios');
$x += 2;
}
}
/*
* ------------ CADASTRO DE HORARIO [FIM] ------------
*/
/*
* ------------ CADASTRO DE ANUNCIO [INICIO] ------------
*/
___VerificaDados($_SESSION['SSopcao'], 'op<EFBFBD><EFBFBD>o de Destino');
___VerificaDados($_SESSION['SSopcaoDestino'], 'op<EFBFBD><EFBFBD>o de Destino');
$sql = "UPDATE pbx_anuncios SET opcao = '{$_SESSION['SSopcao']}' , acao = '{$_SESSION['SSopcaoDestino']}' WHERE nome = 'LIGUE_GRATIS_RETORNA';";
pg_query($sql);
___GetPGError('atualizar', 'o destino');
$sql1 = "UPDATE pbx_anuncios SET musica = '{$_SESSION['SSmusica']}' WHERE nome = 'LIGUE_GRATIS_MENSAGEM';";
pg_query($sql1);
___GetPGError('atualizar', 'o audio');
/*
* ------------ CADASTRO DE ANUNCIO [FIM] ------------
*/
/*
* FINALIZA A TRANSACAO
*/
pg_query('COMMIT;');
/*
* ATUALIZA<EFBFBD><EFBFBD>O DOS ARQUIVOS DO ASTERISK
*/
foreach ($asteriskTipo as $astTipo) {
gera_arquivos($dbcon, $astTipo, $reload = 1, $reloadUra = 1);
}
/*
* MENSAGEM PARA O USUARIO
*/
$color = '#33be40';
$message = "OK;As configura<EFBFBD><EFBFBD>es foram salvas com sucesso!";
}
} catch (Exception $ex) {
$color = 'red';
$message = $ex->getMessage();
}
function ___GetPGError($type, $table) {
global $dbcon;
/*
* VERIFICA SE HOUVE ALGUM ERRO NA INSERCAO E EXECUTA UM ROLLBACK!
*/
$pgError = pg_last_error();
if ($pgError) {
pg_query($dbcon, 'ROLLBACK;');
throw new Exception("ERROR;N<EFBFBD>o foi poss<EFBFBD>vel $type $table informados!");
}
}
function ___GetRotaSaida($tipo) {
global $dbcon;
$sql1 = "SELECT id FROM pbx_rotas_saida WHERE nome = 'LIGUE_GRATIS_$tipo';";
$result = pg_query($dbcon, $sql1);
return pg_fetch_assoc($result);
}
function ___VerificaDados($dados, $campo) {
if (!$dados) {
throw new Exception("ERROR;Por favor complete os campos de $campo!");
}
}
function ___GetHorarioLG() {
$query = "SELECT * FROM pbx_horarios WHERE nome = 'LIGUE_GRATIS_VERIFICA'";
$resp = pg_query($query);
$resp = pg_fetch_assoc($resp);
if ($resp['nome']) {
return true;
} else {
return false;
}
}
function ___GetHorarioItens() {
$query = "SELECT a.id as id_horarios, b.id, todos_dias_semana, horario_inicio, horario_fim, semana, semana_fim,acao FROM pbx_horarios a
INNER JOIN pbx_horarios_itens b ON a.id = b.id_horario
WHERE a.nome = 'LIGUE_GRATIS_VERIFICA' ORDER BY b.id";
$resp = pg_query($query);
$resp = pg_fetch_all($resp);
return $resp;
}
function ___SetHorarioItens($idHorario, $ssInicio, $ssFim, $inter, $ini, $fim, $acao) {
$query = "INSERT INTO pbx_horarios_itens(id_horario,horario_inicio, horario_fim, todos_dias_semana, semana,
semana_fim, todos_dias_mes, dias_mes, dias_mes_fim, todos_mes, mes,
mes_fim, opcao, acao, feriado)
VALUES({$idHorario},'{$ssInicio}','{$ssFim}',$inter,'$ini','$fim',1,0,0,1,'0','0','anuncios','{$acao}','I');";
pg_query($query);
___GetPGError('inserir', 'os horarios');
}
function ___GetCodigo($ipexterno) {
if ($ipexterno) {
$ipexterno = RemoveDominio($ipexterno);
return '<link rel="stylesheet" href="https://simplesip.com.br/liguemegratis/lggratis.css"/>
<div class="m-simples">
<div class="m-simples">
<a href="#modal-2" id="myBtn" style="padding: 10px 10px" title="Realize uma liga<EFBFBD><EFBFBD>o gratuita para nossa central de atendimento!">
<img class="m-img" src="https://simplesip.com.br/liguemegratis/ligue_gratis.png"/>
</a>
</div>
</div>
<div id="myModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<span class="close">&times;</span>
<h4>Informe seu contato</h4>
</div>
<div class="modal-body">
<form id="formCall" name="formGeral" method="POST">
<input type="text" id="url-lg" value="http://' . $ipexterno . '" hidden/>
<input type="text" name="lg_nome" class="input-simples" id="lg-nome" placeholder="Informe seu nome" maxlength="50" required/>
<input type="text" name="lg_ddd" style="width: 25%" class="input-simples" id="lg-ddd" placeholder="DDD" maxlength="2" required/>
<input type="text" name="lg_telefone" style="width: 70%" class="input-simples" id="lg-telefone" placeholder="Telefone" maxlength="9" required/>
<br><span id="msgFrame" style="font-size:14px;"> </span><br>
<button type="submit" id="lg-button" class="button-lg" name="lg_callback">Ligar GR<EFBFBD>TIS</button><br><br>
</form>
</div>
</div>
</div>
<script src="https://simplesip.com.br/liguemegratis/ligueme.js"></script>
<script src="https://simplesip.com.br/js/vendor/jquery-1.9.1.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
}
}
function RemoveDominio($dominio){
$domains = array("https://", "http://");
foreach ($domains as $dom) {
$found = strpos($dominio, $dom);
if ($found !== false) {
$dominio = str_replace($dom, "", $dominio);
}
}
return $dominio;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="admin/css/formliguemegratis.css" type="text/css" media="screen" title="no title" charset="ISO-8859-1"/>
<script src="admin/js/jquery_3.3.1.js"></script>
</head>
<body>
<form action="index.php?idProg=310&pbxRequest=1" method="post" name="form1" target="_self" id="form1">
<div class = "container">
<h3>CONFIGURA<EFBFBD><EFBFBD>O DE IP EXTERNO</h3>
<hr/>
<div class="row">
<h3>IP Externo/Dominio</h3>
<div class="col-25">
<input type="text" id="ip_lg" name="ip_lg" value=""/>
</div>
</div>
<p style="color: <?php echo $color; ?>; font-size: 14px"><strong><?php
$message = explode(';', $message);
echo $message[1];
?></strong></p>
<div class="row">
<input type="submit" style="float: left" name="btnCadastrar" value="Finalizar"/>
</div>
<br/>
<div class="row" style="display: <?php
if ($ipexterno && $message[0] == "OK") {
echo "block";
} else {
echo 'none';
}
?>">
<h3>COPIE O C<EFBFBD>DIGO</h3>
<div class="col-75">
<textarea rows="25" cols="103" id="codLg">
<?php
if ($ipexterno) {
echo ___GetCodigo($ipexterno);
}
?>
</textarea>
</div>
</div>
</div>
</form>
</body>
</html>