[tools] / trunk / demos / asterisk_dialplans / pitching-asr / extensions.conf Repository:
ViewVC logotype

Diff of /trunk/demos/asterisk_dialplans/pitching-asr/extensions.conf

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 24, Tue Mar 30 18:25:55 2010 UTC revision 51, Fri Apr 16 21:10:17 2010 UTC
# Line 1  Line 1 
1  ;  ;
2  ; Asterisk Dialplan for DiaStar Pitching Demo - LunexVox ASR version  ; Asterisk Dialplan for DiaStar Pitching Demo - LunexVox ASR version
3  ;  ;
4  ; All media files are named the same as their contexts,  ; All media files are named the same as their contexts.
5  ;  ;
6    ; Known problems:
7    ; 1) LumenVox doesn't return anything with # is hit.  This is treated
8    ; same as a timeout
9    ; 2) Comparison operater does not work with 1000 as configdence level.
10    ; 999 works, so subtract 1
11  ;  ;
12  [globals]  [globals]
13  ;  ;
# Line 10  Line 15 
15  ; Audio and video files are kept in standard directories organized by  ; Audio and video files are kept in standard directories organized by
16  ; codec and resolution, followed by a directory named after the application.  ; codec and resolution, followed by a directory named after the application.
17  FILE_LOC=pitching  FILE_LOC=pitching
18  VERBOSE_LEVEL=2  VERBOSELEVEL=2
19    ; Speech confidence threshold
20    THRESHOLD=600
21    
22  [dialogic]  [dialogic]
23  ; Always start here.  Any extension starts the demo  ; Always start here.  Any extension starts the demo
24  exten => _X.,1,Answer  exten => _X.,1,Answer
 ;exten => _X.,n,Wait(3)  
25  exten => _X.,n,Goto(greeting_000,s,1)  exten => _X.,n,Goto(greeting_000,s,1)
26  ;exten => _X.,n,Goto(make_recording,s,1)  ;exten => _X.,n,Goto(make_recording,s,1)
27    
# Line 31  Line 37 
37  exten => s,1,Set(LOCAL(CALLING_CONTEXT)=${ARG1})  exten => s,1,Set(LOCAL(CALLING_CONTEXT)=${ARG1})
38  exten => s,n,Set(LOCAL(NEXT_CONTEXT)=${ARG2})  exten => s,n,Set(LOCAL(NEXT_CONTEXT)=${ARG2})
39  exten => s,n,Set(LOCAL(COMMENT)=${ARG3})  exten => s,n,Set(LOCAL(COMMENT)=${ARG3})
40  exten => s,n,Verbose(${VERBOSE_LEVEL},Context: ${CALLING_CONTEXT})  exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CALLING_CONTEXT})
41  exten => s,n,Verbose(${VERBOSE_LEVEL},Next Context: ${NEXT_CONTEXT})  exten => s,n,Verbose(${VERBOSELEVEL},Next Context: ${NEXT_CONTEXT})
42  exten => s,n,Verbose(${VERBOSE_LEVEL},Comment: ${COMMENT})  exten => s,n,Verbose(${VERBOSELEVEL},Comment: ${COMMENT})
43  ; Play without interruption  ; Play without interruption
44  exten => s,n,WoomeraPlayback(${FILE_LOC}/${CALLING_CONTEXT},${FILE_LOC}/${CALLING_CONTEXT})  exten => s,n,WoomeraPlayback(${FILE_LOC}/${CALLING_CONTEXT},${FILE_LOC}/${CALLING_CONTEXT})
45  exten => s,n,Goto(${NEXT_CONTEXT},s,1)  exten => s,n,Goto(${NEXT_CONTEXT},s,1)
# Line 49  Line 55 
55    
56    
57  [main_menu_000]  [main_menu_000]
   
