PABX criado para pesquisas
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

115 lines
4.4 KiB

#!/usr/bin/php -q
<?php
include('bd.php');
include_once('util/util.php');
$log = "";
$ativaLog = 1;
if ($argv[1] == 'ini') {
$uniqueid = $argv[2];
$plId = $argv[3];
$idContato = isset($argv[4]) ? trim($argv[4]) : false;
//
// create table pbx_pesquisa_regitra(uniqueid varchar(32) not null primary key, id_dac int, matricula varchar(10), data_reg timestamp not null default now(), data_fim timestamp);
$query = "select a.matricula, (select id from pbx_dacs where nome = a.dac) as id_dac, dac from pbx_supervisor_agentes a where uniqueid2 = '$uniqueid' ";
$result = @pg_query($conexao, $query);
if (!pg_num_rows($result)) {
$query = "select prm_pesquisa_matricula as matricula, prm_pesquisa_id_dac as id_dac, prm_pesquisa_nome_dac as dac from pbx_parametros";
$result = @pg_query($conexao, $query);
}
$dados = pg_fetch_array($result);
$idDac = $dados["id_dac"];
$mat = $dados["matricula"];
$dac = $dados["dac"];
GravaLogPesquisa($query, $ativaLog);
$regData = $idContato ? "'$idContato'" : 'null';
$query = "insert
into pbx_pesquisa_regitra
(uniqueid,id_dac,matricula,data_reg,reg_data)
values ('$uniqueid','$idDac','$mat',now(),$regData)";
$result = @pg_query($conexao, $query);
GravaLogPesquisa($query, $ativaLog);
$sqlVpsq = "SELECT uniqueid FROM pbx_pesquisa_log WHERE uniqueid = '$uniqueid'";
$rt = @pg_query($conexao, $sqlVpsq);
$data = pg_fetch_assoc($rt);
GravaLogPesquisa($sqlVpsq, $ativaLog);
if (!$data['uniqueid']) {
$sqlPql = sprintf("INSERT INTO pbx_pesquisa_log (uniqueid, id_dac, fila, matricula, pl_id, plog_log) VALUES ('%s', '%s', '%s','%s', '%s', '%s');", $uniqueid, $idDac, $dac, $mat, $plId, 'AUTOMATICO');
$rst = @pg_query($conexao, $sqlPql);
}
if (!$result || !$rst) {
$msg = error_get_last();
$log = sprintf("Erro ao iniciar Pesquisa.\nQuery [%s];\nMsg[%s]\n\n", $query, $msg['message']);
GravaLogPesquisa($log);
}
} else if ($argv[1] == 'fim') {
$uniqueid = $argv[2];
$query = "update pbx_pesquisa_regitra
set data_fim = now()
where uniqueid = '$uniqueid' ";
$result = @pg_query($conexao, $query);
GravaLogPesquisa($query, $ativaLog);
if (!$result) {
$msg = error_get_last();
$log = sprintf("Erro ao iniciar Finalizar.\nQuery [%s];\nMsg[%s]\n\n", $query, $msg['message']);
GravaLogPesquisa($log);
}
} else {
$uniqueid = $argv[1];
$plId = $argv[2];
$ppId = $argv[3];
$pqId = $argv[4];
$poId = $argv[5];
$setNull = function($str) {
return !$str ? 'null' : QuotedStr($str);
};
// Transcri<EFBFBD><EFBFBD>o da resposta na pesquisa com reconecimento de voz.
$respostaContato = $setNull((isset($argv[6]) ? trim($argv[6]) : ''));
// Nome do audio que contem a resposta do entrevistado.
$audioNome = $setNull((isset($argv[7]) ? trim($argv[7]) : ''));
/*
* Busca dados na tabela de registro que <EFBFBD> populada no inicio da pesquisa
*/
$query = " select id_dac, matricula from pbx_pesquisa_regitra where uniqueid = '$uniqueid' ";
$result = @pg_query($conexao, $query);
$dados = pg_fetch_array($result);
$idDac = $dados["id_dac"];
$mat = $dados["matricula"];
GravaLogPesquisa($query, $ativaLog);
if (!$result) {
$msg = error_get_last();
$log = sprintf("Erro ao carregar informa<EFBFBD><EFBFBD>es pbx_pesquisa_regitra.\nQuery [%s];\nMsg[%s]\n\n", $query, $msg['message']);
GravaLogPesquisa($log);
}
$query = "insert
into pbx_pesquisa_movimento
( pl_id, pp_id, pq_id, po_id, uniqueid, user_reg, id_dac, pm_data, pm_resposta, pm_audio)
values ('$plId', '$ppId', '$pqId', '$poId', '$uniqueid', '$mat', '$idDac', now()::date,$respostaContato, $audioNome)";
$result = @pg_query($conexao, $query);
GravaLogPesquisa($query, $ativaLog);
if (!$result) {
$msg = error_get_last();
$log = sprintf("Erro ao gravar pbx_pesquisa_movimento.\nQuery [%s];\nMsg[%s] Resposta: %s Audio: %s \n\n", $query, $msg['message'], $respostaContato, $audioNome);
GravaLogPesquisa($log);
}
}
function GravaLogPesquisa($log, $ativaLog = 1) {
$path = "/var/log/asterisk/pesquisa_ura.log";
if ($ativaLog) {
$arq = fopen($path, 'a');
fwrite($arq, (trim($log) . "\n"));
fclose($arq);
}
}
?>