urfaclient на C

Технические вопросы по UTM 5.0
Ответить
Vans
Сообщения: 133
Зарегистрирован: Чт сен 01, 2005 20:45

Сообщение Vans »

Такая же фигня у меня наблюдается на urfaclient.php...

Аватара пользователя
sclif
Сообщения: 88
Зарегистрирован: Ср янв 25, 2006 07:53
Контактная информация:

Сообщение sclif »

Пацаны вообще ребята :))
В общем понял идеологию, заходим в api.xml и подсматриваем функции.
Затем по аналогии создаем xml файлы и запускаем.
Для моего случая понадобились функции:
1. get_all_services_for_user - уже есть в xml, необходимо узнать id сервисных связок slink_id
2. rpcf_set_recalc_type - задаем recalc_type, при чем надо успеть до первого списания, что-бы применялось именно в действующий расчетный период.
<?xml version="1.0"?>
<urfa>
<call function="rpcf_set_recalc_type">
<parameter name="slink_id" comment="slink_id"/>
<parameter name="recalc_type" comment="recalc_type"/>
<parameter name="recalc_traffic" comment="recalc_traffic"/>
</call>
</urfa>

nex
Сообщения: 2
Зарегистрирован: Вт июл 23, 2013 17:42

Сообщение nex »

У меня функция rpcf_set_recalc_type задаёт только следующий тип перерасчёта, а текущий так и остаётся 0 ("Ничего не делать")...

Я попытался подсмотреть, какие функции вызываются программой utm_admin при создании сервисной связки с нужным типом... в файле console.log вызывается только add_hotspot_slink_ex, но параметры в этом файле не указаны. В списке параметров этой функции в api.xml нет ничего похожего на тип перерасчёта, есть только параметр unabon, который, как я понял, аналогичен галке "Пересчитать при добавлении" при использовании GUI...

Кто подскажет, как задать текущий тип сервисной связки через URFA?

Аватара пользователя
MaxDM
Сообщения: 312
Зарегистрирован: Пн апр 03, 2006 10:26
Контактная информация:

Сообщение MaxDM »

Вопрос по функции <function name="rpcf_edit_user_new" id="0x2126">.

Меняю доп.параметры, а в ответ

Код: Выделить всё

&#123; 'error_description' => 'Unknown error',
   'user_id' => 0,
   'error_code' => 74
&#125;;
При этом доп.параметры меняются, в логах никаких ошибок, UTM5 5.2.1-008-update6.

upd 1. Через функцию rpcf_add_user доп.параметры меняются без ошибок:

Код: Выделить всё

&#123; 'error_msg' => '',
   'user_id' => user_id
&#125;;
upd 2. Если через админку менять доп.параметры, то видно, что вызывается функция rpcf_edit_user_new

rimidal
Сообщения: 53
Зарегистрирован: Пт янв 29, 2010 22:36

Сообщение rimidal »

C urfa клиентом вообще все обстоит "очень весело".
Если очень надо, то вот http://jd.benow.ca/ и на файл utm_admin.jar.

Nik0n
Сообщения: 77
Зарегистрирован: Пн сен 14, 2009 13:53
Откуда: Екатеринбург
Контактная информация:

Сообщение Nik0n »

Добрый день!
Кто-нибудь успешно использовал функции работы с RADIUS сессиями, а именно rpcf_radius_get_active_sessions, rpcf_radius_disconnect_session и
rpcf_radius_drop_session ?
При их использовании всегда возникает ошибка, например:

Код: Выделить всё

&#91;root@utm5test utm5&#93;# ourfa/ourfa_client -S rsa_cert -a rpcf_radius_get_active_sessions -l bras -P *****
Loading config file ./utm5_urfaclient.cfg
Loading API XML&#58; ./xml/api.xml
<?xml version="1.0"?>
<urfa>
  <session key="66a5c054000000001747a76aee3a5a1f"/>
  <call function="rpcf_radius_get_active_sessions">
    <output>
      <integer name="traffic_sessions_count" value="160"/>
      <array name="i">
        <item>
          <integer name="traf_id" value="7524"/>
          <string name="traf_acct_session_id" value="010FFFFFD8001632-54B79638"/>
          <string name="traf_user_name" value="192.168.64.24"/>
