Обработчик логов CDR

Обработка логов CDR происходит с помощью обработчика в динамическом коде, он реализует парсинг логов.

В поставке модуля есть

  1. ru.bitel.bgbilling.modules.voice.dyn.mediator.phone.DefaultMediator - разбирает логи в формате старого модуля Phone. Сделан для совместимости.

  2. ru.bitel.bgbilling.modules.voice.dyn.mediator.m200.M200Mediator - разбирает логи в формате АТС M-200.

  3. ru.bitel.bgbilling.modules.voice.dyn.mediator.asterisk.AsteriskMediator - разбирает логи в формате АТС Asterisk.

Если вы будете использовать какой-то из этих обработчиков и собираетесь его менять, то рекомендуем сделать его копию в другом пакете и использовать, тогда они не будут перетираться при обновлении.

Новые медиаторы будут будут описаны в нашей WiKi или документации.

Так же возможно написать свой Mediator для любой АТС. Вот описание интерфейса Mediator-а:

/**
* Интерфейс медиатора логов, парсит логи.
*
*/
public interface Mediator
{
/**
* Метод инициализации
* @param setup
* @param moduleId
* @param device
* @param deviceType
* @param config
* @return
* @throws Exception
*/
public Object init( Setup setup, int moduleId, VoiceDevice device, VoiceDeviceType deviceType, ParameterMap config )
throws Exception;
/**
* Считывание новых записей за час. Новую запись надо получать так
* VoiceRecord record = processor.next();
* И потом заполнять все поля
* @param processor
* @param hour
* @throws Exception
*/
public void readHourDataLog( VoiceRecordProcessor processor, Date hour )
throws Exception;
/**
* Данные по существованию логов. data - массив из 31 элемента, где каждый элемент
* это битовая маска часов конкретного дня месяца.
* @param month
* @param data
*/
public void getLogExists( Date month, int [] data );
}