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

На http://wiki.flintnet.ru/doku.php?id=urf ... ection.php сделал обе функции urfa_get_data. Новая версия закомментирована. Так что кому какую надо , ту и используйте.
Ссылка на пост о создании новой функции viewtopic.php?p=41627#41627
Надо бы все функции перевести на единственный вызов urfa_get_data, но нет пока времени. Может кто займется?
Ссылка на пост о создании новой функции viewtopic.php?p=41627#41627
Надо бы все функции перевести на единственный вызов urfa_get_data, но нет пока времени. Может кто займется?
Нужно просто убрать все, кроме первого, вызовы urfa_get_data() ? (судя по посту viewtopic.php?p=41627#41627 )
Если так, то много времени это не должно занять, могу заняться
Если так, то много времени это не должно занять, могу заняться
Ок. Но желательно проверить работу хотя бы части измененных функций, если конечно не затруднит.swibl писал(а):Нужно просто убрать все, кроме первого, вызовы urfa_get_data() ? (судя по посту viewtopic.php?p=41627#41627 )
Если так, то много времени это не должно занять, могу заняться
Решил проблему. Хоть функция и не возвращает ничего, urfa_get_data() в конце все равно необходимо вызывать. Попровил в вики. Будьте внимаетльны в других функциях с пустым <output />swibl писал(а):Ошибки валятся после функции "rpcf_unlink_user_tariff". Все что вызывается после нее - не выполняется. Кому-то приходилось с ней работать?
Хоть со старой get_data, хоть с новой, минимум один вызов нужен все равно. Клиент в любом случае проверяет выполнена функция или нет.swibl писал(а):Решил проблему. Хоть функция и не возвращает ничего, urfa_get_data() в конце все равно необходимо вызывать. Попровил в вики. Будьте внимаетльны в других функциях с пустым <output />swibl писал(а):Ошибки валятся после функции "rpcf_unlink_user_tariff". Все что вызывается после нее - не выполняется. Кому-то приходилось с ней работать?
Если кто еще новый вариант get_data не юзает, и лезут косяки с вызовами, это говорит о том, что либо переборщили с вызовами, либо не вызвали ее в нужном месте. Это для тех, кто поиск не любит юзать

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

ds - помоги если время есть:)sup писал(а):Собственно вот но есть одна проблема, при передаче свыше 509 направлений urfa_send_param отрабатывает но утмка вылетает с исключением #22 в rpcf_add_telephony_service, как это побороть я незнаю, повидимому нужно как то оное передавать немного по другому когда парметров достаточно много.... если оное не исправить то особого толку в этой функции нету.... т.к. 509 это маловато собственно.Код: Выделить всё
function rpcf_add_telephony_service($service) { //0x5055 if (!$this->connection->urfa_call(0x5055)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $packet = $this->connection->getPacket(); $packet->DataSetInt($service['parent_id']); $packet->DataSetInt($service['tariff_id']); $packet->DataSetInt($service['service_id']); $packet->DataSetString($service['service_name']); $packet->DataSetString($service['comment']); $packet->DataSetInt($service['link_by_default']); $packet->DataSetDouble($service['cost']); $packet->DataSetInt($service['discount_method']); $packet->DataSetInt($service['start_date']); $packet->DataSetInt($service['expire_date']); $packet->DataSetInt($service['radius_sessions_limit']); $packet->DataSetInt($service['count']); for ($i=0;$i<$service['count'];$i++) { $packet->DataSetInt($service[$i]['borders_count']); for ($j=0;$j<$service[$i]['borders_count'];$j++) { $packet->DataSetInt($service[$i]['borders'][$j]['tarif_quantity']);// $packet->DataSetDouble($service[$i]['borders'][$j]['cost']); } $packet->DataSetInt($service[$i]['directions']); $packet->DataSetInt($service[$i]['timerange_count']); //Нужен цикл если параметров >1. $packet->DataSetInt($service[$i]['timerange']['timerange_id']); $packet->DataSetDouble((float)$service[$i]['timerange']['cost']); } $packet->DataSetLong($service['unit_size']); $packet->DataSetLong($service['free_time']); $packet->DataSetLong($service['first_interval']); $packet->DataSetLong($service['first_interval_around']); $packet->DataSetLong($service['incremental_interval']); $packet->DataSetDouble($service['fixed_call_cost']); $this->connection->urfa_send_param($packet); if ($x = $this->connection->urfa_get_data()) { $service_id = $x->DataGetInt(); } return $service_id; }
ds - помоги если время есть:)
Посмотрелsup писал(а):ds - помоги если время есть:)sup писал(а):Собственно вот но есть одна проблема, при передаче свыше 509 направлений urfa_send_param отрабатывает но утмка вылетает с исключением #22 в rpcf_add_telephony_service, как это побороть я незнаю, повидимому нужно как то оное передавать немного по другому когда парметров достаточно много.... если оное не исправить то особого толку в этой функции нету.... т.к. 509 это маловато собственно.Код: Выделить всё
function rpcf_add_telephony_service($service) { //0x5055 if (!$this->connection->urfa_call(0x5055)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $packet = $this->connection->getPacket(); $packet->DataSetInt($service['parent_id']); $packet->DataSetInt($service['tariff_id']); $packet->DataSetInt($service['service_id']); $packet->DataSetString($service['service_name']); $packet->DataSetString($service['comment']); $packet->DataSetInt($service['link_by_default']); $packet->DataSetDouble($service['cost']); $packet->DataSetInt($service['discount_method']); $packet->DataSetInt($service['start_date']); $packet->DataSetInt($service['expire_date']); $packet->DataSetInt($service['radius_sessions_limit']); $packet->DataSetInt($service['count']); for ($i=0;$i<$service['count'];$i++) { $packet->DataSetInt($service[$i]['borders_count']); for ($j=0;$j<$service[$i]['borders_count'];$j++) { $packet->DataSetInt($service[$i]['borders'][$j]['tarif_quantity']);// $packet->DataSetDouble($service[$i]['borders'][$j]['cost']); } $packet->DataSetInt($service[$i]['directions']); $packet->DataSetInt($service[$i]['timerange_count']); //Нужен цикл если параметров >1. $packet->DataSetInt($service[$i]['timerange']['timerange_id']); $packet->DataSetDouble((float)$service[$i]['timerange']['cost']); } $packet->DataSetLong($service['unit_size']); $packet->DataSetLong($service['free_time']); $packet->DataSetLong($service['first_interval']); $packet->DataSetLong($service['first_interval_around']); $packet->DataSetLong($service['incremental_interval']); $packet->DataSetDouble($service['fixed_call_cost']); $this->connection->urfa_send_param($packet); if ($x = $this->connection->urfa_get_data()) { $service_id = $x->DataGetInt(); } return $service_id; }
ds - помоги если время есть:)
