Carga en Línea (Interfaz Ro)
📖 Volver a la Documentación Principal
Detalles de configuración y operación para la interfaz Diameter Ro (Carga en Línea).
Documentación Relacionada
Documentación Principal
- 📋 README Principal - Descripción general y guía rápida
- 🔧 Guía de Configuración - Configuración de pares Diameter y ajustes de OCS
- 🔧 Guía de Operaciones - Pruebas de OCS en el Panel de Control
Integración de Procesamiento de Llamadas
- 🔀 Configuración del Plan de Marcado - Flujo de llamadas con autorización de OCS
- ⚙️ Servicios Suplementarios - Llamadas de emergencia que evitan OCS, skipped_regex
- 🔢 Traducción de Números - Normalización de números antes de la solicitud a OCS
Interfaces Relacionadas
- 👥 Interfaz Sh - Interfaz de datos del suscriptor (también utiliza Diameter)
- 📡 SS7 MAP - Alternativa para el enrutamiento de suscriptores
Monitoreo
- 📊 Referencia de Métricas - Métricas OCS/Ro, duración de autorización, eventos de crédito
- 📈 Métricas del Plan de Marcado - Métricas OCS a nivel de llamada
Configuración de Ro
Si se va a utilizar Ro (Carga en Línea), debe estar habilitado en la configuración.
Por supuesto, necesitará un par Diameter conectado que pueda manejar Ro o un DRA que tenga uno.
periodic_ccr_time_seconds establece con qué frecuencia durante una sesión se envía un Credit-Control-Request tipo 2 (Actualización). Esto probablemente necesitará ser ajustado según las necesidades del OCS.
Si el Credit-Control-Request tipo 1 (Inicial) devuelve los segundos de uso máximo para todo el saldo, podemos establecer un colgado programado para ese tiempo. Esto se controla mediante la bandera schedule_hangup_auth, que si está habilitada, obtendrá los segundos asignados en el CCR-I y programará la llamada para colgar en ese momento.
skipped_regex (opcional) le permite especificar patrones de expresiones regulares para coincidir con números de destino que deben evitar la carga en línea. Las llamadas a destinos que coincidan con estos patrones serán autorizadas sin contactar al OCS. Esto es útil para servicios internos, correo de voz, números de emergencia u otros destinos que no deben ser cobrados. Si se omite o se establece en una lista vacía, todas las llamadas pasarán por la carga en línea cuando esté habilitada. Los patrones utilizan la sintaxis de expresiones regulares de Elixir (por ejemplo, "^2222" coincide con números que comienzan con 2222, "^344[4-6]" coincide con números que comienzan con 3444, 3445 o 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
},
Comportamiento Operacional de Carga en Línea
Cómo Funciona la Carga Periódica:
Cuando se responde una llamada originada por móvil (MO):
- El sistema envía un CCR-I inicial (Solicitud de Control de Crédito Inicial) para autorizar la llamada
- Si hay crédito disponible, el OCS devuelve el tiempo asignado (p.ej., 120 segundos)
- Un proceso en segundo plano comienza a ejecutarse cada
periodic_ccr_time_secondspara reautorizar la llamada - Este proceso envía solicitudes CCR-U (Actualización) para verificar si el suscriptor aún tiene crédito
- Cada CCR-U exitoso extiende la llamada y concede tiempo adicional
- Cuando la llamada termina, se envía un CCR-T (Terminar) para la contabilidad final
Valores de Tipo de Solicitud:
1= Inicial (CCR-I) - enviado cuando la llamada es autorizada por primera vez2= Actualización (CCR-U) - enviado al responder y periódicamente durante la llamada3= Terminar (CCR-T) - enviado cuando la llamada termina4= Evento - utilizado para SMS o carga de eventos únicos
Qué Ocurre Cuando se Agota el Crédito:
Si un CCR-U periódico devuelve cero segundos o un error:
- El proceso de carga periódica se detiene automáticamente
- Si
schedule_hangup_authestá habilitado, la llamada se terminará cuando expire el tiempo asignado - La llamada del suscriptor termina y recibe la notificación correspondiente
Ajustando periodic_ccr_time_seconds:
Elija el intervalo según sus necesidades operativas:
- Valores más bajos (5-10 segundos): Más receptivos a la agotamiento de crédito, detecta rápidamente situaciones de falta de crédito, pero crea una mayor carga en el OCS
- Valores más altos (30-60 segundos): Menor carga en el OCS y tráfico de red, pero los suscriptores pueden consumir ligeramente más crédito del disponible entre verificaciones
- Recomendado: Comenzar con 10-30 segundos según su incremento mínimo de crédito y capacidad del OCS
Monitoreo de la Carga Periódica:
Observe estas métricas para asegurarse de que la carga periódica esté funcionando correctamente:
online_charging_events_total{event_type="reauth"}- rastrea solicitudes CCR-U periódicasonline_charging_events_total{event_type="reauth",result="success"}- reautorizaciones exitosasonline_charging_events_total{event_type="reauth",result="nocredit"}- suscriptores que se quedan sin crédito durante la llamada- Altas tasas de fallos de reautorización indican problemas de conectividad o rendimiento del OCS
Resolución de Problemas de Carga Periódica:
Si las llamadas no están siendo reautorizadas correctamente:
- Verifique los registros para mensajes "Enviando CCR-U periódico para <call_id>" - confirma que el proceso en segundo plano está en ejecución
- Busque advertencias "CCR periódico fallido - Deteniendo trabajo" - indica agotamiento de crédito o errores del OCS
- Verifique que la métrica
ocs_authorization_duration_millisecondsmuestre tiempos de respuesta razonables - Confirme que el OCS está devolviendo respuestas CCA-U válidas con unidades de tiempo concedidas
- Verifique que
periodic_ccr_time_secondsno esté configurado demasiado agresivamente para la capacidad de su OCS