cdr_submit parte 1 es el único registro por mensaje de lo que se cobró, y se borra una vez
pasa la ventana de retención.
Sin un resumen eso significa que ningún extracto más antiguo que la ventana puede reemitirse, y el
lado de consumo de cada conciliación desaparece. Por tanto cada cuenta añeja deriva en una
discrepancia que nada puede explicar.
usage_daily es ese resumen
Una fila por cuenta, por producto, por día.
Diario en lugar de mensual, para que cualquier periodo sea un SUM sobre días: un mes de calendario,
un trimestre, un rango arbitrario. Para siempre, sin una segunda tabla derivada que discrepe.
Las cifras facturables son finales; las de entrega no
Esto es lo que hace seguro reejecutar el rollup.
El rollup es idempotente y reformula solo las columnas de entrega. El dinero de un día terminado
queda liquidado en el momento en que se acaba el día.
Un día de facturación es un día local
FIREFLO_BILLING_ZONE decide dónde empieza un día, y se lee de app_config para que el rollup y el
panel concuerden.
La purga se niega a borrar lo que nada ha resumido
usage_daily, rechaza toda la ejecución y nombra
los días.
No es un warning ni un salto. Borrar un día sin resumir destruye el registro de consumo
permanentemente, y eso tiene que ser estructuralmente imposible en lugar de una cuestión de ejecutar
las cosas en el orden correcto.
FIREFLO_CDR_KEEP_DAYS establece la ventana, por defecto 90.
Dos ventanas, dos propósitos
cdr_interim se poda con su propia ventana más corta precisamente porque responde a una pregunta
sobre tráfico reciente: con qué rapidez informa un vendor, y si informa en absoluto.
Una política de retención no es opcional
Los registros de llamada contienen direcciones: tienen que hacerlo, porque la tarificación y la resolución de disputas las necesitan. Si el registro del cuerpo del mensaje está activado, contienen también contenido.Un orden de operaciones que funciona
1
Establezca la zona de facturación antes de cualquier tráfico
Decide dónde cae cada frontera de día.
2
Haga rollup cada noche
fireflo usage rollup --catch-up, en un cron.3
Verifique que el rollup cubre la ventana antes de purgar
La purga comprueba esto y rechaza. Pero saber que pasó es mejor que descubrir que rechazó.
4
Purgue con su propia planificación
Tras
FIREFLO_CDR_PURGE=true, que existe para que no pueda ocurrir por accidente.Relacionado
Registros de llamada
Las tres tablas y qué significa cada columna.
Extractos
Cerrar un periodo y emitir una factura.