Обработка логов 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 );
} |
Мы добавляем новый тип устройства. На нем выбираем Медиатор.
Далее добавляем устройство нашего типа. Указываем путь к логам.
Настраиваем BGVoiceProcessor.
Идем на вкладку логов и обрабатываем. Если что-то не так, то на вкладке ошибки.
...
Предупреждение |
---|
Для обработки логов должен быть запущен сервер обработки логов. |
Обработку и загрузку логов осуществляет специальный класс обработчик логов(Mediator).
Его необходимо подготовить, загрузить и скомпилировать. Для этого в клиенте биллига переходим в раздел
Добавляем новый класс или находим существующий
Для добавления кликаем по иконке на тулбаре
В открывшемся окне вводим название пакета и Имя класса
Нажимаем Ок и находим в дереве наш класс
Двойным кликам открываем класс для редактирования и копируем в окно редактора содержимое класса.
Далее нажимаем на кнопку
Если компиляция проходит без ошибок то можно переходить к следущим шагам.
Для обработки логов мы должны вначале добавить тип устройства и устройство данного типа.
В типе устройства мы должны прописать класс обработчика логов:
В устройстве мы должны прописать путь к файлам логов :
Далее на вкладке Логи мы можем добавлять логи для устройств:
Слева вы выбираем дату и источник. Справа смотрим наличии логов в таблице, в которой по вертикали идут часы, а по горизонтали дни месяца. Синими цветом показываются те часы, для которых есть логи.
Минимальная единица обработки логов - 1 день. Для выделении некоторого диапазона дней доступно 2 пункта(при нажатии правой кнопкой мыши):
- Добавить в обработку(текущее устройство)
- Удалить из обработки(текущее устройство).
Эти пункты соответственно добавляют логи в обработку. После добавления логи начинают обрабатываться и состояние обработки выделяется цветом:
В данном случае черным цветом обозначены часы, который добавлены на обработку но еще не обработаны. После окончания обработки можно перейти на вкладку Ошибки :
Процесс добавления логов на обработку можно автоматизировать с помощью задачи планировщика Генерация заданий на обработку логов модуля Voice. В параметрах запуска нужно поставить
Блок кода | ||
---|---|---|
| ||
#устройства через запятую, на которых будет происходить обработка логов
devices=2 |
Результирующими данными обработки логов являются логи сессий в договорах клиентов и операторов, привязанные к клиентским или операторским аккаунтам.
Для того, чтобы наработка сессий перешла в баланс договора используется вкладка модуля Установка баланса. Единственным параметром выступает дата месяца, за который необходимо установить баланс и договор.
Если договор не указан, то баланс устанавливается для всех.
Процесс установки баланса можно автоматизировать с помощью задачи планировщика Установка Баланса. Она будет запускаться в заданное время и устанавливать баланс по всем договорам. Рекомендуем настроивать два экземпляра задачи: одна задача должна запускать с той частотой с которой у вас снимаются логи с АТС, а вторая раз в месяц, например 1 числа после загрузки последних логов за предыдущий месяц и производить финальную установку статуса за прошедший месяц (у этой задачи нужно установить в конфиге параметр minus.days=1)