ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

freeswitch - не могу понять почему не срабатывает condition

Использование и настройка других открытых VoIP PBX

Модераторы: april22, Zavr2008

freeswitch - не могу понять почему не срабатывает condition

Сообщение denis21 » 04 июл 2014, 15:06

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

<action application="bridge" data="user/${dialed_extension}@${domain_name}"/>
<action application="lua" data="mobile-redirector.lua get ${user_data(${dialed_extension}@${domain_name} attr id)}@${domain_name}"/>
<action application="log" data="info enabled=${cond(${enabled} == 1 ? true : false)}"/>
<condition field="${cond(${enabled} == 1 ? true : false)}" expression="^true$">
          <!--<action application="bridge" data="sofia/gateway/infolink-unlim/${forward_to}"/>-->
           <action application="log" data="INFO enabled is 1"/>
</condition>


Переменные enabled, forward_to выставляю из луа скрипта через session:setVariable по определённым у словиям и выбирая нужные данные из sqlite.
После выполнения луа скрипта в лог пишет:
2014-07-04 13:54:21.900093 [INFO] mod_dptools.c:1588 enabled=true
Если убираю condition, то всё работает.
denis21
 
Сообщений: 33
Зарегистрирован: 17 июн 2014, 20:28

Re: freeswitch - не могу понять почему не срабатывает condit

Сообщение Vlad1983 » 04 июл 2014, 15:15

diff
Код: выделить все
--- old   2014-07-04 17:13:23.918722572 +0600
+++ new   2014-07-04 17:13:51.810722917 +0600
@@ -1,5 +1,5 @@
<action application="bridge" data="user/${dialed_extension}@${domain_name}"/>
-<action application="lua" data="mobile-redirector.lua get ${user_data(${dialed_extension}@${domain_name} attr id)}@${domain_name}"/>
+<action application="lua" data="mobile-redirector.lua get ${user_data(${dialed_extension}@${domain_name} attr id)}@${domain_name}" inline="true"/>
<action application="log" data="info enabled=${cond(${enabled} == 1 ? true : false)}"/>
<condition field="${cond(${enabled} == 1 ? true : false)}" expression="^true$">
           <!--<action application="bridge" data="sofia/gateway/infolink-unlim/${forward_to}"/>-->
ЛС: @rostel
Vlad1983
 
Сообщений: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: freeswitch - не могу понять почему не срабатывает condit

Сообщение denis21 » 04 июл 2014, 15:25

Не помогло.
2014-07-04 15:22:31.130083 [NOTICE] switch_ivr_originate.c:2661 Cannot create outgoing channel of type [error] cause: [USER_NOT_REGISTERED]
2014-07-04 15:22:31.130083 [NOTICE] switch_ivr_originate.c:2661 Cannot create outgoing channel of type [user] cause: [USER_NOT_REGISTERED]
2014-07-04 15:22:31.130083 [INFO] mod_dptools.c:3194 Originate Failed. Cause: USER_NOT_REGISTERED
2014-07-04 15:22:31.130083 [INFO] mod_dptools.c:1588 enabled=false
denis21
 
Сообщений: 33
Зарегистрирован: 17 июн 2014, 20:28

Re: freeswitch - не могу понять почему не срабатывает condit

Сообщение Vlad1983 » 04 июл 2014, 15:45

Код: выделить все
--- old   2014-07-04 17:13:51.810722917 +0600
+++ new   2014-07-04 17:45:07.198746134 +0600
@@ -1,7 +1,12 @@
-<action application="bridge" data="user/${dialed_extension}@${domain_name}"/>
-<action application="lua" data="mobile-redirector.lua get ${user_data(${dialed_extension}@${domain_name} attr id)}@${domain_name}" inline="true"/>
-<action application="log" data="info enabled=${cond(${enabled} == 1 ? true : false)}"/>
-<condition field="${cond(${enabled} == 1 ? true : false)}" expression="^true$">
+<extension>
+    <condition field="destination_number" expression=".*" break="never">
+        <action application="bridge" data="user/${dialed_extension}@${domain_name}"/>
+        <action application="lua" data="mobile-redirector.lua get ${user_data(${dialed_extension}@${domain_name} attr id)}@${domain_name}" inline="true"/>
+        <action application="log" data="info enabled=${cond(${enabled} == 1 ? true : false)}"/>
+    </condition>
+
+    <condition field="${cond(${enabled} == 1 ? true : false)}" expression="^true$">
           <!--<action application="bridge" data="sofia/gateway/infolink-unlim/${forward_to}"/>-->
            <action application="log" data="INFO enabled is 1"/>
-</condition>
+    </condition>
+</extension>
ЛС: @rostel
Vlad1983
 
Сообщений: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: freeswitch - не могу понять почему не срабатывает condit

Сообщение denis21 » 04 июл 2014, 15:51

2014-07-04 15:49:36.120122 [INFO] mod_dptools.c:3194 Originate Failed. Cause: USER_NOT_REGISTERED
2014-07-04 15:49:36.120122 [INFO] mod_dptools.c:1588 enabled=false
2014-07-04 15:49:36.120122 [NOTICE] switch_core_state_machine.c:262 sofia/external/number@trunk has executed the last dialplan instruction, hanging up.

