1 | 2 | 3 | 4 | \* | #
A special keyword T is used to indicate a timeout.
So following grammar can be use to enter a
7??? | ???? | 1?????????? | 011*T | ???????
In this example, the phone numbers are either
internal 4 digit number (starting with 7) or a 5
digit number (starting with 3 or 4), a local number (7 digit number), an US long-distance number
(starting with 1) or an international number (starting with 011). The value of T is 1 second. If
you expect more delay then use multiple T's. e.g., 011*TTT will wait for 3 seconds before assuming
the current set of dialed digits to be the international number. The matching rules are ordered
from left to right, so if a rule 3? appears before 34? then 34? will be ignored. However, a
matching rule of 3?T and 34? can co-exist. The matching rule is applied from left to right when
multiple rules are specified using the binary OR ("|") operator.
? is used to match a single character, while
* can match any sequence of characters including
none. Square brackets [ ] are used to match one digit from a sequence, e.g.,  matches either
3, 4, or 5.
Menu and choices
menu is a special form of a form that allows
specifying dialogs more easily in some cases. Modify the interpreter
to understand the menu and choice tags. This will need extensive testing. We can assume only dtmf grammar in
choice elements, or an explicit dtmf attribute for the choice tag.
List the features you want to support, indicating the priority of each
(must, should, if time). SIP, RTP, DTMF detection, DTMF gerenation,
HTTP, XML parser, Text-to-speech, Speech recognizion, VoiceXML interpreter,
Which existing libraries or modules will you be using?
Xerces-C is a freely available XML parser. It supports two ways of using it. We will use the DOM parser. We also use HTTP client library to post data to the web.
Which operating system platforms do you plan to support?
If applicable, what GUI tool kit will you be using (e.g., Tk, Java AWT,
Java Swing, Motif, Windows)?
How will you do component testing?
We will use a locally developed SIP phone and IBM ViaVoice for testing
How is error logging to be implemented, if applicable?
In the initial state we have debug flags in the browser code that when turned on will allow us to step through the code. This feature will enable us to debug the program itself. Once we are satistfied with the result we will turn this option off, but still we support the voiceXml <meta> tag that can get the name and email address of a supervisor to send notifications to that person, in case of an error.
Once the features list is finalized, we make
a schedule describing major milestones and dates to accomplish them. You
are responsible for providing input
while finalizing the schedule. You should consider different aspects like familiarity with the domain, socket programming experience, other course work,
personal commitments, etc. The list of major milestones will be finalized at the begining. This will be reviewed every other week. There should be a verifiable
milestone at least every two weeks.
10/15: Code Done, Make file in place, and being able to compile
10/29: Run time errors debugged and cleaned
11/12: Putting together with other parts, dtmf detector
11/26 Putting together with other parts, voice recognition and text to speech code
12/03 Final test