Can not get ip_address value
Function `rpcf_radius_get_active_sessions` node `ip_address`. Cannot get ip_address value for node traf_nas_ip&#40;i&#41;
          <error>Function `rpcf_radius_get_active_sessions` node `ip_address`. Cannot get ip_address value for node traf_nas_ip&#40;i&#41;</error>
        </item>
      </array>
    </output>
  </call>
</urfa>
Пробуем теперь попросить disconnect (c drop все точно так же)

Код: Выделить всё

&#91;root@utm5test utm5&#93;# ourfa/ourfa_client -S rsa_cert -l bras -P **** -a rpcf_radius_disconnect_session -acct_session_id 010FFFFFD8001632-54B79638 -nas_ip '192.168.9.11'
Loading config file ./utm5_urfaclient.cfg
Loading API XML&#58; ./xml/api.xml
<?xml version="1.0"?>
<urfa>
  <session key="81a7c054000000006642d93d5301def5"/>
  <call function="rpcf_radius_disconnect_session">
    <output>
Received ATTR_TERMINATION instead of ATTR_DATA attribute
Function `rpcf_radius_disconnect_session` node `integer`. Can not get integer value for node 'error_code&#40;0&#41;'
      <error>Function `rpcf_radius_disconnect_session` node `integer`. Can not get integer value for node 'error_code&#40;0&#41;'</error>
    </output>
  </call>
</urfa>

London
Сообщения: 4
Зарегистрирован: Пт мар 13, 2015 13:05

Сообщение London »

А кто нибудь может подсказать по использованию пользовательских функций? Которые с "-" вначале.

Например, rpcf_user5_get_promised_payment.

Код: Выделить всё

root@kv3&#58;# ourfa_client -S rsa_cert -a rpcf_user5_get_promised_payment -account_id 154
Loading config file /netup/utm5/utm5_urfaclient.cfg
Loading API XML&#58; /netup/utm5/xml/api.xml
Access denied
Function `rpcf_user5_get_promised_payment` node `ROOT`. Access denied
Понятно, говорит, из под рута нельзя. Как я понял, надо указать -u имя_пользователя ?

Но, когда так указываешь, начинает ругаться на

Код: Выделить всё

Wrong parameter '154'&#58; can not parse value
Наверное, что-то я не так делаю?

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

-u -l "xxxxx" -P "yyyyyyyy" -a set_user5_voluntary_block -account_id 111111

ЗЫ И именно так, с точностью до регистра.

London
Сообщения: 4
Зарегистрирован: Пт мар 13, 2015 13:05

Сообщение London »

Magnum72 писал(а):-u -l "xxxxx" -P "yyyyyyyy" -a set_user5_voluntary_block -account_id 111111

ЗЫ И именно так, с точностью до регистра.
Да не, к сожалению та же песня... Пришлось делать через perl, на нем пользовательские функции без проблем отработали.

Аватара пользователя
MaxDM
Сообщения: 312
Зарегистрирован: Пн апр 03, 2006 10:26
Контактная информация:

Сообщение MaxDM »

В 5.3.003 в api.xml

поменяли

<function name="rpcf_get_accountinfo" id="0x2030">
<input>
<integer name="account_id"/>
</input>
<output>
<integer name="unused"/>
<integer name="is_blocked"/>
<integer name="dealer_account_id"/>
<integer name="is_dealer"/>
<double name="vat_rate"/>
<double name="sale_tax_rate"/>
<double name="comission_coefficient"/>
<double name="default_comission_value"/>
<double name="credit"/>
<double name="balance"/>
<integer name="int_status"/>
<integer name="block_recalc_abon"/>
<integer name="block_recalc_prepaid"/>
<integer name="unlimited"/>
</output>
</function>


