Страница 1 из 1

FreeSWITCH - логика condition

СообщениеДобавлено: 14 июл 2014, 19:42
Samael28
Волею судеб столкнулся с FS. Прошу прояснить для факт, показавшийся мне крайне неочевидным.
Необходимо построить логику вида
Код: выделить все
If (expr1) {
   if (expr2) {
       action1;
    } else {
       action2;
} else {
  action1;
}

Как в рамках одного экстена это построить на condition?
Сейчас получается конструкция вида (может не совсем верно с точки зрения синтаксиса):
Код: выделить все
<condition field="field1" expression="expr1"/>
<condition field="field2" expression="expr2" break="never">
<application="action1"/>
</condition>
<condition field="field1" expression="expr1"/>
<condition field="field2" expression="~expr2">
<application="action2"/>
<anti-application="action1"/>
</condition>

Читать ее может и просто, но вот такой момент. Тут оба раза проверяется expr2. А по факту необходимо, чтобы оно проверялось только в том случае, если истинно expr1. Дабы не плодить сущности.
Читал про nested conditions, особо не понял, но осознал, что тут диалплан не то, чтобы линейный, как в астериске.
Объясните, плиз, человеческим языком :)

Re: FreeSWITCH - логика condition

СообщениеДобавлено: 15 июл 2014, 08:02
Vlad1983
Это тема для самостоятельного изучения.