📄Gerenciamento de Filas de Atendimento
📄 API Reference: Manage Queue (Gerenciamento de Filas de Atendimento)
Esta API permite a consulta, criação, atualização e exclusão de Filas de Atendimento (Queues) no sistema NextBilling, incluindo o gerenciamento dos ramais (devices/membros) atrelados a cada fila.
🔐 Autenticação e Permissões
Todas as requisições requerem autenticação válida (via Token/Key na URL ou Header).
Regras de Hierarquia:
Nível 4 (Assinantes): Têm acesso restrito apenas às filas da sua própria conta. O sistema ignora IDs de clientes de terceiros informados na URL ou no corpo da requisição.
Nível 2 (Revendas): Podem interagir com filas dos clientes atrelados à sua hierarquia.
📍 Endpoints e Parâmetros de Rota
Diferente de outras APIs do sistema, o parâmetro principal na URL ({id}) refere-se ao ID do Cliente (Assinante), enquanto o ID da Fila específica deve ser passado como um parâmetro de query (?id_record=).
Método | Endpoint | Descrição |
GET |
| Lista todas as filas do cliente ou uma fila específica. |
PUT |
| Cria uma nova Fila de Atendimento. |
POST |
| Atualiza uma Fila de Atendimento existente. |
DELETE |
| Exclui uma Fila de Atendimento. |
(Nota: Para Assinantes / Nível 4, o {id_cliente} na URL pode ser preenchido com 0, pois o sistema detectará automaticamente o ID da própria conta logada).
📥 1. Consultar Filas (GET)
Retorna a listagem de Filas de Atendimento e os detalhes dos ramais que são membros delas.
Parâmetro de URL:
id_cliente(Obrigatório para Admin/Revenda. Opcional para Assinante).Parâmetro de Query:
id_record(Opcional. Se não for enviado, listará todas as filas do cliente).
Exemplo de Retorno (Sucesso)
{
"error": 0,
"reason": "OK",
"records": 1,
"data": [
{
"id": 943,
"id_cliente": 119,
"descricao": "Atendimento Comercial",
"strategy": "ringall",
"musiconhold": "custom",
"announce": {
"id": 903,
"descricao": "Bem-vindo_Comercial"
},
"announce_frequency": 0,
"timeout": 3600,
"queue_type": 0,
"id_backup1": 919,
"status": 1,
"devices": [
{
"id_ramal": "920",
"ramal": "PJSIP/ramal1001",
"status_ramal": "1"
}
]
}
]
}
📤 2. Criar ou Atualizar Fila (PUT / POST)
O payload deve ser enviado em formato JSON.
O método
PUTexige os dados mínimos para criação (comodescricao).O método
POSTpermite a atualização parcial de campos isolados.
📋 Dicionário de Dados (Payload JSON)
Identificação e Estratégia
Campo | Tipo | Obrigatório (PUT)? | Descrição |
| Inteiro | Sim (p/ Admin/Revenda) | ID do assinante dono da fila. |
| String | Sim | Nome da Fila (Ex: "Suporte N1"). |
| String | Não | Estratégia de distribuição. Valores suportados: |
| Inteiro | Não | Tipo de membros: |
Áudios e Anúncios
Campo | Tipo | Descrição |
| String | Música de espera da fila. Envie |
| Objeto | Áudio de entrada da fila. Obrigatório o envio no formato de objeto com a chave id: |
| Inteiro | Frequência (em segundos) que a posição ou tempo será anunciada. |
| Inteiro | Anunciar o tempo estimado de espera? ( |
| Inteiro | Anunciar a posição do cliente na fila? ( |
| Inteiro | ID de um áudio (Sussurro) tocado para o agente antes de conectar a chamada ao cliente. |
Tempos e Regras (Timers)
Campo | Tipo | Descrição |
| Inteiro | Tempo máximo de espera na fila (em segundos) antes do transbordo. |
| Inteiro | Tempo de pausa entre tentativas de chamar os ramais (em segundos). |
| Inteiro | Tempo de "respiro" do agente após finalizar uma chamada (em segundos). |
| Inteiro | O agente ouvirá o tempo que o cliente esperou? ( |
| Inteiro | Tocar para o ramal mesmo que ele já esteja em uso? ( |
Transbordo, Membros e Status
Campo | Tipo | Descrição |
| Inteiro | ID de outra Fila para usar como Transbordo (caso o cliente atinja o |
| Array de Int | Lista de IDs dos ramais que fazem parte da fila. (Nota: no Update, a API substitui a lista inteira pelos IDs informados neste array). |
| Inteiro | Status da Fila ( |
Exemplo de Payload de Criação (PUT) ou Atualização (POST)
{
"descricao": "Atendimento Comercial",
"strategy": "ringall",
"musiconhold": "custom",
"announce": {
"id": 903
},
"timeout": 120,
"retry": 15,
"wrapuptime": 5,
"id_backup1": 919,
"devices": [920, 921, 925],
"status": 1
}
❌ 3. Excluir Fila (DELETE)
Remove permanentemente a Fila de Atendimento do sistema.
Parâmetro de Rota (
{id}): ID do cliente (Obrigatório, use0se a API for chamada por credencial de Assinante).Parâmetro de Query (
?id_record=): Obrigatório - ID interno da Fila a ser deletada.
Exemplo de Chamada de Exclusão: DELETE /api/manageQueue/119?id_record=943
⚠️ Códigos de Retorno e Erros Comuns
As respostas de erro seguem o padrão JSON abaixo:
{
"error": 1,
"reason": "CODIGO_DO_ERRO",
"message": "Descrição amigável do erro."
}
Código (reason) | Motivo | Resolução |
| A Fila informada não foi encontrada ou não pertence ao cliente. | Verifique se você passou o |
| ID do cliente não foi enviado na rota (Admin/Revenda). | Passe o ID do cliente na rota |
| Cliente / Assinante informado na criação não foi encontrado. | Valide o |
| Dados obrigatórios ausentes. | Certifique-se de enviar o campo |
| Sintaxe JSON incorreta ou tipos de dados inválidos. | Verifique se Arrays e Objetos (como o |
Notas de Sistema (Comportamento Automático): > * Reload do Asterisk: Qualquer alteração, inserção de membros (devices) ou exclusão na fila executará o comando
queue reload allno sistema para aplicar as regras em tempo real no PBX.
Sobrescrita de Membros: Ao atualizar os membros da fila via POST, o array
devicessubstitui integralmente a configuração anterior. Se desejar adicionar um ramal, você deve enviar o array contendo os ramais existentes + o ramal novo.Auditoria: Todas as mudanças disparam um log de segurança no módulo "API - Gerenciar Filas de Atendimento".