на

<function name="rpcf_get_accountinfo" id="0x15109">
<input>
<integer name="account_id"/>
</input>
<output>
<integer name="is_blocked"/>
<double name="vat_rate"/>
<double name="sale_tax_rate"/>
<double name="credit"/>
<double name="balance"/>
<integer name="int_status"/>
<integer name="unlimited"/>
<integer name="auto_enable_inet"/>
<string name="external_id"/>
</output>
</function>

Если в api.xml добавить обе эти функции для нормальный работы с 5.2.008 и 5.3.003 ничего плохого не случится?


p.s. Да там у многих функций в 5.3.003 id-шники поменяли. "Склеивать" новый и старый api.xml?

Rav
Сообщения: 70
Зарегистрирован: Пт июн 29, 2007 17:02

Сообщение Rav »

На 5.3 кто-нибудь уже пробовал?

drag0mir
Сообщения: 64
Зарегистрирован: Сб ноя 24, 2007 13:46
Откуда: Нижний Новгород

Сообщение drag0mir »

Народ а кто нибудь собирал на 8-ом дебиане?
что то у меня не собирается

Код: Выделить всё

# make
cc -DNDEBUG -s -fPIC `xml2-config --cflags` -I/usr/local/include \
  -o ourfa_client \
  client.o client_dump.o client_datafile.o \
  -L/usr/local/lib -L. -lourfa -lssl -lcrypto `xml2-config --libs` -L/usr/local/lib -liconv
/usr/bin/ld&#58; cannot find -liconv
collect2&#58; error&#58; ld returned 1 exit status
Makefile&#58;36&#58; ошибка выполнения рецепта для цели «ourfa_client»
make&#58; *** &#91;ourfa_client&#93; Ошибка 1

Код: Выделить всё

# dpkg -l | grep iconv
ii  libiconv-hook-dev              0.0.20021209-10              amd64        header files of libiconv-hook
ii  libiconv-hook1                 0.0.20021209-10              amd64        extension of iconv for libapache-mod-encoding
ii  libtext-iconv-perl             1.7-5+b2                     amd64        converts between character sets in Perl

taf
Сообщения: 309
Зарегистрирован: Вс янв 30, 2005 11:41

Сообщение taf »

Уберите все упоминания -liconv из исходных текстов. Функционал libiconv давно уже входит в состав glibc и дополнительных параметров линковки не требуется.

Аватара пользователя
MaxDM
Сообщения: 312
Зарегистрирован: Пн апр 03, 2006 10:26
Контактная информация:

Сообщение MaxDM »

littlesavage, а тут что может быть не так?

Код: Выделить всё

Received ATTR_TERMINATION instead of ATTR_DATA attribute at /usr/local/lib/x86_64-linux-gnu/perl/5.20.2/Ourfa.pm line 406.
Function `rpcf_add_iptraffic_service_link_ipv6` node `integer`. Can not get integer value for node 'slink_id&#40;0&#41;'

Код: Выделить всё

NetUP UTM billing system core. Compile date&#58; Oct  6 2016 10&#58;04&#58;49
Version&#58;5.3-004-update1-debian_jessie_x64 Rev #15958
Copyright &#40;c&#41; 2001-2016 NetUP Inc. www.netup.ru

Аватара пользователя
MaxDM
Сообщения: 312
Зарегистрирован: Пн апр 03, 2006 10:26
Контактная информация:

Сообщение MaxDM »

Вывод с дебагом:

Код: Выделить всё

RECVD HANDSHAKE PKT...
pkt&#58;  PKT_SESSION_INIT   v&#58; 0x23 size&#58; 0x0018 attrs_cnt&#58; 1
attr&#58; ATTR_MD5_SESSION_ID size&#58; 0x0010 data&#58; ''..X.......P....'

