Browse Source

Disa feita e algumas correcoes do callback

1.9
Matheo Bonucia 2 months ago
parent
commit
0c252aeb56
  1. 4
      admin/callback.php
  2. 7
      admin/disa.php
  3. 34
      admin/funcoes.php
  4. 6
      asterisk/var_lib_asterisk/agi-bin/disa_agi.php

4
admin/callback.php

@ -9,10 +9,10 @@ $org_id = GetOrganizacao();
if ($acao == "deleta") {
$id = $_GET["id"] ?? "0";
$query = "delete from pbx_callback where id='$id'";
$query = "delete from pbx_callback where id='$id' and org_id = $org_id";
pg_query($dbcon, $query);
$query = "delete from pbx_callback_numeros where id_callback=$id";
$query = "delete from pbx_callback_numeros where id_callback=$id and org_id = $org_id";
pg_query($dbcon, $query); //gera arquivos e executa o reload dos dados no asterisk
//gera_arquivos($dbcon, 'CALLBACK');

7
admin/disa.php

@ -15,14 +15,17 @@ if ($acao == "deleta") {
$nome = $dados['numero'];
}
$query = "delete from pbx_disa where id='$id'";
$query = "delete from pbx_disa where id='$id' and org_id = $org_id";
pg_query($dbcon, $query);
$query = "delete from pbx_disa_numeros where id_disa=$id";
$query = "delete from pbx_disa_numeros where id_disa=$id and org_id = $org_id";
pg_query($dbcon, $query); //gera arquivos e executa o reload dos dados no asterisk
//gera_arquivos($dbcon, 'DISA');
Ajusta_tabelas('disa', $nome, $dbcon);
$apagar = ['ORG_ID', 'ORG_DISA', 'TIPO', 'NOME_APP', 'NUMERO', 'ID_APP'];
removeItemSqlite($dbcon, $apagar, $id, $org_id);
}
?>
<table width="99%" align="center" border="0" cellpadding="2" cellspacing="0" class="filtro">

34
admin/funcoes.php

@ -1342,38 +1342,38 @@ function gera_arquivos($dbcon, $tipo, $reload = 1, $reloadUra = 1) {
$result = pg_query($dbcon, $query);
while ($dados = pg_fetch_array($result)) {
$x++;
fwrite($escreve, 'exten => _' . $dados['numero'] . ',1,Answer()' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero'] . ',n,ExecIf($["${ISNULL(${CDR(direcao)})}" = "1"]?Set(CDR(direcao)=I))' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero'] . ',n,ExecIf($["${CDR(direcao)}" != "E" && "${ISNULL(${CDR(ramal_origem)})}" = "1"]?Set(CDR(ramal_origem)=${CALLERID(num)}))' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero'] . ',n,Set(CHANNEL(accountcode)=${TRANSFER})' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero'] . ',n,AGI(pbx_complemento.php,ext-disa)' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',1,Answer()' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',n,ExecIf($["${ISNULL(${CDR(direcao)})}" = "1"]?Set(CDR(direcao)=I))' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',n,ExecIf($["${CDR(direcao)}" != "E" && "${ISNULL(${CDR(ramal_origem)})}" = "1"]?Set(CDR(ramal_origem)=${CALLERID(num)}))' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',n,Set(CHANNEL(accountcode)=${TRANSFER})' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',n,AGI(pbx_complemento.php,ext-disa)' . "\n");
$sql_conta = pg_query($dbcon, "SELECT * FROM pbx_disa_numeros where id_disa=" . $dados['id'] . " order by id asc");
$sql_conta = pg_query($dbcon, "SELECT * FROM pbx_disa_numeros where id_disa=" . $dados['id'] . "and org_id = $org_id order by id asc");
$quantreg = pg_num_rows($sql_conta);
if ($quantreg > 0) {
fwrite($escreve, 'exten => _' . $dados['numero'] . ',n,Agi(disa.php,${CALLERID(NUM):-13})' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',n,Agi(disa_agi.php,${CALLERID(NUM):-13})' . "\n");
}
fwrite($escreve, 'exten => _' . $dados['numero'] . ',n,Set(TIMEOUT(digit)=' . $dados['tempo_timeout'] . ')' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero'] . ',n,Set(TIMEOUT(response)=' . $dados['timeout'] . ')' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',n,Set(TIMEOUT(digit)=' . $dados['tempo_timeout'] . ')' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',n,Set(TIMEOUT(response)=' . $dados['timeout'] . ')' . "\n");
if (trim($dados['senha']) != '') {
fwrite($escreve, 'exten => _' . $dados['numero'] . ',n,Authenticate(' . $dados['senha'] . ')' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',n,Authenticate(' . $dados['senha'] . ')' . "\n");
}
// Ramal saida
fwrite($escreve, 'exten => _' . $dados['numero'] . ',n,Set(CALLERID(NUM)=' . $dados['ramal_saida'] . ')' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',n,Set(CALLERID(NUM)=' . $dados['ramal_saida_asterisk'] . ')' . "\n");
if ($dados['ligacao_externa'])
fwrite($escreve, 'exten => _' . $dados['numero'] . ',n,Set(__PERMISSAO=OK)' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',n,Set(__PERMISSAO=OK)' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero'] . ',n,DISA(no-password,disa)' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero'] . ',n,Hangup()' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',n,DISA(no-password,disa)' . "\n");
fwrite($escreve, 'exten => _' . $dados['numero_asterisk'] . ',n,Hangup()' . "\n");
$opcao = trim($dados['opcao']);
if (!empty($opcao)) {
$dispAcao = GetOpcaoAcao($dados['opcao'], $dados['acao']);
$dispAcao = sprintf('exten => _%s,n(destino),%s%s', $dados['numero'], $dispAcao, "\n");
$dispAcao = GetOpcaoAcao($dados['opcao'], $dados['acao_asterisk']);
$dispAcao = sprintf('exten => _%s,n(destino),%s%s', $dados['numero_asterisk'], $dispAcao, "\n");
fwrite($escreve, $dispAcao);
}
fwrite($escreve, sprintf('exten => _%s,n%s,Hangup()', $dados['numero'], $opcao ? '' : '(destino)') . "\n");
fwrite($escreve, sprintf('exten => _%s,n%s,Hangup()', $dados['numero_asterisk'], $opcao ? '' : '(destino)') . "\n");
}
fclose($escreve);

6
asterisk/var_lib_asterisk/agi-bin/disa.php → asterisk/var_lib_asterisk/agi-bin/disa_agi.php

@ -39,10 +39,12 @@ while ($env = read()) {
write("GET VARIABLE ORG_ID");
$org_id = substr(strrchr(read(), "("), 1, -1);
$disa = $agi['extension'];
write('DATABASE GET ORG_DISA ' . $agi['extension']);
$disaNumber = substr(strrchr(read(), "("), 1, -1);
$numero = $argv[1];
$numeroConsulta = IncluiDDD($numero);
$query = "select count(*) as resultado from pbx_disa a inner join pbx_disa_numeros b on a.id = b.id_disa and a.org_id = b.org_id where a.numero = '$disa' and a.org_id = $org_id and '$numeroConsulta' similar to b.numeros";
$query = "select count(*) as resultado from pbx_disa a inner join pbx_disa_numeros b on a.id = b.id_disa and a.org_id = b.org_id where a.numero = '$disaNumber' and a.org_id = $org_id and '$numeroConsulta' similar to b.numeros";
$result = pg_query($conexao, $query);
$row = @pg_fetch_row($result);
$resultado = $row['0'];
Loading…
Cancel
Save