PABX da Simples IP
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.

544 lines
25 KiB

<?php
/*
* Trata requisi<EFBFBD><EFBFBD>o de audio
*/
$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";
//$cmd = "ffmpeg -i $fileOrig -f mp3 $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<EFBFBD>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);
2 years ago
$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 = '';
2 years ago
$proto = !$dados["protocolo"] ? '-' : substr($dados["protocolo"], 0, 4) . '-' . substr($dados["protocolo"], 4, 7);
2 years ago
$protoparceiro = $dados['protoparceiro'] ? $dados['protoparceiro'] : '-';
$dataAudio = date('Y-m-d', strtotime($dados['calldate']));
if (!$acessoAudio || IsAdmin()) {
if (IsAdmin()) {
$msgAudio = "Usu<EFBFBD>rio Administrador n<EFBFBD>o tem permiss<EFBFBD>o para acessar <EFBFBD>udios!";
} else {
$msgAudio = $tipoChamada == 'PBX' ? "Verifique as permiss<EFBFBD>es do usu<EFBFBD>rio para acesso ao <EFBFBD>udio na fila!" : "Este usu<EFBFBD>rio possui restri<EFBFBD><EFBFBD>o aos audios do referido ramal, verifique as permiss<EFBFBD>es no grupo de usu<EFBFBD>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>
2 years ago
<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 &nbsp; $linkAudioFone</td>
</tr>";
$contaReg++;
}
} //Post Back
// ($dbcon, $codDac, $disableb = "", $incTodos = 0, $soAtivo = 1, $incCampanha = 0, $matricula = 0, $useNull = 0, $valueUseNull='', $useSelect=1)
$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<EFBFBD><EFBFBD>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<EFBFBD>o modificados dentro das fun<EFBFBD><EFBFBD>es GetAgtAudio(), GetClassAudio(), GetClassItemAudio(),
* ou seja todos usam GetQuery para retornar uma query especifica para cada situa<EFBFBD><EFBFBD>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<EFBFBD>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<EFBFBD>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<EFBFBD>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;
}
}
?>