FreeSWITCH - логика condition
Добавлено: 14 июл 2014, 19:42
Волею судеб столкнулся с FS. Прошу прояснить для факт, показавшийся мне крайне неочевидным.
Необходимо построить логику вида
Как в рамках одного экстена это построить на condition?
Сейчас получается конструкция вида (может не совсем верно с точки зрения синтаксиса):
Читать ее может и просто, но вот такой момент. Тут оба раза проверяется expr2. А по факту необходимо, чтобы оно проверялось только в том случае, если истинно expr1. Дабы не плодить сущности.
Читал про nested conditions, особо не понял, но осознал, что тут диалплан не то, чтобы линейный, как в астериске.
Объясните, плиз, человеческим языком
Необходимо построить логику вида
Код: Выделить всё
If (expr1) {
if (expr2) {
action1;
} else {
action2;
} else {
action1;
}
Сейчас получается конструкция вида (может не совсем верно с точки зрения синтаксиса):
Код: Выделить всё
<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>
Читал про nested conditions, особо не понял, но осознал, что тут диалплан не то, чтобы линейный, как в астериске.
Объясните, плиз, человеческим языком