<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://www.m-200.com/base/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://www.m-200.com/base/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_FREERADIUS._%D0%A7%D0%B0%D1%81%D1%82%D1%8C_4</id>
		<title>Подключение к FREERADIUS. Часть 4 - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://www.m-200.com/base/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_FREERADIUS._%D0%A7%D0%B0%D1%81%D1%82%D1%8C_4"/>
		<link rel="alternate" type="text/html" href="https://www.m-200.com/base/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_FREERADIUS._%D0%A7%D0%B0%D1%81%D1%82%D1%8C_4&amp;action=history"/>
		<updated>2026-05-16T01:47:47Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20</generator>

	<entry>
		<id>https://www.m-200.com/base/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_FREERADIUS._%D0%A7%D0%B0%D1%81%D1%82%D1%8C_4&amp;diff=136&amp;oldid=prev</id>
		<title>Pax: Новая страница: «&lt;div style=&quot;font-size:90%; clear: right; border-right: #aaaaaa 1px solid; padding-right: 1ex; border-top: #aaaaaa 1px solid; padding-left: 1ex; float: right; padd…»</title>
		<link rel="alternate" type="text/html" href="https://www.m-200.com/base/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_FREERADIUS._%D0%A7%D0%B0%D1%81%D1%82%D1%8C_4&amp;diff=136&amp;oldid=prev"/>
				<updated>2014-12-03T07:39:02Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&amp;lt;div style=&amp;quot;font-size:90%; clear: right; border-right: #aaaaaa 1px solid; padding-right: 1ex; border-top: #aaaaaa 1px solid; padding-left: 1ex; float: right; padd…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div style=&amp;quot;font-size:90%; clear: right; border-right: #aaaaaa 1px solid; padding-right: 1ex; border-top: #aaaaaa 1px solid; padding-left: 1ex; float: right; padding-bottom: 1ex; margin: 1ex 0px 1ex 1ex; border-left: #aaaaaa 1px solid; width: 250px; padding-top: 1ex; border-bottom: #aaaaaa 1px solid; background-color: #fcfcfc&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[[Подключение к FREERADIUS. Часть 1]]&lt;br /&gt;
**''Насторойка М-200''&lt;br /&gt;
*[[Подключение к FREERADIUS. Часть 2]]&lt;br /&gt;
**''Насторойка FREERADIUS''&lt;br /&gt;
*[[Подключение к FREERADIUS. Часть 3]]&lt;br /&gt;
**''Авторизация''&lt;br /&gt;
*[[Подключение к FREERADIUS. Часть 4]]&lt;br /&gt;
**''Маршрутизация''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ПравГлавМеню}}&lt;br /&gt;
&lt;br /&gt;
Взаимодействие М-200 - freeradius позволяет средствами сервера управлять маршрутизацией вызовов. В идеале можно предположить полный отказ от использования таблиц маршрутизации и переход на внешний обработчик вызовов. Но это слишком серьезная задача, чтобы описать ее в этой статье. Так что сейчас я просто покажу, что можно сделать с вызовом, используя rlm_perl.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Из того, что м-200 отправляет в запросе, нас интересуют следующие поля:&lt;br /&gt;
&lt;br /&gt;
 $RAD_REQUEST{'Calling-Station-Id'}&lt;br /&gt;
 $RAD_REQUEST{'Called-Station-Id'}&lt;br /&gt;
 $RAD_REQUEST{'h323-gw-id'}&lt;br /&gt;
