urfaclient на php

Вопросы по сопутствующим продуктам производства партнеров
Ответить
swibl
Сообщения: 17
Зарегистрирован: Вт июн 30, 2009 08:21

Сообщение swibl »

Вот тут http://wiki.flintnet.ru/doku.php?id=fun ... _id_0x2702
urfa_get_data() вызывается 2 раза, это значит что функция написана под старый вариант?

На вики на данный момент выложен клиент с новом вариантом?

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

swibl писал(а):Вот тут http://wiki.flintnet.ru/doku.php?id=fun ... _id_0x2702
urfa_get_data() вызывается 2 раза, это значит что функция написана под старый вариант?

На вики на данный момент выложен клиент с новом вариантом?
Вот на этой странице http://wiki.flintnet.ru/doku.php?id=urfaclient_php в дискуссии написано предупреждение о старой/новой функции.

swibl
Сообщения: 17
Зарегистрирован: Вт июн 30, 2009 08:21

Сообщение swibl »

Kayfolom писал(а):
swibl писал(а):Вот тут http://wiki.flintnet.ru/doku.php?id=fun ... _id_0x2702
urfa_get_data() вызывается 2 раза, это значит что функция написана под старый вариант?

На вики на данный момент выложен клиент с новом вариантом?
Вот на этой странице http://wiki.flintnet.ru/doku.php?id=urfaclient_php в дискуссии написано предупреждение о старой/новой функции.
Ну предупреждение я видел :) Просто хотел разобраться в каких функциях старый код а в каких новый, и какие изменения надо вносить чтобы функции стали работать с новой urfa_get_data()

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

На http://wiki.flintnet.ru/doku.php?id=urf ... ection.php сделал обе функции urfa_get_data. Новая версия закомментирована. Так что кому какую надо , ту и используйте.

Ссылка на пост о создании новой функции viewtopic.php?p=41627#41627

Надо бы все функции перевести на единственный вызов urfa_get_data, но нет пока времени. Может кто займется?

swibl
Сообщения: 17
Зарегистрирован: Вт июн 30, 2009 08:21

Сообщение swibl »

Нужно просто убрать все, кроме первого, вызовы urfa_get_data() ? (судя по посту viewtopic.php?p=41627#41627 )
Если так, то много времени это не должно занять, могу заняться

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

swibl писал(а):Нужно просто убрать все, кроме первого, вызовы urfa_get_data() ? (судя по посту viewtopic.php?p=41627#41627 )
Если так, то много времени это не должно занять, могу заняться
Ок. Но желательно проверить работу хотя бы части измененных функций, если конечно не затруднит.

Pei0t
Сообщения: 258
Зарегистрирован: Чт дек 13, 2007 20:48

Сообщение Pei0t »

Какие функции требуются для созданию блокировки/снятия блокировки и вкл/выкл статуса интернета?

swibl
Сообщения: 17
Зарегистрирован: Вт июн 30, 2009 08:21

Сообщение swibl »

<function name="rpcf_block_account" id="0x2037">
<function name="rpcf_change_intstat_for_user" id="0x2003">

CooLeR519
Сообщения: 2
Зарегистрирован: Ср июл 22, 2009 13:19

Сообщение CooLeR519 »

А какие функции требуются для формирования отчета по VPN-сессиям (время подключения/отключения, кол-во входящего/исходящего трафика за сессию и ее длина)?

swibl
Сообщения: 17
Зарегистрирован: Вт июн 30, 2009 08:21

Сообщение swibl »

Ошибки валятся после функции "rpcf_unlink_user_tariff". Все что вызывается после нее - не выполняется. Кому-то приходилось с ней работать?

swibl
Сообщения: 17
Зарегистрирован: Вт июн 30, 2009 08:21

Сообщение swibl »

swibl писал(а):Ошибки валятся после функции "rpcf_unlink_user_tariff". Все что вызывается после нее - не выполняется. Кому-то приходилось с ней работать?
Решил проблему. Хоть функция и не возвращает ничего, urfa_get_data() в конце все равно необходимо вызывать. Попровил в вики. Будьте внимаетльны в других функциях с пустым <output />

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

swibl писал(а):
swibl писал(а):Ошибки валятся после функции "rpcf_unlink_user_tariff". Все что вызывается после нее - не выполняется. Кому-то приходилось с ней работать?
Решил проблему. Хоть функция и не возвращает ничего, urfa_get_data() в конце все равно необходимо вызывать. Попровил в вики. Будьте внимаетльны в других функциях с пустым <output />
Хоть со старой get_data, хоть с новой, минимум один вызов нужен все равно. Клиент в любом случае проверяет выполнена функция или нет.

Если кто еще новый вариант get_data не юзает, и лезут косяки с вызовами, это говорит о том, что либо переборщили с вызовами, либо не вызвали ее в нужном месте. Это для тех, кто поиск не любит юзать :)

swibl
Сообщения: 17
Зарегистрирован: Вт июн 30, 2009 08:21

Сообщение swibl »

ds писал(а):
swibl писал(а):
swibl писал(а):Ошибки валятся после функции "rpcf_unlink_user_tariff". Все что вызывается после нее - не выполняется. Кому-то приходилось с ней работать?
Решил проблему. Хоть функция и не возвращает ничего, urfa_get_data() в конце все равно необходимо вызывать. Попровил в вики. Будьте внимаетльны в других функциях с пустым <output />
Хоть со старой get_data, хоть с новой, минимум один вызов нужен все равно. Клиент в любом случае проверяет выполнена функция или нет.

Если кто еще новый вариант get_data не юзает, и лезут косяки с вызовами, это говорит о том, что либо переборщили с вызовами, либо не вызвали ее в нужном месте. Это для тех, кто поиск не любит юзать :)
Начал комментировать в вики лишние вызовы и добавлять недостающие :)