SENDING LOGIN PACKET ...
pkt&#58;  PKT_ACCESS_REQUEST v&#58; 0x23 size&#58; 0x004b attrs_cnt&#58; 5
attr&#58; ATTR_CHAP_CHALLENGE size&#58; 0x0010 data&#58; ''..X.......P....'
attr&#58; ATTR_LOGIN_TYPE    size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_LOGIN         size&#58; 0x000b data&#58; 'admin'
attr&#58; ATTR_CHAP_RESPONSE size&#58; 0x0010 data&#58; '9%....&#93;....;...k'
attr&#58; ATTR_SSL_REQUEST   size&#58; 0x0004 data&#58; 0x00000002

RECVD LOGIN RESPONSE PKT ...
pkt&#58;  PKT_ACCESS_ACCEPT  v&#58; 0x23 size&#58; 0x0014 attrs_cnt&#58; 2
attr&#58; ATTR_LOGIN_TYPE    size&#58; 0x0004 data&#58; 0x00000001
attr&#58; ATTR_SSL_REQUEST   size&#58; 0x0004 data&#58; 0x00000002

Peer requested SSL 0x2
SEND START FUNC CALL PKT ...
pkt&#58;  PKT_SESSION_CALL   v&#58; 0x23 size&#58; 0x000c attrs_cnt&#58; 1
attr&#58; ATTR_CALL          size&#58; 0x0004 data&#58; 0x0000293e

RECVD START FUNC CALL RESPONSE PKT ...
pkt&#58;  PKT_SESSION_DATA   v&#58; 0x23 size&#58; 0x000c attrs_cnt&#58; 1
attr&#58; ATTR_CALL          size&#58; 0x0004 data&#58; 0x0000293e

SEND DATA ...
pkt&#58;  PKT_SESSION_DATA   v&#58; 0x23 size&#58; 0x00f8 attrs_cnt&#58; 32
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x0000908e
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00009133
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x000000e2
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x0000d271
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000b30
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x5808c627
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x77359400
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000001
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000001
attr&#58; ATTR_DATA          size&#58; 0x0008 data&#58; 0x3ff0000000000000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000001
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000001
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x01010101
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000020
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x32323232
attr&#58; ATTR_DATA          size&#58; 0x0000
attr&#58; ATTR_DATA          size&#58; 0x0000
attr&#58; ATTR_DATA          size&#58; 0x0000
attr&#58; ATTR_DATA          size&#58; 0x0000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_DATA          size&#58; 0x0004 data&#58; 0x00000000
attr&#58; ATTR_TERMINATION   size&#58; 0x0004 data&#58; 0x00000004

RECEIVED FUNC OUTPUT PKT ...
pkt&#58;  PKT_SESSION_DATA   v&#58; 0x23 size&#58; 0x000c attrs_cnt&#58; 1
attr&#58; ATTR_TERMINATION   size&#58; 0x0004 data&#58; 0x00000004

Received ATTR_TERMINATION instead of ATTR_DATA attribute at /usr/local/lib/x86_64-linux-gnu/perl/5.20.2/Ourfa.pm line 406.
Function `rpcf_add_iptraffic_service_link_ipv6` node `integer`. Can not get integer value for node 'slink_id&#40;0&#41;'
Ourfa&#58;&#58;ScriptCall&#58;&#58;call&#58; Function `rpcf_add_iptraffic_service_link_ipv6` node `integer`. Can not get integer value for node 'slink_id&#40;0&#41;'
 at ./testourfa.pl line 329.
SENDING TERM PKT ...
pkt&#58;  PKT_SESSION_TERMINATE v&#58; 0x23 size&#58; 0x0004 attrs_cnt&#58; 0

*** Error in `/usr/bin/perl'&#58; free&#40;&#41;&#58; corrupted unsorted chunks&#58; 0x00000000017441b0 ***

Ответить