Скрипт управления session СКАТ

Skip to end of metadata
Go to start of metadata
#!/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
}

# Приходит при активации услуги
usluga_activated(){
        # При RADIUS-авторизации всегда отправляется usluga_activated по каждой услуге трафика
        # Политика Service-Type=8 в coa_reauth запрашивает повторную авторизацию на СКАТ, что удваивает нагрузку на биллинг.
        # Отличить usluga_activated вызыванную авторизацией от других источников (переключение тарифа, ночное ускорение и тд) можно по переменной owner_script
        # Если команда вызывана авторизацией - owner_script всегда будет events.py 
        # Условие 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(){
    :
}
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.