Я пытаюсь реализовать сложный диалплан, который требует взаимодействия с пользователем. На основе этого взаимодействия диалплан переходит в другую часть. Некоторые примеры кода приведен ниже:Ошибка при использовании GotoIf в dialplan
[test]
;This is a test.
exten => 0,n(qa1),NoOp()
exten => 0,1,Verbose(1, "This is a test")
exten => 0,n,Set(USER_ANSWER=0)
exten => 0,n,Read(USER_ANSWER,,1,,2,10)
exten => 0,n,Verbose(1, "User keyed in ${USER_ANSWER}")
exten => 0,n,GotoIf($[$["${USER_ANSWER}"="1"] | $["${USER_ANSWER}"="2"]]?eval1:qa1)
exten => 0,n,Verbose(1, "User keyed in ${USER_ANSWER}")
exten => 0,n(eval),NoOp()
...
На выполнения кода, звездочка вешает трубку после оценки состояния
GotoIf
выше. Сообщения об ошибках выглядят следующим образом:- Пользователь вводит «1» - Выполняет [0 @ тест: 19] Подробный («DAHDI/13-1», «1», «User keyed in 1» ») в новом стеке «User keyed in 1» - Выполнение [0 @ test: 20] GotoIf («DAHDI/13-1», «1? eval1: qa1») в новом стеке - Goto (test, 0 , 21) - Выполнение [0 @ test: 21] NoOp («DAHDI/13-1», «») в новом стеке [25 Янв 10:47:48] ПРЕДУПРЕЖДЕНИЕ [29738]: pbx.c: 3677 pbx_extension_helper: Нет приложения 'Если' для расширения (тест, 0, 22)
Мои вопросы:
- Что означает это сообщение об ошибке?
- Как исправить это, чтобы он работал?