'') { $mailbox = $v_numero; } else { $mailbox = $v_numero; } $passa = true; $mes = 'OS SEGUINTES CAMPOS NAO PODEM ESTAR VAZIOS!\n\t'; if ($nome == '') { $passa = false; $mes .= 'NOME' . '\n\t'; } if ($passa == false) { echo ''; echo ""; } $sigameAtivo = $sigame_interno || $sigame_externo || $sigame_nao_atende || $sigame_ocupado; $sigameAtivo = $sigame_interno || $sigame_externo; // || $sigame_nao_atende || $sigame_ocupado; if ($passa && ($acao == 'edita') && $sigameAtivo && VerificaRamalConectado($nome)) { $passa = false; $mes = "Não é permitido configurar siga-me para ramal conectado a uma fila"; echo ''; echo ""; } $allow = $_POST["allow"]; $allow2 = ''; $g = 0; if (isset($allow)) { foreach ($allow as $al) { $g++; $allow2 .= $al; if ((count($allow) > 1) and ( count($allow) > $g)) { $allow2 .= ','; } } } if ($acao == "inseri") { $qtde = $_POST["qtde"]; if (MaxRamaisPermite($dbcon, $qtde)) { $z++; $msg .= 'Não é possível realizar a operação! O número máximo de ramais permitidos já foi atingido!'; } else { $senhaBranco = trim($secret) == ''; for ($i = 1; $i <= $qtde; $i++) { $nomeRamal = $_POST['nome']; $qtd = strlen($nomeRamal); $qtd2 = strlen(ltrim($nomeRamal, "0")); $total = ($qtd - $qtd2); $nome2 = $_POST['nome'] + ($i - 1); if ($total >= 1) $nome2 = str_pad($nome2, $qtd, "0", STR_PAD_LEFT); $query2 = "select 1 from pbx_ramais where nome='$nome2'"; if (pg_num_rows(pg_query($dbcon, $query2)) >= 1) { $z++; $msg .= 'RAMAL ' . $nome2 . ' JÁ CADASTRADO' . '\n'; } else { if ($qtde > 1) { $senha_facilidade = $nome2; $callerid = $nome2; $secret = $senhaBranco ? '' : "$prefixoSenha" . $nome2; $dispositivo = "SIP/" . $nome2; } if ($qtde == 1) { $nome2 = $_POST['nome']; } if ((($_POST["gera_voice"] != '') or ( ($v_nome <> '') or ( $v_email <> ''))) and ( $qtde > 1)) { $mailbox = $nome2; } if (($_POST["gera_voice"] != '') or ( ($v_nome <> '') or ( $v_email <> ''))) { if ($v_numero <> '') { if ($i == 1) { $query = "INSERT INTO pbx_voicemail_usuarios (caixa_postal,senha,email,nome,attach,delete,saycid,envelope, numero_ramal) values ('$v_numero','$v_senha','$v_email','$v_nome','$attach','$delete','$saycid','$envelope', '$nome2') "; //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'VOICE2', $nome2, $v_numero); } } else { $query = "INSERT INTO pbx_voicemail_usuarios (caixa_postal,senha,email,nome,attach,delete,saycid,envelope, numero_ramal) values ('$nome2','$nome2','$v_email','$v_nome','$attach','$delete','$saycid','$envelope', '$nome2') "; //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'VOICE2', $nome2, $nome2); } pg_query($dbcon, $query); } $query = "INSERT INTO pbx_sip_ramais(nome, type, secret, qualify, port, permit, nat, mailbox, host, dtmfmode, context, canreinvite, callerid, accountcode, \"call-limit\", allow, disallow,deny,fromuser,fromdomain,insecure,t38pt_udptl,videosupport, espera,sigame_interno,sigame_externo,sigame_naoatende,sigame_ocupado,gravacao_chamada,musica_espera,nao_pertube,cadeado,senha_voice,dispositivo,gravacao_saida,senha_facilidade, callerid2, timeout, ramalSecretaria, habilita_prepago, ring_time, extranet, midiaramal) VALUES ('$nome2', '$type', '$secret', '$qualify', '$port', '$permit', '$nat', '$mailbox', '$host', '$dtmfmode', '$context', '$canreinvite', '$callerid', '$accountcode', '$call_limit', '$allow2', 'all','$deny','$fromuser','$fromdomain','$insecure','$t38pt_udptl','$videosupport', '$espera','$sigame_interno','$sigame_externo','$sigame_nao_atende','$sigame_ocupado','$gravacao','$musicclass','$pertube','$cadeado','$v_senha','$dispositivo','$gravacao_saida','$senha_facilidade', '$callerid2', '$timeout', '$ramalSecretaria', '$habilita_prepago', '$ringTime', '$extranet', '$midiaramal')"; $result = pg_query($dbcon, $query); /* * Restringe o ramal para todos os grupos. * Descomentar para cloud compartilhado. * */ if ($result && RESTRINGE_AUDIO_CRIA_RAMAL) { $query = "insert into pbx_grupo_audio_ramal select '$nome2', gp_id from pbx_grupo a where gp_status = 1 and not exists(select '' from pbx_grupo_audio_ramal where gp_id = a.gp_id and nome = '$nome2');"; $result = pg_query($dbcon, $query); } if (!$result) { $z++; $msg .= 'Erro ao incluir ramal ' . $nome2 . '!' . '\n'; } else { if (!pg_affected_rows($result)) { $z++; $msg .= 'Erro ao incluir ramal ' . $nome2 . '!' . '\n'; } else { $query = "select max(id) as id from pbx_sip_ramais"; $result = pg_query($dbcon, $query); $id_ult = pg_fetch_row($result); $novo = array('id' => $id_ult[0], 'nome' => $nome, 'type' => $type, 'secret' => $secret, 'qualify' => $qualify, 'port' => $port, 'permit' => $permit, 'nat' => $nat, 'mailbox' => $mailbox, 'host' => $host, 'dtmfmode' => $dtmfmode, 'context' => $context, 'canreinvite' => $canreinvite, 'callerid' => $callerid, 'accountcode' => $accountcode, 'allow' => $allow2, 'disallow' => 'all', 'call-limit' => $call_limit, 'deny' => $deny, 'fromuser' => $fromuser, 'fromdomain' => $fromdomain, 'insecure' => $insecure, 't38pt_udptl' => $t38pt_udptl, 'videosupport' => $videosupport, 'espera' => $espera, 'sigame_interno' => $sigame_interno, 'sigame_externo' => $sigame_externo, 'sigame_naoatende' => $sigame_nao_atende, 'sigame_ocupado' => $sigame_ocupado, 'gravacao_chamada' => $gravacao, 'musica_espera' => $musicclass, 'nao_pertube' => $pertube, 'cadeado' => $cadeado, 'senha_voice' => $v_senha, 'dispositivo' => $dispositivo, 'gravacao_saida' => $gravacao_saida, 'senha_facilidade' => $senha_facilidade, 'callerid2' => $callerid2, 'timeout' => $timeout, 'extranet' => $extranet, 'midiaramal' => $midiaramal, 'ramalSecretaria' => $ramalSecretaria, 'habilita_prepago' => $habilita_prepago, 'ring_time' => $ringTime); GrvAudita($dbcon, $idProg, 'pbx_sip_ramais', 'INS', array(), $novo, $fields, array('id'), true); InsereRotasRamais($dbcon, $rotas, $nome2); InsereRamaisChf($dbcon, $nome2); if ($sigame_interno == '') { $sigame_interno2 = 'F'; } else { $sigame_interno2 = $sigame_interno; } if ($sigame_externo == '') { $sigame_externo2 = 'F'; } else { $sigame_externo2 = $sigame_externo; } if ($sigame_nao_atende == '') { $sigame_nao_atende2 = 'F'; } else { $sigame_nao_atende2 = $sigame_nao_atende; } if ($sigame_ocupado == '') { $sigame_ocupado2 = 'F'; } else { $sigame_ocupado2 = $sigame_ocupado; } if ($musicclass == '') { $musicclass2 = 'default'; } else { $musicclass2 = $musicclass; } ////executa insersao na base interna do asterisk if ($midiaramal == 'N') { CommandAsterisk2($dbcon, 'ESPERA', $nome2, $espera); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'SIGAME-INTERNO', $nome2, $sigame_interno2); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'SIGAME-EXTERNO', $nome2, $sigame_externo2); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'SIGAME-OCUPADO', $nome2, $sigame_ocupado2); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'SIGAME-NAOATENDE', $nome2, $sigame_nao_atende2); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'GRAVACAO', $nome2, $gravacao); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'GRAVACAO-OUT', $nome2, $gravacao_saida); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'MUSICA', $nome2, $musicclass2); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'CADEADO', $nome2, $cadeado); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'NAOPERTUBE', $nome2, $pertube); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'SENHA', $nome2, $senha_facilidade); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'DISPOSITIVO', $nome2, $dispositivo); CommandAsterisk2($dbcon, 'BINA-NOME', $nome2, $callerid); CommandAsterisk2($dbcon, 'BINA-EXTERNO', $nome2, $callerid2); CommandAsterisk2($dbcon, 'TIMEOUT-RAMAL', $nome2, $timeout); CommandAsterisk2($dbcon, 'TEMPO-RING-RAMAL', $nome2, $ringTime); } } } } } } if ($z >= 1) { echo ""; echo ""; } } if ($passa && ($acao == "edita")) { $numeroOld = $_POST['numero_old']; ApagaUrl($dbcon, $numeroOld); $updPassRamal = $secret == MASCARA_PASSWORD ? '' : "secret='$secret',"; $updPassFacilidades = $senha_facilidade == MASCARA_PASSWORD ? '' : "senha_facilidade='$senha_facilidade',"; //REALIZA BACKUP BO BANCO //($dbcon,'pbx_sip_ramais','U',$id,'update','SIP_RAMAIS'); $oldNome = GetNumeroRamalFromId($id); $query = "UPDATE pbx_sip_ramais SET nome='$nome', type='$type', {$updPassRamal} qualify='$qualify', port='$port', permit='$permit', nat='$nat', mailbox='$mailbox', host='$host', dtmfmode='$dtmfmode', context='$context', canreinvite='$canreinvite', callerid='$callerid', accountcode='$accountcode', allow='$allow2', disallow='all', \"call-limit\"='$call_limit', deny='$deny',fromuser='$fromuser',fromdomain='$fromdomain',insecure='$insecure',t38pt_udptl='$t38pt_udptl',videosupport='$videosupport', espera='$espera', sigame_interno='$sigame_interno', sigame_externo='$sigame_externo', sigame_naoatende='$sigame_nao_atende', sigame_ocupado='$sigame_ocupado', gravacao_chamada='$gravacao', musica_espera='$musicclass', nao_pertube='$pertube', cadeado='$cadeado', senha_voice='$v_senha',dispositivo='$dispositivo',gravacao_saida='$gravacao_saida', {$updPassFacilidades} callerid2 = '$callerid2', timeout='$timeout', ramalSecretaria = '$ramalSecretaria', habilita_prepago='$habilita_prepago', ring_time='$ringTime', extranet='$extranet', midiaramal='$midiaramal' WHERE id=$id"; pg_query($dbcon, $query); $velho = GetDadosOld(); $novo = array('id' => $id, 'nome' => $nome, 'type' => $type, 'secret' => $secret, 'qualify' => $qualify, 'port' => $port, 'permit' => $permit, 'nat' => $nat, 'mailbox' => $mailbox, 'host' => $host, 'dtmfmode' => $dtmfmode, 'context' => $context, 'canreinvite' => $canreinvite, 'callerid' => $callerid, 'accountcode' => $accountcode, 'allow' => $allow2, 'disallow' => 'all', 'call-limit' => $call_limit, 'deny' => $deny, 'fromuser' => $fromuser, 'fromdomain' => $fromdomain, 'insecure' => $insecure, 't38pt_udptl' => $t38pt_udptl, 'videosupport' => $videosupport, 'espera' => $espera, 'sigame_interno' => $sigame_interno, 'sigame_externo' => $sigame_externo, 'sigame_naoatende' => $sigame_nao_atende, 'sigame_ocupado' => $sigame_ocupado, 'gravacao_chamada' => $gravacao, 'musica_espera' => $musicclass, 'nao_pertube' => $pertube, 'cadeado' => $cadeado, 'senha_voice' => $v_senha, 'dispositivo' => $dispositivo, 'gravacao_saida' => $gravacao_saida, 'senha_facilidade' => $senha_facilidade, 'callerid2' => $callerid2, 'timeout' => $timeout, 'ramalSecretaria' => $ramalSecretaria, 'habilita_prepago' => $habilita_prepago, 'ring_time' => $ringTime, 'extranet' => '$extranet', 'midiaramal' => $midiaramal); GrvAudita($dbcon, $idProg, 'pbx_sip_ramais', 'UPD', $velho, $novo, $filds, array('id'), true); InsereRotasRamais($dbcon, $rotas, $nome); InsereRamaisChf($dbcon, $nome); if ($inseri_voice == 0) { if (($v_nome != '') || ($v_email != '')) { // Verifica se o ramal teve o numero alterado if ($oldNome != $nome) { $query = "update pbx_voicemail_usuarios set numero_ramal = '$nome' where numero_ramal = '$oldNome'"; //executa insersao na base interna do asterisk pg_query($dbcon, $query); GrvAudita($dbcon, $idProg, 'pbx_voicemail_usuarios', 'UPD', array('numero_ramal' => $oldNome), array('numero_ramal' => $nome), array('numero_ramal'), array('numero_ramal'), true); } if ($v_numero == '') { $v_numero = $nome; } $query = "update pbx_voicemail_usuarios set caixa_postal='$v_numero',senha='$v_senha',email='$v_email',nome='$v_nome',attach='$attach',delete='$delete',saycid='$saycid',envelope='$envelope' where numero_ramal = '$nome'"; //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'VOICE2', $nome, $v_numero); pg_query($dbcon, $query); $fields = array('caixa_postal', 'senha', 'email', 'nome', 'attach', 'delete', 'saycid', 'envelope', 'numero_ramal'); $novo = array('caixa_postal' => $v_numero, 'senha' => $v_senha, 'email' => $v_email, 'nome' => $v_nome, 'attach' => $attach, 'delete' => $delete, 'saycid' => $saycid, 'envelope' => $envelope); GrvAudita($dbcon, $idProg, 'pbx_voicemail_usuarios', 'UPD', array(), $novo, $fields, array('numero_ramal'), true); } } else { if (($v_senha != '') && ($v_email != '') && ($v_nome != '')) { if ($v_numero == '') { $v_numero = $nome; } $query = "INSERT INTO pbx_voicemail_usuarios (caixa_postal,senha,email,nome,attach,delete,saycid,envelope, numero_ramal) values ('$v_numero','$v_senha','$v_email','$v_nome','$attach','$delete','$saycid','$envelope', '$nome') "; pg_query($dbcon, $query); //executa insersao na base interna do asterisk $fields = array('caixa_postal', 'senha', 'email', 'nome', 'attach', 'delete', 'saycid', 'envelope', 'numero_ramal'); $novo = array('caixa_postal' => $v_numero, 'senha' => $v_senha, 'email' => $v_email, 'nome' => $v_nome, 'attach' => $attach, 'delete' => $delete, 'saycid' => $saycid, 'envelope' => $envelope); GrvAudita($dbcon, $idProg, 'pbx_voicemail_usuarios', 'INS', array(), $novo, $fields, array('numero_ramal'), true); CommandAsterisk2($dbcon, 'VOICE2', $nome, $v_numero); } } if ($sigame_interno == '') { $sigame_interno = 'F'; } if ($sigame_externo == '') { $sigame_externo = 'F'; } if ($sigame_nao_atende == '') { $sigame_nao_atende = 'F'; } if ($sigame_ocupado == '') { $sigame_ocupado = 'F'; } if ($musicclass == '') { $musicclass = 'default'; }//executa insersao na base interna do asterisk if ($midiaramal == 'N') { CommandAsterisk2($dbcon, 'ESPERA', $nome, $espera); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'SIGAME-INTERNO', $nome, $sigame_interno); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'SIGAME-EXTERNO', $nome, $sigame_externo); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'SIGAME-OCUPADO', $nome, $sigame_ocupado); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'SIGAME-NAOATENDE', $nome, $sigame_nao_atende); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'GRAVACAO', $nome, $gravacao); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'GRAVACAO-OUT', $nome, $gravacao_saida); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'MUSICA', $nome, $musicclass); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'CADEADO', $nome, $cadeado); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'NAOPERTUBE', $nome, $pertube); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'SENHA', $nome, $senha_facilidade); //executa insersao na base interna do asterisk CommandAsterisk2($dbcon, 'DISPOSITIVO', $nome, $dispositivo); CommandAsterisk2($dbcon, 'BINA-NOME', $nome, $callerid); CommandAsterisk2($dbcon, 'BINA-EXTERNO', $nome, $callerid2); CommandAsterisk2($dbcon, 'TIMEOUT-RAMAL', $nome, $timeout); CommandAsterisk2($dbcon, 'TEMPO-RING-RAMAL', $nome, $ringTime); } }//gera arquivos e executa o reload dos dados no asterisk if ($passa) { if ($midiaramal == 'N') { gera_arquivos($dbcon, 'SIP_RAMAIS', 1, 0); //gera arquivos e executa o reload dos dados no asterisk gera_arquivos($dbcon, 'VOICEMAIL', 1, 0); gera_arquivos($dbcon, 'QUEUES_GRUPOS', 1, 1); } echo ""; //echo ""; // echo ""; } } if ($acao == "edita") { $id = $_GET["id"] ?? "0"; $query = "SELECT * FROM pbx_sip_ramais where id=$id"; $result = pg_query($dbcon, $query); } else { $query = "SELECT * FROM pbx_sip_ramais where id is null"; $allow = 'ulaw,alaw'; } $result = pg_query($dbcon, $query); if ($dados = pg_fetch_array($result)) { $id = $dados["id"]; $nome = $dados["nome"]; $type = $dados["type"]; $secret = MASCARA_PASSWORD; $senha_facilidade = MASCARA_PASSWORD; $qualify = $dados["qualify"]; $port = $dados["port"]; $pickupgroup = $dados["pickupgroup"]; $permit = $dados["permit"]; $nat = trim($dados["nat"]); $mailbox = $dados["mailbox"]; $host = $dados["host"]; $context = $dados["context"]; $canreinvite = $dados["canreinvite"]; $callerid = $dados["callerid"]; $callerid2 = $dados["callerid2"]; $callgroup = $dados["callgroup"]; $accountcode = $dados["accountcode"]; $call_limit = $dados["call-limit"]; $allow = $dados["allow"]; $dtmfmode = $dados["dtmfmode"]; $deny = $dados["deny"]; $fromuser = $dados["fromuser"]; $fromdomain = $dados["fromdomain"]; $insecure = $dados["insecure"]; $t38pt_udptl = $dados["t38pt_udptl"]; $disallow = $dados["disallow"]; $videosupport = $dados["videosupport"]; $espera = $dados["espera"]; $sigame_interno = $dados["sigame_interno"]; $sigame_externo = $dados["sigame_externo"]; $sigame_naoatende = $dados["sigame_naoatende"]; $sigame_ocupado = $dados["sigame_ocupado"]; $gravacao_chamada = $dados["gravacao_chamada"]; $musica_espera = $dados["musica_espera"]; $nao_pertube = $dados["nao_pertube"]; $cadeado = $dados["cadeado"]; $senha_voice = $dados["senha_voice"]; $attach = $dados["attach"]; $delete = $dados["delete"]; $envelope = $dados["envelope"]; $saycid = $dados["saycid"]; $pager = $dados["pager"]; $dispositivo = $dados["dispositivo"]; $gravacao_saida = $dados["gravacao_saida"]; $timeout = $dados["timeout"]; $ramalSecretaria = $dados["ramalsecretaria"]; $saldo_prepago = FormataValor($dados["saldo_prepago"]); $habilita_prepago = !HabilitaPrepago() ? '0' : $dados["habilita_prepago"]; $ringTime = $dados["ring_time"]; $extranet = $dados["extranet"]; $midiaramal = $dados["midiaramal"]; SetDadosOld(); if ($id) { foreach ($dados as $key => $valor) { $arDadosOld[$key] = $valor; } SetDadosOld($arDadosOld); } } //Gravação como default sim. if (!isset($gravacao_chamada)) { $gravacao_chamada = 'V'; } if (!isset($gravacao_saida)) { $gravacao_saida = 'V'; } if (!isset($extranet)) { $extranet = GetDefaultRedesPermitidas(); } ?>
0) { $inseri_voice = 0; $v_numero = $dados2['caixa_postal']; $v_nome = $dados2['nome']; $v_email = $dados2['email']; $v_senha = $dados2['senha']; $attach = trim($dados2["attach"]); $delete = trim($dados2["delete"]); $envelope = trim($dados2["envelope"]); $saycid = trim($dados2["saycid"]); $pager = trim($dados2["pager"]); } ?>
CADASTRO DE RAMAIS SIP
Qtde.:
Gera Voicemail:
Habilita Pré-pago />Sim />Não
Saldo Pré-pago:
Ramal:
Senha SIP:
Senha Facilidades: " size="10" maxlength="20" />
Tipo: /> Faz ligações /> Recebe Ligações /> Ambos
Monitorar: />Sim />Não
Mídia: /> Ativar
Codecs Habilitados :
', ++$numCodec, $codec, $check); echo ucfirst($codec); } ?> all
Porta: " size="7" maxlength="10" />
Nat: /> Sim /> Não
Fax: /> Sim /> Não
Suporte a Vídeo: /> Sim /> Não
Tempo de Ring: " size="10" />
Música de Espera:
Tratar conexões dos Peers:
Servidor: " />
Modo DTMF:
Limite de Ligação: " size="10" />
Contexto:
Bina:
Bina Externa:
Dispositivo:
Siga-me Interno:
Siga-me Externo:
Siga-me Não Atende:
Siga-me Ocupado:
Chamada em Espera: /> Sim /> Não
Cadeado: /> Sim /> Não
Não Pertube: /> Sim /> Não
Gravação de Entrada: /> Sim /> Não
Gravação de Saida: /> Sim /> Não
Tempo da Ligação:
VOICEMAIL
Número da Caixa: " size="15" />
Nome: " size="30" />
Senha: " size="10" />
E-mail: " size="30" />
Reproduzir Data e Hora: /> Sim /> Não
Enviar Anexo: /> Sim /> Não
Reproduzir Identificação: /> Sim /> Não
Deletar após o envio: /> Sim /> Não
Redes Permitidas para Autenticação de Ramais:
Clique para Exibir as Rotas
Rota Sim Não Conta/Senha Agente
/> />
Clique para Exibir Configurações Chefe Secretária
Ramal Secretária
"/>
Exceções
 
  Exceções