Проблема с URFACLIENT в версии 5.3.002 update 12 обновлено

Технические вопросы по UTM 5.0
Ответить
Oleg_121
Сообщения: 81
Зарегистрирован: Пн апр 14, 2008 21:09

Проблема с URFACLIENT в версии 5.3.002 update 12 обновлено

Сообщение Oleg_121 »

Пожалуйста подскажите
В предыдущей версии была функция
<call function="rpcf_add_service_to_user">
<parameter name="is_blocked" value="0"/>
<parameter name="discount_period_id"/>
<parameter name="service_id" value="23"/>
<parameter name="service_type" value="3"/>
<!--<call function="rpcf_get_free_ips_for_house">
<parameter name="house_id"/>-->
<paremetr name="unabon" value="1"/>
<parametr name="unprepay" value="1"/>
<set src="ips_ip" dst="ip_address"/>
<parameter name="ip_address"/>
<parameter name="iptraffic_login"/>
<parameter name="iptraffic_password"/>
<!--<parameter name="ip_groups_count"/>-->
<parameter name="mac"/>


</call>
которой пользовались в самописном кабинете
сейчас пересмотрел все api.xml такой функции нет, и соответсвенно пользователи не добавляются сервисные связки и скрипт не работает!!!
какая функция сейчас используется?
Последний раз редактировалось Oleg_121 Ср фев 25, 2015 14:04, всего редактировалось 1 раз.

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

Re: Проблема с URFACLIENT в версии 5.3.002 update 12

Сообщение Magnum72 »

Oleg_121 писал(а):Пожалуйста подскажите
В предыдущей версии была функция
<call function="rpcf_add_service_to_user">
<parameter name="is_blocked" value="0"/>
<parameter name="discount_period_id"/>
<parameter name="service_id" value="23"/>
<parameter name="service_type" value="3"/>
<!--<call function="rpcf_get_free_ips_for_house">
<parameter name="house_id"/>-->
<paremetr name="unabon" value="1"/>
<parametr name="unprepay" value="1"/>
<set src="ips_ip" dst="ip_address"/>
<parameter name="ip_address"/>
<parameter name="iptraffic_login"/>
<parameter name="iptraffic_password"/>
<!--<parameter name="ip_groups_count"/>-->
<parameter name="mac"/>


</call>
которой пользовались в самописном кабинете
сейчас пересмотрел все api.xml такой функции нет, и соответсвенно пользователи не добавляются сервисные связки и скрипт не работает!!!
какая функция сейчас используется?
Для каждого типа связки своя функция теперь, пример :

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

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

olympus_crm_add_service -user_id 85 -set_tariff_id -ip_address_grey 58.58.58.58 -ip_address_vpn 158.158.158.158 -vpn_login lllllllll -vpn_password ppppppppppp -set_tel_to_login 0 -set_tel_login 1111111 -set_tel_number 22222222 -set_tel_password 333333333 -set_tel_allowed_cid 33333333

#################################################################################### -->

<!-- Zadaem glavnuy peremennye -->
  <parameter name="param_106" value=""/>
  <parameter name="param_108" value=""/>
  <parameter name="param_109" value=""/>

<!-- Zadaem osnovnie peremennie -->
  <parameter name="user_id"/>
  <parameter name="discount_period_id"/>
  <parameter name="is_blocked" value="0"/>
  <parameter name="service_id"/>
  <parameter name="service_type"/>
  <parameter name="start_date"/>
  <parameter name="expire_date"/>
  <parameter name="unabon" value="1"/>
  <parameter name="unprepay" value="1"/>
  <parameter name="change_now" value="1"/>
  <parameter name="policy_id" value="1"/>
  <parameter name="recalc_fee" value="0"/>
  <parameter name="return_type" value="integer_return"/>
  <parameter name="from_static_id" value="8"/>

<!-- Zadaem vspomogatelnie peremennie -->
  <parameter name="user_type" value=""/>
  <parameter name="city" value="1"/>
  <parameter name="autoclose_zn" value="0"/>

<!-- Zadaem massiv tarifnih planov -->
  <parameter name="tariff_id" value=""/>
  <parameter name="set_tariff_id"/>
  <parameter name="cnt"/>

<!-- Zadaem massiv sviazey nomerov s loginami planami -->
  <parameter name="set_tel_to_login"/>

<!-- Zadaem massiv peremennix dlia iptraffic -->
  <parameter name="ip_address_grey"/>
  <parameter name="ip_address_vpn"/>
  <parameter name="vpn_login"/>
  <parameter name="vpn_password"/>

<!-- Zadaem massiv peremennix dlia telephonia -->
  <parameter name="set_tel_login"/>
  <parameter name="set_tel_number"/>
  <parameter name="set_tel_password"/>
  <parameter name="set_tel_allowed_cid"/>

<!-- 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;"/>

  <for name="i" from="0" count="size&#40;set_tariff_id&#41;">

<!-- Poluchaem dannie TP -->
    <set dst="tariff_id" src="set_tariff_id" src_index="i"/>
    <set dst="cnt" value="i"/>

<!-- Vixodim iz cikla esli net TP -->
    <if variable="tariff_id" value="" condition="eq">
      <break/>
    </if>

    <call function="rpcf_get_tariff_new" output="0"/>

<!-- Dobavliaem TP abonentu -->
    <set dst="tariff_current" src="tariff_id"/>
    <set dst="tariff_next" src="tariff_id"/>
    <set dst="tariff_link_id" value="0"/>

    <call function="rpcf_link_user_tariff" output="0"/>
    <set dst="tplink_id" src="tariff_link_id"/>

