URFAClient PHP на основе api.xml (UTM 5.2.1-008+, 5.3+)

Вопросы по сопутствующим продуктам производства партнеров
Cramac
Сообщения: 454
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

покопался, замутил такое
<function name="rpcf_user5_get_turbo_mode_settings" id="-0x1200c">
<input>
<integer name="slink_id"/>
</input>
<output>
<integer name="cnt"/>
<for name="i" from="0" count="cnt">
<integer name="id" array_index="i"/>
<string name="name" array_index="i"/>
<integer name="incoming_rate" array_index="i"/>
<integer name="outgoing_rate" array_index="i"/>
<integer name="duration" array_index="i"/>
<long name="incoming_limit" array_index="i"/>
<long name="outgoing_limit" array_index="i"/>
<double name="cost" array_index="i"/>
</for>
</output>
</function>
но что то съезжают поля, что то там не то...

код из ЛК УТМ

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

                $this->urfa->call&#40;-0x1200c&#41;;
                $this->urfa->put_int&#40;$this->slink_id&#41;;
                $this->urfa->send&#40;&#41;;

                $modesCnt = $this->urfa->get_int&#40;&#41;;

                $modes = array&#40;&#41;;

                for&#40;$m = 0; $m < $modesCnt; $m++&#41;&#123;
                    $modes&#91;$m&#93; = array&#40;&#41;;
                    $modes&#91;$m&#93;&#91;'id'&#93; = $this->urfa->get_int&#40;&#41;;
                    $modes&#91;$m&#93;&#91;'name'&#93; = $this->urfa->get_string&#40;&#41;;
                    $modes&#91;$m&#93;&#91;'incoming_rate'&#93; = $this->urfa->get_int&#40;&#41;;
                    $modes&#91;$m&#93;&#91;'outgoing_rate'&#93; = $this->urfa->get_int&#40;&#41;;

                    if&#40;$modes&#91;$m&#93;&#91;'incoming_rate'&#93; == 0&#41;
                        $modes&#91;$m&#93;&#91;'incoming_rate'&#93; = $modes&#91;$m&#93;&#91;'outgoing_rate'&#93;;

                    if&#40;$modes&#91;$m&#93;&#91;'outgoing_rate'&#93; == 0&#41;
                        $modes&#91;$m&#93;&#91;'outgoing_rate'&#93; = $modes&#91;$m&#93;&#91;'incoming_rate'&#93;;

                    $isDuration = $this->urfa->get_int&#40;&#41;;
                    if&#40;$isDuration&#41;
                        $modes&#91;$m&#93;&#91;'duration'&#93; = $this->urfa->get_int&#40;&#41;;
                    else &#123;
                        $modes&#91;$m&#93;&#91;'incoming_limit'&#93; = $this->urfa->get_long&#40;&#41;;
                        $modes&#91;$m&#93;&#91;'outgoing_limit'&#93; = $this->urfa->get_long&#40;&#41;;
                    &#125;

                    $modes&#91;$m&#93;&#91;'cost'&#93; = $this->urfa->get_double&#40;&#41;;
                &#125;

                $this->urfa->finish&#40;&#41;;
я так полагаю, поле duration надо как то в условие, т.к. если его нет, то все нормально, а если оно есть, то происходит сдвиг
вот такой:

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

&#65279;Array
&#40;
    &#91;cnt&#93; => Array
        &#40;
            &#91;0&#93; => Array
                &#40;
                    &#91;id&#93; => 1
                    &#91;name&#93; => turbo
                    &#91;incoming_rate&#93; => 50
                    &#91;outgoing_rate&#93; => 50
                    &#91;incoming_limit&#93; => 
                    &#91;outgoing_limit&#93; => 
                    &#91;cost&#93; => 100
                &#41;

            &#91;1&#93; => Array
                &#40;
                    &#91;id&#93; => 2
                    &#91;name&#93; => turbo2
                    &#91;incoming_rate&#93; => 55
                    &#91;outgoing_rate&#93; => 66
                    &#91;incoming_limit&#93; => 
                    &#91;outgoing_limit&#93; => 1024.0000000
                    &#91;cost&#93; => 1.0118464426829E-320
                &#41;

        &#41;

&#41;
первое турбо на время все параметры есть, но нет времени.
второй по лимитам, тут похоже что 1 параметра не хватает над incoming_limit

Cramac
Сообщения: 454
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

Вот рабочий xml

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

	<function name="rpcf_user5_get_turbo_mode_settings" id="-0x1200c">
        <input>
            <integer name="slink_id"/>
        </input>
        <output>
		    <integer name="cnt"/>
            <for name="i" from="0" count="cnt">
				<integer name="id" array_index="i"/>
				<string name="name" array_index="i"/>
				<integer name="incoming_rate" array_index="i"/>
				<integer name="outgoing_rate" array_index="i"/>
				<integer name="isduration" array_index="i"/>
				<if variable="isduration" value="1" condition="eq" >
					<integer name="duration" array_index="i"/>
				</if>
				<if variable="isduration" value="0" condition="eq" >
					<long name="incoming_limit" array_index="i"/>
					<long name="outgoing_limit" array_index="i"/>
				</if>
				<double name="cost" array_index="i"/>
			</for>
        </output>
    </function>
Так же не хватает описание на включение турбо

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

    <function name="rpcf_enable_turbo_mode" id="0x293d">
        <input>
            <integer name="slink_id"/>
			<integer name="settings_id"/>
        </input>
        <output>
        </output>
    </function>

starchik
Сообщения: 461
Зарегистрирован: Сб ноя 22, 2008 22:07

Сообщение starchik »

кто-то пробовал на 5.3-004?

Cramac
Сообщения: 454
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

Кто то запустил нв последнем openssl урфу?

Ответить