Настройка BGVoiceRadius

BGVoiceRadius - сервер обрабатывающий radius-запросы.

Пример типовой конфигурации voice-application.xml, которая идет в дистрибутиве:

<?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>
</application>

Все необходимые параметры прокомментированы в данном примере.