Gerenciamento de Áudio

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.