gravacoes

mail@pastecode.io avatar
unknown
php
a year ago
5.4 kB
2
Indexable
Never
<!DOCTYPE html>
<html>
<head>
    <title>Player</title>
    <!-- Estilos CSS -->
    <link type="text/css"        href="jplayer/skin/jplayer.css" rel="stylesheet"/>
    <style>
        .window {
            margin-top: 5px;
            margin-left: 70px;
            display: none;
            width: 0px;
            height: 0px;
            position: absolute;
            align: center;
            right: 200;
            left: 500;
            top: 30;
            float: right;
            background: #FFF;
            z-index: 9900;
            padding: 0px;
            border-radius: 10px;
        }
    </style>

    <!-- Bibliotecas -->    
    <script type="text/javascript" src="jplayer/jquery.jplayer.min.js"></script>
</head>
<body>
<?php
    //$uniqueid = $_GET['uniqueid'] ?? null;
    $uniqueid = isset($_GET['uniqueid']) ? $_GET['uniqueid'] : null;

    if ($uniqueid === null) {
        echo '-__Arquivo Inexistente.';
        exit;
    }

    include('../conectar.php');

    function convertePasta($uniqueid) {
        include('conectar.php');
        $caminho = "asterisk_gravacoes/";
        $select = "SELECT CONCAT(SUBSTR(`calldate`,6,2),'_',SUBSTR(`calldate`,1,4)) AS `mesAno` 
                   FROM `cdr` 
                   WHERE `uniqueid` = '".$uniqueid."' LIMIT 1";
        $result = $conn->query($select);

        // Verifica se a consulta foi bem-sucedida
        if ($result === false) {
            die("Erro na consulta: " . $conn->error);
        }

        $numRows = $result->num_rows;

        if ($numRows > 0) {
            while ($row = $result->fetch_assoc()) {
                $mesAno = $row['mesAno'];
                $caminho = "asterisk_gravacoes/".$mesAno."/";
            }
        } else {
            $caminho = "asterisk_gravacoes/";
        }

        return $caminho;
    }

    function converter($arquivo, $uniqueid) {
        $arquivo    = basename($arquivo);
        $tmpArquivo = basename($arquivo, ".WAV") . ".wav";
        $tmp        = 'jplayer/tmp/' . $tmpArquivo;
        $caminho    = convertePasta($uniqueid);

        $tmpPath = '../' . $tmp; // Caminho completo para verificar a existência do arquivo
        if (file_exists($tmpPath)) {
            return true; // Arquivo já convertido e existente, não é necessário fazer novamente
        }

        // Armazena o caminho do arquivo original
        $arquivoPath = '/var/www/html/' . $caminho . $arquivo;

        // Comando completo a ser enviado para o socket
        $command = "Action: Login\r\nUserName: monitoramento\r\nSecret: shk1217\r\n\r\n";
        $command .= "Action: Command\r\nCommand: file convert $arquivoPath /var/www/html/$tmp\r\n\r\n";
        $command .= "Action: Logoff\r\n\r\n";

        $timeout = 30;
        $socket = fsockopen("127.0.0.1", "5038", $errno, $errstr, $timeout);
        if (!$socket) {
            return 'Erro ao conectar ao servidor Asterisk'; // Trata o erro de conexão
        }

        // Escreve o comando no socket e lê todo o conteúdo de uma vez
        fwrite($socket, $command);
        $vardata = stream_get_contents($socket);
        fclose($socket);

        // Verifica a existência do arquivo temporário após a conversão
        return file_exists($tmpPath);
    }

    $arquivo = '';

    // Procurar pelo arquivo com base somente em $uniqueid usando glob
    $uniqueidPattern = '/var/www/html/' . convertePasta($uniqueid) . '*' . $uniqueid . '*';
    $uniqueidFiles = glob($uniqueidPattern);

    if (!empty($uniqueidFiles)) {
        // Caso encontre arquivos com o valor de $uniqueid, atualiza a variável $arquivo com o caminho do primeiro arquivo encontrado
        $arquivo = $uniqueidFiles[0];

        if (converter($arquivo, $uniqueid)) {
            $arquivo = 'jplayer/tmp/' . basename($arquivo,".WAV").".wav";
        } else {
            echo "Arquivo não convertido: " . $uniqueid . "<br>";
        }
    } else {
        // Caso não encontre o arquivo pelo valor de $uniqueid, retorne uma mensagem ou realize outra ação adequada
        echo "Arquivo não encontrado para o uniqueid: " . $uniqueid . "<br>";
        // Ou execute outra ação apropriada
    }
?>
<script>
    $(document).ready(function() {
        $("#jquery_jplayer_1").jPlayer({
            ready: function(event) {
                $(this).jPlayer("setMedia", {
                    wav: "<?php echo $arquivo; ?>",
                    wav: "<?php echo $arquivo; ?>"
                });
            },
            swfPath: "./",
            supplied: "wav, wav",
            wmode: "window",
            smoothPlayBar: true,
            keyEnabled: true
        });

        $(".download").click(function() {
            window.open("jplayer/download.php?arquivo=<?php echo $arquivo; ?>");
        });

        $(".close").click(function() {
            $('#painelGravacao').css("display", "none");
        });
    });
</script>


<div style="background-color: #FAFAFA !important; width: 420px; padding: 0px;">
    <a style="font-size: 16px; color: #000 !important;" href="javascript:;" class="close">x</a>
    <audio style="width: 380px;" controls>
        <source src="<?php echo $arquivo; ?>" type="audio/wav">
    </audio>
</div>


</body>
</html>