Насчёт inline, не думаю что это то... Я-же не использую метод stream:write для передачи данных обратно в свитч, а устанавливаю переменные для текущей сессии, по которым нужно работать.
Только проверка значений проблемна...
denis21
 
Сообщений: 33
Зарегистрирован: 17 июн 2014, 20:28

Re: freeswitch - не могу понять почему не срабатывает condit

Сообщение Vlad1983 » 04 июл 2014, 15:58

inline как раз то

у мну диалплан
Код: выделить все
<extension>
    <condition field="destination_number" expression=".*" break="never">
        <action application="bridge" data="user/${dialed_extension}@${domain_name}"/>
        <action application="set" data="enabled=1" inline="true"/>
        <action application="log" data="info enabled=${cond(${enabled} == 1 ? true : false)}"/>
    </condition>

    <condition field="${cond(${enabled} == 1 ? true : false)}" expression="^true$">
           <action application="log" data="INFO enabled is 1"/>
    </condition>
<extension>

выдает "Action log(INFO enabled is 1)"
ЛС: @rostel
Vlad1983
 
Сообщений: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: freeswitch - не могу понять почему не срабатывает condit

Сообщение denis21 » 04 июл 2014, 16:19

Код: выделить все
<extension name="внутренние-номера">
            <condition field="destination_number" expression="^(\d{3}|\D{3,})$" require-nested="false" break="never">
                <action application="set" data="dialed_extension=${destination_number}"/>
                <action application="bind_meta_app" data="0 ab s execute_extension::att_xfer XML domainname"/>
                <action application="bind_meta_app" data="1 ab s execute_extension::att_xfer2mobile XML domainname"/>
                <action application="set" data="default_language=ru"/>
                <action application="set" data="ringback=${ru-ring}"/>
                <action application="set" data="transfer_ringback=/opt/freeswitch-1.2/sounds/company-sounds/holdmusic2.wav"/>
                <action application="set" data="call_timeout=60"/>
                <!-- <action application="set" data="sip_exclude_contact=${network_addr}"/> -->
                <action application="set" data="hangup_after_bridge=true"/>
                <action application="set" data="continue_on_fail=NORMAL_TEMPORARY_FAILURE,USER_BUSY,NO_ANSWER,TIMEOUT,USER_NOT_REGISTERED"/>
                <!-- <action application="set" data="continue_on_fail=true"/> -->
                <action application="hash" data="insert/${domain_name}-call_return/${dialed_extension}/${caller_id_number}"/>
                <action application="hash" data="insert/${domain_name}-last_dial_ext/${dialed_extension}/${uuid}"/>
                <action application="set" data="called_party_callgroup=${user_data(${dialed_extension}@${domain_name} var callgroup)}"/>
                <action application="hash" data="insert/${domain_name}-last_dial_ext/${called_party_callgroup}/${uuid}"/>
                <action application="hash" data="insert/${domain_name}-last_dial_ext/global/${uuid}"/>
                <action application="hash" data="insert/${domain_name}-last_dial/${called_party_callgroup}/${uuid}"/>
                <action application="bridge" data="user/${dialed_extension}@${domain_name}"/>

                <action application="lua" data="mobile-redirector.lua get ${user_data(${dialed_extension}@${domain_name} attr id)}@${domain_name}"/>
                <action application="log" data="info enabled=${cond(${enabled} == 1 ? true : false)} ${enabled}"/>
<!--                <condition field="${cond(${enabled} == 1 ? true : false)}" expression="^true$">-->
                    <action application="bridge" data="sofia/gateway/infolink-unlim/${forward_to}"/>
<!--                </condition>-->
            </condition>
        </extension>
Работает. Раскоментирую condition, не работает, has executed the last dialplan instruction, hanging up.
С inline переменные enabled, forward_to пустые.
Если напишу
Код: выделить все
<condition field="${enabled}" expression="^1$">

то так-же has executed the last dialplan instruction, hanging up.
denis21
 
Сообщений: 33
Зарегистрирован: 17 июн 2014, 20:28

Re: freeswitch - не могу понять почему не срабатывает condit

Сообщение denis21 » 04 июл 2014, 16:29

У вас модуль луа собрат? Давайте попробуем вызвать такой скрипт из диалплана.

Код: выделить все
if session:ready() then
    session:setVariable("enabled","1")
end
denis21
 
Сообщений: 33
Зарегистрирован: 17 июн 2014, 20:28


Re: freeswitch - не могу понять почему не срабатывает condit

Сообщение denis21 » 04 июл 2014, 16:49

Код: выделить все
<condition field="${cond(${enabled} == 1 ? true : false)}" expression="^true$" break="never">

Что-то не понимаю...
denis21
 
Сообщений: 33
Зарегистрирован: 17 июн 2014, 20:28

След.

Вернуться в FreeSwitch, SER, Yate и другие

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH