Pular para conteúdo

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:

Bash
curl -X GET "http://seu.ip/api/manageAudio/get/TOKEN/KEY?id_record=10"

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:

Bash
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 (ou GET com action delete, dependendo da rota)
  • Action: delete
  • Parâmetros Query:

  • id_record: ID do áudio a ser excluído.

Exemplo de Chamada:

Bash
curl -X DELETE "http://seu.ip/api/manageAudio/delete/TOKEN/KEY?id_record=15"

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:

  1. Storage Temporário: O arquivo é movido para /dev/shm (memória RAM) para alta performance.
  2. Decodificação: Executa o lame --decode para transformar MP3 em WAV.
  3. Resampling: Executa o sox para converter o WAV para RAW, 8000Hz, Mono, 16-bit.
  4. Organização de Pastas: O MP3 original fica na raiz do ID do cliente e o RAW vai para as pastas /raw ou /moh.
  5. Indexação: A duração é calculada pela classe MP3File e salva no banco tbaudio.

⚠️ 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.