Модуль Voice поддерживает обработку логов CDR по мере появления их в папке. Для этого в типе устройства надо поставить - Runtime обработчик логов CDR.
Как примеры доступны некоторые обработчики в стандартной поставке и так же можно создавать свои.
Это обработчик работает обычно в паре с обработчиком логов CDR . Runtime обработчик берет логи новые в какой-либо папке, обрабатывает и перекладывает их в другую папку, разложенную по дням и часам.
А обычный обработчик логов CDR используется потом для обработки этих логов повторно в ручном режиме в случае каких-либо корректировок.
Runtime обработчик должен реализовывать интерфейс ru.bitel.bgbilling.modules.voice.accounting.mediation.runtime.RuntimeMediator:
/** * Интерфейс Runtime обработчика логов CDR. * */ public interface RuntimeMediator { /** * Метод инициализации * @param setup Насройки приложения * @param moduleId код модуля * @param device устройсто * @param deviceType тип устройства * @param config конфигуруция устройства * @return Object. Можно вернуть null * @throws BGException В случае каких либо ошибок */ Object init( Setup setup, int moduleId, VoiceDevice device, VoiceDeviceType deviceType, ParameterMap config ) throws BGException; /** * Map записей упрядоченный по часам. */ SortedMap<Date, List<VoiceRecord> > getNewRecords() throws BGException; }
В стандартной поставке есть примеры пары связанных обработчиков логов для АТС Asterisk:
ru.bitel.bgbilling.modules.voice.dyn.mediator.asterisk.AsteriskMediator - обработчик логов CDR.
ru.bitel.bgbilling.modules.voice.dyn.mediator.asterisk.AsteriskRuntimeMediator - runtime обработчик логов CDR.