UTM-5.002 URFA отсутствует функция

Технические вопросы по UTM 5.0
Ответить
Vital
Сообщения: 1
Зарегистрирован: Пт ноя 27, 2015 06:27

UTM-5.002 URFA отсутствует функция

Сообщение Vital »

Пытаюсь на тариф клиенту навешать сервисы, которые привязаны к тарифу через URFA-клиента и наткнулся на такую проблему, в дистрибутиве отсутствует функция rpcf_add_service_to_user. В Админке UTM в системных группах все галочки стоят, но этой функции там нет, её кодовый номер 2551, хотя 2550 и 2552 там есть. Что делать?

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Re: UTM-5.002 URFA отсутствует функция

Сообщение Magnum72 »

Vital писал(а):Пытаюсь на тариф клиенту навешать сервисы, которые привязаны к тарифу через URFA-клиента и наткнулся на такую проблему, в дистрибутиве отсутствует функция rpcf_add_service_to_user. В Админке UTM в системных группах все галочки стоят, но этой функции там нет, её кодовый номер 2551, хотя 2550 и 2552 там есть. Что делать?
Она года два как отменена. Самый правильный способ выяснить номера рекомендованных функций , это открывать лог админки и смотреть какие функции вызываются при совершении каких либо действий. Но запоминаем только номера функций, названия часто не соответствуют.

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

Вот скрипт который переносит сервисы с одного пользователя на другого (для примера, особенно обратите внимание на телефонию, там бардак с названиями массивов)

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

<?xml version="1.0"?>
<urfa>
<!-- ######################### USAGE&#58; ##############################################

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&#40;&#41;"/>
  <set dst="expire_date" value="max_time&#40;&#41;"/>

<!-- 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&#40;login&#41;"/>
      <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>
[/code]

Ответить