freeswitchforum.com

Форум поддержки FreeSWITCH

FreeSWITCH is a registered trademark of Anthony Minessale. Official FreeSWITCH site.

Текущее время: 29 апр 2024 19:25

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Actions and Anti-Actions
СообщениеДобавлено: 21 ноя 2014 12:24 

Зарегистрирован: 31 янв 2014 11:59
Сообщения: 54
Привет друзья!
В каком месте и как правильно объявить переменную, чтобы работало условие "Actions and Anti-Actions"?
Код:
<context name="my_domain_input">
<extension name="input_ext">
    <condition field="destination_number" expression="default_sip_gateway">
    <!-- Actions and Anti-Actions -->
    action inline="true" application="set" data="OUTNUM=${system /usr/script/getnum.php"/>
    <condition field="${cond(${OUTNUM} == 1 ? YES : NO)}" expression="^YES$">
    <action application="log" data="INFO ${OUTNUM} is equally 1"/>
    <action application="bridge" data="user/101@my_domain"/>
    <anti-action application="log" data="INFO ${OUTNUM} is not equal 1"/>
    <anti-action application="bridge" data="user/102@my_domain"/>
</condition>
</condition>
</extension>
</context>


Если OUTNUM=0, то
Код:
EXECUTE sofia/external/<my_num>@provider log(INFO 0 is not equal 1)
2014-11-21 11:49:41.479343 [INFO] mod_dptools.c:1595 0 is not equal 1
и звонок в 102

Если OUTNUM=1, то
Код:
EXECUTE sofia/external/<my_num>@provider log(INFO 1 is not equal 1)
2014-11-21 11:51:23.619533 [INFO] mod_dptools.c:1595 1 is not equal 1
также звонок в 102


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Actions and Anti-Actions
СообщениеДобавлено: 21 ноя 2014 22:05 
Site Admin

Зарегистрирован: 29 июн 2012 11:19
Сообщения: 224
Попробуйте присваивать внутри скрипта (perl, js, php), если использовать system - то к самому значению еще могут добавиться "пробелные символы"
Так же интересен вот такой эксперимент: OUTNUM=1
Код:
...
    <action inline="true" application="set" data="OUTNUM=1"/>
    <condition field="${cond(${OUTNUM} == 1 ? YES : NO)}" expression="^YES$">
...

_________________
Если вы нашли решение, опишите его, пожалуйста, на форуме


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Actions and Anti-Actions
СообщениеДобавлено: 22 ноя 2014 19:13 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
как происходит хантинг видно в логе задолго до EXECUTE

_________________
ЛС: @rostel
Сообщество: @ru_freeswitch


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Actions and Anti-Actions
СообщениеДобавлено: 24 ноя 2014 00:15 

Зарегистрирован: 31 янв 2014 11:59
Сообщения: 54
Евгений, присвоил переменной единицу в диалплане
Код:
<action inline="true" application="set" data="OUTNUM=1"/>

аналогично:
Код:
2014-11-23 23:49:11.297838 [DEBUG] switch_core_state_machine.c:522 (sofia/external/<my_num>@<my_domain>) State ROUTING
2014-11-23 23:49:11.297838 [DEBUG] mod_sofia.c:123 sofia/external/<my_num>@<my_domain> SOFIA ROUTING
2014-11-23 23:49:11.297838 [DEBUG] switch_core_state_machine.c:164 sofia/external/<my_num>@<my_domain> Standard ROUTING
2014-11-23 23:49:11.297838 [INFO] mod_dialplan_xml.c:558 Processing <my_num> <my_num>->default_sip_gateway in context my_domain_input
Dialplan: sofia/external/<my_num>@<my_domain> parsing [my_domain_input->input_ext] continue=true
|--- Dialplan: Processing recursive conditions level:1 [input_ext_recur_1] require-nested=TRUE
|--- Dialplan: sofia/external/<my_num>@<my_domain> Regex (FAIL) [input_ext_recur_1] ${cond(${OUTNUM} == 1 ? YES : NO)}(NO) =~ /^YES$/ break=on-false
|--- Dialplan: sofia/external/<my_num>@<my_domain> ANTI-Action info()
|--- Dialplan: sofia/external/<my_num>@<my_domain> ANTI-Action log(INFO ${OUTNUM} is not equal 1)
|--- Dialplan: sofia/external/<my_num>@<my_domain> ANTI-Action bridge(user/102@my_domain)
Dialplan: sofia/external/<my_num>@<my_domain> Regex (PASS) [input_ext] destination_number(default_sip_gateway) =~ /default_sip_gateway/ break=on-false
Dialplan: sofia/external/<my_num>@<my_domain> Action set(OUTNUM=1) INLINE
EXECUTE sofia/external/<my_num>@<my_domain> set(OUTNUM=1)


