|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (67)
просмотр истории страницыh23. Пример стандартного скрипта, который создается автоматически. |
{code} |
\#\!/bin/bash #!/bin/bash |
|
\__coa_send() { |
echo "$@" return 0 echo "$@" \| radclient \-x $nas_ip coa $coa_psw &>$TMPDIR/radclient.$$ ret=$? |
echo "$@" return 0 echo "$@" | radclient -x $nas_ip coa $coa_psw &>$TMPDIR/radclient.$$ ret=$? |
# exit 254 отложить передачу, todo возможно и другие схожие busy context и тд |
grep "no response from server" $TMPDIR/radclient.$$ && exit 254 cat $TMPDIR/radclient.$$ return $ret |
grep "no response from server" $TMPDIR/radclient.$$ && exit 254 cat $TMPDIR/radclient.$$ return $ret |
} |
\# # Приходит при создании пользователя в биллинге |
\# # И при смене критичных параметров(ip, vlan, port etc.)(с новыми значениями) |
\# # Обычно используется для ip авторизации |
user_add() { |
user_accept |
user_accept |
} |
\# # Приходит при удалении пользователя из биллинга |
\# # И при смене критичных параметров(ip, vlan, port etc.)(со старыми значениями) |
\# # Обычно используется для ВСЕХ видов авторизации |
user_del() { |
\__coa_send session remove $ip |
__coa_send session remove $ip |
} |
\# # Приходит после авторизации пользователя |
\# # Рекомендуется политику пользователя передавать в радиус replay параметрах, А НЕ В ЭТОМ СОБЫТИИ, |
\# # т.к. у любого оборудования есть ограничения на колличество отправляемых команд в секунду |
user_accept() { |
\__coa_send ip forward_allow add $ip \__coa_send ip snat add $ip $snatip |
__coa_send ip forward_allow add $ip __coa_send ip snat add $ip $snatip |
} |
\# # Приходит при отключении пользователя |
\# # Рекомендуется избегать удаления пользователя из списков, для экономии очереди команд на оборудовании |
user_drop() { |
\__coa_send ip forward_allow del $ip \__coa_send ip snat del $ip |
__coa_send ip forward_allow del $ip __coa_send ip snat del $ip |
} |
\# # Приходит при превышении лимита, либо при отключении услуги |
user_redirect() { |
\__coa_send ip redirect add $ip |
__coa_send ip redirect add $ip |
} |
\# # Приходит после оплаты, если хватило денег на включение услуги |
user_redirect_cancel() { |
\__coa_send ip redirect del $ip |
__coa_send ip redirect del $ip |
} |
\# # Приходит при изменении скорости подключения |
\# # Или включения\выключении услуги(турбокнопка, ночной форсаж и т.д.) |
user_rate_set() { |
\__coa_send policy set $ip in $rate_in $ceil_in $burst_in out $rate_out $ceil_out $burst_out |
__coa_send policy set $ip in $rate_in $ceil_in $burst_in out $rate_out $ceil_out $burst_out |
} |
\# # Приходит при отключении пользователя администратором |
\# # либо при добровольной блокировке. |
user_disconnect() { |
\__coa_send session disconnect $ip |
__coa_send session disconnect $ip |
} |
\# # Приходит при нажатии кнопки info в учетной записи |
user_info() { |
\__coa_send session info $ip |
__coa_send session info $ip |
} |
\# # Приходит при нажатии кнопки тест в учетной записи |
user_test() { |
\__coa_send session test $ip |
__coa_send session test $ip |
} |
\# # Хук - вызывается перед каждым событием |
user_event_before() { |
: |
: |
} |
\# # Хук - вызывается после каждого события |
user_event_after() { |
: |
: |
} |
\# # Приходит при добавлении услуги абоненту |
usluga_add(){ |
: |
: |
} |
\# # Приходит при удалении услуги у абонента |
usluga_del(){ |
: |
: |
} |
\# # Приходит при активации услуги |
usluga_activated(){ |
: |
: |
} |
\# # Приходит при деактивации услуги |
usluga_deactivated(){ |
: |
: |
} {code} |
h23. Доступные переменные |
\- abonent_id |
... |
\- sms \- tarif_id |
\- user_psw (Пароль в учетной записи) Для того, чтобы пароль передавался в скрипт событий, необходимо выставить опцию "Передавать пароль в скрипт событий" в настройках Nas'a на вкладке Дополнительно !user_psw.png|border=1! |