urfaclient на php

Вопросы по сопутствующим продуктам производства партнеров
Ответить
dk
Сообщения: 424
Зарегистрирован: Чт авг 10, 2006 08:52

Сообщение dk »

linx писал(а):Для корректной работы текущей URFAPHP подойдет ли версия билинга UTM5 - 5.2.0-002?

Версия PHP, нужно ли дополнительные расширения?
Основные функции (вроде поиска или добавления тарифов) на 5.2.0-002 точно работают. Добавленные позже работать, естественно, не будут.

Флагов должно хватить, обычно проблемы связаны с отсутствием bcmath.

nicol@s
Сообщения: 114
Зарегистрирован: Ср окт 14, 2009 15:52

Сообщение nicol@s »

К сожалению не хватает знаний по работе с билингом. :(
Может вопрос глупый, но очень интересует откуда функция rpcf_get_prepaid_units берет данные?
Пытался отловить запрос mysql - не вышло, да и в логах адмники тоже ничего не увидел :(

forgotten
Сообщения: 53
Зарегистрирован: Чт авг 28, 2008 08:11

Сообщение forgotten »

nicol@s писал(а):К сожалению не хватает знаний по работе с билингом. :(
Может вопрос глупый, но очень интересует откуда функция rpcf_get_prepaid_units берет данные?
Пытался отловить запрос mysql - не вышло, да и в логах адмники тоже ничего не увидел :(
Таблица traf_serv_tclasses поле prepaid_units. Думаю что оттуда.

nicol@s
Сообщения: 114
Зарегистрирован: Ср окт 14, 2009 15:52

Сообщение nicol@s »

forgotten писал(а): Таблица traf_serv_tclasses поле prepaid_units. Думаю что оттуда.
Не то. Здесь лежит предоплаченный трафик согласно тарифному плану. Но если подключаем абоненту тарифный план не с начала расчетного периода и ставим галочки пересчета абонетской платы и трафика, то происходит пересчет и абонентки и трафика верно. Т.е. абоненту начислено после пересчета, скажем 5 Гб (из 10 Гб по тарифу). Вот интересует, каждый раз при просмотре предоплаченного трафика этого абонента через админку присходит пересчет трафика в зависимости от даты подключения, уже скачанного трафика и базового значения согласно тарифу или же это значение где-то хранится?
+ возникает проблема, которая более подробно описана здесь viewtopic.php?t=7808
Не могли бы глянуть?
Спасибо.

forgotten
Сообщения: 53
Зарегистрирован: Чт авг 28, 2008 08:11

Сообщение forgotten »

nicol@s писал(а):
forgotten писал(а): Таблица traf_serv_tclasses поле prepaid_units. Думаю что оттуда.
Не то. Здесь лежит предоплаченный трафик согласно тарифному плану. Но если подключаем абоненту тарифный план не с начала расчетного периода и ставим галочки пересчета абонетской платы и трафика, то происходит пересчет и абонентки и трафика верно. Т.е. абоненту начислено после пересчета, скажем 5 Гб (из 10 Гб по тарифу). Вот интересует, каждый раз при просмотре предоплаченного трафика этого абонента через админку присходит пересчет трафика в зависимости от даты подключения, уже скачанного трафика и базового значения согласно тарифу или же это значение где-то хранится?
+ возникает проблема, которая более подробно описана здесь viewtopic.php?t=7808
Не могли бы глянуть?
Спасибо.
Похоже что после блокировки значение поля "Суммарно предоплачено" вычисляется по формуле:

(пердоплаченный трафик) * (секунд от начала расчётного периоде до начала блокировки) / (секунд в расчётном периоде)

В какой таблице это хранится я не нашёл. В логах при вызове этой функции нет никаких sql-запросов.

nicol@s
Сообщения: 114
Зарегистрирован: Ср окт 14, 2009 15:52

Сообщение nicol@s »

Склонялся к такой же версии, но решил уточнить у гуру =)
Спасибо Вам большое.

nicol@s
Сообщения: 114
Зарегистрирован: Ср окт 14, 2009 15:52

Сообщение nicol@s »

День добрый!
Есть ли функции, с помощью которых можно в услуге "Передача IP трафика" изменить значение в поле "login" ?
Возможно ли это сделать без удаления услуги "Передача IP трафика" соответственно без удаления тарифной связки, предварительно сохранив данные?

forgotten
Сообщения: 53
Зарегистрирован: Чт авг 28, 2008 08:11

Сообщение forgotten »

nicol@s писал(а):День добрый!
Есть ли функции, с помощью которых можно в услуге "Передача IP трафика" изменить значение в поле "login" ?
Возможно ли это сделать без удаления услуги "Передача IP трафика" соответственно без удаления тарифной связки, предварительно сохранив данные?
При изменении логина вызываются следующие функции:
rpcf_delete_from_ipgroup
rpcf_add_service_to_user

Вот их и нужно использовать, предварительно выбрав (напрямую из БД или при помощи urfa-клиента) все данные которые нужно сохранить.

nicol@s
Сообщения: 114
Зарегистрирован: Ср окт 14, 2009 15:52

Сообщение nicol@s »

forgotten писал(а): При изменении логина вызываются следующие функции:
rpcf_delete_from_ipgroup
rpcf_add_service_to_user

Вот их и нужно использовать, предварительно выбрав (напрямую из БД или при помощи urfa-клиента) все данные которые нужно сохранить.
Что-то туплю под конец рабочего дня.
Мне так и непонятно, нужно ли удалять услугу "Передача IP трафика"? Не получается с помощью функции rpcf_add_service_to_user изменить значение "login".
При удалении сервисной связки появляется верификатор. А удалять сначала тарифную связку, затем сервисную и заново их создавать, чтобы изменить поле "login", не хочется.
Как я понимаю, фукнция rpcf_add_service_to_user нужна для добавления новой услуги абоненту, но мне ведь надо изменить поле "login" :(

forgotten
Сообщения: 53
Зарегистрирован: Чт авг 28, 2008 08:11

Сообщение forgotten »

nicol@s писал(а):
forgotten писал(а): При изменении логина вызываются следующие функции:
rpcf_delete_from_ipgroup
rpcf_add_service_to_user

Вот их и нужно использовать, предварительно выбрав (напрямую из БД или при помощи urfa-клиента) все данные которые нужно сохранить.
Что-то туплю под конец рабочего дня.
Мне так и непонятно, нужно ли удалять услугу "Передача IP трафика"? Не получается с помощью функции rpcf_add_service_to_user изменить значение "login".
При удалении сервисной связки появляется верификатор. А удалять сначала тарифную связку, затем сервисную и заново их создавать, чтобы изменить поле "login", не хочется.
Как я понимаю, фукнция rpcf_add_service_to_user нужна для добавления новой услуги абоненту, но мне ведь надо изменить поле "login" :(
Сначала нужно удалить не услугу и не тариф а ip-группу для которой меняется логин. Для этого и вызывается функция rpcf_delete_from_ipgroup. А функция rpcf_add_service_to_user не только создаёт сервисную связку но и изменяет существующую сервисную связку.
Изучите эти фунции и Вам всё станет ясно.

nicol@s
Сообщения: 114
Зарегистрирован: Ср окт 14, 2009 15:52

Сообщение nicol@s »

Утро вечера мудренее. Спасибо большое, разобрался!

nicol@s
Сообщения: 114
Зарегистрирован: Ср окт 14, 2009 15:52

Сообщение nicol@s »

Хм... с предыдущим вопросом разобрался. Но возник другой.
Если я вызываю по отдельности функции rpcf_delete_from_ipgroup и rpcf_add_service_to_user , то они отрабатывают как надо. А если я в php-сценарии вызываю эти либо другие функции одна за одной, то выполняется первая, а следующая дает Error callig function. Если делаю так:

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

$delete_from_ipgroup = $urfa_admin->rpcf_delete_from_ipgroup($x, $ip, $mask="255.255.255.255");
echo '<SCRIPT LANGUAGE="JavaScript">. 
alert&#40; "It`s OK" &#41;;. 
location.href="http&#58;//test"</SCRIPT>';
$add_service = $urfa_admin->rpcf_add_service_to_user&#40;$service&#41;;
То они тоже выполняются. Видимо нужно что-то делать после работы функции, но что - не могу понять и по форуму ничего не нашел. Уважаемые гуру, помогите чайнику!
Спасибо.

nicol@s
Сообщения: 114
Зарегистрирован: Ср окт 14, 2009 15:52

Сообщение nicol@s »

UP!

forgotten
Сообщения: 53
Зарегистрирован: Чт авг 28, 2008 08:11

Сообщение forgotten »

nicol@s писал(а):Хм... с предыдущим вопросом разобрался. Но возник другой.
Если я вызываю по отдельности функции rpcf_delete_from_ipgroup и rpcf_add_service_to_user , то они отрабатывают как надо. А если я в php-сценарии вызываю эти либо другие функции одна за одной, то выполняется первая, а следующая дает Error callig function. Если делаю так:

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

$delete_from_ipgroup = $urfa_admin->rpcf_delete_from_ipgroup&#40;$x, $ip, $mask="255.255.255.255"&#41;;
echo '<SCRIPT LANGUAGE="JavaScript">. 
alert&#40; "It`s OK" &#41;;. 
location.href="http&#58;//test"</SCRIPT>';
$add_service = $urfa_admin->rpcf_add_service_to_user&#40;$service&#41;;
То они тоже выполняются. Видимо нужно что-то делать после работы функции, но что - не могу понять и по форуму ничего не нашел. Уважаемые гуру, помогите чайнику!
Спасибо.
Не совсем понятен вопрос.
Я вызываю эти функции одну за другой:
rpcf_delete_from_ipgroup($slink_id,$ip_address,$mask);
rpcf_add_service_to_user($service);
Ни каких ошибок. Вероятно Вы передаёте неверные параметры.

nicol@s
Сообщения: 114
Зарегистрирован: Ср окт 14, 2009 15:52

Сообщение nicol@s »

Может у меня уже глаз замылился. Код программы выглядит так:

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

$delete_from_ipgroup = $urfa_admin->rpcf_delete_from_ipgroup&#40;$x,$ip, $mask="255.255.255.255"&#41;; &#40;*1*&#41;

//Вносим изменения в текущую сервисную связку &#40;услугу "Передача IP-траффика"&#41; 
$service=array&#40;&#41;;
$service&#91;'user_id'&#93;=$user_id;
$service&#91;'account_id'&#93;=$account_id;
$service&#91;'service_type'&#93;='3'; //тип услуги &#40;3=IP traffic&#41;
$service&#91;'return_type'&#93;='integer_return';
$service&#91;'service_id'&#93;= $service_id; //ID услуги
$service&#91;'tariff_link_id'&#93;= $data&#91;'tariff_link_id'&#93;;//ID тарифной связки
$service&#91;'slink_id'&#93;= $data&#91;'id'&#93;;//ID сервисной связки
$service&#91;'is_blocked'&#93;='0';.
$service&#91;'start_date'&#93;  = time&#40;&#41;;
$service&#91;'expire_date'&#93; = mktime&#40;0, 0, 0, 1, 1, 2030&#41;;.
$service&#91;'unabon'&#93;='0';
$service&#91;'unprepay'&#93;='0';
$service&#91;'discount_period_id'&#93; = $discount_period;//Расчетный период
$service&#91;'ip_groups'&#93;=array&#40;&#41;;
$service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'ip_address'&#93;= $ip;//IP
$service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'mask'&#93;= '255.255.255.255';//MASK
$service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'mac'&#93;='';//MAC
$service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'iptraffic_login'&#93;= '1.2.3.5';
$service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'iptraffic_password'&#93;='';
$service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'iptraffic_allowed_cid'&#93;='';
$service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'ip_not_vpn'&#93;='0';
$service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'dont_use_fw'&#93;='0';
$service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'router_id'&#93;='0';
$service&#91;'quotas'&#93;=array&#40;&#41;;

$add_service = $urfa_admin->rpcf_add_service_to_user&#40;$service&#41;; &#40;*2*&#41;

//Необходимо добавить перодиечскую услугу
$service_extip=array&#40;&#41;;
$service_extip&#91;'user_id'&#93; = $user_id;
$service_extip&#91;'account_id'&#93; = $account_id;
$service_extip&#91;'service_type'&#93; = '2'; //тип услуги &#40;2=periodic service&#41;
$service_extip&#91;'return_type'&#93; ='integer_return';
$service_extip&#91;'service_id'&#93; = $extip_service_id; //ID услуги
$service_extip&#91;'tariff_link_id'&#93; = '';//ID тарифной связки
$service_extip&#91;'slink_id'&#93; = '';//ID сервисной связки
$service_extip&#91;'is_blocked'&#93; ='0';
$service_extip&#91;'start_date'&#93;  = time&#40;&#41;;
$service_extip&#91;'expire_date'&#93; = mktime&#40;0, 0, 0, 1, 1, 2030&#41;;
$service_extip&#91;'unabon'&#93; ='0';
$service_extip&#91;'unprepay'&#93; ='0';
$service_extip&#91;'discount_period_id'&#93; = $discount_period;//Расчетный период

$add_service_extip = $urfa_admin->rpcf_add_service_to_user&#40;$service_extip&#41;; &#40;*3*&#41;
При этом (*1*) и (*2*), а (*3*) выдает

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

Error calling function
Если я закомментирую (*1*) и (*2*), то (*3*) отрабатывает...
В логах при вызове функции (*3*) вижу:

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

?Debug &#58; Apr 12 15&#58;43&#58;30 RPCConn<test@127.0.0.1>&#58; Call&#58; 0x2551 &#40;rpcf_add_service_to_user&#41;
?Debug &#58; Apr 12 15&#58;43&#58;30 RPCConn<test@127.0.0.1>&#58; Real Call&#58; 0x2551 &#40;rpcf_add_service_to_user&#41;
?Debug &#58; Apr 12 15&#58;43&#58;30 UTM5 DBA&#58; DBAccess instance created
?Debug &#58; Apr 12 15&#58;43&#58;30 DBA&#58;Ctx&#58; Looking for free context &#40;system=0&#41;
?Debug &#58; Apr 12 15&#58;43&#58;30 DBA&#58;Ctx&#58; Pushing back free context &#40;system=0&#41;
-Stats &#58; Apr 12 15&#58;43&#58;30 UTM5 DBA&#58; 	Stats&#58; Uptime&#58; 00&#58;00&#58;00. Events&#58; 0; Errors&#58; 0
 ERROR &#58; Apr 12 15&#58;43&#58;30 RPCServer@0.0.0.0&#58; Exception in rpcf_add_service_to_user&#58; #22
?Debug &#58; Apr 12 15&#58;43&#58;30 RPCConn<test@127.0.0.1>&#58; Call 0x2551 &#40;rpcf_add_service_to_user&#41; finished...
Последний раз редактировалось nicol@s Пн апр 12, 2010 14:56, всего редактировалось 1 раз.

Ответить