... {code} #!/bin/bash __radclient() { res=$(radclient -c 1 -r 2 -t 1 -x $nas_ip:$coa_port $1 $coa_psw) set -x echo "$res" | grep -q "Error-Cause = 0\|Error-Cause = 200" && ret=0 echo "$res" | grep -q "Error-Cause = Resources Unavailable" && ret=254 echo "$res" | grep -q "no response from server" && ret=254 grep "no response from server" $TMPDIR/radclient.$$ && exit 254 echo $res set +x return $ret } # COA запрос на radius auth coa_reauth(){ echo "Service-Type=8,\ User-Name=\"$abonent_id\",\ Framed-IP-Address=\"$ip\"" | __radclient coa } # Приходит при активации услуги
|
... # Условие if не будет вызывать coa_reauth если owner_script = events.py if [[ "$owner_script" != 'events.py' ]]; then coa_reauth fi } # Приходит при деактивации услуги usluga_deactivated(){ coa_reauth } # Приходит при создании пользователя в биллинге # И при смене критичных параметров(ip, vlan, port etc.)(с новыми значениями) # Обычно используется для ip авторизации user_add() { : } # Приходит при удалении пользователя из биллинга # И при смене критичных параметров(ip, vlan, port etc.)(со старыми значениями) # Обычно используется для ВСЕХ видов авторизации user_del() { : } # Приходит после авторизации пользователя # Рекомендуется политику пользователя передавать в радиус replay параметрах, А НЕ В ЭТОМ СОБЫТИИ, # т.к. у любого оборудования есть ограничения на колличество отправляемых команд в секунду user_accept() { : } # Приходит при отключении пользователя # Рекомендуется избегать удаления пользователя из списков, для экономии очереди команд на оборудовании user_drop() { : } # Приходит при превышении лимита, либо при отключении услуги user_redirect() { : } # Приходит после оплаты, если хватило денег на включение услуги user_redirect_cancel() { : } # Приходит при изменении скорости подключения # Или включения\выключении услуги(турбокнопка, ночной форсаж и т.д.) user_rate_set() { : } # Приходит при отключении пользователя администратором # либо при добровольной блокировке. user_disconnect() { : } # Приходит при нажатии кнопки info в учетной записи user_info() { : } # Приходит при нажатии кнопки тест в учетной записи user_test() { : } # Хук - вызывается перед каждым событием user_event_before() { : } # Хук - вызывается после каждого события user_event_after() { : } # Приходит при добавлении услуги абоненту usluga_add(){ : } # Приходит при удалении услуги у абонента usluga_del(){ : } {code}
|