<?xml version="1.0" encoding="UTF-8"?>
<application context="app">
	<param name="app.name" value="BGVoiceApplication"/>
	<param name="app.id" value="1"/>

	<param name="db.driver" value="com.mysql.jdbc.Driver"/>
	<param name="db.url" value="jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&amp;characterEncoding=UTF-8&amp;allowUrlInLocalInfile=true&amp;zeroDateTimeBehavior=convertToNull&amp;jdbcCompliantTruncation=false&amp;queryTimeoutKillsConnection=true"/>
	<param name="db.user" value="bill"/>
	<param name="db.pswd" value="bgbilling"/>
	
	<param name="mq.url" value="failover:(tcp://localhost:61616)"/>
	<param name="mq.user" value="bill"/>
	<param name="mq.pswd" value="bgbilling"/>
	
	<param name="moduleId" value=""/>

	<bean name="app" class="ru.bitel.bgbilling.modules.voice.runtime.VoiceRadius" />
	
	<!-- Путь а папке куда сохраняются Radius access-логи -->	
	<param name="datalog.radius.access.dir" value="data/radius/access" />
	<!-- Путь а папке куда сохраняются Radius accouting логи -->
    <param name="datalog.radius.accounting.dir" value="data/radius/accounting" />	
	
	<context name="radius">
		<bean name="radiusProcessor" class="ru.bitel.bgbilling.modules.voice.radius.VoiceRadiusProcessor"/>

		<scheduledExecutorService name="access_hrlydtlggr" corePoolSize="1" />
		
		<bean name="accessDataLogger" class="ru.bitel.bgbilling.modules.voice.radius.RadiusHourlyDataLogger">
			<param name="scheduledExecutor">access_hrlydtlggr</param>
			<param name="directoryName" value="datalog.radius.access.dir" />
		</bean>
		
		<!-- Слушатель access-запросов -->
		<bean name="radiusListener" class="ru.bitel.bgbilling.modules.voice.radius.VoiceRadiusListener">
			<constructor>
			     <!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех -->
				<param name="host" value=""/>
				<!-- Порт, на котором будет открыт сокет -->
				<param name="port" value="1815"/>
				<!-- Буфер приема на поток -->
				<param name="byteBufferCapacity">512 * 1024</param>
				 <!-- Передача процессора -->
				<param name="processor">radiusProcessor</param>
				  <!-- Режим работы, RadiusListener.Mode.authentication -->
				<param name="mode">RadiusListener.Mode.authentication</param>
				<!-- Передача dataLogger -->
				<param name="dataLogger">accessDataLogger</param>
				  <!-- Количество потоков-обработчиков --> 
				<param name="threadCount">10</param>
				<!-- Максимальное количество пакетов в очереди на обработку -->
				<param name="maxQueueSize">200</param>
			</constructor>
		</bean>
		
		<scheduledExecutorService name="accounting_hrlydtlggr" corePoolSize="1" />
		<bean name="accountingDataLogger" class="ru.bitel.bgbilling.modules.voice.radius.RadiusHourlyDataLogger">
			<param name="scheduledExecutor">accounting_hrlydtlggr</param>
			<param name="directoryName" value="datalog.radius.accounting.dir" />
		</bean>
		
		<!-- Слушатель accounting-запросов -->
		<bean name="radiusListener" class="ru.bitel.bgbilling.modules.voice.radius.VoiceRadiusListener">
			<constructor>
			     <!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех -->
				<param name="host" value=""/>
				 <!-- Порт, на котором будет открыт сокет -->
				<param name="port" value="1816"/>
				<!-- Буфер приема на поток -->
				<param name="byteBufferCapacity">512 * 1024</param>
				   <!-- Передача процессора -->
				<param name="processor">radiusProcessor</param>
				 <!-- Режим работы, RadiusListener.Mode.accounting -->
				<param name="mode">RadiusListener.Mode.accounting</param>
				 <!-- Передача dataLogger -->
				<param name="dataLogger">accountingDataLogger</param>
				 <!-- Количество потоков-обработчиков --> 
				<param name="threadCount">10</param>
				 <!-- Максимальное количество пакетов в очереди на обработку -->
				<param name="maxQueueSize">200</param>
			</constructor>
		</bean>
		
	</context>

	<context name="radiusLogs">
		<bean name="radiusLogProcessor" class="ru.bitel.bgbilling.modules.voice.accounting.process.radius.RadiusLogProcessor">
			<param name="initialDelay" value="10"/>
			<param name="delay">20</param>
		</bean>
	</context>
	 
</application>
