Интеграция с ASR4

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (3)

просмотр истории страницы
После указанных настроек XGE должен заработать.

h3. Примечание

*xge_router.sh*: *event_inc.sh*
{code}
LOG_LEVEL=ALL
fi
{code}

*xge_router.sh*
{code}
#!/bin/bash

#. /usr/local/lib/carbon.shlib

trap __exit EXIT

TMPDIR=/tmp/${0##*/}
mkdir -p $TMPDIR

set -x


__exit() {
local ret=$?
rm -f $TMPDIR/*.$$
return $ret
}

burst_in=''
burst_out=''
ceil_in=${ceil_in:-1000}
rate_in=${rate_in:-1000}
ceil_out=${ceil_out:-1000}
rate_out=${rate_out:-1000}

__xge_coa_send() {
echo "Filter-Id=\"$@\"" | radclient -x $nas_ip:3799 coa $coa_psw &>$TMPDIR/radclient.$$
ret=$?
grep "no response from server" $TMPDIR/radclient.$$ && exit 254
cat $TMPDIR/radclient.$$
return $ret
}

user_add() {
[ "$auth_type" = "1" ] && __xge_coa_send session $ip start IPOE
}

user_del() {
__xge_coa_send session $ip stop "user_del"
__xge_coa_send session $ip remove
}

user_accept() {
[ "$auth_type" = "1" ] && __xge_coa_send session $ip start IPOE
__xge_coa_send session $ip redirect blocked cancel
__xge_coa_send session $ip nat $snatip
}

user_drop() {
__xge_coa_send session $ip redirect blocked
}

user_redirect() {
__xge_coa_send session $ip redirect negbal
}

user_redirect_cancel() {
__xge_coa_send session $ip redirect negbal cancel
}

user_rate_set() {
__xge_coa_send session $ip rate set in $rate_in $ceil_in $burst_in out $rate_out $ceil_out $burst_out

}

user_rate_set_cancel() {
__xge_coa_send session $ip rate remove
}

user_info() {
__xge_coa_send session $ip info
}

user_test() {
__xge_coa_send session $ip test
}


user_event_before() {
:
}

user_event_after() {
:
}

user_disconnect() {
__xge_coa_send session $ip disconnect
}

__xge_list_local(){
ipset -o save -l $4 | grep add | cut -d ' ' -f 3
}
__xge_ssh_send(){
echo -e "chroot /app/xge $@\nexit\n" | ssh_send --port ${telnet_port:-33} -u ${telnet_login:-root} -p ${telnet_password:-servicemode} ${nas_ip:-127.0.0.1}
}
users_from_nas() {
# здесь нельзя использовать coa тк буфер маленький у него и не войдет весь вывод
local SYNCDIR="/var/lib/event/sync/$nas_ip"
mkdir -p $SYNCDIR
if [ "$nas_ip" != "169.1.18.12" ]; then
__xge_ssh_send xgesh show list xge_blocked_list | grep '^[0-9].*' > $SYNCDIR/blocked_list.nas
__xge_ssh_send xgesh show list xge_negbal_list | grep '^[0-9].*' > $SYNCDIR/negbal_list.nas
__xge_ssh_send xgesh show list xge_auth_list | grep '^[0-9].*' > $SYNCDIR/auth_list.nas
fi
# чтоб на софтроутере пароль не указывать
if [ "$nas_ip" = "169.1.18.12" ]; then
__xge_list_local xgesh show list xge_blocked_list | grep '^[0-9].*' > $SYNCDIR/blocked_list.nas
__xge_list_local xgesh show list xge_negbal_list | grep '^[0-9].*' > $SYNCDIR/negbal_list.nas
__xge_list_local xgesh show list xge_auth_list | grep '^[0-9].*' > $SYNCDIR/auth_list.nas
fi
}

user_info(){
echo '<pre>' > /tmp/${user_id}_user_info.new
__xge_coa_send session $ip test human | grep "Reply-Message" | sed -e 's/Reply-Message =//g; s/^\s\+//g; s/^"//g; s/"$//g' >> /tmp/${user_id}_user_info.new
echo '</pre>' >> /tmp/${user_id}_user_info.new

mv -f /tmp/${user_id}_user_info.new /tmp/${user_id}_user_info
chown apache:apache /tmp/${user_id}_user_info
}
{code}