58  ; Menu listing all categories of pitches  ; Menu listing all categories of pitches
59  exten => s,1,Verbose(${VERBOSE_LEVEL},Context: main_menu_000)  exten => s,1,Verbose(${VERBOSELEVEL},Context: ${CONTEXT})
60  exten => s,n,Verbose(${VERBOSE_LEVEL},Choice of: fastball grips = 1, breakingball_grips = 2, offspeed grips = 3, knuckleball grips = 4)  exten => s,n,Verbose(${VERBOSELEVEL},Choice of: fastball grips = 1, breakingball_grips = 2, offspeed grips = 3, knuckleball grips = 4)
61  ; Create the speech object  ; Create the speech object
62  exten => s,n,SpeechCreate()  exten => s,n,SpeechCreate()
63  ; Load and activate grammar  ; Load and activate grammar
# Line 68  Line 73 
73  exten => s,n,SpeechDeactivateGrammar(mainmenu)  exten => s,n,SpeechDeactivateGrammar(mainmenu)
74  ; Set a variable to store the answer, whether it was speech or DTMF (useful in case we need to confirm and later overwrite SPEECH_TEXT  ; Set a variable to store the answer, whether it was speech or DTMF (useful in case we need to confirm and later overwrite SPEECH_TEXT
75  exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})  exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
76  exten => s,n,Verbose(${VERBOSE_LEVEL},1,Result was ${CHOICE})  ; Problem here with DTMF and confidence level of 1000.  Comparison doesn't work
77    ; So, subtract 1
78    exten => s,n,Set(CONFLEVEL=$[${SPEECH_SCORE(0)} - 1])
79    exten => s,n,Verbose(${VERBOSELEVEL},Result was ${CHOICE} with confidence ${CONFLEVEL})
80    ; Timeout results in a null choice.  Catch that here
81    exten => s,n,GotoIf($[ "${CHOICE}" = "" ]?main_menu_000,s,1)
82    exten => s,n,GotoIf($[ "${CONFLEVEL}" < "${THRESHOLD}" ]?BadRecognition)
83  exten => s,n,GotoIf($[ "${CHOICE}" = "1"]?Generic)  exten => s,n,GotoIf($[ "${CHOICE}" = "1"]?Generic)
84  exten => s,n,GotoIf($[ "${CHOICE}" = "2"]?Generic)  exten => s,n,GotoIf($[ "${CHOICE}" = "2"]?Generic)
85  exten => s,n,GotoIf($[ "${CHOICE}" = "3"]?Generic)  exten => s,n,GotoIf($[ "${CHOICE}" = "3"]?Generic)
86  exten => s,n,GotoIf($[ "${CHOICE}" = "4"]?Generic)  exten => s,n,GotoIf($[ "${CHOICE}" = "4"]?Generic)
87    exten => s,n,GotoIf($[ "${CHOICE}" = "5"]?Generic)
88    exten => s,n,GotoIf($[ "${CHOICE}" = "6"]?Generic)
89    exten => s,n,GotoIf($[ "${CHOICE}" = "*"]?Generic)
90    exten => s,n,GotoIf($[ "${CHOICE}" = "#"]?Generic)
91  exten => s,n(Specific),Goto(${CHOICE},s,1)  exten => s,n(Specific),Goto(${CHOICE},s,1)
92  exten => s,n(Generic),Goto(main_menu_000,${CHOICE},1)  exten => s,n(Generic),Goto(main_menu_000,${CHOICE},1)
93    exten => s,n(BadRecognition),Gosub(recognition_error,s,1(${CONTEXT}))
   