&lt;br /&gt;
* Calling-Station-Id - номер вызывающего абонента&lt;br /&gt;
* Called-Station-Id - номер вызываемого абонента&lt;br /&gt;
* h323-gw-id - точка входа&lt;br /&gt;
** для потоков содержит [[физический адрес порта]] в формате #xxxxxxxxx.&lt;br /&gt;
** для абонентов содержит значение NUMBERA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для управления маршрутизацией используются следующие поля:&lt;br /&gt;
&lt;br /&gt;
 $RAD_REPLY{'Calling-Station-Id'}&lt;br /&gt;
 $RAD_REPLY{'Called-Station-Id'}&lt;br /&gt;
 $RAD_REPLY{'Connect-Info'}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Calling-Station-Id''' - номер вызывающего абонента&lt;br /&gt;
* '''Called-Station-Id''' - номер вызываемого абонента&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Соответственно эти параметры могут быть переданы в станцию, например вот так:&lt;br /&gt;
&lt;br /&gt;
 if ($RAD_REQUEST{'Calling-Station-Id'} == '904') {&lt;br /&gt;
    $RAD_REPLY{'Called-Station-Id'} = &amp;quot;060&amp;quot;;&lt;br /&gt;
    $RAD_REPLY{'Calling-Station-Id'} = &amp;quot;3311554&amp;quot;;&lt;br /&gt;
    return RLM_MODULE_OK;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тестовый звонок:&lt;br /&gt;
&lt;br /&gt;
 SEIZ EXT&amp;lt;SIP&amp;gt;(904)$&lt;br /&gt;
 CALL EXT&amp;lt;SIP&amp;gt;(904)$:6157 -&amp;gt; CallAuth_in(770:9)$:6205 [904,407]&lt;br /&gt;
 SEIZ CallAuth_out(1538:9)$&lt;br /&gt;
 CALL CallAuth_out(1538:9)$:6206 -&amp;gt; INT_IP(769/13)$:6131 [3311554,443]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как видно, CallAuth_out организует вызов с измененными номерами. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Connect-Info'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для маршрутизации вызовов после прохождения авторизации используется таблица, к которой привязаны порты авторизации:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=smp lines=0&amp;gt;&lt;br /&gt;
    AIR [3] { PROFIL = 24             // AIR TYPE = AIR_UNIFIED&lt;br /&gt;
        PORT [1-10] { PROFIL = 67       // SIG = SIG_CALLAUTH&lt;br /&gt;
        GROUP = 17&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ..............&lt;br /&gt;
 &lt;br /&gt;
    GROUP [17] { ROUTE = 7 }&lt;br /&gt;
&lt;br /&gt;
    ..............&lt;br /&gt;
&lt;br /&gt;
    ROUTE [7] { NAME = &amp;quot;Radius&amp;quot;&lt;br /&gt;
        RECORD &amp;quot;***&amp;quot; LOCAL&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном случае это ROUTE [7]. По этой таблице все 3-х значные номера рассматриваются как внутренние. &lt;br /&gt;
&lt;br /&gt;
Если станция получает Connect-Info, вместо LOCAL будет использовано направление, которое передано этим параметром. Параметр может содержать:&lt;br /&gt;
&lt;br /&gt;
* Название одного из существующих направлений. Только латинские буквы.&lt;br /&gt;
* [[физический адрес порта]] в формате #xxxxxxxxx.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Например, у меня есть направление ps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;geshi lang=smp lines=0&amp;gt;&lt;br /&gt;
    DIR [14] { NAME = &amp;quot;ps&amp;quot; 7  }&lt;br /&gt;
&amp;lt;/geshi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тогда, я могу перенаправить 3-х значный вызов в другое направление:&lt;br /&gt;
&lt;br /&gt;
 if ($RAD_REQUEST{'Calling-Station-Id'} == '904') {&lt;br /&gt;
    $RAD_REPLY{'h323-credit-time'} = &amp;quot;h323-credit-time=1000&amp;quot;;&lt;br /&gt;
    $RAD_REPLY{'Connect-Info'} = &amp;quot;ps&amp;quot;;&lt;br /&gt;
    $RAD_REPLY{'Called-Station-Id'} = &amp;quot;060&amp;quot;;&lt;br /&gt;
    $RAD_REPLY{'Calling-Station-Id'} = &amp;quot;3311554&amp;quot;;&lt;br /&gt;
    return RLM_MODULE_OK;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тестовый звонок:&lt;br /&gt;
&lt;br /&gt;
 Коммутатор:&lt;br /&gt;
 &lt;br /&gt;
 SEIZ EXT&amp;lt;SIP&amp;gt;(904)$&lt;br /&gt;
 CALL EXT&amp;lt;SIP&amp;gt;(904)$:6157 -&amp;gt; CallAuth_in(770:10)$:6207 [904,407]&lt;br /&gt;
 SEIZ CallAuth_out(1538:10)$&lt;br /&gt;
 CALL CallAuth_out(1538:10)$:6208 -&amp;gt; INT_IP(769/14)$:6132 [3311554,060]&lt;br /&gt;
 &lt;br /&gt;
 МАЛ&lt;br /&gt;
 &lt;br /&gt;
 SEIZ INT_IP(772/14)$&lt;br /&gt;
 CALL INT_IP(772/14)$:779 -&amp;gt; DSS1(1:3,out,,)$:7 [3311554,060]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как видно, вызов ушел в поток.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Так же можно использовать физический адрес:&lt;br /&gt;
&lt;br /&gt;
 if ($RAD_REQUEST{'Calling-Station-Id'} == '904') {&lt;br /&gt;
    $RAD_REPLY{'h323-credit-time'} = &amp;quot;h323-credit-time=1000&amp;quot;;&lt;br /&gt;
    $RAD_REPLY{'Connect-Info'} = &amp;quot;#100001015&amp;quot;;&lt;br /&gt;
    $RAD_REPLY{'Called-Station-Id'} = &amp;quot;060&amp;quot;;&lt;br /&gt;
    $RAD_REPLY{'Calling-Station-Id'} = &amp;quot;3311554&amp;quot;;&lt;br /&gt;
    return RLM_MODULE_OK;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Но первый путь предпочтительнее.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Вот вкратце и все. Надеюсь эти заметки будут кому-нибудь полезны.'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:RADIUS]]&lt;br /&gt;
[[Категория:Уголок ДР]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Pax</name></author>	</entry>

	</feed>