Browse Source

mudança no método de implementação dos grupos de captura, agora será feito através de grupos nomeados, sem limitação de 64 grupos.

1.9
Matheo Bonucia 2 months ago
parent
commit
9564f80f10
  1. 115
      admin/CadGruposAtendimento.php
  2. 155
      admin/GruposAtendimento.php
  3. 26
      admin/funcoes.php
  4. 12
      projeto/base/sql/versao-1.9.0.sql

115
admin/CadGruposAtendimento.php

@ -91,6 +91,7 @@
$acao = $_GET["acao"]; $acao = $_GET["acao"];
$acao2 = $_GET["acao2"]; $acao2 = $_GET["acao2"];
$org_id = $_SESSION['SSEmpresaPadrao']; $org_id = $_SESSION['SSEmpresaPadrao'];
$id = $_GET["id"] ?? 0;
/* /*
* Parametros necessarios para manter a paginacao. * Parametros necessarios para manter a paginacao.
*/ */
@ -99,24 +100,22 @@
if ($acao2 == "salva") { if ($acao2 == "salva") {
$id = $_POST["id"] ?? 0; $id = $_POST["id"] ?? 0;
$nome = RemoveAcentos($_POST["nome"], true); $nome = RemoveAcentos($_POST["nome"], true);
$numero = 0;
if ($acao == "edita") { if ($acao == "edita") {
$query = "select nome from pbx_grupos_atendimento where nome='$nome' and id <> $id and org_id = $org_id"; $query = "select nome from pbx_grupos_atendimento where nome='$nome' and id <> $id and org_id = $org_id";
} else { } else {
$query = "select nome from pbx_grupos_atendimento where nome='$nome' and org_id = $org_id"; $query = "select nome from pbx_grupos_atendimento where nome='$nome' and org_id = $org_id";
$numero = GetIdGrupoAtendimento($dbcon);
} }
$msg = ''; $msg = '';
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
$dados = pg_fetch_array($result); $dados = pg_fetch_array($result);
$existe = trim($dados['nome']); $existe = trim($dados['nome']);
$nome_formatado = str_replace(' ', '', $nome);
$nome_formatado = strtolower($nome_formatado);
if ($existe != '') { if ($existe != '') {
$msg = "JÁ EXISTE UM GRUPO COM O NOME $existe"; $msg = "JÁ EXISTE UM GRUPO COM O NOME $existe";
} }
if ($numero > 63) {
$msg = "É PERMITIDO CADASTRAR APENAS 63 GRUPOS";
}
if (!empty($msg)) { if (!empty($msg)) {
echo "<script> echo "<script>
@ -125,31 +124,63 @@
</script>"; </script>";
} else { } else {
if ($acao == "inseri") { if ($acao == "inseri") {
$query = "INSERT INTO pbx_grupos_atendimento(id,nome,org_id) VALUES ('$numero','$nome', $org_id)"; pg_query($dbcon, "begin");
pg_query($dbcon, $query); $try_query = "INSERT INTO pbx_grupos_atendimento(nome, org_id) VALUES ('$nome', $org_id) RETURNING id";
$id_ult = $numero; $success_query = pg_query($dbcon, $try_query);
if (!$success_query) {
pg_query($dbcon, 'rollback');
return false;
}
$retorno = pg_fetch_assoc($success_query);
$id_ult = $retorno['id'];
$update_query = "UPDATE pbx_grupos_atendimento SET nome_asterisk = '$org_id$nome_formatado' WHERE org_id = $org_id AND id = $id_ult";
$success_query = pg_query($dbcon, $update_query);
if (!$success_query) {
pg_query($dbcon, 'rollback');
return false;
}
pg_query($dbcon, "commit");
} }
if ($acao == "edita") { if ($acao == "edita") {
$ramaisExistentes = array(); pg_query($dbcon, "begin");
$query = "select ramal from pbx_grupos_atendimento_ramais where id_grupo = $id and org_id=$org_id"; $query = "select ramal from pbx_grupos_atendimento_ramais where id_grupo = $id and org_id=$org_id";
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
while ($row = pg_fetch_row($result))
$ramaisExistentes[] = $row[0]; if (!$result) {
pg_query($dbcon, 'rollback');
return false;
}
$query = "UPDATE pbx_grupos_atendimento SET nome='$nome' WHERE id=$id AND org_id = $org_id"; $query = "UPDATE pbx_grupos_atendimento SET nome='$nome' WHERE id=$id AND org_id = $org_id";
pg_query($dbcon, $query); $result_update = pg_query($dbcon, $query);
$query = "delete from pbx_grupos_atendimento_ramais where id_grupo=$id and org_id=$org_id"; if (!$result_update) {
pg_query($dbcon, $query); pg_query($dbcon, 'rollback');
return false;
}
$query = "delete from pbx_grupos_atendimento_ramais where id_grupo=$id and org_id = $org_id";
$result_delete = pg_query($dbcon, $query);
if (!$result_delete) {
pg_query($dbcon, 'rollback');
return false;
}
pg_query($dbcon, "commit");
} }
$ramais = $_POST["ramais"]; $ramais = $_POST["ramais"];
for ($i = 0; $i < count($ramais); $i++) { for ($i = 0; $i < count($ramais); $i++) {
if ($acao == "edita") { if ($acao == "edita") {
$query = "insert into pbx_grupos_atendimento_ramais (id_grupo,ramal,org_id) values ($id,'$ramais[$i]', $org_id)"; $query = "insert into pbx_grupos_atendimento_ramais (id_grupo,ramal,org_id, nome_asterisk) values ($id,'$ramais[$i]', $org_id, '$org_id$nome_formatado')";
} else { } else {
$query = "insert into pbx_grupos_atendimento_ramais (id_grupo,ramal,org_id) values ($id_ult,'$ramais[$i]', $org_id)"; $query = "insert into pbx_grupos_atendimento_ramais (id_grupo,ramal,org_id, nome_asterisk) values ($id_ult,'$ramais[$i]', $org_id, '$org_id$nome_formatado')";
} }
pg_query($dbcon, $query); pg_query($dbcon, $query);
} }
@ -160,7 +191,6 @@
gera_arquivos($dbcon, 'IAX_PBX'); //gera arquivos e executa o reload dos dados no asterisk gera_arquivos($dbcon, 'IAX_PBX'); //gera arquivos e executa o reload dos dados no asterisk
// GeraDahdi($dbcon, 1); // GeraDahdi($dbcon, 1);
GeraKhomp($dbcon, 1); GeraKhomp($dbcon, 1);
gera_arquivos($dbcon, 'DIGIVOICE');
echo "<script type=\"text/javascript\"> echo "<script type=\"text/javascript\">
//fecha a janela presa no meio do sistema //fecha a janela presa no meio do sistema
@ -170,7 +200,6 @@
} }
if ($acao == "edita") { if ($acao == "edita") {
$id = $_GET["id"] ?? 0;
$query = "SELECT * FROM pbx_grupos_atendimento where id=$id AND org_id = $org_id"; $query = "SELECT * FROM pbx_grupos_atendimento where id=$id AND org_id = $org_id";
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
} else { } else {
@ -189,10 +218,10 @@
$org_id = GetOrganizacao(); $org_id = GetOrganizacao();
//if((strpos($tipo, 'SIP') !== false) || (strpos($tipo, 'DAHDI') !== false)){return "update pbx_sip_ramais set pickupgroup = '%s', callgroup = '%s' where nome = '%s'";} //if((strpos($tipo, 'SIP') !== false) || (strpos($tipo, 'DAHDI') !== false)){return "update pbx_sip_ramais set pickupgroup = '%s', callgroup = '%s' where nome = '%s'";}
if (strpos($tipo, 'SIP') !== false) { if (strpos($tipo, 'SIP') !== false) {
return "update pbx_sip_ramais set pickupgroup = '%s', callgroup = '%s' where nome = '%s' and org_id = {$org_id}"; return "update pbx_sip_ramais set namedpickupgroup = '%s', namedcallgroup = '%s' where nome = '%s' and org_id = {$org_id}";
} }
if (strpos($tipo, 'IAX') !== false) { if (strpos($tipo, 'IAX') !== false) {
return "update pbx_iax_pbx set pickupgroup = '%s', callgroup = '%s' where nome = '%s' and org_id = {$org_id}"; return "update pbx_iax_pbx set namedpickupgroup = '%s', namedcallgroup = '%s' where nome = '%s' and org_id = {$org_id}";
} }
if (strpos($tipo, 'DGV') !== false) { if (strpos($tipo, 'DGV') !== false) {
return "update pbx_dgv set capturar = '%s', grupo = '%s' where numero = '%s' and org_id = {$org_id}"; return "update pbx_dgv set capturar = '%s', grupo = '%s' where numero = '%s' and org_id = {$org_id}";
@ -215,7 +244,7 @@
FROM pbx_grupos_atendimento_ramais a, pbx_ramais b FROM pbx_grupos_atendimento_ramais a, pbx_ramais b
WHERE b.nome = a.ramal WHERE b.nome = a.ramal
AND a.org_id = b.org_id AND a.org_id = b.org_id
AND a.org_id = {$org_id} AND a.org_id = $org_id
ORDER BY a.ramal, a.id_grupo"; ORDER BY a.ramal, a.id_grupo";
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
$ramais = array(); $ramais = array();
@ -224,9 +253,9 @@
} }
foreach ($ramais as $ramalGrupo) { foreach ($ramais as $ramalGrupo) {
$query = "SELECT a.id_grupo, a.ramal, b.tipo_ramal as dispositivo $query = "SELECT a.nome_asterisk, a.ramal, b.tipo_ramal as dispositivo
FROM pbx_grupos_atendimento_ramais a, pbx_ramais b FROM pbx_grupos_atendimento_ramais a, pbx_ramais b
WHERE b.nome = a.ramal WHERE b.nome = a.ramal
AND a.org_id = b.org_id AND a.org_id = b.org_id
AND a.org_id = {$org_id} AND a.org_id = {$org_id}
AND a.ramal = '$ramalGrupo' AND a.ramal = '$ramalGrupo'
@ -235,14 +264,11 @@
$pick = ''; $pick = '';
$callgrupRamal = ''; $callgrupRamal = '';
$start = 0;
$tipo = ''; $tipo = '';
while ($dados = pg_fetch_array($result)) { while ($dados = pg_fetch_array($result)) {
if (!$start) {
$callgrupRamal = $dados['id_grupo']; $callgrupRamal .= !$callgrupRamal ? $dados['nome_asterisk'] : ',' . $dados['nome_asterisk'];
$start++; $pick .= !$pick ? $dados['nome_asterisk'] : ',' . $dados['nome_asterisk'];
}
$pick .= !$pick ? $dados['id_grupo'] : ',' . $dados['id_grupo'];
$tipo = strtoupper($dados['dispositivo']); $tipo = strtoupper($dados['dispositivo']);
} }
@ -252,27 +278,6 @@
} }
} }
function GetRamaisExcluidos($ramaisExistentes, $ramais)
{
$ramaisExcl = array();
$exist = false;
foreach ($ramaisExistentes as $ramal) {
$exist = false;
foreach ($ramais as $ramalAtu) {
if ($ramal == $ramalAtu) {
$exist = true;
break;
}
}
if (!$exist) {
$ramaisExcl[] = $ramal;
}
}
return $ramaisExcl;
}
function GetIdGrupoAtendimento($dbcon) function GetIdGrupoAtendimento($dbcon)
{ {
$org_id = GetOrganizacao(); $org_id = GetOrganizacao();
@ -295,15 +300,15 @@
function LimpaGruposCapturaRamais($db) function LimpaGruposCapturaRamais($db)
{ {
$org_id = GetOrganizacao(); $org_id = GetOrganizacao();
$query = "update pbx_sip_ramais set pickupgroup = '', callgroup = '' where 1=1 and org_id = {$org_id}"; $query = "update pbx_sip_ramais set namedpickupgroup = '', namedcallgroup = '' where org_id = {$org_id}";
pg_query($db, $query); pg_query($db, $query);
$query = "update pbx_iax_pbx set pickupgroup = '', callgroup = '' where 1=1 and org_id = {$org_id}"; $query = "update pbx_iax_pbx set namedpickupgroup = '', namedcallgroup = '' where org_id = {$org_id}";
pg_query($db, $query); pg_query($db, $query);
$query = "update pbx_dgv set capturar = '', grupo = '' where 1=1 and org_id = {$org_id}"; $query = "update pbx_dgv set capturar = '', grupo = '' where org_id = {$org_id}";
pg_query($db, $query); pg_query($db, $query);
$query = "update pbx_dahdi set capturar = '', grupo = '' where 1=1 and org_id = {$org_id}"; $query = "update pbx_dahdi set capturar = '', grupo = '' where org_id = {$org_id}";
pg_query($db, $query); pg_query($db, $query);
$query = "update pbx_khomp set capturar = '', grupo = '' where 1=1 and org_id = {$org_id}"; $query = "update pbx_khomp set capturar = '', grupo = '' where org_id = {$org_id}";
pg_query($db, $query); pg_query($db, $query);
} }
?> ?>

155
admin/GruposAtendimento.php

@ -7,116 +7,103 @@ $filtroNovo = !isset($_GET["pgn"]) ? '' : sprintf("&numRamal%s&pgn=%s&bloco=%s&p
$recontaPag = ($acao == 'inseri') || ($acao == "deleta") || isset($_GET['pesquisa']); $recontaPag = ($acao == 'inseri') || ($acao == "deleta") || isset($_GET['pesquisa']);
if ($acao == "deleta") { if ($acao == "deleta") {
LimpaGruposCapturaRamais($dbcon, $org_id);
$query = "delete from pbx_grupos_atendimento where id='$id' and org_id=$org_id"; $query = "DELETE FROM pbx_grupos_atendimento WHERE id = '$id' AND org_id = $org_id RETURNING id;";
pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
if ($result) {
$dados = pg_fetch_assoc($result);
$deletado = $dados['id'];
}
$query = "delete from pbx_grupos_atendimento_ramais where id_grupo='$id' and org_id=$org_id"; $query = "delete from pbx_grupos_atendimento_ramais where id_grupo= '$deletado' and org_id=$org_id";
pg_query($dbcon, $query); pg_query($dbcon, $query);
AtualizaRamaisCaptura($dbcon, $org_id); AtualizaRamaisCaptura($dbcon, $org_id);
//gera arquivos e executa o reload dos dados no asterisk //gera arquivos e executa o reload dos dados no asterisk
gera_arquivos($dbcon, 'SIP_RAMAIS'); //gera arquivos e executa o reload dos dados no asterisk gera_arquivos($dbcon, 'SIP_RAMAIS'); //gera arquivos e executa o reload dos dados no asterisk
gera_arquivos($dbcon, 'IAX_PBX'); //gera arquivos e executa o reload dos dados no asterisk gera_arquivos($dbcon, 'IAX_PBX'); //gera arquivos e executa o reload dos dados no asterisk
} }
function AtualizaRamaisCaptura($dbcon, $org_id) { function AtualizaRamaisCaptura($dbcon)
$query = "select a.ramal {
from pbx_grupos_atendimento_ramais a, pbx_ramais b LimpaGruposCapturaRamais($dbcon);
where b.nome = a.ramal
and a.org_id = b.org_id $org_id = $_SESSION['SSEmpresaPadrao'];
and a.org_id = $org_id $query = "SELECT a.ramal
order by a.ramal, a.id_grupo"; // FROM pbx_grupos_atendimento_ramais a, pbx_ramais b
$result = pg_query($dbcon, $query); WHERE b.nome = a.ramal
$ramais = array(); AND a.org_id = b.org_id
while ($dados = pg_fetch_array($result)) { AND a.org_id = $org_id
$ramais[] = $dados['ramal']; ORDER BY a.ramal, a.id_grupo";
}
foreach ($ramais as $ramalGrupo) {
$query = "select a.id_grupo, a.ramal, b.dispositivo
from pbx_grupos_atendimento_ramais a, pbx_ramais b
where b.nome = a.ramal
and a.ramal = '$ramalGrupo'
and a.org_id = b.org_id
and a.org_id = $org_id
order by a.ramal, a.id_grupo";
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
$ramais = array();
$pick = '';
$callgrupRamal = '';
$start = 0;
$tipo = '';
while ($dados = pg_fetch_array($result)) { while ($dados = pg_fetch_array($result)) {
if (!$start) { $ramais[] = $dados['ramal'];
$callgrupRamal = $dados['id_grupo'];
$start++;
}
$pick .= !$pick ? $dados['id_grupo'] : ',' . $dados['id_grupo'];
$tipo = strtoupper($dados['dispositivo']);
} }
$query = GetTableRamal($tipo, $org_id); foreach ($ramais as $ramalGrupo) {
$query = "SELECT a.nome_asterisk, a.ramal, b.tipo_ramal as dispositivo
$query = sprintf($query, $pick, $callgrupRamal, $ramalGrupo); FROM pbx_grupos_atendimento_ramais a, pbx_ramais b
pg_query($dbcon, $query); WHERE b.nome = a.ramal
} AND a.org_id = b.org_id
} AND a.org_id = {$org_id}
AND a.ramal = '$ramalGrupo'
function GetRamaisExcluidos($ramaisExistentes, $ramais) { ORDER BY a.ramal, a.id_grupo";
$ramaisExcl = array(); $result = pg_query($dbcon, $query);
$exist = false;
foreach ($ramaisExistentes as $ramal) { $pick = '';
$exist = false; $callgrupRamal = '';
foreach ($ramais as $ramalAtu) { $tipo = '';
if ($ramal == $ramalAtu) { while ($dados = pg_fetch_array($result)) {
$exist = true;
break; $callgrupRamal .= !$callgrupRamal ? $dados['nome_asterisk'] : ',' . $dados['nome_asterisk'];
$pick .= !$pick ? $dados['nome_asterisk'] : ',' . $dados['nome_asterisk'];
$tipo = strtoupper($dados['dispositivo']);
} }
}
if (!$exist) { $query = GetTableRamal($tipo, $org_id);
$ramaisExcl[] = $ramal; $query = sprintf($query, $pick, $callgrupRamal, $ramalGrupo);
pg_query($dbcon, $query);
} }
} }
return $ramaisExcl; function GetTableRamal($tipo)
} {
$org_id = GetOrganizacao();
function GetTableRamal($tipo, $org_id) { //if((strpos($tipo, 'SIP') !== false) || (strpos($tipo, 'DAHDI') !== false)){return "update pbx_sip_ramais set pickupgroup = '%s', callgroup = '%s' where nome = '%s'";}
if ((strpos($tipo, 'SIP') !== false) || (strpos($tipo, 'DAHDI') !== false)) { if (strpos($tipo, 'SIP') !== false) {
return "update pbx_sip_ramais set pickupgroup = '%s', callgroup = '%s' where nome = '%s' and org_id = $org_id"; return "update pbx_sip_ramais set namedpickupgroup = '%s', namedcallgroup = '%s' where nome = '%s' and org_id = {$org_id}";
} }
if (strpos($tipo, 'IAX') !== false) { if (strpos($tipo, 'IAX') !== false) {
return "update pbx_iax_pbx set pickupgroup = '%s', callgroup = '%s' where nome = '%s' and org_id = $org_id"; return "update pbx_iax_pbx set namedpickupgroup = '%s', namedcallgroup = '%s' where nome = '%s' and org_id = {$org_id}";
} }
if (strpos($tipo, 'DGV') !== false) { if (strpos($tipo, 'DGV') !== false) {
return "update pbx_dgv set capturar = '%s', grupo = '%s' where numero = '%s' and org_id = $org_id"; return "update pbx_dgv set capturar = '%s', grupo = '%s' where numero = '%s' and org_id = {$org_id}";
} }
if (strpos($tipo, 'DAHDI') !== false) { if (strpos($tipo, 'DAHDI') !== false) {
return "update pbx_dahdi set capturar = '%s', grupo = '%s' where numero = '%s' and org_id = $org_id"; return "update pbx_dahdi set capturar = '%s', grupo = '%s' where numero = '%s' and org_id = {$org_id}";
} }
if (strpos($tipo, 'KHOMP') !== false) { if (strpos($tipo, 'KHOMP') !== false) {
return "update pbx_khomp set capturar = '%s', grupo = '%s' where numero = '%s' and org_id = $org_id"; return "update pbx_khomp set capturar = '%s', grupo = '%s' where numero = '%s' and org_id = {$org_id}";
} }
return false; return false;
} }
function LimpaGruposCapturaRamais($db, $org_id) { function LimpaGruposCapturaRamais($db)
$query = "update pbx_sip_ramais set pickupgroup = '', callgroup = '' where 1=1 and org_id = $org_id"; {
$org_id = GetOrganizacao();
$query = "update pbx_sip_ramais set namedpickupgroup = '', namedcallgroup = '' where org_id = {$org_id}";
pg_query($db, $query); pg_query($db, $query);
$query = "update pbx_iax_pbx set pickupgroup = '', callgroup = '' where 1=1 and org_id = $org_id"; $query = "update pbx_iax_pbx set namedpickupgroup = '', namedcallgroup = '' where org_id = {$org_id}";
pg_query($db, $query); pg_query($db, $query);
$query = "update pbx_dgv set capturar = '', grupo = '' where 1=1 and org_id = $org_id"; $query = "update pbx_dgv set capturar = '', grupo = '' where org_id = {$org_id}";
pg_query($db, $query); pg_query($db, $query);
$query = "update pbx_dahdi set capturar = '', grupo = '' where 1=1 and org_id = $org_id"; $query = "update pbx_dahdi set capturar = '', grupo = '' where org_id = {$org_id}";
pg_query($db, $query); pg_query($db, $query);
$query = "update pbx_khomp set capturar = '', grupo = '' where 1=1 and org_id = $org_id"; $query = "update pbx_khomp set capturar = '', grupo = '' where org_id = {$org_id}";
pg_query($db, $query); pg_query($db, $query);
} }
?> ?>

26
admin/funcoes.php

@ -650,7 +650,7 @@ function gera_arquivos($dbcon, $tipo, $reload = 1, $reloadUra = 1) {
$escreve = fopen($arq, 'w'); $escreve = fopen($arq, 'w');
$query = "SELECT registro, nome, \"type\", host, secret, identificador as callerid, context, disallow, allow, $query = "SELECT registro, nome, \"type\", host, secret, identificador as callerid, context, disallow, allow,
deny, permit, 'no' as requirecalltoken, inkeys, outkeys,callgroup,pickupgroup, case when(conta_senha = 'V')then 'yes' else 'no' end as qualify FROM pbx_iax_pbx order by id asc"; deny, permit, 'no' as requirecalltoken, inkeys, outkeys,namedcallgroup,namedpickupgroup, case when(conta_senha = 'V')then 'yes' else 'no' end as qualify FROM pbx_iax_pbx order by id asc";
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
while ($dados = pg_fetch_array($result)) { while ($dados = pg_fetch_array($result)) {
for ($i = 0; pg_num_fields($result) > $i; $i++) { for ($i = 0; pg_num_fields($result) > $i; $i++) {
@ -924,7 +924,7 @@ function gera_arquivos($dbcon, $tipo, $reload = 1, $reloadUra = 1) {
$escreve = fopen($arq, 'w'); $escreve = fopen($arq, 'w');
$query = "SELECT registro,nome,type,secret,callerid,qualify,port,case when nat = 'yes' then 'force_rport,comedia' else nat end as nat,host,dtmfmode,context,canreinvite,disallow,allow,\"call-limit\",videosupport, $query = "SELECT registro,nome,type,secret,callerid,qualify,port,case when nat = 'yes' then 'force_rport,comedia' else nat end as nat,host,dtmfmode,context,canreinvite,disallow,allow,\"call-limit\",videosupport,
fromdomain,t38pt_udptl,mailbox,pickupgroup,callgroup,insecure,accountcode, extranet, ispbx_tronco, org_id fromdomain,t38pt_udptl,mailbox,namedpickupgroup,namedcallgroup,insecure,accountcode, extranet, ispbx_tronco, org_id
FROM pbx_sip_ramais order by id asc"; FROM pbx_sip_ramais order by id asc";
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
@ -3209,7 +3209,7 @@ function GeraSip($dbcon, $reload) {
$arq = $caminho_producao . "sip_ramais.conf"; $arq = $caminho_producao . "sip_ramais.conf";
$escreve = fopen($arq, 'w'); $escreve = fopen($arq, 'w');
$query = "SELECT registro,type,secret,callerid,qualify,port,nat,host,dtmfmode,context,canreinvite,disallow,allow,\"call-limit\",videosupport,fromdomain,t38pt_udptl,mailbox,pickupgroup,callgroup,insecure,accountcode, extranet $query = "SELECT registro,type,secret,callerid,qualify,port,nat,host,dtmfmode,context,canreinvite,disallow,allow,\"call-limit\",videosupport,fromdomain,t38pt_udptl,mailbox,namedpickupgroup,namedcallgroup,insecure,accountcode, extranet
FROM pbx_sip_ramais order by id asc"; FROM pbx_sip_ramais order by id asc";
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
@ -3311,7 +3311,7 @@ function GeraIax($dbcon, $reload) {
$arq = $caminho_producao . "iax_ramais.conf"; $arq = $caminho_producao . "iax_ramais.conf";
$escreve = fopen($arq, 'w'); $escreve = fopen($arq, 'w');
$query = "SELECT nome, \"type\", host, secret, identificador as callerid, context, disallow, allow, $query = "SELECT nome, \"type\", host, secret, identificador as callerid, context, disallow, allow,
deny, permit, 'no' as requirecalltoken, inkeys, outkeys,callgroup,pickupgroup, case when(conta_senha = 'V')then 'yes' else 'no' end as qualify deny, permit, 'no' as requirecalltoken, inkeys, outkeys,namedcallgroup,namedpickupgroup, case when(conta_senha = 'V')then 'yes' else 'no' end as qualify
FROM pbx_iax_pbx order by id asc"; FROM pbx_iax_pbx order by id asc";
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
@ -3423,7 +3423,7 @@ function GeraDahdi($dbcon, $reload) {
$arq = $caminho_producao . "chan_dahdi_ramais.conf"; $arq = $caminho_producao . "chan_dahdi_ramais.conf";
$escreve = fopen($arq, 'w'); $escreve = fopen($arq, 'w');
$query = "select numero as callerid, contexto as context, dispositivo as channel, capturar as pickupgroup, grupo as callgroup from pbx_dahdi order by numero"; $query = "select numero as callerid, contexto as context, dispositivo as channel, capturar as namedpickupgroup, grupo as namedcallgroup from pbx_dahdi order by numero";
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
$start = 0; $start = 0;
@ -3431,16 +3431,16 @@ function GeraDahdi($dbcon, $reload) {
$callerid = $dados['callerid']; $callerid = $dados['callerid'];
$context = $dados['context']; $context = $dados['context'];
$channel = str_replace("DAHDI/", '', $dados['channel']); $channel = str_replace("DAHDI/", '', $dados['channel']);
$pickupgroup = $dados['pickupgroup']; $pickupgroup = $dados['namedpickupgroup'];
$callgroup = $dados['callgroup']; $callgroup = $dados['namedcallgroup'];
if ($start) if ($start)
fwrite($escreve, "\n"); fwrite($escreve, "\n");
fwrite($escreve, "signalling=fxo_ks\n"); fwrite($escreve, "signalling=fxo_ks\n");
fwrite($escreve, "callerid=$callerid\n"); fwrite($escreve, "callerid=$callerid\n");
fwrite($escreve, "context=$context\n"); fwrite($escreve, "context=$context\n");
fwrite($escreve, "callgroup=$callgroup\n"); fwrite($escreve, "namedcallgroup=$callgroup\n");
fwrite($escreve, "pickupgroup=$pickupgroup\n"); fwrite($escreve, "namedpickupgroup=$pickupgroup\n");
fwrite($escreve, "channel=$channel\n"); fwrite($escreve, "channel=$channel\n");
$start++; $start++;
} }
@ -3787,7 +3787,7 @@ function GeraKhomp($dbcon, $reload) {
*/ */
GeraExtRamais($dbcon); GeraExtRamais($dbcon);
$query = "select numero as callerid, contexto as context, dispositivo as channel, capturar as pickupgroup, grupo as callgroup, numero_serie, numero_khomp, volume_input, volume_output, imediate from pbx_khomp where numero <> '0' order by numero_khomp::int"; $query = "select numero as callerid, contexto as context, dispositivo as channel, capturar as namedpickupgroup, grupo as namedcallgroup, numero_serie, numero_khomp, volume_input, volume_output, imediate from pbx_khomp where numero <> '0' order by numero_khomp::int";
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
$start = 0; $start = 0;
$branches = array(); $branches = array();
@ -3797,8 +3797,8 @@ function GeraKhomp($dbcon, $reload) {
while ($dados = pg_fetch_array($result)) { while ($dados = pg_fetch_array($result)) {
$callerid = $dados['callerid']; $callerid = $dados['callerid'];
$context = $dados['context']; $context = $dados['context'];
$pickupgroup = !$dados['pickupgroup'] ? 0 : $dados['pickupgroup']; $pickupgroup = !$dados['namedpickupgroup'] ? 0 : $dados['namedpickupgroup'];
$callgroup = !$dados['callgroup'] ? 0 : $dados['callgroup']; $callgroup = !$dados['namedcallgroup'] ? 0 : $dados['namedcallgroup'];
$numero_serie = $dados['numero_serie']; $numero_serie = $dados['numero_serie'];
$numero_khomp = $dados['numero_khomp']; $numero_khomp = $dados['numero_khomp'];
$volume_input = !$dados['volume_input'] ? 0 : $dados['volume_input']; $volume_input = !$dados['volume_input'] ? 0 : $dados['volume_input'];
@ -3808,7 +3808,7 @@ function GeraKhomp($dbcon, $reload) {
if (array_search($numero_serie, $branches) === false) if (array_search($numero_serie, $branches) === false)
$branches[] = $numero_serie; $branches[] = $numero_serie;
$ramais .= sprintf("%s = callgroup:%s | pickupgroup:%s | context:%s | input-volume:%s | output-volume:%s | calleridnum:%s\n", $numero_khomp, $callgroup, $pickupgroup, $context, $volume_input, $volume_output, $callerid); $ramais .= sprintf("%s = namedcallgroup:%s | namedpickupgroup:%s | context:%s | input-volume:%s | output-volume:%s | calleridnum:%s\n", $numero_khomp, $callgroup, $pickupgroup, $context, $volume_input, $volume_output, $callerid);
if ($hotline) if ($hotline)
$hotlines .= sprintf("%s = %s\n", $hotline); $hotlines .= sprintf("%s = %s\n", $hotline);
$start++; $start++;

12
projeto/base/sql/versao-1.9.0.sql

@ -354,4 +354,14 @@ ALTER table pbx_troncos_sip
ALTER TABLE pbx_listanegra ADD COLUMN acao_asterisk varchar(110); ALTER TABLE pbx_listanegra ADD COLUMN acao_asterisk varchar(110);
ALTER TABLE pbx_ramais_agenda ALTER TABLE pbx_ramais_agenda
ADD COLUMN rma_registro varchar(260); ADD COLUMN rma_registro varchar(260);
ALTER TABLE pbx_grupos_atendimento ADD PRIMARY KEY (id);
ALTER TABLE pbx_grupos_atendimento ADD COLUMN nome_asterisk varchar(140);
ALTER TABLE pbx_grupos_atendimento_ramais ADD COLUMN nome_asterisk varchar(140);
ALTER TABLE pbx_sip_ramais RENAME COLUMN pickupgroup TO namedpickupgroup;
ALTER TABLE pbx_sip_ramais RENAME COLUMN callgroup TO namedcallgroup;
ALTER TABLE pbx_iax_pbx RENAME COLUMN pickupgroup TO namedpickupgroup;
ALTER TABLE pbx_iax_pbx RENAME COLUMN callgroup TO namedcallgroup;

Loading…
Cancel
Save