Настройка 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&characterEncoding=UTF-8&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&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
>
Все необходимые параметры прокомментированы в данном примере.