Обработчик активации сервисов для Mikrotik(по протоколу mikrotik api)

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «Универсальный обработчик активации сервисов Mikrotik по протоколу MikrotikApi. На устройстве дол…»)
 
(5 промежуточных версий не показаны.)
Строка 1: Строка 1:
Универсальный обработчик активации сервисов Mikrotik по протоколу MikrotikApi.  
Универсальный обработчик активации сервисов Mikrotik по протоколу MikrotikApi.  
-
На устройстве должен быть прописан host:port Mikrotik, где port - 8728(порт  управления Mikrotik с помощью Mikrotik Api).
+
На устройстве должен быть прописан host:port Mikrotik, где port - 8728(порт  управления Mikrotik с помощью Mikrotik Api). Либо просто  host, тогда порт может быть указан в параметре
 +
<source lang="bash">
 +
sa.port
 +
</source>
 +
в конфигурации устройств.  
Класс обработчика активации сервисов:
Класс обработчика активации сервисов:
Строка 11: Строка 15:
*[[Описание общих  параметров для терминальных(ssh/telnet/manad/mikrotik api) обработчиков активации сервисов ]]
*[[Описание общих  параметров для терминальных(ssh/telnet/manad/mikrotik api) обработчиков активации сервисов ]]
 +
 +
 +
 +
Пример конфигурации
 +
 +
<source lang="bash">
 +
#Команды включения сервиса на устройстве
 +
sa.command.serv.enable=/ip/firewall/address-list/add\n=address=$ip\n=list=ACCESS_LIST\n=comment=!!$servId!!
 +
#Команды отключения сервиса на устройстве.
 +
sa.command.serv.disable=/ip/firewall/address-list/remove\n=numbers="!!$servId!!"
 +
</source>
 +
 +
 +
 +
Так же есть специфичная переменная:
 +
<source lang="bash">
 +
$prevIdList - результаты вызова предыдущей команды(все параметры id, через запятую).
 +
</source>
 +
 +
Она нужна в тех случаях, когда есть необходимость в использовании команды find внутри другой команды. Дело в том, что Mikrotik Api не поддерживает использования таких команд, но их можно эмулировать
 +
с помощью вызова 2-х команд:
 +
 +
1) вначале команда print с заданными параметрами, из нее извлекаются список найденных id через запятую(их может быть несколько в общем случае)
 +
 +
2) Вызывается основная команда, куда вместо find подставляют список id, найденных на предыдущем шаге.
 +
 +
Пример конфигурации с этим параметром.
 +
 +
<source lang="bash">
 +
 +
#Команды включения сервиса на устройстве
 +
sa.command.serv.enable=/ip/firewall/address-list/add\n=address=$ip\n=list=ACCESS_LIST
 +
#Команды выключения сервиса на устройстве
 +
sa.command.serv.disable.1=/ip/firewall/address-list/print\n?=address=$ip
 +
sa.command.serv.disable.2=/ip/firewall/address-list/remove\n=numbers=$prevIdList
 +
</source>
 +
 +
 +
Тут видно что в команде sa.command.serv.disable.2 удаляют те, номера, которые нашли в команде sa.command.serv.disable.1.

Текущая версия на 10:51, 10 декабря 2014

Универсальный обработчик активации сервисов Mikrotik по протоколу MikrotikApi.

На устройстве должен быть прописан host:port Mikrotik, где port - 8728(порт управления Mikrotik с помощью Mikrotik Api). Либо просто host, тогда порт может быть указан в параметре

sa.port

в конфигурации устройств.

Класс обработчика активации сервисов:

ru.bitel.bgbilling.modules.inet.dyn.device.mikrotik.MikrotikServiceActivator

Поставляется в стандартной поставке. Параметры общие описаны тут:


Пример конфигурации

#Команды включения сервиса на устройстве
sa.command.serv.enable=/ip/firewall/address-list/add\n=address=$ip\n=list=ACCESS_LIST\n=comment=!!$servId!!
#Команды отключения сервиса на устройстве.
sa.command.serv.disable=/ip/firewall/address-list/remove\n=numbers="!!$servId!!"


Так же есть специфичная переменная:

$prevIdList - результаты вызова предыдущей команды(все параметры id, через запятую).

Она нужна в тех случаях, когда есть необходимость в использовании команды find внутри другой команды. Дело в том, что Mikrotik Api не поддерживает использования таких команд, но их можно эмулировать с помощью вызова 2-х команд:

1) вначале команда print с заданными параметрами, из нее извлекаются список найденных id через запятую(их может быть несколько в общем случае)

2) Вызывается основная команда, куда вместо find подставляют список id, найденных на предыдущем шаге.

Пример конфигурации с этим параметром.

#Команды включения сервиса на устройстве
sa.command.serv.enable=/ip/firewall/address-list/add\n=address=$ip\n=list=ACCESS_LIST
#Команды выключения сервиса на устройстве
sa.command.serv.disable.1=/ip/firewall/address-list/print\n?=address=$ip
sa.command.serv.disable.2=/ip/firewall/address-list/remove\n=numbers=$prevIdList


Тут видно что в команде sa.command.serv.disable.2 удаляют те, номера, которые нашли в команде sa.command.serv.disable.1.

Личные инструменты