Gerenciamento de Áudio
🎧 API de Gerenciamento de Áudio
Esta API permite listar, enviar, atualizar e excluir arquivos de áudio e músicas de espera (MOH) para os assinantes.
🔐 Autenticação e Base URL
Todas as requisições devem seguir o formato de URL do seu sistema:
URL Base: http://seu.ip/api/manageAudio/<action>/<TOKEN>/<KEY>
1. Listar Áudios
Retorna a lista de áudios disponíveis com base no nível de permissão do token.
- Método:
GET - Action:
get -
Parâmetros Query:
-
id_record(Opcional): ID específico de um áudio. id(Na URL, Opcional): ID do cliente (para Admin).
Exemplo de Chamada:
2. Enviar (Criar) Novo Áudio
Realiza o upload, conversão automática para o padrão de telefonia (RAW 8kHz Mono) e extração de duração.
- Método:
POST - Action:
update - Corpo (form-data):
| Campo | Tipo | Descrição |
| :--- | :--- | :--- |
| action | string | Obrigatório. Use create. |
| id_cliente| int | Obrigatório. ID do assinante dono do áudio. |
| file | file | Obrigatório. Arquivo binário .mp3. |
| descricao | string | Nome identificador do áudio. |
| is_moh | int | 1 para Música de Espera, 0 para Áudio Comum. |
| status | int | 1 para Ativo, 0 para Inativo. |
Exemplo de Chamada:
curl -X POST "http://seu.ip/api/manageAudio/update/TOKEN/KEY" \
-F "action=create" \
-F "id_cliente=1" \
-F "descricao=Audio de Saudacao" \
-F "is_moh=0" \
-F "file=@meu_audio.mp3"
3. Atualizar Áudio Existente
Altera os dados de um áudio já cadastrado ou substitui o arquivo físico.
- Método:
POST - Action:
update -
Corpo (form-data):
-
action:update id_record: ID do áudio que será alterado.file(Opcional): Se enviado, o sistema substitui o áudio antigo e reprocessa a conversão.
4. Excluir Áudio
Remove o registro do banco de dados e apaga os arquivos físicos (.mp3 e .raw) do servidor.
- Método:
DELETE(ouGETcom action delete, dependendo da rota) - Action:
delete -
Parâmetros Query:
-
id_record: ID do áudio a ser excluído.
Exemplo de Chamada:
5. Download de Áudio
Baixa o arquivo físico original do servidor.
- Método:
GET - Action:
get -
Parâmetros Query:
-
id_record: ID do áudio. is_download:1
🛠️ Detalhes do Processamento Interno (Workflow)
Quando você envia um arquivo para esta API, ela executa silenciosamente o seguinte fluxo de engenharia de áudio:
- Storage Temporário: O arquivo é movido para
/dev/shm(memória RAM) para alta performance. - Decodificação: Executa o
lame --decodepara transformar MP3 em WAV. - Resampling: Executa o
soxpara converter o WAV para RAW, 8000Hz, Mono, 16-bit. - Organização de Pastas: O MP3 original fica na raiz do ID do cliente e o RAW vai para as pastas
/rawou/moh. - Indexação: A duração é calculada pela classe
MP3Filee salva no bancotbaudio.
⚠️ Códigos de Erro Comuns (reason)
| Reason | Motivo |
UNKOWN |
Erro genérico (Verifique permissões de pasta ou binários LAME/SOX). |
NO_AUTH |
Token ou Key inválidos. |
INVALID_FILE |
O arquivo não é um MP3 válido ou está vazio. |
CUSTOMER_NOT_FOUND |
O id_cliente informado não existe ou você não tem acesso a ele. |
RECORD_NOT_FOUND |
O id_record informado não existe. |