API de CPE Novo na 7.2
Referência completa da API do ambiente CPE (gerência de roteadores do assinante por TR-069): consulte o inventário, o retrato completo de cada CPE e a saúde da frota, e gerencie Wi-Fi, WAN/PPPoE, LAN, redirecionamentos, perfis de provisionamento, campanhas em massa, rotinas, diagnósticos e homologação por integração externa. São 69 operações que cobrem tudo o que a interface faz.
Visão geral
A API de CPE expõe o ambiente CPE inteiro para sistemas externos. Ela cobre dois grandes usos:
- Consultar: lista de CPEs com filtros e paginação (com export CSV/PDF), retrato completo de uma CPE (Wi-Fi, WAN, LAN, portas, hosts conectados, vínculos com OLT e concentradora, tarefas, alertas e auditoria), visão geral da frota, estado do ambiente de gerência, perfis, modelos homologados, rotinas, campanhas, diagnósticos e resumos de IA.
- Gerenciar: reiniciar e restaurar de fábrica, editar Wi-Fi (rede, senha, canal), WAN (DNS, MTU, IPv6), credenciais PPPoE, LAN/DHCP, portas físicas, redirecionamentos de porta e DMZ, bloquear aparelhos, gerência web da CPE, vincular ONU, criar e aplicar perfis de provisionamento, disparar campanhas em massa (inclusive firmware), configurar rotinas autônomas, rodar diagnósticos e conduzir a homologação de modelos.
Casos típicos: integrar o provisionamento da CPE ao fluxo de ativação do seu ERP, trocar a senha do Wi-Fi do assinante direto do seu sistema de atendimento, alimentar um painel próprio com a saúde da frota e automatizar campanhas de firmware fora do horário comercial.
Pré-requisitos
| Requisito | Detalhe |
|---|---|
| Plano com CPE Limite por plano | O ambiente CPE precisa estar habilitado na assinatura. Sem ele, todas as operações respondem Modulo CPE nao liberado no plano deste servidor. |
| Chave de API com permissão CPE | Ao criar ou editar a chave em Configurações, aba Integrações, card Gerenciamento de API, marque Acesso a CPE na seção Permissões de Acesso. Veja Criar uma chave de API. |
| Ambiente CPE ativo | Ambiente de gerência ligado (engrenagem do ambiente CPE) e CPEs apontadas para o servidor. As operações de escrita em uma CPE precisam que ela esteja se comunicando. |
| Rede | Acesso HTTPS ao servidor Ravi do cliente. |
Uma chave com Acesso a CPE tem leitura e escrita em tudo do módulo: consegue restaurar de fábrica qualquer CPE, trocar credenciais PPPoE e disparar campanhas na frota inteira. Trate-a como credencial de alto privilégio: crie uma chave dedicada por integração, preencha o campo Descrição (opcional) e não marque outras permissões desnecessárias.
Toda operação de escrita feita pela API entra no histórico de ações do sistema identificando a chave utilizada (número e descrição). As tarefas criadas aparecem nas telas do módulo com a origem api. O modo bancada, quando ligado na configuração do módulo, também vale para a API: escrita só nas CPEs da lista de teste.
Formato das chamadas
Todas as operações usam o endpoint único da API pública, com action=cpe. GET e POST são aceitos em todas as operações; prefira POST nas operações de escrita e sempre que quiser evitar o token em logs de acesso. Os parâmetros de cada operação vão junto, na querystring ou no corpo do formulário.
https://SEU-RAVI/api/api.php?token=CHAVE&action=cpe&operation=NOME_DA_OPERACAO
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
token | string | sim | Chave de API de 32 caracteres com a permissão Acesso a CPE. |
action | string | sim | Sempre cpe para este módulo. |
operation | string | sim | A operação desejada (referência nas seções abaixo). |
Envelope das respostas:
- Sucesso:
{"status":"success","data":{...}}com HTTP 200. - Erro:
{"status":"error","message":"..."}. Nas confirmações em duas etapas (abaixo) e em algumas validações, o erro vem acompanhado de um campodatacom detalhes. - Exceção:
operation=cpescomexport=csvouexport=pdfdevolve o arquivo bruto (CSV ou PDF), fora do envelope JSON.
Operações que criam tarefa na CPE
As ações que tocam o equipamento (reiniciar, editar Wi-Fi, WAN etc.) não são instantâneas: elas criam uma tarefa que o sistema envia à CPE e depois relê para confirmar que o valor realmente mudou. A resposta traz o estado inicial:
| Campo | Significado |
|---|---|
status | ok (a CPE atendeu na hora), enviada (aguardando a CPE se comunicar), fila (aguardando envio), agendada (agendamento futuro) ou falha. |
http | Código de retorno do envio. |
erro | Mensagem quando algo falhou; vazio no sucesso. |
Acompanhe o desfecho (confirmada ou não) com operation=tarefas, que mostra o status final de cada tarefa após a releitura.
Confirmação em duas etapas
Três fluxos de grande alcance pedem confirmação explícita. A primeira chamada responde status:"error" com os números do alcance em data; repita a chamada com o campo de confirmação para executar:
| Fluxo | Campo de confirmação | O que vem em data na 1ª chamada |
|---|---|---|
perfil_salvar / perfil_ativo (perfil ativo que alcança CPEs) | confirmado=1 | confirmar:true, alcance (CPEs alcançadas), escopoRotulo, bancada. |
massa_criar | confirmado=1 | confirmar:true, alcance, bancadaFora, rotuloAcao. |
config_salvar ao desligar o modo bancada | confirmarBancadaOff=1 | precisaConfirmar:"bancada_off", perfis ativos, alcance. |
Erros comuns a todas as operações
message | Causa |
|---|---|
Invalid token | Chave inexistente, errada ou revogada (HTTP 401). |
Access denied for cpe | Chave sem a permissão Acesso a CPE (HTTP 403). |
Operation not provided / Invalid operation | Faltou operation, ou o nome não existe. |
Modulo CPE nao liberado no plano deste servidor. | A assinatura não inclui o ambiente CPE. |
cpe nao encontrada | O serial informado não existe no inventário. |
Modo bancada ativo: escrita bloqueada para CPEs fora da lista de teste... | Modo bancada ligado e o serial está fora da lista. Ajuste a lista na configuração do módulo. |
Este recurso ainda não tem caminho homologado para este modelo... | O modelo da CPE ainda não tem aquele recurso homologado. Complete a homologação do modelo na interface. |
Operações de consulta
cpes: listar o inventário
Lista paginada com os mesmos filtros da tela CPEs. Todos os parâmetros são opcionais:
| Parâmetro | Descrição |
|---|---|
busca | Texto livre: procura em serial, login PPPoE, MAC, IPv4/IPv6 e descrição. |
fabricante, modelo, firmware, etiqueta | Filtros exatos (modelo também casa com a classe do produto). |
status | 1 só online, 0 só offline. |
favoritas | 1 só as favoritas. |
pagina, porPagina | Paginação; porPagina aceita 25, 50 ou 100 (padrão 25). |
ordem, dir | Ordenação: serial, fabricante, modelo, firmware, login, ipWan4, ultimaComunicacao (padrão), dataChegada, statusOnline; dir = asc ou desc. |
export | csv ou pdf: devolve o arquivo com os mesmos filtros (até 5000 linhas, sem paginação), fora do envelope JSON. |
Resposta: total, pagina, porPagina, itens[] (serial, fabricante, modelo, firmware, login PPPoE, MAC, IPs, status, última comunicação, descrição, etiquetas, favorito, vínculos) e contagens (online, offline, favoritas, mudas há 24h). Com um ERP conectado, cada item ganha erpNome e erpStatus.
cpe: retrato completo de uma CPE
Parâmetro: serial (obrigatório). Devolve tudo o que a página da CPE mostra: cadastro e assinante, informações do equipamento, sinal óptico, WANs (PPPoE e IP), LAN, redes Wi-Fi, redirecionamentos e DMZ, gerência web, aparelhos conectados (com bloqueio), séries históricas, vínculos de topologia (sessão, concentradora, ONU/OLT), tarefas recentes, auditoria e firmwares disponíveis.
Estado do ambiente e da frota
| Operação | Parâmetros | O que devolve |
|---|---|---|
visao_geral | nenhum | Os dados da tela Visão geral: tráfego da frota por hora (24 h), aparelhos conectados agora (cabo × Wi-Fi), automação das rotinas em 30 dias e o mapa de reinícios e quedas por dia/hora. |
acs_status | nenhum | Estado do ambiente de gerência: ativo, semLeitura, carimbo da última leitura. |
ia_resumo | escopo = frota (padrão) ou cpe + serial | O último resumo de IA gravado e se o retrato mudou desde ele (gerarAuto). |
Listagens
| Operação | Parâmetros | O que devolve |
|---|---|---|
perfis | nenhum | Todos os perfis de provisionamento, com a configuração de cada um. |
modelos | nenhum | O catálogo de modelos (fabricante, modelo, firmware, data de homologação). |
rotinas | nenhum | As rotinas autônomas com parâmetros, cobertura e próximas execuções. |
tarefas | serial (opcional), limite (padrão 100, máx. 500) | A fila de tarefas: tipo, origem, status (até a confirmação por releitura), retorno e valores recusados. |
alertas | serial e ativo (1/0) opcionais, limite | Alertas do módulo (offline, sinal, temperatura etc.) com abertura, resolução e notificação. |
diagnosticos | serial (obrigatório) | Diagnósticos da CPE (últimos 20) com suporte por tipo, categorias de conectividade configuradas e resultados. |
homolog_andamento | id ou idModelo | Andamento da homologação guiada: etapa, itens com status e o resultado final. |
Ações em uma CPE
Todas exigem serial (o serial exato do inventário). As que escrevem no equipamento criam tarefa com releitura de confirmação e respeitam o modo bancada.
Energia, dados e cadastro
| Operação | Parâmetros além de serial | O que faz |
|---|---|---|
atualizar | nenhum | Força a releitura completa dos dados da CPE. |
reiniciar | nenhum | Reinicia a CPE. |
resetar | nenhum | Restaura a CPE aos padrões de fábrica. Irreversível: a CPE volta sem as configurações do assinante. |
remover | nenhum | Remove a CPE do inventário e do servidor de gerência. Se ela continuar apontada para o servidor, volta ao se comunicar. |
editar | descricao, etiquetas (separadas por vírgula), velocidadePlano | Edita o cadastro local (não toca o equipamento). |
favorito | valor = 1 marca, 0 desmarca | Marca/desmarca a CPE como favorita. |
wifi_editar: rede Wi-Fi
| Parâmetro | Obrigatório | Regra |
|---|---|---|
caminho | sim | O caminho da rede Wi-Fi, como vem no retrato da CPE (operation=cpe, bloco wifi). |
ssid | sim | Nome da rede, 1 a 32 caracteres. |
senha | não | Vazio mantém a atual; preenchida, 8 a 63 caracteres. |
canal | não | 0 = automático; maior que zero fixa o canal. |
ativo, broadcast | não | 1 (padrão) liga o rádio / anuncia o SSID; 0 desliga/oculta. |
wan_editar e wan_pppoe_editar: interface de internet
Ambas recebem caminho (a conexão WAN, como vem no retrato da CPE, bloco wansPpp).
| Operação | Parâmetros | Regra |
|---|---|---|
wan_editar | dns (IPv4, vírgula), dns6 (IPv6, vírgula), mtu (576 a 1500; 0 = não alterar), ipv6 (1/0) | Campos vazios não são alterados. O que o modelo não expõe fica de fora e a resposta avisa no campo ignorado. DNS IPv6 só é enviado com IPv6 ligado. |
wan_pppoe_editar | usuario, senha | Troca as credenciais PPPoE. Ao menos um dos dois; vazio mantém o atual. |
Trocar credencial PPPoE ou desligar IPv6 pode derrubar a conexão do assinante na hora. A releitura de confirmação acontece quando a CPE volta a se comunicar.
LAN, portas e gerência web
| Operação | Parâmetros além de serial | Regra |
|---|---|---|
lan_editar | dhcp (1/0), gateway, mascara, min, max (IPv4), dnsLan (IPv4, vírgula), lease (segundos) | Edita a LAN/DHCP. Campos vazios não são alterados. |
porta_editar | porta = número da porta ou todas; ligar = 1 reativa, 0 desativa | Desativa/reativa portas LAN físicas. As portas válidas vêm no retrato da CPE. |
webuser_editar | instancia (do retrato, bloco webUsuarios), usuario (1 a 64), senha (até 64, vazio mantém) | Troca a conta de acesso à interface web da CPE. |
webmgmt_editar | httpLan (1/0; só envie se o modelo expõe), httpWan (1/0), porta (1 a 65535) | Liga/desliga o acesso web pela LAN e pela WAN e define a porta. |
Redirecionamentos, DMZ e bloqueio de aparelhos
| Operação | Parâmetros além de serial | Regra |
|---|---|---|
portmap_criar | caminho (conexão WAN), descricao, ip (IPv4 interno), proto = TCP (padrão), UDP ou TCPUDP, portaExt, portaInt (vazio = igual à externa) | Cria o redirecionamento; TCPUDP cria uma regra por protocolo. |
portmap_editar | caminho (da regra, no retrato), ativo (1/0) | Liga/desliga uma regra existente. |
portmap_remover | caminho (da regra) | Remove a regra. |
dmz_editar | ativo (1/0), host (IPv4, obrigatório ao ativar), caminho (conexão WAN) | Ativa/desativa a DMZ. |
host_bloquear / host_desbloquear | mac (formato AA:BB:CC:DD:EE:FF) | Bloqueia/desbloqueia um aparelho no Wi-Fi da CPE (nos modelos que expõem o recurso, após homologação). |
Vínculo com a ONU
| Operação | Parâmetros além de serial | O que faz |
|---|---|---|
onu_buscar | idOlt, busca (opcional) | Procura a ONU correspondente na coleta da OLT (até 60 resultados; ONUs já vinculadas a outra CPE vêm marcadas). |
onu_vincular | idOlt, serialOnt | Vincula manualmente a CPE àquela ONU (só cadastro local, nada é escrito na OLT). |
onu_desvincular | nenhum | Desfaz o vínculo manual. |
Perfis, homologação e rotinas
Perfis de provisionamento
| Operação | Parâmetros | O que faz |
|---|---|---|
perfil_salvar | id (0 = criar), nome, escopo (global, modelo, plano, pop ou cpe), alvo (obrigatório fora do global), prioridade (0 a 999), ativo, recursos[...], portmaps[...], avancado, confirmado | Cria ou edita um perfil. recursos é um mapa campo → valor (ex.: recursos[wifi24_ssid], recursos[wan_dns4], recursos[lan_dhcp]); valor vazio significa "não provisionar". Perfil ativo que alcança CPEs pede confirmação em duas etapas. |
perfil_ativo | id, valor (1/0), confirmado | Liga/desliga um perfil (ligar também pede confirmação quando alcança CPEs). |
perfil_duplicar | id | Duplica o perfil; a cópia nasce desligada. |
perfil_excluir | id | Exclui o perfil e desvincula as CPEs. |
perfil_simular | serial | Simula: mostra a cadeia de perfis que vale para aquela CPE e o estado final resultante. |
perfil_seriais | nenhum | Seriais recentes para usar na simulação. |
Catálogo de modelos e homologação guiada
| Operação | Parâmetros | O que faz |
|---|---|---|
modelo_ler | id | Lê um modelo do catálogo com a matriz de suporte e os caminhos homologados. |
modelo_salvar | id, fabricante, modelo, versaoFirmware, dataModel (TR098/TR181), quirks, homologado, suporta[...], caminhos[...] | Cria/edita um modelo do catálogo de homologação. |
modelo_excluir | id | Exclui o modelo do catálogo. |
modelo_cpes | id | CPEs daquele modelo, ordenadas pelas melhores candidatas à homologação. |
homolog_sondar | serial | Testa se a CPE responde na hora (alcance direto) antes de iniciar. |
homolog_iniciar | idModelo, serial, bancada (opcional) | Inicia a homologação guiada naquela CPE; acompanhe com homolog_andamento. |
homolog_cancelar | id | Cancela a homologação (restaurando o equipamento se a bateria já tinha começado). |
Rotinas autônomas
As rotinas existem uma por tipo; use operation=rotinas para listar os ids. Depois:
| Operação | Parâmetros | O que faz |
|---|---|---|
rotina_salvar | id, ativa (1/0), limite (1 a 1000), intervaloHoras (1 a 168), janelaInicio/janelaFim (HH:MM) + extras por tipo | Liga/desliga e grava os parâmetros da rotina. |
rotina_executar | os mesmos | Grava os parâmetros e roda uma rodada agora. |
Extras por tipo: dns4 (rotina de DNS padrão), ntp (servidores de hora), idPerfilRestrito (perfil do bloqueio via ERP), wifiNotaLimiar e largura20 (correção de canal Wi-Fi), uptimeMinDias (reinício terapêutico), etiqueta (recolhimento de cancelados).
As duas operações gravam a configuração completa da rotina a cada chamada: parâmetro ausente volta ao padrão e ativa ausente desliga a rotina. Leia a rotina com operation=rotinas e reenvie todos os campos com os valores desejados.
Ações em massa (campanhas)
O fluxo é o mesmo da tela Em massa: filtre os alvos, confira o alcance e confirme.
| Operação | Parâmetros | O que faz |
|---|---|---|
massa_contar | filtros: fabricante, modelo, plano, pop, status (online/offline), etiqueta | Conta os alvos dos filtros (e quantos passam pelo modo bancada). |
massa_criar | filtros + tipoAcao = reiniciar, atualizar, dns, wifi ou firmware; extras por tipo; nome; agendadoPara (data futura), janelaInicio/janelaFim, repetir (diaria/semanal/mensal) + repetirHora/repetirDiaSemana/repetirDia; confirmado=1 | Cria o lote e expande em uma tarefa por CPE. Extras: dns (IPv4 por vírgula) no tipo dns; canal24, canal5, senha24, senha5 no tipo wifi; idFirmware (e o filtro modelo obrigatório) no tipo firmware. Sem confirmado, devolve a prévia com o alcance. |
massa_lote_status | id, valor = executando, pausado ou cancelado | Pausa, retoma ou cancela um lote (cancelar também cancela as tarefas ainda não enviadas). |
massa_lotes | nenhum | Lista os últimos lotes com totais e status. |
massa_relatorio | id | Relatório CPE a CPE do lote (status e retorno de cada tarefa). |
massa_firmwares | modelo, fabricante (opcional) | Firmwares do repositório para aquele modelo. |
massa_firmware_enviar | fabricante, modelo, versao + arquivo no campo arquivo | Envia um firmware ao repositório. Única operação que exige multipart/form-data. |
Configuração do ambiente
| Operação | Parâmetros | O que faz |
|---|---|---|
config_salvar | somente as chaves enviadas são gravadas | Grava a configuração do módulo: endereço e credenciais de gerência, intervalo de comunicação, retenção e cotas, auto exclusão de CPE offline, modo bancada e lista de seriais, limiares de saúde, alertas (tipos, janela de offline), URLs e alvos dos diagnósticos. Os nomes dos campos são os da tela de Configuração. |
config_ambiente | desejado = ativo ou inativo | Liga/desliga o ambiente de gerência (aplicado em instantes pelo sistema). |
config_preflight | nenhum | Checagem de pré-instalação do ambiente (espaço, dependências). |
config_alerta_flags | ativaTELEGRAMcpe, ativaWHATScpe (1 = herdar padrões, 2 = customizar, 3 = desativado), prioridadewhatscpe | Canais de alerta do módulo. |
config_telegram_salvar / config_telegram_excluir / config_telegram_testar | id, chat_id, token, inicio, fim, prioridade, descricao | Destinos de Telegram próprios do módulo (modo customizar). |
adocao_gerar | marca = huawei, zte, nokia, datacom ou dasan; url, perfil, vlan, intervalo, senha (1 revela a senha de gerência no script) | Gera os scripts de adoção (global e por ONT) preenchidos com os dados do ambiente. Somente leitura: nada é executado na OLT. |
erp_atualizar | serial | Reconsulta o assinante desta CPE no ERP conectado e atualiza o espelho (no máximo 1 consulta por minuto por login). |
diag_disparar | serial, tipo = ping, traceroute, download, upload, sitesurvey ou conectividade + extras (host, repeticoes, timeoutMs, maxSaltos, categorias, velocidade) | Dispara um diagnóstico na CPE; acompanhe com operation=diagnosticos. Um por vez por CPE. |
diag_cancelar | serial, id | Cancela o diagnóstico em andamento. |
ia_gerar / ia_voto | escopo/serial; id e voto (1/0) | Gera um resumo de IA (respeitando o reaproveitamento quando nada mudou) e registra a avaliação de utilidade. |
adocao_gerar com senha=1 devolve a senha de gerência em texto claro dentro do script. Só use em canais seguros e evite gravar a resposta em logs.
Exemplos práticos
Listar as CPEs offline (POST, com o token fora da URL):
curl -s https://SEU-RAVI/api/api.php \ -d "token=SUA_CHAVE" \ -d "action=cpe" \ -d "operation=cpes" \ -d "status=0" \ -d "porPagina=100"
Trocar a senha do Wi-Fi de um assinante (o caminho vem do retrato da CPE, bloco wifi):
curl -s https://SEU-RAVI/api/api.php \ -d "token=SUA_CHAVE" \ -d "action=cpe" \ -d "operation=wifi_editar" \ -d "serial=ZTEG12345678" \ -d "caminho=InternetGatewayDevice.LANDevice.1.WLANConfiguration.1" \ -d "ssid=CasaDoJoao" \ -d "senha=NovaSenha2026"
Reiniciar e depois acompanhar o desfecho da tarefa:
curl -s https://SEU-RAVI/api/api.php \ -d "token=SUA_CHAVE" -d "action=cpe" -d "operation=reiniciar" -d "serial=ZTEG12345678" curl -s "https://SEU-RAVI/api/api.php?token=SUA_CHAVE&action=cpe&operation=tarefas&serial=ZTEG12345678&limite=5"
Campanha de reinício fora do horário comercial, em duas etapas (prévia e confirmação):
# 1ª chamada: devolve status "error" com data.confirmar=true e o alcance curl -s https://SEU-RAVI/api/api.php \ -d "token=SUA_CHAVE" -d "action=cpe" -d "operation=massa_criar" \ -d "tipoAcao=reiniciar" -d "fabricante=ZTE" \ -d "janelaInicio=02:00" -d "janelaFim=05:00" # 2ª chamada: os mesmos campos + confirmado=1 curl -s https://SEU-RAVI/api/api.php \ -d "token=SUA_CHAVE" -d "action=cpe" -d "operation=massa_criar" \ -d "tipoAcao=reiniciar" -d "fabricante=ZTE" \ -d "janelaInicio=02:00" -d "janelaFim=05:00" -d "confirmado=1"
Solução de problemas
| Sintoma | Causa e solução |
|---|---|
Access denied for cpe | A chave não tem a permissão Acesso a CPE. Edite a chave em Configurações, aba Integrações, e marque a permissão. |
Modulo CPE nao liberado no plano deste servidor. | A assinatura não inclui o ambiente CPE. Fale com o comercial ou ative pelo item CPE do menu. |
| Escrita responde erro de modo bancada | O modo bancada está ligado na configuração do módulo e o serial está fora da lista de teste. Inclua o serial na lista ou desligue o modo bancada (com a confirmação). |
| Erro de caminho não homologado | Aquele recurso ainda não foi homologado para o modelo da CPE. Complete a homologação (tela Homologação) e tente de novo. |
Tarefa fica em enviada | Normal em CPE atrás de CGNAT: a escrita é aplicada quando a CPE se comunica no próximo intervalo de comunicação. Acompanhe em operation=tarefas. |
Tarefa termina em nao_confirmada | A CPE aceitou o envio mas a releitura não confirmou o valor (firmware ignorou a escrita). O campo recusados da tarefa mostra o que não pegou. |
rotina_salvar desligou a rotina sem querer | As operações de rotina gravam a configuração completa: envie ativa=1 e todos os parâmetros a cada chamada. |