|
|
|
|
<?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">×</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>
|