Pular para conteúdo

📄 Documentação da API: Gerenciar DIDs (ManageDID)

Visão Geral

A API de Gerenciamento de DIDs (Controller_Api_ManageDID) permite o controle completo de Números Entrantes (DIDs) no sistema Voipper. Através dela, é possível listar, criar, editar e excluir as rotas e configurações de entrada.

Base URL: /api/manageDID/{api_token}/{api_key}/

🔀 Endpoints Disponíveis

Método Endpoint Ação
GET api/manageDID/{api_token}/{api_key}/{id} Lista os DIDs cadastrados. Se o {id} for omitido, lista todos.
PUT /api/manageDID/{api_token}/{api_key}/{id} Cria um novo DID no sistema via Payload/JSON.
POST /api/manageDID/{api_token}/{api_key}/{id} Atualiza os dados e roteamento de um DID existente.
DELETE /api/manageDID/{api_token}/{api_key}/{id} Remove o DID do sistema.

📥 Consultar DIDs (GET)

Este endpoint retorna a árvore de clientes e os seus respectivos DIDs. Ele foi recentemente atualizado para retornar informações detalhadas sobre o destino de rotas (especialmente Linhas IP).

Exemplo de Resposta (JSON):

{
    "error": 0,
    "reason": "OK",
    "records": 1,
    "data": [
        {
            "id": 210,
            "nome_fantasia": "CLIENTE TESTE",
            "status": 1,
            "records": 1,
            "data": [
                {
                    "id": 737,
                    "description": "teste registro did",
                    "did_number": "552130900017",
                    "did_type": "1",
                    "did_type_name": "call_device",
                    "did_premium": "0",
                    "status": 1,
                    "device_id": 498,
                    "device_destination": "SIP/9907"
                }
            ]
        }
    ]
}

📋 Dicionário de Dados (Novos Campos)

Para facilitar a integração com o Front-end e painéis de terceiros, o array de resposta dos DIDs agora conta com os seguintes campos:

  • device_id: Retorna o ID interno do dispositivo (Linha IP) atrelado ao DID. Útil para carregar o destino selecionado em formulários de edição. Retorna 0 se não houver linha atrelada.
  • device_destination: Retorna a string exata do destino formatada (ex: SIP/9907). Ideal para exibição visual nas tabelas (coluna "Info"). Retorna null se não houver linha.
  • did_type_name: Label em string que descreve a funcionalidade do DID, eliminando a necessidade de mapear IDs numéricos no front-end.

🏷️ Mapeamento de Funcionalidades (did_type e did_type_name)

Abaixo está a tabela de referência de todos os tipos de roteamento/funcionalidade que um DID pode assumir no sistema:

did_type (Int) did_type_name (String) Descrição no Painel
0 ip_forward Encaminhar por IP (Padrão)
1 call_device Chamar Linha IP
2 voice_portal Portal de Voz
3 callingcard CallingCard
4 extension_menu Menu Ramal
5 queue Fila de Atendimento
6 ivr Menu de URA (IVR)
7 free_callback Callback Livre
8 auth_callback Callback Auth
9 reverse_ivr Menu de URA Reversa

📝 Notas de Implementação

  • Para criar (PUT) ou atualizar (POST) um DID com roteamento do tipo call_device (1), extension_menu (4), free_callback (7) ou reverse_ivr (9), é obrigatório o envio do parâmetro device_id contendo um ID válido da tabela devices.
  • A API valida automaticamente se o device_id fornecido existe e pertence ao domínio dynamic.

Pronto! Só copiar tudo isso (incluindo os # e as tabelas) e colar na página do Confluence. O editor deles vai converter automaticamente para o formato visual bonitão. Mandou benzão demais nessa task!