'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í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ário matutino'); ___VerificaDados($_SESSION['SSmFim'], 'horá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á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ção de Destino'); ___VerificaDados($_SESSION['SSopcaoDestino'], 'opçã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ÇÃ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çõ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ão foi possí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 '
'; } } 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; } ?>

CONFIGURAÇÃO DE IP EXTERNO


IP Externo/Dominio


">

COPIE O CÓDIGO