Vestec + asterisk not detection wrong input

Hi,

I have purchased and installed Vestec Starter Kit. I have written a test application with asterisk. For any correct voice input it works fine but for any wrong voice input it is not working i.e it picks any random value from the defined grammars. Do anybody know about how to detect invalid voice input. Below is my extensions.conf. For any invalid input it should go to exten => s,n(nomatch)… but its not doing so.

exten => s,n,SpeechCreate(Vestec ASR Engine)
exten => s,n,GotoIf($["${ERROR}" = “1”]?hang:engstarted)
exten => s,n(hang),Hangup

;The THRESHOLD is a value compared to the SPEECH_SCORE(x)
;which is the confidence score returned by the Speech Engine.
exten => s,n(engstarted),Set(THRESHOLD=10)
exten => s,n,NoOp(-------------- THRESHOLD is ${THRESHOLD})
;VadAmpThres(200-30000)
exten => s,n,Set(SPEECH_ENGINE(VadAmpThres)=10000)
;VadZcThres (3-200)
exten => s,n,Set(SPEECH_ENGINE(VadZcThres)=7)
;VedTailMargin (200-1200)
exten => s,n,Set(SPEECH_ENGINE(VedTailMargin)=900)
;VadPtaThres (100-500)
exten => s,n,Set(SPEECH_ENGINE(VadPtaThres)=450)
;VadPtcThres (1-10)
exten => s,n,Set(SPEECH_ENGINE(VadPtcThres)=9)
;CompMaxAmp (0,1)
exten => s,n,Set(SPEECH_ENGINE(CompMaxAmp)=0)
;MaxSpeechLen(1000-20000)
;exten => s,n,Set(SPEECH_ENGINE(MaxSpeechLen)=10000)

; Language Menu
exten => s,n(loadgrm),SpeechLoadGrammar(vp,/projects/grammers/vp/vpgrammer.grm)
exten => s,n,SpeechActivateGrammar(vp)
exten => s,n,Set(SPEECH_DTMF_MAXLEN=1)
exten => s,n(menu),SpeechStart
;;exten => 6000,n,SpeechProcessingSound(test-processing-sound)

exten => s,n,SpeechBackground(/projects/prompts/voice_portal/choose_language,3)
exten => s,n,NoOp(-------------- Speech Spock is ${SPEECH(spoke)})
exten => s,n,NoOp(-------------- Speech resluts is ${SPEECH(results)})
exten => s,n,NoOp(-------------- Speech score # 0 is ${SPEECH_SCORE(0)})
exten => s,n,NoOp(-------------- Speech text # 0 is ${SPEECH_TEXT(0)})
exten => s,n,NoOp(-------------- Speech Grammar # 0 is ${SPEECH_GRAMMAR(0)})

exten => s,n,GotoIf($["${SPEECH_GRAMMAR(0)}" = “dtmf”]?${SPEECH_TEXT(0)},1:voice)
exten => s,n(voice),GotoIf($["${SPEECH(results)}" = “0”]?noinput:gotinput)
exten => s,n(noinput),Playback(/projects/prompts/voice_portal/ask_again)
exten => s,n,Goto(menu)

exten => s,n(gotinput),Set(TEXT=${SPEECH_TEXT(0)})
exten => s,n,NoOp(-------------- THRESHOLD is ${THRESHOLD})
;exten => s,9,GotoIf($[ ${SPEECH_SCORE(0)} > ${THRESHOLD} ]?10:6)
exten => s,n,GotoIf($[ ${SPEECH_SCORE(0)} > ${THRESHOLD} ]?ok:noinput)
exten => s,n(ok),SpeechDeactivateGrammar(vp)
exten => s,n,SpeechUnloadGrammar(vp)

exten => s,n,NoOp(-------------- Speech Spock is ${SPEECH(spoke)})

exten => s,n,GotoIf($["${SPEECH_TEXT(0)}" = “URDU”]?1,1:next1)
exten => s,n(next1),GotoIf($["${SPEECH_TEXT(0)}" = “PASHTO”]?2,1:next2)
exten => s,n(next2),GotoIf($["${SPEECH_TEXT(0)}" = “PUNJABI”]?3,1:next3)
exten => s,n(next3),GotoIf($["${SPEECH_TEXT(0)}" = “ENGLISH”]?4,1:nomatch) ;Go to nomatch if invalid input

;exten => s,n(nomatch),Goto(${SPEECH_TEXT(0)},1)
exten => s,n(nomatch),Playback(/projects/prompts/voice_portal/invalidinput)
exten => s,n,Goto(loadgrm)

Grammer file vpgrammar.grm is

/*
Vestec Automatic Speech Recognition Engine Version 1.0
Copyright © 2009 Voice Enabling Systems Technology, Inc. All rights reserved.
*/

#ABNF 1.0;

// Author: Adnan Raza
// Date: Mon Mar 16 2011
// vpgrammer.grm: grammer for Vice Portal

root $vplang;

$vplang = $urdu {URDU} | $pashto {PASHTO} | $punjabi {PUNJABI} | $english {ENGLISH} ;

$urdu =
urdu
| oorduu
| oorthoo
|ourdu
;

$pashto =
pashto
| pushto
| peshto
| pashtho
| pushtho
;

$punjabi =
punjabi
| panjabi
| punjaabi
| penjabi
;
$english =
english
;

Regards,
Adnan Raza