forked from SimplesIP/pabx-app
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.
529 lines
24 KiB
529 lines
24 KiB
<?php |
|
|
|
$exitAudio = 0; |
|
|
|
if (isset($_REQUEST['nomeRamalMonitorar'])) { |
|
ConfigRamalMonitorar(); |
|
exit; |
|
} |
|
|
|
GetAudioFoneAutomatico($_GET['audioFoneAuto']); |
|
|
|
if (isset($_GET['audioMobile'])) { |
|
$dir = "/var/www/html/aplicativo/audio/"; |
|
$filepath = VerificaCharFinal($_SESSION[SS_PRM_PATH_AUDIO]) . $_GET["audio"]; |
|
$fileOrig = $dir . $_GET["audio"]; |
|
@file_put_contents($fileOrig, @file_get_contents($filepath)); |
|
|
|
$audioMobile = $_GET['audioMobile']; |
|
$file = $dir . $audioMobile; |
|
|
|
if (!file_exists($file)) { |
|
$cmd = "ffmpeg -i $fileOrig -acodec libmp3lame $file"; |
|
$dbcon = $_SESSION['dbcon']; |
|
ExecutaComando($cmd, $dbcon); |
|
} |
|
$file = "/audio/" . $audioMobile; |
|
@header("Location: $file"); |
|
exit; |
|
} |
|
|
|
if (isset($_GET["audio"]) || isset($_GET["repAudio"])) { |
|
$file = $_GET["audio"] ? $_GET["audio"] : $_GET["repAudio"]; |
|
$filepath = VerificaCharFinal($_SESSION[SS_PRM_PATH_AUDIO]) . $_GET["audio"]; |
|
|
|
if (!@file_get_contents($filepath)) { |
|
$jsStartup[] = "alert('Arquivo não encontrado!');"; |
|
$exitAudio = 1; |
|
} else { |
|
if (isset($_GET["audio"])) { |
|
$proto = $_GET['proto'] != '-' ? $_GET['proto'] : ''; |
|
DownloadAudio($file, $filepath, 'wav', $proto, $_GET['dataAudio']); |
|
exit; |
|
} |
|
} |
|
} |
|
|
|
if (isset($_GET['audioRamalEscuta'])) { |
|
$audioRamalEscuta = $_GET['audioRamalEscuta']; |
|
echo "OK;$audioRamalEscuta"; |
|
exit; |
|
} |
|
|
|
if (!IsAjax()) { |
|
$getAgt = 0; |
|
$getClass = 0; |
|
$getItem = 0; |
|
|
|
$jsStartup[] = MaxDaysRel($_REQUEST["dataIni"], $_REQUEST["dataFim"]) ? sprintf("alert('%s')", MaxDaysRel($_REQUEST["dataIni"], $_REQUEST["dataFim"])) : ''; |
|
|
|
if (!IsPostBack() && !$exitAudio && !isset($_GET['pgn'])) { |
|
$_SESSION["listaDacs"] = !IsAjax() ? GetIdDacPadrao($dbcon, $_SESSION["SSidUser"]) : $_GET["listaDacs"]; |
|
$_SESSION["dataIni"] = !IsAjax() ? date('d/m/Y') : $_GET["dataIni"]; |
|
$_SESSION["dataFim"] = !IsAjax() ? date('d/m/Y') : $_GET["dataFim"]; |
|
$_SESSION["duracao"] = !isset($_GET["dataFim"]) ? 7 : $_GET["duracao"]; |
|
$_SESSION["tipoConsulta"] = "0"; |
|
$_SESSION["listaAgente"] = "0"; |
|
$_SESSION["listaItem"] = "0"; |
|
$_SESSION["listaClass"] = "0"; |
|
$colspan = 11; |
|
$mostaCallcenter = true; |
|
} else { |
|
if (!$exitAudio) { |
|
$trocaDac = $_SESSION["listaDacs"] != trim($_REQUEST["listaDacs"]); |
|
$_SESSION["listaDacs"] = trim($_REQUEST["listaDacs"]); |
|
$_SESSION["listaAgente"] = trim($_REQUEST["listaAgente"]); |
|
$_SESSION["listaItem"] = trim($_REQUEST["listaItem"]); |
|
$_SESSION["listaClass"] = trim($_REQUEST["listaClass"]); |
|
$_SESSION["dataIni"] = trim($_REQUEST["dataIni"]); |
|
$_SESSION["dataFim"] = trim($_REQUEST["dataFim"]); |
|
$_SESSION["duracao"] = trim($_REQUEST["duracao"]); |
|
$_SESSION["src"] = trim($_REQUEST["src"]); |
|
$_SESSION["dst"] = trim($_REQUEST["dst"]); |
|
$_SESSION["proto"] = trim($_REQUEST["proto"]); |
|
$_SESSION["tipoConsulta"] = trim($_REQUEST["tipoConsulta"]); |
|
} |
|
|
|
$mostaCallcenter = ($_SESSION["tipoConsulta"] == 0) || ($_SESSION["tipoConsulta"] == 2); |
|
$imp = 0; |
|
$linhas = ""; |
|
$downloadAudio = VerificaPerfilAcesso($dbcon, GetIdProgFromNomeArq('downloadAudio.php')); |
|
$params = array('listaDacs', 'listaAgente', 'listaItem', 'listaClass', 'dataIni', 'dataFim', 'src', 'dst', 'tipoConsulta'); |
|
$param = ''; |
|
foreach ($params as $nomeParam) { |
|
$param .= sprintf('&%s=%s', $nomeParam, $_REQUEST[$nomeParam]); |
|
} |
|
$setQuery = GetQuery($dbcon); |
|
$pagMostra = 0; |
|
$links = PaginaDados($idProg, $setQuery, $param, $regPagina, $offSet, $pagMostra, true); |
|
$setQuery .= " limit $regPagina offset $offSet"; |
|
$result = pg_query($dbcon, $setQuery); |
|
$colspan = $mostaCallcenter ? 11 : 5; |
|
$contaReg = 0; |
|
$restringAudio = GetRestringeAudio(); |
|
|
|
while ($dados = @pg_fetch_array($result)) { |
|
$userField = trim($dados["userfield"]); |
|
$acessoAudio = $dados["acesso_audio"]; |
|
$tipoChamada = $dados["tipo"]; |
|
$linkAudio = ''; |
|
$msgAudio = ''; |
|
$proto = !$dados["protocolo"] ? '-' : substr($dados["protocolo"], 0, 4) . '-' . substr($dados["protocolo"], 4, 7); |
|
$protoparceiro = $dados['protoparceiro'] ? $dados['protoparceiro'] : '-'; |
|
$dataAudio = date('Y-m-d', strtotime($dados['calldate'])); |
|
if (!$acessoAudio || IsAdmin()) { |
|
if (IsAdmin()) { |
|
$msgAudio = "Usuário Administrador não tem permissão para acessar áudios!"; |
|
} else { |
|
$msgAudio = $tipoChamada == 'PBX' ? "Verifique as permissões do usuário para acesso ao áudio na fila!" : "Este usuário possui restrição aos audios do referido ramal, verifique as permissões no grupo de usuários!"; |
|
} |
|
$linkAudio = sprintf("<img src=\"imgSite/lockClose.gif\" width=\"22\" height=\"22\" title=\"%s\" border=\"0\">", $msgAudio); |
|
|
|
if ($restringAudio) { |
|
continue; |
|
} |
|
|
|
$linkAudioFone = ''; |
|
} else { |
|
if ($downloadAudio && $infoDispositivo->isMobile()) { //$infoDispositivo->isMobile |
|
$audioMobile = str_ireplace(".WAV", ".MP3", $userField); |
|
$linkAudio = "<a href=\"index.php?idProg=23&audioMobile=$audioMobile&proto=$proto&dataAudio=$dataAudio&audio=$userField\" style=\"color: #000;\" target=\"_blank\">" . "<img src=\"imgSite/audio-download-apl.png\" width=\"22\" height=\"22\" border=\"0\">" . "</a>"; |
|
} else if ($downloadAudio) { |
|
$linkAudio = "<a href=\"index.php?idProg=23&proto=$proto&dataAudio=$dataAudio&audio=$userField\" style=\"color: #000;\">" . "<img src=\"imgSite/audio-download-apl.png\" border=\"0\">" . "</a>"; |
|
} |
|
|
|
|
|
$uniqueid = trim($dados["uniqueid"]); |
|
$audioFone = substr($userField, 0, -4); |
|
$linkAudioFone = "<a href=\"javaScript:AudioEscutaApl('$audioFone');\" style=\"color: #000;\">" . "<img src=\"imgSite/audio-escuta-apl.png\" border=\"0\">" . "</a>"; |
|
} |
|
|
|
$data = date('d/m/Y H:i:s', strtotime($dados['calldate'])); |
|
$duration = SecondToStrTime($dados['duration']); |
|
$dados["src"] = strtoupper($dados["src"]) == "S" ? "-" : ocultarTelefone($dados["src"]); |
|
$dst = ocultarTelefone($dados["destino"]); |
|
$fila = !$dados['fila'] ? '-' : $dados['fila']; |
|
$apelido = !$dados['apelido'] ? '-' : $dados['apelido']; |
|
$tipo = $dados['direcao']; |
|
$clasDesc = !$dados["clas_descricao"] ? '-' : $dados["clas_descricao"]; |
|
$ItemDesc = !$dados["clit_descricao"] ? '-' : $dados["clit_descricao"]; |
|
|
|
$linhas .= "<tr>"; |
|
if ($mostaCallcenter) |
|
$linhas .= "<td align=\"left\" class=\"headData\">$fila</td> |
|
<td align=\"left\" class=\"headData\">$apelido</td>\n"; |
|
|
|
$linhas .= "<td align=\"left\" class=\"headData\"> $data</td> |
|
<td align=\"center\" class=\"headData\">$duration</td> |
|
<td align=\"left\" class=\"headData\">{$dados['src']}</td> |
|
<td align=\"left\" class=\"headData\">$dst</td> |
|
<td align=\"left\" class=\"headData\">$tipo</td>\n"; |
|
if ($mostaCallcenter) |
|
$linhas .= "<td align=\"center\" class=\"headData\">$proto</td> |
|
<td align=\"center\" class=\"headData\">$protoparceiro</td> |
|
<td align=\"center\" class=\"headData\">$clasDesc</td> |
|
<td align=\"center\" class=\"headData\">$ItemDesc</td>\n"; |
|
$linhas .= "<td align=\"center\" class=\"headData\">$linkAudio $linkAudioFone</td> |
|
</tr>"; |
|
$contaReg++; |
|
} |
|
} //Post Back |
|
|
|
$cssBlock = '<style type="text/css">#listaDacs { width:190px; } #listaAgente, #dataIni, #dataFim, #src, #dst{ width:120px; } #listaClass, #listaItem{ width:240px;} </style>'; |
|
$dacs = GetDac($dbcon, $_SESSION["listaDacs"], "", 1, 0, 1, 0, 0, '', 1, 1); |
|
$agentes = GetAgtAudio($dbcon); |
|
$class = GetClassAudio($dbcon); |
|
$itemClas = GetClassItemAudio($dbcon); |
|
|
|
$linhas .= "<tr> |
|
<th colspan=\"$colspan\" align=\"center\" class=\"headColun\">Total de Registros</th> |
|
<th align=\"center\" class=\"headColun\">$pagMostra de $totalReg</th> |
|
</tr>"; |
|
|
|
$jsJQuery[] = "\$('#dataIni').keypress(function(){formataDataHora(this);}) "; |
|
$jsJQuery[] = "\$('#dataFim').keypress(function(){formataDataHora(this);}) "; |
|
|
|
//Tamanho da tabela dos filtros |
|
$filtroWidth = 190; |
|
$erro = ''; |
|
//if($isPostBack){$erro = ""; if(pg_last_error($dbcon)) $erro = "Ocorreram erros durante a operação. Erro: " . pg_last_error($dbcon);} |
|
$smarty->assign('erro', $erro); |
|
$smarty->assign('filtroWidth', $filtroWidth); |
|
$smarty->assign('dtIni', IsPostBack() || $exitAudio || isset($_GET['pgn']) ? $_SESSION["dataIni"] : date('d/m/Y')); |
|
$smarty->assign('dtFim', IsPostBack() || $exitAudio || isset($_GET['pgn']) ? $_SESSION["dataFim"] : date('d/m/Y')); |
|
$smarty->assign('duracao', $_SESSION["duracao"]); |
|
$smarty->assign('src', $_SESSION["src"]); |
|
$smarty->assign('dst', $_SESSION["dst"]); |
|
$smarty->assign('proto', $_SESSION["proto"]); |
|
$smarty->assign('tipo', $_SESSION["tipoConsulta"]); |
|
$smarty->assign('dacs', $dacs); |
|
$smarty->assign('agentes', $agentes); |
|
$smarty->assign('class', $class); |
|
$smarty->assign('itemClas', $itemClas); |
|
$smarty->assign('linhas', $linhas); |
|
$smarty->assign('mostraCallcenter', $mostaCallcenter); |
|
$smarty->assign('nomeRamalMonitor', (RAMAL_MONITOR_AUDIO)); |
|
$smarty->assign('canalRamallMonitor', (CANAL_MONITOR_AUDIO)); |
|
$smarty->assign('ramal_monitor', GetRamalMonitorar(RAMAL_MONITOR_AUDIO)); |
|
$smarty->assign('colspan', $colspan + 1); |
|
$smarty->assign('links', $links); |
|
|
|
GetTemplate($smarty, 'audio.tpl'); |
|
} |
|
|
|
function GetQuery($db) { |
|
//print "agente ".$_POST["listaAgente"]."<br>"; |
|
$dt = !soNumero($_SESSION["dataIni"]) ? "null" : FormatDtMssql($_SESSION["dataIni"]); |
|
$dtFim = !soNumero($_SESSION["dataFim"]) ? "null" : FormatDtMssql($_SESSION["dataFim"]); |
|
$src = !soNumero($_SESSION["src"]) ? "null" : soNumero($_SESSION["src"]); |
|
$dst = !soNumero($_SESSION["dst"]) ? "null" : soNumero($_SESSION["dst"]); |
|
$proto = !soNumero($_SESSION["proto"]) ? "null" : soNumero($_SESSION["proto"]); |
|
$dac = $_SESSION["listaDacs"]; |
|
$agente = $_SESSION["listaAgente"]; |
|
$class = $_SESSION["listaClass"]; |
|
$classItem = $_SESSION["listaItem"]; |
|
$tipo = $_SESSION["tipoConsulta"]; |
|
$duracao = $_SESSION["duracao"]; |
|
return GetDadosRelAudio($db, $crcCode, $dt, $dtFim, $src, $dst, $proto, $tipo, $dac, $agente, $class, $classItem, $duracao); |
|
} |
|
|
|
function GetDadosRelAudio($db, $crcCode, $dt, $dtFim, $src, $dst, $proto, $tipo, $dac, $agente, $class, $classItem, $duracao) { |
|
$query = ''; |
|
$verProto = soNumero($proto); |
|
$isProto = !empty($verProto); |
|
|
|
if ($src != 'null') { |
|
$src = QuotedStr("%$src%"); |
|
} |
|
|
|
if ($dst != 'null') { |
|
$dst = QuotedStr("%$dst%"); |
|
} |
|
|
|
if ($proto != 'null') { |
|
$proto = QuotedStr($proto); |
|
} |
|
|
|
if ($dt != 'null') { |
|
$dt = QuotedStr("$dt"); |
|
} |
|
|
|
if ($dtFim != 'null') { |
|
$dtFim = QuotedStr("$dtFim"); |
|
} |
|
|
|
$idUser = GetIdUser(); |
|
$dacTd = explode("|", $dac); |
|
$dacs = ''; |
|
$y = 0; |
|
if ($dacTd[1]) { |
|
$dacs .= "AND c.id IN ("; |
|
foreach ($dacTd as $nDac) { |
|
if ($y != 0) { |
|
$dacs .= ", "; |
|
} |
|
$dacs .= "$nDac "; |
|
$y = 1; |
|
} |
|
$dacs .= ") "; |
|
} else { |
|
$dac = "AND c.id = $dac "; |
|
} |
|
|
|
/* |
|
* Variaveis globais indicam o tipo de query executada no momento, |
|
* esses valores são modificados dentro das funções GetAgtAudio(), GetClassAudio(), GetClassItemAudio(), |
|
* ou seja todos usam GetQuery para retornar uma query especifica para cada situação. |
|
*/ |
|
$getAgt = isset($GLOBALS['getAgt']) && $GLOBALS['getAgt']; |
|
$getClass = isset($GLOBALS['getClass']) && $GLOBALS['getClass']; |
|
$getItem = isset($GLOBALS['getItem']) && $GLOBALS['getItem']; |
|
|
|
|
|
if ((($tipo == 1) or ( $tipo == 2)) && !($getAgt || $getClass || $getItem)) { |
|
$query = "DROP TABLE IF EXISTS tmp_restricao_ramal; |
|
CREATE TEMPORARY TABLE tmp_restricao_ramal AS |
|
SELECT DISTINCT x.nome FROM pbx_grupo_audio_ramal x, pbx_grupo_usuario y WHERE y.gp_id = x.gp_id AND y.user_id = '{$idUser}'; |
|
CREATE INDEX \"tmpRestricaoRamalNome\" on tmp_restricao_ramal(nome);\n\n"; |
|
$query .= "DROP TABLE IF EXISTS tmp_restricao_sigame; |
|
CREATE TEMPORARY TABLE tmp_restricao_sigame as |
|
SELECT sigame_externo FROM pbx_sip_ramais WHERE nome IN (SELECT nome FROM tmp_restricao_ramal) AND sigame_externo <> ''; "; |
|
} |
|
|
|
$addPdx = !($getAgt || $getClass || $getItem); |
|
|
|
if (($tipo == 0) || ($tipo == 2) || ($isProto)) { |
|
if ($getAgt) { |
|
$query .= "SELECT DISTINCT d.matricula, d.apelido\n"; |
|
} else if ($getClass) { |
|
$query .= "SELECT DISTINCT h.clas_id, h.clas_descricao\n"; |
|
} else if ($getItem) { |
|
$query .= "SELECT DISTINCT g.clit_id, g.clit_descricao\n"; |
|
} else { |
|
|
|
$query .= " SELECT DISTINCT a.data_bilhete, a.uniqueid, CASE WHEN(b.evento <> '') THEN 'Fila' ELSE 'Ramal' END AS tipo, |
|
CASE WHEN(b.evento in('COMPLETECALLER', 'COMPLETEAGENT','COMPLETEAGENTRAMAL','COMPLETECALLERRAMAL'))THEN 'entrada' ELSE 'saida' END AS direcao, |
|
c.id AS iddac, b.fila, d.apelido, a.calldate, a.src, |
|
a.dst AS destino, |
|
a.userfield, e.protocolo, h.clas_id, h.clas_descricao, g.clit_id, g.clit_descricao, |
|
CASE WHEN(b.evento IN('TRANSFERORIG', 'TRANSFER') )THEN strtoint(param4) ELSE strtoint(param2) END AS duration, |
|
1 AS acesso_audio \n"; |
|
} |
|
|
|
$query .= "FROM pbx_bilhetes a |
|
LEFT JOIN pbx_eventos_dacs b ON b.uid2 = a.uniqueid AND b.evento IN('COMPLETAAGENT','COMPLETACALLER','TRANSFERORIG', 'COMPLETECALLER', 'COMPLETEAGENT', 'TRANSFER','COMPLETEAGENTRAMAL','COMPLETECALLERRAMAL') |
|
LEFT JOIN pbx_dacs c ON c.nome = b.fila |
|
LEFT JOIN pbx_usuarios d ON d.matricula = SUBSTRING(b.agente, 7,4) |
|
LEFT JOIN pbx_protocolo_reg e ON e.uniqueid = a.uniqueid |
|
LEFT JOIN pbx_classifica_reg f ON f.id_bilhetes = a.uniqueid |
|
LEFT JOIN pbx_classifica_item g ON g.clas_id = f.clas_id and g.clit_id = f.clit_id |
|
LEFT JOIN pbx_classifica_atendimento h ON h.clas_id = f.clas_id |
|
WHERE a.billsec > 3 \n |
|
AND exists(SELECT '' FROM pbx_fila_audios x, pbx_grupo_usuario y WHERE y.gp_id = x.gp_id AND y.user_id = '{$idUser}' and x.id = c.id)\n"; |
|
|
|
if ($isProto) { |
|
$query .= "AND (e.protocolo = $proto or e.protoparceiro = $proto) "; |
|
} else { |
|
$query .= "AND a.data_bilhete >= COALESCE($dt, a.data_bilhete) |
|
AND a.data_bilhete <= COALESCE($dtFim, a.data_bilhete) "; |
|
|
|
if ($src != 'null') { |
|
$query .= " AND a.src LIKE $src "; |
|
} |
|
|
|
if ($dst != 'null') |
|
$query .= " and a.dst like $dst "; |
|
// $query .= " AND (CASE WHEN(b.evento IN('COMPLETECALLER', 'COMPLETEAGENT','COMPLETEAGENTRAMAL','COMPLETECALLERRAMAL') AND d.apelido IS NOT NULL) THEN |
|
// (SELECT MAX(destino) FROM pbx_bilhetes_complemento WHERE uniqueid2 = a.uniqueid AND direcao = 'fila-ramal') |
|
// ELSE |
|
// (SELECT destino FROM pbx_bilhetes_complemento WHERE uniqueid2 = a.uniqueid AND id = (SELECT MAX(id) FROM pbx_bilhetes_complemento WHERE uniqueid2 = a.uniqueid)) |
|
// END LIKE $dst)"; |
|
|
|
if ($dac) { |
|
$query .= $dacs ? $dacs : $dac; |
|
} |
|
|
|
if ($agente && !$getAgt) { |
|
$query .= " AND d.matricula = '$agente' "; |
|
} |
|
|
|
if (($class && !$getClass) || ($getItem && !$getClass)) { |
|
$query .= " AND h.clas_id = '$class' "; |
|
} |
|
|
|
if ($classItem && !$getItem) { |
|
$query .= " AND g.clit_id = '$classItem' "; |
|
} |
|
} |
|
$query .= "AND COALESCE(a.userfield, '') <> '' AND a.lastapp <> 'Transferred Call' \n"; |
|
// if(GetLogin() == 'administrador') { echo $query; exit; } |
|
} |
|
|
|
if ((($tipo == 1) || ($tipo == 2)) && !$isProto && $addPdx) { |
|
|
|
if ($tipo == 2) { |
|
$query .= "UNION ALL \n"; |
|
} |
|
|
|
$query .= " SELECT a.data_bilhete, a.uniqueid, 'PBX' AS tipo, tplg_descricao AS direcao, |
|
0 as iddac, '' AS fila, '' AS apelido, a.calldate, |
|
a.src, a.dst AS destino, a.userfield, 0 AS protocolo, |
|
0::INTEGER AS clas_id, ''::VARCHAR(30) AS clas_descricao, |
|
0::INTEGER AS clit_id, ''::VARCHAR(30) AS clit_descricao, |
|
MAX(billsec) AS duration, |
|
1 AS acesso_audio |
|
FROM pbx_bilhetes a |
|
INNER JOIN pbx_tipo_ligacao b ON b.tplg_codigo = a.tipo_chamada |
|
WHERE NOT EXISTS(SELECT '' FROM pbx_eventos_dacs WHERE uid2 = a.uniqueid) |
|
AND not exists(select '' from tmp_restricao_ramal where (nome = a.src or nome = a.dst)) |
|
AND NOT EXISTS(SELECT '' FROM tmp_restricao_sigame where (sigame_externo = a.src or sigame_externo = a.dst)) |
|
AND a.data_bilhete >= COALESCE($dt, a.data_bilhete) |
|
AND a.data_bilhete <= COALESCE($dtFim, a.data_bilhete)"; |
|
|
|
if ($src != 'null') { |
|
$query .= " AND a.src LIKE $src "; |
|
} |
|
|
|
if ($dst != 'null') { |
|
$query .= " AND a.dst LIKE $dst "; |
|
} |
|
|
|
$query .= "AND COALESCE(a.userfield, '') NOT IN('', 'chamada-a-cobrar', 'fora-do-horario') AND a.billsec > 3 AND a.disposition = 'ANSWERED' |
|
AND a.lastapp <> 'Transferred Call' |
|
GROUP BY a.data_bilhete, a.uniqueid, tplg_descricao, a.calldate, a.src, a.dst, a.userfield \n"; |
|
} |
|
|
|
if ($getAgt || $getClass || $getItem) { |
|
$query .= "ORDER BY 2 \n"; |
|
} else if ($tipo == 0) { |
|
$query .= "ORDER BY a.calldate DESC \n"; |
|
} else if ($tipo == 1) { |
|
$query .= "ORDER BY a.calldate DESC \n"; |
|
} else if ($tipo == 2) { |
|
$query .= "ORDER BY 8 \n"; |
|
} |
|
|
|
if ($_GET['query'] == 1) { |
|
echo $query; |
|
} |
|
// if(GetLogin() == 'amarildo.pereira') echo $query; |
|
|
|
return $query; |
|
} |
|
|
|
function GetAgtAudio($db) { |
|
$codSel = $_SESSION["listaAgente"]; |
|
$GLOBALS['getAgt'] = 1; |
|
$sel = !$codSel ? 'selected="selected"' : ''; |
|
|
|
$select = "<select name=\"listaAgente\" id=\"listaAgente\" size=\"1\">"; |
|
$select .= "<option value=\"0\" $sel>-----------------</option>"; |
|
|
|
// Quando tipoConsulta == 1 não pesquisa na fila. |
|
if ($_SESSION["tipoConsulta"] != 1) { |
|
$query = GetQuery($db); |
|
$result = pg_query($db, $query); |
|
//if(IsAdmin()){echo $query; echo "\n--------------------------------\n"; } |
|
while ($dados = @pg_fetch_row($result)) { |
|
$sel = ($codSel == $dados[0]) ? 'selected="selected"' : ""; |
|
$select .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
} |
|
} |
|
|
|
$select .= "</select>"; |
|
$GLOBALS['getAgt'] = 0; |
|
return $select; |
|
} |
|
|
|
function GetClassAudio($db) { |
|
$codSel = $_SESSION["listaClass"]; |
|
$GLOBALS['getClass'] = 1; |
|
$sel = !$codSel ? 'selected="selected"' : ''; |
|
|
|
$select = "<select name=\"listaClass\" id=\"listaClass\" size=\"1\">"; |
|
$select .= "<option value=\"0\" $sel>-----------------</option>"; |
|
|
|
// Quando tipoConsulta == 1 não pesquisa na fila. |
|
if ($_SESSION["tipoConsulta"] != 1) { |
|
$query = GetQuery($db); |
|
$result = pg_query($db, $query); |
|
//if(IsAdmin()){echo $query; echo "\n--------------------------------\n"; } |
|
while ($dados = @pg_fetch_row($result)) { |
|
if ($dados[0]) { |
|
$sel = ($codSel == $dados[0]) ? 'selected="selected"' : ""; |
|
$select .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
} |
|
} |
|
} |
|
|
|
$select .= "</select>"; |
|
$GLOBALS['getClass'] = 0; |
|
return $select; |
|
} |
|
|
|
function GetClassItemAudio($db) { |
|
$codSel = $_SESSION["listaItem"]; |
|
$GLOBALS['getItem'] = 1; |
|
$sel = !$codSel ? 'selected="selected"' : ''; |
|
|
|
$select = "<select name=\"listaItem\" id=\"listaItem\" size=\"1\">"; |
|
$select .= "<option value=\"0\" $sel>-----------------</option>"; |
|
|
|
// Quando tipoConsulta == 1 não pesquisa na fila. |
|
if ($_SESSION["tipoConsulta"] != 1) { |
|
$query = GetQuery($db); |
|
$result = pg_query($db, $query); |
|
//if(IsAdmin()){echo $query; echo "\n--------------------------------\n"; } |
|
while ($dados = @pg_fetch_row($result)) { |
|
$sel = ($codSel == $dados[0]) ? 'selected="selected"' : ""; |
|
$select .= "<option value=\"$dados[0]\" $sel>$dados[1]</option>"; |
|
} |
|
} |
|
|
|
$select .= "</select>"; |
|
$GLOBALS['getItem'] = 0; |
|
return $select; |
|
} |
|
|
|
function GetAudioFoneAutomatico($file) { |
|
if ($file) { |
|
$dirMp3 = '/var/www/html/aplicativo/audio/'; |
|
|
|
$filepath = VerificaCharFinal($_SESSION[SS_PRM_PATH_AUDIO]) . $file; |
|
$pathFileWav = sprintf("%s%s", $dirMp3, $file); |
|
$patFileUlaw = str_ireplace('.WAV', '.ulaw', $pathFileWav); |
|
|
|
/* |
|
* Renomeia o file para mostrar corretamente. |
|
*/ |
|
$file = str_ireplace('.WAV', '.ulaw', $file); |
|
|
|
/* |
|
* Cria o arquivo wav localmente. |
|
*/ |
|
@file_put_contents($pathFileWav, @file_get_contents($filepath)); |
|
|
|
/* |
|
* Convert para ulaw. |
|
*/ |
|
$comando = "ffmpeg -i $arqOrigem -ar 8000 -ac 1 -ab 64 -f mulaw $arqDestino"; |
|
exec($comando); |
|
|
|
/* |
|
* Pega o tamanho do arquivo mp3 criado. |
|
*/ |
|
$fsize = filesize($patFileUlaw); |
|
|
|
header('Content-Description: File Transfer'); |
|
header('Content-Transfer-Encoding: binary'); |
|
header('Content-Type: ' . GetMimeContentType($file)); |
|
if ($fsize) |
|
header('Content-Length: ' . $fsize); |
|
header('Content-Disposition: attachment; filename="' . $file . '"'); |
|
header('Connection: close'); |
|
readfile($patFileUlaw); |
|
unlink($pathFileWav); |
|
unlink($patFileUlaw); |
|
exit; |
|
} |
|
}
|
|
|