Cobrança Online (Interface Ro)
📖 Voltar à Documentação Principal
Detalhes de configuração e operação para a interface Diameter Ro (Cobrança Online).
Documentação Relacionada
Documentação Principal
- 📋 README Principal - Visão geral e início rápido
- 🔧 Guia de Configuração - Configuração de pares Diameter e configurações do OCS
- 🔧 Guia de Operações - Testes do OCS no Painel de Controle
Integração de Processamento de Chamadas
- 🔀 Configuração do Dialplan - Fluxo de chamadas com autorização do OCS
- ⚙️ Serviços Suplementares - Chamadas de emergência ignoram o OCS, skipped_regex
- 🔢 Tradução de Números - Normalização de números antes da solicitação ao OCS
Interfaces Relacionadas
- 👥 Interface Sh - Interface de dados do assinante (também usa Diameter)
- 📡 SS7 MAP - Alternativa para roteamento de assinantes
Monitoramento
- 📊 Referência de Métricas - Métricas OCS/Ro, duração da autorização, eventos de crédito
- 📈 Métricas do Dialplan - Métricas OCS em nível de chamada
Configuração Ro
Se o Ro (Cobrança Online) for utilizado, deve ser habilitado na configuração.
Você, é claro, precisará de um par Diameter conectado que possa lidar com Ro ou um DRA que tenha um.
periodic_ccr_time_seconds define com que frequência durante uma sessão um Credit-Control-Request tipo 2 (Atualização) é enviado. Isso provavelmente precisará ser ajustado com base nas necessidades do OCS.
Se o Credit-Control-Request tipo 1 (Inicial) retornar os segundos de uso máximo para todo o saldo, podemos definir um desligamento programado para esse tempo. Isso é controlado pela flag schedule_hangup_auth, que se habilitada, obterá os segundos alocados no CCR-I e definirá a chamada para desligar nesse momento.
skipped_regex (opcional) permite que você especifique padrões de expressão regular para corresponder a números de destino que devem ignorar a cobrança online. Chamadas para destinos que correspondem a esses padrões serão autorizadas sem contatar o OCS. Isso é útil para serviços internos, correio de voz, números de emergência ou outros destinos que não devem ser cobrados. Se omitido ou definido como uma lista vazia, todas as chamadas passarão pela cobrança online quando habilitada. Os padrões usam a sintaxe de regex do Elixir (por exemplo, "^2222" corresponde a números que começam com 2222, "^344[4-6]" corresponde a números que começam com 3444, 3445 ou 3446).
config :tas,
...
online_charging: %{
enabled: true,
periodic_ccr_time_seconds: 10,
schedule_hangup_auth: true,
skipped_regex: ["^2222", "^2223", "^8999", "^344[4-6]"] # Opcional
},
Comportamento Operacional da Cobrança Online
Como Funciona a Cobrança Periódica:
Quando uma chamada originada de um celular (MO) é atendida:
- O sistema envia um CCR-I inicial (Solicitação de Controle de Crédito Inicial) para autorizar a chamada
- Se o crédito estiver disponível, o OCS retorna o tempo alocado (por exemplo, 120 segundos)
- Um processo em segundo plano começa a ser executado a cada
periodic_ccr_time_secondspara reautorizar a chamada - Esse processo envia solicitações CCR-U (Atualização) para verificar se o assinante ainda tem crédito
- Cada CCR-U bem-sucedido estende a chamada e concede tempo adicional
- Quando a chamada termina, um CCR-T (Terminar) é enviado para a contabilidade final
Valores do Tipo de Solicitação:
1= Inicial (CCR-I) - enviado quando a chamada é autorizada pela primeira vez2= Atualização (CCR-U) - enviado na resposta e periodicamente durante a chamada3= Terminar (CCR-T) - enviado quando a chamada termina4= Evento - usado para cobrança de SMS ou eventos únicos
O Que Acontece Quando o Crédito Acaba:
Se um CCR-U periódico retornar zero segundos ou um erro:
- O processo de cobrança periódica para automaticamente
- Se
schedule_hangup_authestiver habilitado, a chamada será encerrada quando o tempo alocado expirar - A chamada do assinante termina e ele recebe a notificação apropriada
Ajustando periodic_ccr_time_seconds:
Escolha o intervalo com base nas suas necessidades operacionais:
- Valores mais baixos (5-10 segundos): Mais responsivo à exaustão de crédito, captura rapidamente situações de falta de crédito, mas cria maior carga no OCS
- Valores mais altos (30-60 segundos): Menor carga no OCS e tráfego de rede, mas os assinantes podem consumir um pouco mais de crédito do que o disponível entre as verificações
- Recomendado: Comece com 10-30 segundos com base no seu incremento mínimo de crédito e capacidade do OCS
Monitorando a Cobrança Periódica:
Observe essas métricas para garantir que a cobrança periódica esteja funcionando corretamente:
online_charging_events_total{event_type="reauth"}- rastreia solicitações CCR-U periódicasonline_charging_events_total{event_type="reauth",result="success"}- reautorizações bem-sucedidasonline_charging_events_total{event_type="reauth",result="nocredit"}- assinantes ficando sem crédito durante a chamada- Altas taxas de falha de reautorização indicam problemas de conectividade ou desempenho do OCS
Resolvendo Problemas de Cobrança Periódica:
Se as chamadas não estão sendo reautorizadas corretamente:
- Verifique os logs para mensagens "Enviando CCR-U periódico para <call_id>" - confirma que o processo em segundo plano está em execução
- Procure avisos "CCR periódico falhou - Parando o trabalho" - indica exaustão de crédito ou erros do OCS
- Verifique se a métrica
ocs_authorization_duration_millisecondsmostra tempos de resposta razoáveis - Confirme se o OCS está retornando respostas CCA-U válidas com unidades de tempo concedidas
- Verifique se
periodic_ccr_time_secondsnão está definido de forma muito agressiva para a capacidade do seu OCS