<!-- Dobavliaem Service Links if Link by default -->
    <for name="j" from="0" count="services_count">
      <set dst="service_id" src="service_id_array" src_index="j"/>
      <set dst="service_type" src="service_type_array" src_index="j"/>
      <set dst="link_by_default" src="link_by_default_array" src_index="j"/>
      <if variable="link_by_default" value="1" condition="eq">

<!-- Add Once Service -->
        <if variable="service_type" value="1" condition="eq">
          <call function="rpcf_add_once_slink_ex" output="0"/>
        </if>

<!-- Add Periodic Service -->
        <if variable="service_type" value="2" condition="eq">
          <set dst="unabon" value="1"/>
          <call function="rpcf_add_periodic_slink_ex" output="0"/>
        </if>

<!-- Add IPtraffic Service -->
        <if variable="service_type" value="3" condition="eq">
          <set dst="ip" dst_index="0" src="ip_address_grey"/>
          <set dst="mask" dst_index="0" value="32"/>
          <set dst="mac" dst_index="0" value=""/>
          <set dst="allowed_cid" dst_index="0" value=""/>
          <set dst="login" dst_index="0" value=""/>
          <set dst="password" dst_index="0" value="" />
          <set dst="is_skip_radius" dst_index="0" value="1" />
          <set dst="is_skip_rfw" dst_index="0" value="" />
          <set dst="router_id" dst_index="0" value="" />
          <set dst="ip" dst_index="1" src="ip_address_vpn"/>
          <set dst="mask" dst_index="1" value="32"/>
          <set dst="mac" dst_index="1" value=""/>
          <set dst="allowed_cid" dst_index="1" value=""/>
          <set dst="login" dst_index="1" src="vpn_login"/>
          <set dst="password" dst_index="1" src="vpn_password"/>
          <set dst="is_skip_radius" dst_index="1" value="0" />
          <set dst="is_skip_rfw" dst_index="1" value="" />
          <set dst="router_id" dst_index="1" value="" />
          <set dst="ip_groups_count" value="size&#40;ip&#41;"/>
          <set dst="quotas_count" value="size&#40;quota&#41;"/>
          <call function="rpcf_add_iptraffic_service_link_ipv6" output="0"/>
          <remove name="ip"/>
          <remove name="mask"/>
          <remove name="mac"/>
          <remove name="allowed_cid"/>
          <remove name="login"/>
          <remove name="password"/>
          <remove name="is_skip_radius"/>
          <remove name="is_skip_rfw"/>
          <remove name="router_id"/>
        </if>

<!-- Add Telephone Service -->
        <if variable="service_type" value="6" condition="eq">

          <for name="t" from="0" count="size&#40;set_tel_to_login&#41;">
            <set dst="t_tmp" src="set_tel_to_login" src_index="t"/>

            <if variable="t_tmp" value="cnt" condition="eq">
              <set dst="s" value="size&#40;number&#41;"/>
              <set dst="login" dst_index="s" src="set_tel_login" src_index="cnt"/>
              <set dst="number" dst_index="s" src="set_tel_number" src_index="t"/>
              <set dst="password" dst_index="s" src="set_tel_password" src_index="t"/>
              <set dst="allowed_cid" dst_index="s" src="set_tel_allowed_cid" src_index="t"/>
              <set dst="incoming_trunk" dst_index="s" src="set_tel_number" src_index="t"/>
              <set dst="outgoing_trunk" dst_index="s" value=""/>
              <set dst="pbx_id" dst_index="s" value=""/>
            </if>

          </for>

          <set dst="incoming_trunk" dst_index="0" value=""/>
          <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>

      </if>

    </for>

  </for>

</urfa>

Oleg_121
Сообщения: 81
Зарегистрирован: Пн апр 14, 2008 21:09

Сообщение Oleg_121 »

Проблема не решена и не может быть решена как мне кажется изза определенного бага в ядре ( ИМХО)



Это баг или мне кажется
, долго разбирались почему не добавляется сервисная связка, причем в некоторых случаях она не добавляется и через админку
видим вот что
eb 16 21:22:41 ERROR : aed05740 IPaddressClassifierImpl: add_ip: IP 10.255.112.0/20 intersects with 10.255.128.0/19 slink_id 58021
Feb 16 21:22:41 ERROR : aed05740 IPaddressClassifierImpl: add_ip: IP 10.254.32.0/19 intersects with 10.254.64.0/19 slink_id 58021
Feb 25 12:37:46 ERROR : 110e9700 IPaddressClassifierImpl: add_ip: IP 10.254.32.0/19 intersects with 10.254.64.0/19 slink_id 58021
Feb 25 12:48:27 ERROR : 10d9e700 IPaddressClassifierImpl: add_ip: IP 10.255.112.0/20 intersects with 10.255.128.0/19 slink_id 58021
Feb 25 12:52:35 ERROR : 10d9e700 IPaddressClassifierImpl: add_ip: IP 10.254.32.0/20 intersects with 10.254.64.0/19 slink_id 58021
Feb 25 12:59:58 ERROR : baeed700 IPaddressClassifierImpl: add_ip: IP 10.254.64.0/19 intersects with 10.254.32.0/19 slink_id 116542
10.254.32.0/19 intersects with 10.254.64.0/19

то есть видим что калькулятор сетей ( очевидно он есть в ядре)считает что сети пересекаются, хотя такого нет , что видно из IP

Для пояснения, работаем с привязкой сетей к домам с выдачей статического IP клиенту в определенном доме, при обновлении начались эти проблемы.

Поэтому не работает скрипт который приведен в теме

Ответить