Страница 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
Это тема для самостоятельного изучения.