sup
Сообщения: 10
Зарегистрирован: Чт апр 30, 2009 04:59

Сообщение sup »

sup писал(а):

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

function rpcf_add_telephony_service&#40;$service&#41; &#123; //0x5055

                if &#40;!$this->connection->urfa_call&#40;0x5055&#41;&#41; &#123;
                        print "Error calling function ". __FUNCTION__ ."\n";
                        return FALSE;
                &#125;
                $packet = $this->connection->getPacket&#40;&#41;;
                $packet->DataSetInt&#40;$service&#91;'parent_id'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'tariff_id'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'service_id'&#93;&#41;;
                $packet->DataSetString&#40;$service&#91;'service_name'&#93;&#41;;
                $packet->DataSetString&#40;$service&#91;'comment'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'link_by_default'&#93;&#41;;
                $packet->DataSetDouble&#40;$service&#91;'cost'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'discount_method'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'start_date'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'expire_date'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'radius_sessions_limit'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'count'&#93;&#41;;
                    for &#40;$i=0;$i<$service&#91;'count'&#93;;$i++&#41; &#123;
                         $packet->DataSetInt&#40;$service&#91;$i&#93;&#91;'borders_count'&#93;&#41;;

                            for &#40;$j=0;$j<$service&#91;$i&#93;&#91;'borders_count'&#93;;$j++&#41; &#123;

         $packet->DataSetInt&#40;$service&#91;$i&#93;&#91;'borders'&#93;&#91;$j&#93;&#91;'tarif_quantity'&#93;&#41;;//
         $packet->DataSetDouble&#40;$service&#91;$i&#93;&#91;'borders'&#93;&#91;$j&#93;&#91;'cost'&#93;&#41;;
                                &#125;

                                 $packet->DataSetInt&#40;$service&#91;$i&#93;&#91;'directions'&#93;&#41;;
         $packet->DataSetInt&#40;$service&#91;$i&#93;&#91;'timerange_count'&#93;&#41;;
//Нужен цикл если параметров >1.

        $packet->DataSetInt&#40;$service&#91;$i&#93;&#91;'timerange'&#93;&#91;'timerange_id'&#93;&#41;;
        $packet->DataSetDouble&#40;&#40;float&#41;$service&#91;$i&#93;&#91;'timerange'&#93;&#91;'cost'&#93;&#41;;
                        &#125;
                        $packet->DataSetLong&#40;$service&#91;'unit_size'&#93;&#41;;
                        $packet->DataSetLong&#40;$service&#91;'free_time'&#93;&#41;;
                        $packet->DataSetLong&#40;$service&#91;'first_interval'&#93;&#41;;
                        $packet->DataSetLong&#40;$service&#91;'first_interval_around'&#93;&#41;;
                        $packet->DataSetLong&#40;$service&#91;'incremental_interval'&#93;&#41;;
                        $packet->DataSetDouble&#40;$service&#91;'fixed_call_cost'&#93;&#41;;

                $this->connection->urfa_send_param&#40;$packet&#41;;

                if &#40;$x = $this->connection->urfa_get_data&#40;&#41;&#41; &#123;
                        $service_id = $x->DataGetInt&#40;&#41;;
                &#125;
                return $service_id;
        &#125;
