2012-01-25 2 views
0

사용자와의 상호 작용이 필요한 복잡한 다이얼 플랜을 구현하려고합니다. 이 상호 작용을 기반으로 다이얼 플랜이 다른 부분으로 건너 뜁니다. 일부 샘플 코드는 아래와 같습니다 : 위의 코드를 실행에다이얼 플랜에서 GotoIf를 사용하는 중 오류가 발생했습니다.

[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() 
... 
  1. 는 별표 (*) 위의 GotoIf 상태를 평가 한 후 끊습니다. 오류 메시지는 다음과 같습니다 :

    - 사용자 입력 '1' - 실행 중 [0 @ test : 19] Verbose ("DAHDI/13-1", "1"사용자가 1 "로 입력 됨) 새 스택에서 "사용자가 1을 입력" - 새 스택에서 [0 @ test : 20] GotoIf ("DAHDI/13-1", "1 eval1 : qa1")를 실행합니다. - Goto (테스트, 0 , 21) - 새 스택의 [0 @ test : 21] NoOp ("DAHDI/13-1", "") 실행 [Jan 25 10:47:48] 경고 [29738] : pbx.c : 3677 pbx_extension_helper : 확장 (테스트, 0, 22)에 대한

내 질문

은 '가'없음 응용 프로그램 :

  1. 오류 메시지는 무엇을 의미합니까?
  2. 어떻게 해결할 수 있습니까?

답변

0

GotoIf이 올바르게 호출됩니다. eval1 레이블 뒤에 If 문이 있습니다. 별표에는 If 문이 없습니다. 진술을 ExecIf으로 바꾸는 것이 트릭을 만들었습니다. Asterisk CLI 프롬프트에서 다음 명령을 입력하여 사용할 수있는 명령을 알 수 있습니다.
core show application <command name here>
위의 명령으로 출력이 반환되면 해당 명령을 사용할 수 있습니다.