Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Обработка логов 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).

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

Image Added

Добавляем новый класс или находим существующийImage Added

Для добавления кликаем по иконке на тулбаре


Image Added

В открывшемся окне вводим название пакета и Имя класса

Image Added

Нажимаем Ок и находим в дереве наш класс

Image Added

Двойным кликам открываем класс для редактирования и копируем в окно редактора содержимое класса.

Image Added

Далее нажимаем на кнопку

Image Added

Если компиляция проходит без ошибок то можно переходить к следущим шагам.


Для обработки логов мы должны вначале добавить тип устройства и устройство данного типа.

В типе устройства мы должны прописать класс обработчика логов

Image Added

В устройстве мы должны прописать путь к файлам логов :

Image Added

Далее на вкладке Логи мы можем добавлять  логи для устройств:

Image Added


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

Минимальная единица обработки логов - 1 день. Для выделении некоторого диапазона дней доступно 2 пункта(при нажатии правой кнопкой мыши):

  • Добавить в обработку(текущее устройство)
  • Удалить из обработки(текущее устройство).

Эти пункты соответственно добавляют логи в обработку. После добавления логи начинают обрабатываться и состояние обработки выделяется цветом:

Image Added

В данном случае черным цветом обозначены часы, который добавлены на обработку но еще не обработаны. После окончания обработки можно перейти на вкладку Ошибки :

Image Added

Процесс добавления логов на обработку можно автоматизировать с помощью задачи планировщика Генерация заданий на обработку логов модуля Voice. В параметрах запуска нужно поставить

Блок кода
languageruby
#устройства через запятую, на которых будет происходить обработка логов
devices=2

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

Для того, чтобы наработка сессий перешла в баланс договора используется вкладка модуля Установка баланса. Единственным параметром выступает дата месяца, за который необходимо установить баланс и договор.

Image Added

Если договор не указан, то баланс устанавливается для всех.  

Процесс установки баланса можно автоматизировать с помощью задачи планировщика Установка Баланса. Она будет запускаться в заданное время и устанавливать баланс по всем договорам.  Рекомендуем настроивать два экземпляра задачи: одна задача должна запускать с той частотой с которой у вас снимаются логи с АТС, а вторая раз в месяц, например 1 числа после загрузки последних логов за предыдущий месяц и производить финальную установку статуса за прошедший месяц (у этой задачи нужно установить в конфиге параметр minus.days=1)