Собственно вот но есть одна проблема, при передаче свыше 509 направлений urfa_send_param отрабатывает но утмка вылетает с исключением #22 в rpcf_add_telephony_service, как это побороть я незнаю, повидимому нужно как то оное передавать немного по другому когда парметров достаточно много.... если оное не исправить то особого толку в этой функции нету.... т.к. 509 это маловато собственно.
ds - помоги если время есть:)
ds - помоги если время есть:)

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

sup писал(а):
sup писал(а):

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

function rpcf_add_telephony_service&#40;$service&#41; &#123; //0x5055

                if &#40;!$this->connection->urfa_call&#40;0x5055&#41;&#41; &#123;
                        print "Error calling function ". __FUNCTION__ ."\n";
                        return FALSE;
                &#125;
                $packet = $this->connection->getPacket&#40;&#41;;
                $packet->DataSetInt&#40;$service&#91;'parent_id'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'tariff_id'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'service_id'&#93;&#41;;
                $packet->DataSetString&#40;$service&#91;'service_name'&#93;&#41;;
                $packet->DataSetString&#40;$service&#91;'comment'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'link_by_default'&#93;&#41;;
                $packet->DataSetDouble&#40;$service&#91;'cost'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'discount_method'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'start_date'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'expire_date'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'radius_sessions_limit'&#93;&#41;;
                $packet->DataSetInt&#40;$service&#91;'count'&#93;&#41;;
                    for &#40;$i=0;$i<$service&#91;'count'&#93;;$i++&#41; &#123;
                         $packet->DataSetInt&#40;$service&#91;$i&#93;&#91;'borders_count'&#93;&#41;;

                            for &#40;$j=0;$j<$service&#91;$i&#93;&#91;'borders_count'&#93;;$j++&#41; &#123;

         $packet->DataSetInt&#40;$service&#91;$i&#93;&#91;'borders'&#93;&#91;$j&#93;&#91;'tarif_quantity'&#93;&#41;;//
         $packet->DataSetDouble&#40;$service&#91;$i&#93;&#91;'borders'&#93;&#91;$j&#93;&#91;'cost'&#93;&#41;;
                                &#125;

                                 $packet->DataSetInt&#40;$service&#91;$i&#93;&#91;'directions'&#93;&#41;;
         $packet->DataSetInt&#40;$service&#91;$i&#93;&#91;'timerange_count'&#93;&#41;;
//Нужен цикл если параметров >1.

        $packet->DataSetInt&#40;$service&#91;$i&#93;&#91;'timerange'&#93;&#91;'timerange_id'&#93;&#41;;
        $packet->DataSetDouble&#40;&#40;float&#41;$service&#91;$i&#93;&#91;'timerange'&#93;&#91;'cost'&#93;&#41;;
                        &#125;
                        $packet->DataSetLong&#40;$service&#91;'unit_size'&#93;&#41;;
                        $packet->DataSetLong&#40;$service&#91;'free_time'&#93;&#41;;
                        $packet->DataSetLong&#40;$service&#91;'first_interval'&#93;&#41;;
                        $packet->DataSetLong&#40;$service&#91;'first_interval_around'&#93;&#41;;
                        $packet->DataSetLong&#40;$service&#91;'incremental_interval'&#93;&#41;;
                        $packet->DataSetDouble&#40;$service&#91;'fixed_call_cost'&#93;&#41;;

                $this->connection->urfa_send_param&#40;$packet&#41;;

                if &#40;$x = $this->connection->urfa_get_data&#40;&#41;&#41; &#123;
                        $service_id = $x->DataGetInt&#40;&#41;;
                &#125;
                return $service_id;
        &#125;
Собственно вот но есть одна проблема, при передаче свыше 509 направлений urfa_send_param отрабатывает но утмка вылетает с исключением #22 в rpcf_add_telephony_service, как это побороть я незнаю, повидимому нужно как то оное передавать немного по другому когда парметров достаточно много.... если оное не исправить то особого толку в этой функции нету.... т.к. 509 это маловато собственно.
ds - помоги если время есть:)
ds - помоги если время есть:)
Посмотрел :) . Может есть смысл в циклы разделить for 0 .. 500 и так далее? Может это ограничение протокола такое, раз предыдущие 509 отрабатывают. У меня просто проверять не на чем.

Ответить