Влад, в какой кусок лога смотреть хантинг?
Эту строку надо вставить в диалплан?
Код:
<action application="info"/>

Если да, то между какими строками?
Вставил так:
Код:
<condition field="destination_number" expression="default_sip_gateway">
<action inline="true" application="set" data="OUTNUM=1"/>
<action application="info"/>
<condition field="${cond(${OUTNUM} == 1 ? YES : NO)}" expression="^YES$">

В логе это:
Код:
variable_endpoint_disposition: [DELAYED NEGOTIATION]
variable_OUTNUM: [1]
variable_call_uuid: [aa7c881e-5b88-4eee-a642-d4575c4b75a0]
variable_current_application: [info]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Actions and Anti-Actions
СообщениеДобавлено: 24 ноя 2014 08:39 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
условие не выполнилось
|--- Dialplan: sofia/external/<my_num>@<my_domain> Regex (FAIL) [input_ext_recur_1] ${cond(${OUTNUM} == 1 ? YES : NO)}(NO) =~ /^YES$/ break=on-false

выполнилось
Dialplan: sofia/external/<my_num>@<my_domain> Regex (PASS) [input_ext] destination_number(default_sip_gateway) =~ /default_sip_gateway/ break=on-false

_________________
ЛС: @rostel
Сообщество: @ru_freeswitch


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Actions and Anti-Actions
СообщениеДобавлено: 24 ноя 2014 14:29 

Зарегистрирован: 31 янв 2014 11:59
Сообщения: 54
Значит что? Значит еще на этапе хантинга условие не выполняется!
Где же тогда объявить переменную?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Actions and Anti-Actions
СообщениеДобавлено: 24 ноя 2014 16:45 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
в FS строго линейный
всё что нужно учитывать при хантинге последующих условий должно быть перед ними (а не внутри как у вас)

По опыту использование вложенных условий ещё больше запутывает диалплан.

Если нужно что-то очень мороченое, проще вызывать lua или perl, в которых полностью всю обработку делать и вызывать приложения из них же (без возврата в XML-диалплан или возвратом, но только с помощью transfer чтоб хантинг пошел с учетом новых переменных каналов)

_________________
ЛС: @rostel
Сообщество: @ru_freeswitch


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Actions and Anti-Actions
СообщениеДобавлено: 26 ноя 2014 21:51 

Зарегистрирован: 31 янв 2014 11:59
Сообщения: 54
Ничего мороченого!
У меня внешний скрипт возвращает число - это юзер_экстеншен, на которой нужно сделать экшен бридж, если скрипт возвращает NULL (ну или что то отличное), нужно сделать экшен бридж на другой юзер_экстеншен или ринг группу;
Вот и все.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Actions and Anti-Actions
СообщениеДобавлено: 26 ноя 2014 21:57 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
так делайте.
в логе отображается порядок срабатывания условий и значения переменных.

_________________
ЛС: @rostel
Сообщество: @ru_freeswitch


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Actions and Anti-Actions
СообщениеДобавлено: 03 дек 2014 01:21 

Зарегистрирован: 31 янв 2014 11:59
Сообщения: 54
в консоли скрипт <?php echo '1'; ?> возвращает единицу. А FREESWITCH при обработке возвращает пустоту
Код:
[DEBUG] switch_core_state_machine.c:164 sofia/external/my_num@my_provider Standard ROUTING
|--- Dialplan: sofia/external/my_num@my_provider Action set(OUTNUM=${system /usr/script/getnum.php) INLINE
EXECUTE sofia/external/my_num@my_provider set(OUTNUM=)
[DEBUG] mod_dptools.c:1402 sofia/external/my_num@my_provider SET [OUTNUM]=[]
|--- Dialplan: sofia/external/my_num@my_provider Regex (FAIL) [input_ext_recur_1] ${cond(${OUTNUM} == 1 ? YES : NO)}(NO) =~ /^YES$/ break=on-false


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB