Обработчик логов CDR
Обработка логов CDR происходит с помощью обработчика в динамическом коде, он реализует парсинг логов.
В поставке модуля есть
ru.bitel.bgbilling.modules.voice.dyn.mediator.phone.DefaultMediator - разбирает логи в формате старого модуля Phone. Сделан для совместимости.
ru.bitel.bgbilling.modules.voice.dyn.mediator.m200.M200Mediator - разбирает логи в формате АТС M-200.
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 );
}