Gerenciamento de Grupos de Captura (ManageCallGroups)

Gerenciamento de Grupos de Captura (ManageCallGroups)

Este endpoint é responsável pelo CRUD (Leitura, Criação, Atualização e Exclusão) dos Grupos de Captura (Call Groups / Pickup Groups) de um cliente. Ele permite definir quais ramais tocam/podem ser capturados (ring_group) e quais ramais têm permissão para puxar a ligação (pickup_group).

🔐 Autenticação e Base URL

Todas as requisições requerem autenticação passando o Token e a Key da API diretamente na URL.

Formato Base: {{base_url}}/api/ManageCallGroups/{{api_token}}/{{api_key}}/

📌 Mapeamento de Métodos

  • GET: Ler / Listar Grupos de Captura

  • PUT: Criar novo Grupo de Captura

  • POST: Atualizar Grupo existente

  • DELETE: Excluir Grupo

1. Listar / Obter Grupos (GET)

Retorna os grupos de captura de um cliente específico. Pode retornar todos os grupos do cliente ou um grupo específico se o id_record for fornecido.

  • Método: GET

  • Rota: {{base_url}}/api/ManageCallGroups/{{api_token}}/{{api_key}}/{id_cliente}

  • Parâmetros da Rota:

    • {id_cliente} (int): ID do Cliente dono do grupo.

  • Query Params (Opcional):

    • ?id_record={id_record} (int): ID específico do grupo que deseja filtrar.

Exemplo de Resposta (Sucesso):

{ "error": 0, "reason": "OK", "records": 1, "data": [ { "id": "15", "id_cliente": "210", "descricao": "Grupo Comercial", "status": "1", "ring_group": [ { "id_ramal": "1050", "ramal": "SIP/2101", "status_ramal": "1" } ], "pickup_group": [ { "id_ramal": "1055", "ramal": "SIP/2105", "status_ramal": "1" } ] } ] }

2. Criar Grupo de Captura (PUT)

Cria um novo grupo de captura e vincula os ramais desejados.

  • Método: PUT

  • Rota: {{base_url}}/api/ManageCallGroups/{{api_token}}/{{api_key}}/{id_cliente}

  • Parâmetros da Rota:

    • {id_cliente} (int): ID do Cliente.

Payload (JSON):

Atenção: Os arrays ring_group e pickup_group esperam o ID numérico do ramal (ID da tabela devices), não o nome/número do ramal.

{ "id_cliente": 210, "descricao": "Grupo Suporte", "status": 1, "ring_group": [1050, 1051, 1052], "pickup_group": [1055, 1056] }
  • ring_group: Ramais que pertencem ao grupo e podem ser capturados quando tocarem.

  • pickup_group: Ramais que têm permissão para capturar as ligações dos ramais do ring_group.

Exemplo de Resposta (Sucesso):

{ "error": 0, "reason": "OK", "new_record": 16 }

3. Atualizar Grupo de Captura (POST)

Atualiza os dados de um grupo já existente. Se as listas ring_group ou pickup_group forem enviadas, os ramais antigos do grupo serão substituídos pela nova lista.

  • Método: POST

  • Rota: {{base_url}}/api/ManageCallGroups/{{api_token}}/{{api_key}}/{id_cliente}?id_record={id_record}

  • Parâmetros da Rota:

    • {id_cliente} (int): ID do Cliente.

  • Query Params (Obrigatório):

    • ?id_record={id_record} (int): ID do Grupo de Captura que será alterado.

Payload (JSON):

Você pode enviar apenas os campos que deseja alterar.

{ "descricao": "Grupo Comercial - Atualizado", "status": 1, "ring_group": [1050, 1051], "pickup_group": [1055] }

Exemplo de Resposta (Sucesso):

{ "error": 0, "reason": "OK", "saved": true }

4. Excluir Grupo de Captura (DELETE)

Exclui um grupo de captura do sistema.

  • Método: DELETE

  • Rota: {{base_url}}/api/ManageCallGroups/{{api_token}}/{{api_key}}/{id_cliente}?id_record={id_record}

  • Parâmetros da Rota:

    • {id_cliente} (int): ID do Cliente.

  • Query Params (Obrigatório):

    • ?id_record={id_record} (int): ID do Grupo de Captura a ser excluído.

Exemplo de Resposta (Sucesso):

{ "error": 0, "reason": "OK" }

🛑 Tabela de Códigos de Erro (reason)

Em caso de falha, a API retorna o HTTP Status apropriado, error: 1 e uma das reasons abaixo:

Reason

Descrição

RECORD_NOT_FOUND

Grupo de Captura não encontrado, ou id_record não foi fornecido onde era obrigatório.

INVALID_CUSTOMER

ID do Cliente passado na URL é inválido, vazio ou igual a zero.

CUSTOMER_NOT_FOUND

Cliente não encontrado ou usuário autenticado não tem permissão para gerenciar este cliente.

CUSTOMER_INVALID

ID do Cliente não foi enviado no payload (corpo do JSON) durante a criação.

INVALID_DATA

Dados obrigatórios faltando (ex: descricao na criação).

MALFORMED_REQUEST

O corpo da requisição (Payload JSON) é inválido ou está mal formatado.