VoiceXml Extension

DTMF Grammar & Menu and Choices

Visda Vokhshoori
Columbia University
New York, NY 10027
 

Abstract:

The main project description is located at http://www.cs.columbia.edu/~kns10/software/sipvxml/sipvxml.html.  Follow describes two of the
possible extensions that was done for the main project VoicXML browser.

Introduction:

DTMF grammar enhancement:
     The current DTMF grammar requires a terminating '#' after every input.
     Enhance the grammar matching code, possibly using our gmatch
     utility, to remove this requirement. The new grammar matching rule
     should allow specifying timeout also as part of the matching
     rule. Consider the following example.

      <dtmf type="application/x-dtmf">
        1 | 2 | 3 | 4 | \* | #
      </dtmf>

     A special keyword T is used to indicate a timeout. So following grammar can be use to enter a
     phone number.

      <dtmf type="application/x-dtmf">
        7??? | [34]????  | 1?????????? | 011*T | ???????
      </dtmf>

     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., [345] 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.
 

Related Work:

http://www.cs.columbia.edu/~kns10/software/sipvxml/sipvxml.html
 

Task List:

Which software are you extending?
     SIP

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, Grammar matching
     rules.
 
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.

Programming language(s)?
      C/C++

Which operating system platforms do you plan to support?
 Solaris, Linux

If applicable, what GUI tool kit will you be using (e.g., Tk, Java AWT, Java Swing, Motif, Windows)?
 n/a

How will you do component testing?
     Test tools?
 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 the code
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
 

References:

www.voicexml.org:  Organization dedicated to defining the spec for VoiceXML and encouraging its use.
www.zvon.org/xxl/VoiceXMLReference/Output/:  Complete Voice XML reference with clickable examples.