94  ; Goto the appropriate line depending on what the user did  ; Goto the appropriate line depending on what the user did
95  exten => s,n,Goto(main_menu_000,${CHOICE},1)  exten => s,n,Goto(main_menu_000,${CHOICE},1)
96  exten => 1,1,Verbose(${VERBOSE_LEVEL},Choice is "1" )  exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
97  exten => 1,n,Goto(fastball_menu_000,s,1)  exten => 1,n,Goto(fastball_menu_000,s,1)
98  exten => 2,1,Verbose(${VERBOSE_LEVEL},Choice is "2" )  exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
99  exten => 2,n,Goto(breaking_ball_menu_000,s,1)  exten => 2,n,Goto(breaking_ball_menu_000,s,1)
100  exten => 3,1,Verbose(${VERBOSE_LEVEL},Choice is "3" )  exten => 3,1,Verbose(${VERBOSELEVEL},Choice is "3" )
101  exten => 3,n,Goto(off_speed_menu_000,s,1)  exten => 3,n,Goto(off_speed_menu_000,s,1)
102  exten => 4,1,Verbose(${VERBOSE_LEVEL},Choice is "4" )  exten => 4,1,Verbose(${VERBOSELEVEL},Choice is "4" )
103  exten => 4,n,Goto(knuckleball_menu_000,s,1)  exten => 4,n,Goto(knuckleball_menu_000,s,1)
104    exten => 5,1,Verbose(${VERBOSELEVEL},Choice is "5" )
105    exten => 5,n,Goto(main_menu_000,s,1)
106    exten => 6,1,Verbose(${VERBOSELEVEL},Choice is "6" )
107    exten => 6,n,Hangup
108    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
109    exten => *,n,Goto(main_menu_000,s,1)
110    ; Lumenvox not returning "#"
111    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
112    exten => #,n,Hangup
113  exten => t,1,Goto(main_menu_000,s,1)  exten => t,1,Goto(main_menu_000,s,1)
114  exten => i,1,Goto(main_menu_000,s,1)  exten => i,1,Goto(main_menu_000,s,1)
115    
116  [fastball_menu_000]  [fastball_menu_000]
117  ; Menu listing all fastball pitches  ; Menu listing all fastball pitches
118  exten => s,1,Verbose(${VERBOSE_LEVEL},Context: fastball_menu_000)  exten => s,1,Verbose(${VERBOSELEVEL},Context: fastball_menu_000)
119  exten => s,n,Verbose(${VERBOSE_LEVEL},Choice of: four-seam fastball = 1, two-seam fastball = 2, split finger fastball = 3)  exten => s,n,Verbose(${VERBOSELEVEL},Choice of: four-seam fastball = 1, two-seam fastball = 2, split finger fastball = 3)
120  exten => s,n,SpeechLoadGrammar(fastball,/etc/lumenvox/demogrammar/fastball.gram)  exten => s,n,SpeechLoadGrammar(fastball,/etc/lumenvox/demogrammar/fastball.gram)
121  exten => s,n,SpeechActivateGrammar(fastball)  exten => s,n,SpeechActivateGrammar(fastball)
122  exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})  exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
# Line 101  Line 124 
124  exten => s,n,WoomeraStop()  exten => s,n,WoomeraStop()
125  exten => s,n,SpeechDeactivateGrammar(fastball)  exten => s,n,SpeechDeactivateGrammar(fastball)
126  exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})  exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
127  exten => s,n,Verbose(${VERBOSE_LEVEL},1,Result was ${CHOICE})  ; Problem here with DTMF and confidence level of 1000.  Comparison doesn't work
128    ; So, subtract 1
129    exten => s,n,Set(CONFLEVEL=$[${SPEECH_SCORE(0)} - 1])
130    exten => s,n,Verbose(${VERBOSELEVEL},Result was ${CHOICE} with confidence ${CONFLEVEL})
131    ; Timeout results in a null choice.  Catch that here
132    exten => s,n,GotoIf($[ "${CHOICE}" = "" ]?fastball_menu_000,s,1)
133    exten => s,n,GotoIf($[ "${CONFLEVEL}" < "${THRESHOLD}" ]?BadRecognition)
134  exten => s,n,GotoIf($[ "${CHOICE}" = "1"]?Generic)  exten => s,n,GotoIf($[ "${CHOICE}" = "1"]?Generic)
135  exten => s,n,GotoIf($[ "${CHOICE}" = "2"]?Generic)  exten => s,n,GotoIf($[ "${CHOICE}" = "2"]?Generic)
136  exten => s,n,GotoIf($[ "${CHOICE}" = "3"]?Generic)  exten => s,n,GotoIf($[ "${CHOICE}" = "3"]?Generic)
137  exten => s,n,GotoIf($[ "${CHOICE}" = "4"]?Generic)  exten => s,n,GotoIf($[ "${CHOICE}" = "4"]?Generic)
138    exten => s,n,GotoIf($[ "${CHOICE}" = "5"]?Generic)
139    exten => s,n,GotoIf($[ "${CHOICE}" = "*"]?Generic)
140    exten => s,n,GotoIf($[ "${CHOICE}" = "#"]?Generic)
141  exten => s,n(Specific),Goto(${CHOICE})  exten => s,n(Specific),Goto(${CHOICE})
142  exten => s,n(Generic),Goto(fastball_menu_000,${CHOICE},1)  exten => s,n(Generic),Goto(fastball_menu_000,${CHOICE},1)
143  exten => 1,1,Verbose(${VERBOSE_LEVEL},Choice is "1" )  exten => s,n(BadRecognition),Gosub(recognition_error,s,1(${CONTEXT}))
144    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
145  exten => 1,n,Goto(four_seam_fastball,s,1)  exten => 1,n,Goto(four_seam_fastball,s,1)
146  exten => 2,1,Verbose(${VERBOSE_LEVEL},Choice is "2" )  exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
147  exten => 2,n,Goto(two_seam_fastball,s,1)  exten => 2,n,Goto(two_seam_fastball,s,1)
148  exten => 3,1,Verbose(${VERBOSE_LEVEL},Choice is "3" )  exten => 3,1,Verbose(${VERBOSELEVEL},Choice is "3" )
149  exten => 3,n,Goto(splitter,s,1)  exten => 3,n,Goto(splitter,s,1)
150    exten => 4,1,Verbose(${VERBOSELEVEL},Choice is "4" )
151    exten => 4,n,Goto(main_menu_000,s,1)
152    exten => 5,1,Verbose(${VERBOSELEVEL},Choice is "5" )
153    exten => 5,n,Goto(main_menu_000,s,1)
154    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
155    exten => *,n,Goto(main_menu_000,s,1)
156    ; Lumenvox not returning "#"
157    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
158    exten => #,n,Goto(main_menu_000,s,1)
159  exten => t,1,Goto(fastball_menu_000,s,1)  exten => t,1,Goto(fastball_menu_000,s,1)
160  exten => i,1,Goto(fastball_menu_000,s,1)  exten => i,1,Goto(fastball_menu_000,s,1)
161    
162  [breaking_ball_menu_000]  [breaking_ball_menu_000]
163  ; Menu listing all breaking ball pitches  ; Menu listing all breaking ball pitches
164  exten => s,1,Verbose(${VERBOSE_LEVEL},Context: breaking_ball_menu_000)  exten => s,1,Verbose(${VERBOSELEVEL},Context: breaking_ball_menu_000)
165  exten => s,n,Verbose(${VERBOSE_LEVEL},Choice of: beginners curveball = 1, straight curveball = 2, slider = 3)  exten => s,n,Verbose(${VERBOSELEVEL},Choice of: beginners curveball = 1, straight curveball = 2, slider = 3)
166  exten => s,n,SpeechLoadGrammar(breakingball,/etc/lumenvox/demogrammar/breakingball.gram)  exten => s,n,SpeechLoadGrammar(breakingball,/etc/lumenvox/demogrammar/breakingball.gram)
167  exten => s,n,SpeechActivateGrammar(breakingball)  exten => s,n,SpeechActivateGrammar(breakingball)
168  exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})  exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
# Line 128  Line 170 
170  exten => s,n,WoomeraStop()  exten => s,n,WoomeraStop()
171  exten => s,n,SpeechDeactivateGrammar(breakingball)  exten => s,n,SpeechDeactivateGrammar(breakingball)
172  exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})  exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
173    ; Problem here with DTMF and confidence level of 1000.  Comparison doesn't work
174    ; So, subtract 1
175    exten => s,n,Set(CONFLEVEL=$[${SPEECH_SCORE(0)} - 1])
176    exten => s,n,Verbose(${VERBOSELEVEL},Result was ${CHOICE} with confidence ${CONFLEVEL})
177    ; Timeout results in a null choice.  Catch that here
178    exten => s,n,GotoIf($[ "${CHOICE}" = "" ]?breaking_ball_menu_000,s,1)
179    exten => s,n,GotoIf($[ "${CONFLEVEL}" < "${THRESHOLD}" ]?BadRecognition)
180  exten => s,n,Goto(breaking_ball_menu_000,${CHOICE},1)  exten => s,n,Goto(breaking_ball_menu_000,${CHOICE},1)
181  exten => 1,1,Verbose(${VERBOSE_LEVEL},Choice is "1" )  exten => s,n(BadRecognition),Gosub(recognition_error,s,1(${CONTEXT}))
182    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
183  exten => 1,n,Goto(beginners_curveball,s,1)  exten => 1,n,Goto(beginners_curveball,s,1)
184  exten => 2,1,Verbose(${VERBOSE_LEVEL},Choice is "2" )  exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
185  exten => 2,n,Goto(straight_curveball,s,1)  exten => 2,n,Goto(straight_curveball,s,1)
186  exten => 3,1,Verbose(${VERBOSE_LEVEL},Choice is "3" )  exten => 3,1,Verbose(${VERBOSELEVEL},Choice is "3" )
187  exten => 3,n,Goto(slider,s,1)  exten => 3,n,Goto(slider,s,1)
188    exten => 4,1,Verbose(${VERBOSELEVEL},Choice is "4" )
189    exten => 4,n,Goto(main_menu_000,s,1)
190    exten => 5,1,Verbose(${VERBOSELEVEL},Choice is "5" )
191    exten => 5,n,Goto(main_menu_000,s,1)
192    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
193    exten => *,n,Goto(main_menu_000,s,1)
194    ; Lumenvox not returning "#"
195    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
196    exten => #,n,Goto(main_menu_000,s,1)
197  exten => t,1,Goto(breaking_ball_menu_000,s,1)  exten => t,1,Goto(breaking_ball_menu_000,s,1)
198  exten => i,1,Goto(breaking_ball_menu_000,s,1)  exten => i,1,Goto(breaking_ball_menu_000,s,1)
199    
200  [off_speed_menu_000]  [off_speed_menu_000]
201  ; Menu listing all offspeed pitches  ; Menu listing all offspeed pitches
202  exten => s,1,Verbose(${VERBOSE_LEVEL},Context: off_speed_menu_000)  exten => s,1,Verbose(${VERBOSELEVEL},Context: off_speed_menu_000)
203  exten => s,n,Verbose(${VERBOSE_LEVEL},Choice of: three-finger changeup = 1, circle changeup = 2, palm ball = 3)  exten => s,n,Verbose(${VERBOSELEVEL},Choice of: three-finger changeup = 1, circle changeup = 2, palm ball = 3)
204  exten => s,n,SpeechLoadGrammar(offspeed,/etc/lumenvox/demogrammar/offspeed.gram)  exten => s,n,SpeechLoadGrammar(offspeed,/etc/lumenvox/demogrammar/offspeed.gram)
205  exten => s,n,SpeechActivateGrammar(offspeed)  exten => s,n,SpeechActivateGrammar(offspeed)
206  exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})  exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
# Line 149  Line 208 
208  exten => s,n,WoomeraStop()  exten => s,n,WoomeraStop()
209  exten => s,n,SpeechDeactivateGrammar(offspeed)  exten => s,n,SpeechDeactivateGrammar(offspeed)
210  exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})  exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
211    ; Problem here with DTMF and confidence level of 1000.  Comparison doesn't work
212    ; So, subtract 1
213    exten => s,n,Set(CONFLEVEL=$[${SPEECH_SCORE(0)} - 1])
214    exten => s,n,Verbose(${VERBOSELEVEL},Result was ${CHOICE} with confidence ${CONFLEVEL})
215    ; Timeout results in a null choice.  Catch that here
216    exten => s,n,GotoIf($[ "${CHOICE}" = "" ]?off_speed_menu_000,s,1)
217    exten => s,n,GotoIf($[ "${CONFLEVEL}" < "${THRESHOLD}" ]?BadRecognition)
218  exten => s,n,Goto(off_speed_menu_000,${CHOICE},1)  exten => s,n,Goto(off_speed_menu_000,${CHOICE},1)
219  exten => 1,1,Verbose(${VERBOSE_LEVEL},Choice is "1" )  exten => s,n(BadRecognition),Gosub(recognition_error,s,1(${CONTEXT}))
220    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
221  exten => 1,n,Goto(three_finger_changeup,s,1)  exten => 1,n,Goto(three_finger_changeup,s,1)
222  exten => 2,1,Verbose(${VERBOSE_LEVEL},Choice is "2" )  exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
223  exten => 2,n,Goto(circle_change,s,1)  exten => 2,n,Goto(circle_change,s,1)
224  exten => 3,1,Verbose(${VERBOSE_LEVEL},Choice is "3" )  exten => 3,1,Verbose(${VERBOSELEVEL},Choice is "3" )
225  exten => 3,n,Goto(palmball,s,1)  exten => 3,n,Goto(palmball,s,1)
226    exten => 4,1,Verbose(${VERBOSELEVEL},Choice is "4" )
227    exten => 4,n,Goto(main_menu_000,s,1)
228    exten => 5,1,Verbose(${VERBOSELEVEL},Choice is "5" )
229    exten => 5,n,Goto(main_menu_000,s,1)
230    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
231    exten => *,n,Goto(main_menu_000,s,1)
232    ; Lumenvox not returning "#"
233    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
234    exten => #,n,Goto(main_menu_000,s,1)
235  exten => t,1,Goto(off_speed_menu_000,s,1)  exten => t,1,Goto(off_speed_menu_000,s,1)
236  exten => i,1,Goto(off_speed_menu_000,s,1)  exten => i,1,Goto(off_speed_menu_000,s,1)
237    
238  [knuckleball_menu_000]  [knuckleball_menu_000]
239  ; Menu listing all knuckleball pitches  ; Menu listing all knuckleball pitches
240  exten => s,1,Verbose(${VERBOSE_LEVEL},Context: knuckleball_menu_000)  exten => s,1,Verbose(${VERBOSELEVEL},Context: knuckleball_menu_000)
241  exten => s,n,Verbose(${VERBOSE_LEVEL},Choice of: knuckleball = 1, knuckle curve = 2)  exten => s,n,Verbose(${VERBOSELEVEL},Choice of: knuckleball = 1, knuckle curve = 2)
242  exten => s,n,SpeechLoadGrammar(knuckleball,/etc/lumenvox/demogrammar/knuckleball.gram)  exten => s,n,SpeechLoadGrammar(knuckleball,/etc/lumenvox/demogrammar/knuckleball.gram)
243  exten => s,n,SpeechActivateGrammar(knuckleball)  exten => s,n,SpeechActivateGrammar(knuckleball)
244  exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})  exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
# Line 170  Line 246 
246  exten => s,n,WoomeraStop()  exten => s,n,WoomeraStop()
247  exten => s,n,SpeechDeactivateGrammar(knuckleball)  exten => s,n,SpeechDeactivateGrammar(knuckleball)
248  exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})  exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
249    ; Problem here with DTMF and confidence level of 1000.  Comparison doesn't work
250    ; So, subtract 1
251    exten => s,n,Set(CONFLEVEL=$[${SPEECH_SCORE(0)} - 1])
252    exten => s,n,Verbose(${VERBOSELEVEL},Result was ${CHOICE} with confidence ${CONFLEVEL})
253    ; Timeout results in a null choice.  Catch that here
254    exten => s,n,GotoIf($[ "${CHOICE}" = "" ]?knuckleball_menu_000,s,1)
255    exten => s,n,GotoIf($[ "${CONFLEVEL}" < "${THRESHOLD}" ]?BadRecognition)
256  exten => s,n,Goto(knuckleball_menu_000,${CHOICE},1)  exten => s,n,Goto(knuckleball_menu_000,${CHOICE},1)
257  exten => 1,1,Verbose(${VERBOSE_LEVEL},Choice is "1" )  exten => s,n(BadRecognition),Gosub(recognition_error,s,1(${CONTEXT}))
258    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
259  exten => 1,n,Goto(knuckleball,s,1)  exten => 1,n,Goto(knuckleball,s,1)
260  exten => 2,1,Verbose(${VERBOSE_LEVEL},Choice is "2" )  exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
261  exten => 2,n,Goto(knucklecurve,s,1)  exten => 2,n,Goto(knucklecurve,s,1)
262    exten => 3,1,Verbose(${VERBOSELEVEL},Choice is "3" )
263    exten => 3,n,Goto(main_menu_000,s,1)
264    exten => 4,1,Verbose(${VERBOSELEVEL},Choice is "4" )
265    exten => 4,n,Goto(main_menu_000,s,1)
266    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
267    exten => *,n,Goto(main_menu_000,s,1)
268    ; Lumenvox not returning "#"
269    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
270    exten => #,n,Goto(main_menu_000,s,1)
271  exten => t,1,Goto(knuckleball_menu_000,s,1)  exten => t,1,Goto(knuckleball_menu_000,s,1)
272  exten => i,1,Goto(knuckecurvemenu_000,s,1)  exten => i,1,Goto(knuckleball_menu_000,s,1)
273    
274  [four_seam_fastball]  [four_seam_fastball]
275  exten => s,1,Set(COMMENT=Play four seam fastball instructions)  exten => s,1,Set(COMMENT=Play four seam fastball instructions)
276  exten => s,n,Set(NEXT_CONTEXT=main_menu_000)  exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CONTEXT} - ${COMMENT})
277  exten => s,n,Gosub(play_nointerrupt,s,1(${CONTEXT},${NEXT_CONTEXT},${COMMENT}))  exten => s,n,SpeechLoadGrammar(interruptclip,/etc/lumenvox/demogrammar/interruptclip.gram)
278    exten => s,n,SpeechActivateGrammar(interruptclip)
279    exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
280    exten => s,n,SpeechBackground(${CONTEXT},20)
281    exten => s,n,WoomeraStop()
282    exten => s,n,SpeechDeactivateGrammar(interruptclip)
283    exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
284    exten => s,n,Goto(four_seam_fastball,${CHOICE},1)
285    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
286    exten => 1,n,Goto(main_menu_000,s,1)
287    exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
288    exten => 2,n,Goto(fastball_menu_000,s,1)
289    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
290    exten => *,n,Goto(main_menu_000,s,1)
291    ; Lumenvox not returning "#"
292    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
293    exten => #,n,Goto(fastball_menu_000,s,1)
294    exten => t,1,Goto(four_seam_fastball,s,1)
295    exten => i,1,Goto(four_seam_fastball,s,1)
296    
297  [two_seam_fastball]  [two_seam_fastball]
298  exten => s,1,Set(COMMENT=Play two seam fastball instructions)  exten => s,1,Set(COMMENT=Play two seam fastball instructions)
299  exten => s,n,Set(NEXT_CONTEXT=main_menu_000)  exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CONTEXT} - ${COMMENT})
300  exten => s,n,Gosub(play_nointerrupt,s,1(${CONTEXT},${NEXT_CONTEXT},${COMMENT}))  exten => s,n,SpeechLoadGrammar(interruptclip,/etc/lumenvox/demogrammar/interruptclip.gram)
301    exten => s,n,SpeechActivateGrammar(interruptclip)
302    exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
303    exten => s,n,SpeechBackground(${CONTEXT},20)
304    exten => s,n,WoomeraStop()
305    exten => s,n,SpeechDeactivateGrammar(interruptclip)
306    exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
307    exten => s,n,Goto(two_seam_fastball,${CHOICE},1)
308    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
309    exten => 1,n,Goto(main_menu_000,s,1)
310    exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
311    exten => 2,n,Goto(fastball_menu_000,s,1)
312    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
313    exten => *,n,Goto(main_menu_000,s,1)
314    ; Lumenvox not returning "#"
315    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
316    exten => #,n,Goto(fastball_menu_000,s,1)
317    exten => t,1,Goto(two_seam_fastball,s,1)
318    exten => i,1,Goto(two_seam_fastball,s,1)
319    
320    
321  [splitter]  [splitter]
322  exten => s,1,Set(COMMENT=Play split finger fastball instructions)  exten => s,1,Set(COMMENT=Play split finger fastball instructions)
323  exten => s,n,Set(NEXT_CONTEXT=main_menu_000)  exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CONTEXT} - ${COMMENT})
324  exten => s,n,Gosub(play_nointerrupt,s,1(${CONTEXT},${NEXT_CONTEXT},${COMMENT}))  exten => s,n,SpeechLoadGrammar(interruptclip,/etc/lumenvox/demogrammar/interruptclip.gram)
325    exten => s,n,SpeechActivateGrammar(interruptclip)
326    exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
327    exten => s,n,SpeechBackground(${CONTEXT},20)
328    exten => s,n,WoomeraStop()
329    exten => s,n,SpeechDeactivateGrammar(interruptclip)
330    exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
331    exten => s,n,Goto(splitter,${CHOICE},1)
332    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
333    exten => 1,n,Goto(main_menu_000,s,1)
334    exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
335    exten => 2,n,Goto(fastball_menu_000,s,1)
336    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
337    exten => *,n,Goto(main_menu_000,s,1)
338    ; Lumenvox not returning "#"
339    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
340    exten => #,n,Goto(fastball_menu_000,s,1)
341    exten => t,1,Goto(splitter,s,1)
342    exten => i,1,Goto(splitter,s,1)
343    
344    
345  [beginners_curveball]  [beginners_curveball]
346  exten => s,1,Set(COMMENT=Play beginners curveball instructions)  exten => s,1,Set(COMMENT=Play beginners curveball instructions)
347  exten => s,n,Set(NEXT_CONTEXT=main_menu_000)  exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CONTEXT} - ${COMMENT})
348  exten => s,n,Gosub(play_nointerrupt,s,1(${CONTEXT},${NEXT_CONTEXT},${COMMENT}))  exten => s,n,SpeechLoadGrammar(interruptclip,/etc/lumenvox/demogrammar/interruptclip.gram)
349    exten => s,n,SpeechActivateGrammar(interruptclip)
350    exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
351    exten => s,n,SpeechBackground(${CONTEXT},20)
352    exten => s,n,WoomeraStop()
353    exten => s,n,SpeechDeactivateGrammar(interruptclip)
354    exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
355    exten => s,n,Goto(beginners_curveball,${CHOICE},1)
356    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
357    exten => 1,n,Goto(main_menu_000,s,1)
358    exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
359    exten => 2,n,Goto(breaking_ball_menu_000,s,1)
360    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
361    exten => *,n,Goto(main_menu_000,s,1)
362    ; Lumenvox not returning "#"
363    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
364    exten => #,n,Goto(breaking_ball_menu_000,s,1)
365    exten => t,1,Goto(beginners_curveball,s,1)
366    exten => i,1,Goto(beginners_curveball,s,1)
367    
368  [straight_curveball]  [straight_curveball]
369  exten => s,1,Set(COMMENT=Play straight curveball instructions)  exten => s,1,Set(COMMENT=Play straight curveball instructions)
370  exten => s,n,Set(NEXT_CONTEXT=main_menu_000)  exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CONTEXT} - ${COMMENT})
371  exten => s,n,Gosub(play_nointerrupt,s,1(${CONTEXT},${NEXT_CONTEXT},${COMMENT}))  exten => s,n,SpeechLoadGrammar(interruptclip,/etc/lumenvox/demogrammar/interruptclip.gram)
372    exten => s,n,SpeechActivateGrammar(interruptclip)
373    exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
374    exten => s,n,SpeechBackground(${CONTEXT},20)
375    exten => s,n,WoomeraStop()
376    exten => s,n,SpeechDeactivateGrammar(interruptclip)
377    exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
378    exten => s,n,Goto(straight_curveball,${CHOICE},1)
379    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
380    exten => 1,n,Goto(main_menu_000,s,1)
381    exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
382    exten => 2,n,Goto(breaking_ball_menu_000,s,1)
383    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
384    exten => *,n,Goto(main_menu_000,s,1)
385    ; Lumenvox not returning "#"
386    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
387    exten => #,n,Goto(breaking_ball_menu_000,s,1)
388    exten => t,1,Goto(straight_curveball,s,1)
389    exten => i,1,Goto(straight_curveball,s,1)
390    
391    
392  [slider]  [slider]
393  exten => s,1,Set(COMMENT=Play slider instructions)  exten => s,1,Set(COMMENT=Play slider instructions)
394  exten => s,n,Set(NEXT_CONTEXT=main_menu_000)  exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CONTEXT} - ${COMMENT})
395  exten => s,n,Gosub(play_nointerrupt,s,1(${CONTEXT},${NEXT_CONTEXT},${COMMENT}))  exten => s,n,SpeechLoadGrammar(interruptclip,/etc/lumenvox/demogrammar/interruptclip.gram)
396    exten => s,n,SpeechActivateGrammar(interruptclip)
397    exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
398    exten => s,n,SpeechBackground(${CONTEXT},20)
399    exten => s,n,WoomeraStop()
400    exten => s,n,SpeechDeactivateGrammar(interruptclip)
401    exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
402    exten => s,n,Goto(slider,${CHOICE},1)
403    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
404    exten => 1,n,Goto(main_menu_000,s,1)
405    exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
406    exten => 2,n,Goto(breaking_ball_menu_000,s,1)
407    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
408    exten => *,n,Goto(main_menu_000,s,1)
409    ; Lumenvox not returning "#"
410    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
411    exten => #,n,Goto(breaking_ball_menu_000,s,1)
412    exten => t,1,Goto(slider,s,1)
413    exten => i,1,Goto(slider,s,1)
414    
415  [three_finger_changeup]  [three_finger_changeup]
416  exten => s,1,Set(COMMENT=Play three finger changeup instructions)  exten => s,1,Set(COMMENT=Play three finger changeup instructions)
417  exten => s,n,Set(NEXT_CONTEXT=main_menu_000)  exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CONTEXT} - ${COMMENT})
418  exten => s,n,Gosub(play_nointerrupt,s,1(${CONTEXT},${NEXT_CONTEXT},${COMMENT}))  exten => s,n,SpeechLoadGrammar(interruptclip,/etc/lumenvox/demogrammar/interruptclip.gram)
419    exten => s,n,SpeechActivateGrammar(interruptclip)
420    exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
421    exten => s,n,SpeechBackground(${CONTEXT},20)
422    exten => s,n,WoomeraStop()
423    exten => s,n,SpeechDeactivateGrammar(interruptclip)
424    exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
425    exten => s,n,Goto(three_finger_changeup,${CHOICE},1)
426    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
427    exten => 1,n,Goto(main_menu_000,s,1)
428    exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
429    exten => 2,n,Goto(off_speed_menu_000,s,1)
430    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
431    exten => *,n,Goto(main_menu_000,s,1)
432    ; Lumenvox not returning "#"
433    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
434    exten => #,n,Goto(off_speed_menu_000,s,1)
435    exten => t,1,Goto(three_finger_changeup,s,1)
436    exten => i,1,Goto(three_finger_changeup,s,1)
437    
438  [circle_change]  [circle_change]
439  exten => s,1,Set(COMMENT=Play circle chageup instructions)  exten => s,1,Set(COMMENT=Play circle chageup instructions)
440  exten => s,n,Set(NEXT_CONTEXT=main_menu_000)  exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CONTEXT} - ${COMMENT})
441  exten => s,n,Gosub(play_nointerrupt,s,1(${CONTEXT},${NEXT_CONTEXT},${COMMENT}))  exten => s,n,SpeechLoadGrammar(interruptclip,/etc/lumenvox/demogrammar/interruptclip.gram)
442    exten => s,n,SpeechActivateGrammar(interruptclip)
443    exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
444    exten => s,n,SpeechBackground(${CONTEXT},20)
445    exten => s,n,WoomeraStop()
446    exten => s,n,SpeechDeactivateGrammar(interruptclip)
447    exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
448    exten => s,n,Goto(circle_change,${CHOICE},1)
449    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
450    exten => 1,n,Goto(main_menu_000,s,1)
451    exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
452    exten => 2,n,Goto(off_speed_menu_000,s,1)
453    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
454    exten => *,n,Goto(main_menu_000,s,1)
455    ; Lumenvox not returning "#"
456    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
457    exten => #,n,Goto(off_speed_menu_000,s,1)
458    exten => t,1,Goto(circle_change,s,1)
459    exten => i,1,Goto(circle_change,s,1)
460    
461  [palmball]  [palmball]
462  exten => s,1,Set(COMMENT=Play palmball instructions)  exten => s,1,Set(COMMENT=Play palmball instructions)
463  exten => s,n,Set(NEXT_CONTEXT=main_menu_000)  exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CONTEXT} - ${COMMENT})
464  exten => s,n,Gosub(play_nointerrupt,s,1(${CONTEXT},${NEXT_CONTEXT},${COMMENT}))  exten => s,n,SpeechLoadGrammar(interruptclip,/etc/lumenvox/demogrammar/interruptclip.gram)
465    exten => s,n,SpeechActivateGrammar(interruptclip)
466    exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
467    exten => s,n,SpeechBackground(${CONTEXT},20)
468    exten => s,n,WoomeraStop()
469    exten => s,n,SpeechDeactivateGrammar(interruptclip)
470    exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
471    exten => s,n,Goto(palmball,${CHOICE},1)
472    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
473    exten => 1,n,Goto(main_menu_000,s,1)
474    exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
475    exten => 2,n,Goto(off_speed_menu_000,s,1)
476    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
477    exten => *,n,Goto(main_menu_000,s,1)
478    ; Lumenvox not returning "#"
479    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
480    exten => #,n,Goto(off_speed_menu_000,s,1)
481    exten => t,1,Goto(palmball,s,1)
482    exten => i,1,Goto(palmball,s,1)
483    
484  [knuckleball]  [knuckleball]
485  exten => s,1,Set(COMMENT=Play knuckleball instructions)  exten => s,1,Set(COMMENT=Play knuckleball instructions)
486  exten => s,n,Set(NEXT_CONTEXT=main_menu_000)  exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CONTEXT} - ${COMMENT})
487  exten => s,n,Gosub(play_nointerrupt,s,1(${CONTEXT},${NEXT_CONTEXT},${COMMENT}))  exten => s,n,SpeechLoadGrammar(interruptclip,/etc/lumenvox/demogrammar/interruptclip.gram)
488    exten => s,n,SpeechActivateGrammar(interruptclip)
489    exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
490    exten => s,n,SpeechBackground(${CONTEXT},20)
491    exten => s,n,WoomeraStop()
492    exten => s,n,SpeechDeactivateGrammar(interruptclip)
493    exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
494    exten => s,n,Goto(knuckleball,${CHOICE},1)
495    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
496    exten => 1,n,Goto(main_menu_000,s,1)
497    exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
498    exten => 2,n,Goto(knuckleball_menu_000,s,1)
499    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
500    exten => *,n,Goto(main_menu_000,s,1)
501    ; Lumenvox not returning "#"
502    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
503    exten => #,n,Goto(knuckleball__menu_000,s,1)
504    exten => t,1,Goto(knuckleball,s,1)
505    exten => i,1,Goto(knuckleball,s,1)
506    
507    
508  [knucklecurve]  [knucklecurve]
509  exten => s,1,Set(COMMENT=Play knuckle curve instructions)  exten => s,1,Set(COMMENT=Play knuckle curve instructions)
510  exten => s,n,Set(NEXT_CONTEXT=main_menu_000)  exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CONTEXT} - ${COMMENT})
511  exten => s,n,Gosub(play_nointerrupt,s,1(${CONTEXT},${NEXT_CONTEXT},${COMMENT}))  exten => s,n,SpeechLoadGrammar(interruptclip,/etc/lumenvox/demogrammar/interruptclip.gram)
512    exten => s,n,SpeechActivateGrammar(interruptclip)
513    exten => s,n,WoomeraBackground(,${FILE_LOC}/${CONTEXT})
514    exten => s,n,SpeechBackground(${CONTEXT},20)
515    exten => s,n,WoomeraStop()
516    exten => s,n,SpeechDeactivateGrammar(interruptclip)
517    exten => s,n,Set(CHOICE=${SPEECH_TEXT(0)})
518    exten => s,n,Goto(knucklecurve,${CHOICE},1)
519    exten => 1,1,Verbose(${VERBOSELEVEL},Choice is "1" )
520    exten => 1,n,Goto(main_menu_000,s,1)
521    exten => 2,1,Verbose(${VERBOSELEVEL},Choice is "2" )
522    exten => 2,n,Goto(knuckleball_menu_000,s,1)
523    exten => *,1,Verbose(${VERBOSELEVEL},Choice is "*" )
524    exten => *,n,Goto(main_menu_000,s,1)
525    ; Lumenvox not returning "#"
526    exten => #,1,Verbose(${VERBOSELEVEL},Choice is "#" )
527    exten => #,n,Goto(knuckleball__menu_000,s,1)
528    exten => t,1,Goto(knucklecurve,s,1)
529    exten => i,1,Goto(knucklecurve,s,1)
530    
531    [recognition_error]
532    exten => s,1,Set(COMMENT=Recognition below confidence level)
533    exten => s,n,Verbose(${VERBOSELEVEL},Context: ${CONTEXT} - ${COMMENT})
534    exten => s,n,WoomeraPlayback(${FILE_LOC}/${CONTEXT},${FILE_LOC}/${CONTEXT})
535    exten => s,n,Set(LOCAL(NEXT_CONTEXT)=${ARG1})
536    exten => s,n,Verbose(${VERBOSELEVEL},Going to menu: ${NEXT_CONTEXT})
537    exten => s,n,Goto(${NEXT_CONTEXT},s,1)
538    ;exten => s,n,Goto(main_menu_000,s,1)
539    exten => s,n,Return

Legend:
Removed from v.24  
changed lines
  Added in v.51

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.8