Page tree
Skip to end of metadata
Go to start of metadata

Обработка логов 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 );
	
}
  • No labels