An open API service indexing awesome lists of open source software.

https://github.com/illarionov/ourfa

Open source implementation of URFA (UTM Remote Function Access) protocol
https://github.com/illarionov/ourfa

Last synced: 3 months ago
JSON representation

Open source implementation of URFA (UTM Remote Function Access) protocol

Awesome Lists containing this project

README

          

ourfa
=====

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

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

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

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

Основное обсуждение ведется на форумах UTM:

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

#### Ссылки

* Исходный код: [ourfa-521008002.2.tar.gz](https://github.com/downloads/littlesavage/ourfa/ourfa-521008002.2.tar.gz)
* Все файлы: [downloads](https://github.com/littlesavage/ourfa/downloads)

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

Требуются библиотеки 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](http://wiki.flintnet.ru/doku.php/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)
-[: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