Size: a a a

2020 September 10

е

енот in ru_freeswitch
<condition field="destination_number" expression="^\+?(\d+)$" break="never">
       <!-- <action application="log" data="CRIT ###REDIS REQ### ${sip_auth_username}_$1 ### ${hiredis_raw(default get ${sip_auth_username}_$1)}"/> -->
       
       <action application="set" data="request_call_seconds=${hiredis_raw(default get ${sip_auth_username}_$1)}" />
       <action application="set" data="api_result=${cond(${request_call_seconds} > 0 ? true : false)}" />
       <action application="log" data="CRIT ###api_result### ${api_result}" />
       <action application="log" data="CRIT ###request_call_seconds### ${request_call_seconds}" />
       <action application="set" data="request_phone_dst=$1"/>
     </condition>
     <condition field="${api_result}" expression="true$" break="on-false">
       <action application="log" data="CRIT ###api_result true ### $1 ${request_call_seconds}" />
       <anti-action application="log" data="CRIT ###api_result false ### $1 ${request_call_seconds}" />
     </condition>

Пытаюсь понять логику работы
Мне надо проверить что я из редиса вернул число.
Возвращается оно или нет - я всё равно получаю false в api_result
как это, блин, проверить?
мне вообще просто надо застраховаться от невалидного ответа из редиса, это потом ограничить должно максимальное время звонка. Не хотелось бы кому-то анлим включить случайно.
источник

е

енот in ru_freeswitch
я пытался проверять сам ответ через регэкспы, но нормально оно не работает тоже в случае пустого ответа
источник

rt

ros tel in ru_freeswitch
вроде каждый condition сбрасывает переменные по группам регулярок ($1 $2)
источник

е

енот in ru_freeswitch
да пофигу на группы регулярок
источник

е

енот in ru_freeswitch
не в них суть
источник

е

енот in ru_freeswitch
там же видно экшн и антиэкшен, срабатывает всегда антиэкшен
источник

h

halt✯ in ru_freeswitch
Ну переведи же уже на Lua
источник

е

енот in ru_freeswitch
да не могу я это сделать за день
источник

е

енот in ru_freeswitch
а завтра гугл за яйца возьмет аппу
источник

rt

ros tel in ru_freeswitch
<action application="set" data="api_result=${cond(${request_call_seconds} > 0 ? true : false)}" inline/>
источник

е

енот in ru_freeswitch
ros tel
<action application="set" data="api_result=${cond(${request_call_seconds} > 0 ? true : false)}" inline/>
я вроде пытался так, а разве не inline=true надо?
источник

rt

ros tel in ru_freeswitch
да, inline="true"
источник

е

енот in ru_freeswitch
ни так ни эдак не работает
источник

е

енот in ru_freeswitch
ros tel
да, inline="true"
неа
источник

е

енот in ru_freeswitch
ну в смысле - не помогло(
источник

rt

ros tel in ru_freeswitch
смотреть лог широко раскрытыми глазами
источник

rt

ros tel in ru_freeswitch
я по этому куску не вижу вложенные там условия или нет
источник

е

енот in ru_freeswitch
ros tel
я по этому куску не вижу вложенные там условия или нет
нет, просто кондишены один за другим
источник

rt

ros tel in ru_freeswitch
лог все выдаст 100%
как проверяются условия
источник

АХ

Алексей Хабуляк... in ru_freeswitch
енот
неа
inline нужен чтобы во время фазы роутинга он заполнил переменную. только
<action application="set" data="request_call_seconds=${hiredis_raw(default get ${sip_auth_username}_$1)}"
тоже должен быть тогда Inline
источник