Skip to content
Open source implementation of URFA (UTM Remote Function Access) protocol
C Perl C++ XS Makefile Perl6 Shell
Find file
Latest commit 9502faf @illarionov v530002000.b1
Failed to load latest commit information.
debian v530002000.b1
freebsd v530002000.b1
ourfa-perl v530002000.b1
.gitignore Fix build, example
Makefile v530002000.b1
Makefile.mingw ipv6
Makefile.msvc ipv6
README.md ipv6
asprintf.c ipv6
client.c ipv6
client_datafile.c Makefile.msvc - nmake build
client_dump.c Makefile.msvc - nmake build
connection.c ipv6
dtoa.c Locale-insensitive strtod()
error.c ipv6
example.sh Fix build, example
func_call.c ipv6
hash.c ipv6
inet_ntop.c ipv6
inet_ntop.h ipv6
inet_pton.c ipv6
inet_pton.h ipv6
ip.c ipv6
ourfa.h v530002000.b1
ourfa_private.h ipv6
pkt.c ipv6
ssl_ctx.c Fix cipher_list for rsa_cert SSL method
strtod_c.c Use strtod_l() as locale-insensitive strtod() on Windows.
xmlapi.c ipv6

README.md

ourfa

библиотека доступа к функциям биллинга UTM на C. В библиотеке реализован протокол взаимодействия с биллингом на сетевом уровне, а так же интерфейс для работы с его XML API схемами.

На основе этой библиотеки созданы приложения:

ourfa_client — аналог официального консольного клиента utm5_urfaclient. Выполняет те же функции и работает с теми же XML схемами. Но имеет несколько дополнительных возможностей, например, вывод результатов не в XML.

ourfa-perl - XS библиотека, интерфейс для доступа к биллингу на perl.

Основное обсуждение ведется на форумах UTM: http://www.netup.ru/phpbb/viewtopic.php?t=7485

Версия: ** 521008002.2 (31 марта 2011) **

Ссылки

Сборка и установка

Требуются библиотеки xml2, ssl, iconv. В debian-based дистрибутивах для сборки нужно установить -dev пакеты:

$ sudo apt-get install libxml2-dev libssl-dev

Установка:

 $ make
 $ su
 # make install

Устанавливается сама библиотека (ourfa.h, libourfa.a) и ourfa_client.

Для работы требуется каталог со схемой api.xml. Он должен быть именно от установленной версии UTM. По умолчанию он находится в /netup/utm5/xml. Схема читается из api.xml и если использовать её из другой версии, то формат аргументов вызываемых функций может не совпасть.

Для версий старше UTM 5.2.1-008 нужен ещё сертификат. Его можно найти на вики urfaclient на PHP ("admin.crt - Поддержка админских функций"). Сохраните его в /netup/UTM5/admin.crt.

В FreeBSD вместо make нужно использовать gmake (GNU make)

В linux для установки лучше использовать checkinstall.

В deb-based linux можно собрать пакет:

$ sudo apt-get install build-essential devscripts debhelper
$ debuild -i -us -uc -b

ourfa-perl ставится отдельно, только при необходимости. Для его сборки требуется установленная основная библиотека (описано выше).

cd ourfa-perl
make
make test
make install

Использование

ourfa_client

Работа похожа на работу с официальным urfa_client, нужно ознакомиться с официальной документаций.

  usage: ourfa_client -a action 
   [-H addr] [-p port] [-l login] [-P pass] [-api api.xml] [-h]

 -help      This message
 -a         Action name
 -H         URFA server host (default: localhost)
 -p         URFA server port (default: 11758)
 -l         URFA server login. (default: init)
 -P         URFA server password. (default: init)
 -c         Config file (default: /netup/utm5/utm5_urfaclient.cfg)
 -s         Restore session with ID
 -i         Restore session with IP
 -S         SSL/TLS method: none (default), tlsv1, sslv3, cert, rsa_cert
 -C         Certificate file for rsa_cert SSL (PEM format)
 -k         Private key file for rsa_cert SSL (PEM format)
 -x         URFA server xml dir. (default: /netup/utm5/xml)
 -u         Login as user (not admin)
 -dealer    Login as dealer (not admin)
-timeout   Timeout in seconds (default: 30)
-is_in_unicode Turn off conversion of command line arguments to unicode
-o         Output format: xml (default), batch, or hash
-debug     Turn on debug
-datafile  Load array datas from file
-api       URFA server API file (default: api.xml)
-<param>[:idx] Set input parameter param(idx)

Пример вызова, выполнение функции rpcf_core_version:

./ourfa_client -S rsa_cert -H localhost -l admin -P admin -a rpcf_core_version
Loading config file /netup/utm5/utm5_urfaclient.cfg
Loading API XML: /netup/utm5/xml/api.xml
<?xml version="1.0"?>
<urfa>
  <session key="94fe235600000000e59ddc990b8d1ffd"/>
  <call function="rpcf_core_version">
    <output>
      <string name="core_version" value="5.3"/>
    </output>
  </call>
</urfa>
Something went wrong with that request. Please try again.