Всем привет.
Меня вот уже больше года терзает архитектурный вопрос: тарифицировать на входе или на выходе?
Если вы понимаете, о чём я
Есть классическая телефония со сложной топологией: куча медных абонентских АТС, транзитные с TDM-каналами, VoIP-ные стыки. Присоединения к нескольким операторам по TDM, по VoIP-договорам, в т.ч. по агентской схеме. Есть присоединённые "дочерние" операторы, УАТС-ы и пр.
Проблема в следующем: звонок абонента проходит по нескольким АТС, пока не выходит из нашей сети, либо не завершается на другом абоненте.
Для одного звонка каждая станция в цепочке порождает CDR, которые пишутся в существующую самописную систему агрегации.
Возникает вопрос: какие из этих CDR брать для тарификации?
Если расписать каналы между станциями и разделить их на 3 типа: внутренние (абоненты), межстанционные и внешние (стыки с операторами), то вижу 2 подхода:
- Брать CDR со станции абонента (либо на входе с оператора - для учёта входящих)
- Брать CDR на выходе (либо на завершении на абонента)
Оба подхода имеют свои плюсы и минусы, которые могу расписать попозже.
Мне же интересен чужой опыт и best practices, кто как поступает и почему.