UTM-5.002 URFA отсутствует функция
UTM-5.002 URFA отсутствует функция
Пытаюсь на тариф клиенту навешать сервисы, которые привязаны к тарифу через URFA-клиента и наткнулся на такую проблему, в дистрибутиве отсутствует функция rpcf_add_service_to_user. В Админке UTM в системных группах все галочки стоят, но этой функции там нет, её кодовый номер 2551, хотя 2550 и 2552 там есть. Что делать?
Re: UTM-5.002 URFA отсутствует функция
Она года два как отменена. Самый правильный способ выяснить номера рекомендованных функций , это открывать лог админки и смотреть какие функции вызываются при совершении каких либо действий. Но запоминаем только номера функций, названия часто не соответствуют.Vital писал(а):Пытаюсь на тариф клиенту навешать сервисы, которые привязаны к тарифу через URFA-клиента и наткнулся на такую проблему, в дистрибутиве отсутствует функция rpcf_add_service_to_user. В Админке UTM в системных группах все галочки стоят, но этой функции там нет, её кодовый номер 2551, хотя 2550 и 2552 там есть. Что делать?
Вот скрипт который переносит сервисы с одного пользователя на другого (для примера, особенно обратите внимание на телефонию, там бардак с названиями массивов)
[/code]
Код: Выделить всё
<?xml version="1.0"?>
<urfa>
<!-- ######################### USAGE: ##############################################
move_services_to_other_user -old_user_id -new_user_id
#################################################################################### -->
<parameter name="user_id"/>
<parameter name="old_user_id"/>
<parameter name="new_user_id"/>
<parameter name="account_id"/>
<parameter name="old_account_id"/>
<parameter name="new_account_id"/>
<parameter name="is_blocked"/>
<parameter name="group_id"/>
<parameter name="tariff_link_id"/>
<parameter name="tariff_next"/>
<parameter name="tariff_current"/>
<parameter name="change_now" value="1"/>
<parameter name="service_id" value=""/>
<parameter name="service_type" value=""/>
<parameter name="discount_period_id"/>
<parameter name="return_type" value="integer_return"/>
<parameter name="from_static_id" value="8"/>
<parameter name="recalc_fee" value="0"/>
<parameter name="start_date"/>
<parameter name="expire_date"/>
<parameter name="what" value="0"/>
<!-- START script -->
<set dst="user_id" src="old_user_id"/>
<set dst="comment" value="Start URFA script 'move_tel_to_other_user'"/>
<call function="rpcf_add_user_log" output="0"/>
<!-- Poluchaem diskontniy period -->
<call function="rpcf_get_discount_periods" output="0"/>
<for name="i" from="0" count="discount_periods_count">
<set dst="static_id_tmp" src="static_id" src_index="i"/>
<if variable="from_static_id" value="static_id_tmp" condition="eq">
<set dst="find_discount_period_id" src="discount_period_id" src_index="i"/>
<break/>
</if>
</for>
<remove name="discount_period_id"/>
<set dst="discount_period_id" src="find_discount_period_id"/>
<set dst="start_date" value="now()"/>
<set dst="expire_date" value="max_time()"/>
<!-- Poluchaem informatciu o polzovateliax -->
<set dst="user_id" src="old_user_id"/>
<call function="rpcf_get_userinfo" output="0"/>
<set dst="old_account_id" src="basic_account"/>
<set dst="user_id" src="new_user_id"/>
<call function="rpcf_get_userinfo" output="0"/>
<set dst="new_account_id" src="basic_account"/>
<!-- Poluchaem spisok texparametrov u starogo usera -->
<set dst="user_id" src="old_user_id"/>
<set dst="account_id" src="old_account_id"/>
<call function="rpcf_get_tech_param_by_uid" output="0"/>
<for name="x" from="0" count="size_vec_ltp">
<set dst="techparam_type_id" dst_index="x" src="type_id" src_index="0,x"/>
</for>
<for name="x" from="0" count="size_vec_ltp">
<set dst="techparam_param" dst_index="x" src="param" src_index="0,x"/>
</for>
<for name="x" from="0" count="size_vec_ltp">
<set dst="techparam_reg_date" dst_index="x" src="reg_date" src_index="0,x"/>
</for>
<for name="x" from="0" count="size_vec_ltp">
<set dst="techparam_old_slink_id" dst_index="x" src="slink_id" src_index="0,x"/>
</for>
<for name="x" from="0" count="size_vec_ltp">
<set dst="techparam_passwd" dst_index="x" src="password" src_index="0,x"/>
</for>
<remove name="id"/>
<remove name="type_id"/>
<remove name="type_name"/>
<remove name="param"/>
<remove name="reg_date"/>
<remove name="slink_id"/>
<remove name="service_name"/>
<remove name="password"/>
<!-- Poluchaem spisok tarifov u starogo usera i sozdaem ix u novogo -->
<call function="rpcf_get_user_tariffs" output="0"/>
<for name="i" from="0" count="user_tariffs_size">
<set dst="user_id" src="new_user_id"/>
<set dst="account_id" src="new_account_id"/>
<set dst="tariff_current" src="tariff_current_array" src_index="i"/>
<set dst="tariff_next" src="tariff_next_array" src_index="i"/>
<set dst="tariff_link_id" value="0"/>
<call function="rpcf_link_user_tariff" output="0"/>
<set dst="new_tariff_link_id" dst_index="i" src="tariff_link_id" />
</for>
<!-- Poluchaem spisok uslug u starogo usera, ydaliaem u starogo i dobavliaem novomu -->
<set dst="user_id" src="old_user_id"/>
<set dst="account_id" src="old_account_id"/>
<call function="rpcf_get_all_services_for_user" output="0"/>
<for name="i" from="0" count="slink_id_count">
<set dst="service_id" src="service_id_array" src_index="i"/>
<set dst="service_type" src="service_type_array" src_index="i"/>
<set dst="slink_id" src="slink_id_array" src_index="i"/>
<set dst="tariff_link_id" value="0"/>
<set dst="tplink_id" value="0"/>
<if variable="service_type" value="2" condition="eq">
<call function="rpcf_get_periodic_service_link" output="0"/>
</if>
<if variable="service_type" value="3" condition="eq">
<call function="rpcf_get_iptraffic_service_link_ipv6" output="0"/>
</if>
<if variable="service_type" value="6" condition="eq">
<set dst="slinkId" src="slink_id"/>
<call function="rpcf_get_tel_service_link" output="0"/>
</if>
<if variable="tariff_link_id" value="0" condition="ne">
<for name="i" from="0" count="user_tariffs_size">
<set dst="tmp_tariff_link_id" src="tariff_link_id_array" src_index="i"/>
<if variable="tmp_tariff_link_id" value="tariff_link_id" condition="eq">
<set dst="tariff_link_id" src="new_tariff_link_id" src_index="i"/>
<set dst="tplink_id" src="new_tariff_link_id" src_index="i"/>
<break/>
</if>
</for>
</if>
<set dst="tmp_slink_id" src="slink_id"/>
<call function="rpcf_delete_slink" output="0"/>
<set dst="user_id" src="new_user_id"/>
<set dst="account_id" src="new_account_id"/>
<if variable="service_type" value="2" condition="eq">
<call function="rpcf_add_periodic_slink_ex" output="0"/>
</if>
<if variable="service_type" value="3" condition="eq">
<for name="x" from="0" count="ip_groups_count">
<set dst="ip" dst_index="x" src="ip_address" src_index="x"/>
</for>
<for name="x" from="0" count="ip_groups_count">
<set dst="login" dst_index="x" src="iptraffic_login" src_index="x"/>
</for>
<for name="x" from="0" count="ip_groups_count">
<set dst="password" dst_index="x" src="iptraffic_password" src_index="x"/>
</for>
<for name="x" from="0" count="ip_groups_count">
<set dst="allowed_cid" dst_index="x" src="iptraffic_allowed_cid" src_index="x"/>
</for>
<for name="x" from="0" count="ip_groups_count">
<set dst="is_skip_radius" dst_index="x" src="ip_not_vpn" src_index="x"/>
</for>
<for name="x" from="0" count="ip_groups_count">
<set dst="is_skip_rfw" dst_index="x" src="dont_use_fw" src_index="x"/>
</for>
<for name="x" from="0" count="ip_groups_count">
<set dst="is_skip_rfw" dst_index="x" src="dont_use_fw" src_index="x"/>
</for>
<for name="x" from="0" count="quotas_count">
<set dst="tc_id" dst_index="x" src="tclass_id" src_index="x"/>
</for>
<call function="rpcf_add_iptraffic_service_link_ipv6" output="0"/>
<remove name="ip_address"/>
<remove name="ip"/>
<remove name="mask"/>
<remove name="mac"/>
<remove name="iptraffic_login"/>
<remove name="login"/>
<remove name="iptraffic_password"/>
<remove name="password"/>
<remove name="iptraffic_allowed_cid"/>
<remove name="cid"/>
<remove name="ip_not_vpn"/>
<remove name="is_skip_radius"/>
<remove name="dont_use_fw"/>
<remove name="is_skip_rfw"/>
<remove name="router_id"/>
<remove name="tclass_id"/>
<remove name="tclass_name"/>
<remove name="quota"/>
<remove name="item_id"/>
<remove name="number"/>
<remove name="login"/>
<remove name="password"/>
<remove name="allowed_cid"/>
<remove name="tclass_id"/>
<remove name="tc_id"/>
<remove name="quota"/>
</if>
<if variable="service_type" value="6" condition="eq">
<set dst="login_count" value="size(login)"/>
<call function="rpcf_add_tel_service_link" output="0"/>
<remove name="login"/>
<remove name="number"/>
<remove name="password"/>
<remove name="allowed_cid"/>
<remove name="incoming_trunk"/>
<remove name="outgoing_trunk"/>
<remove name="pbx_id"/>
</if>
<for name="x" from="0" count="size_vec_ltp">
<set dst="tmp_techparam_old_slink_id" src="techparam_old_slink_id" src_index="x"/>
<if variable="tmp_techparam_old_slink_id" value="tmp_slink_id" condition="eq">
<set dst="type_id" src="techparam_type_id" src_index="x"/>
<set dst="param" src="techparam_param" src_index="x"/>
<set dst="reg_date" src="techparam_reg_date" src_index="x"/>
<set dst="passwd" src="techparam_passwd" src_index="x"/>
<call function="rpcf_add_tech_param" output="0"/>
</if>
</for>
</for>
<!-- Razblokiruem akkaunt -->
<call function="rpcf_get_accountinfo" output="0"/>
<if variable="is_blocked" value="0" condition="ne">
<if variable="self_block_id" value="0" condition="ne">
<set dst="id" src="self_block_id"/>
<call function="rpcf_delete_block" output="0"/>
</if>
<set dst="is_blocked" value="0"/>
<call function="rpcf_save_account" output="0"/>
</if>
<!-- Poluchaem spisok tp u starogo usera ydalaem ix -->
<set dst="user_id" src="old_user_id"/>
<set dst="account_id" src="old_account_id"/>
<call function="rpcf_get_user_tariffs" output="0"/>
<for name="i" from="0" count="user_tariffs_size">
<set dst="tariff_link_id" src="tariff_link_id_array" src_index="i"/>
<call function="rpcf_unlink_user_tariff" output="0"/>
</for>
</urfa>