Обработка логов CDR происходит с помощью Mediator-а, он реализует парсинг логов. В поставке модуля phone есть пример DefaultMediator, он парсит логи в формате модуля Phone. Сделан для совместимости. Формат описан тут.
Так же возможно написать свой Mediator для любой АТС. Новые медиаторы будут будут описаны в нашей WiKi. Вот описание интерфейса 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 );
} |
Мы добавляем новый тип устройства. На нем выбираем Медиатор.
...