VoiceXML Autotest: Switching to Bladeware VXML

UPDATE: Progress as of 5 May 2012 is available at: http://jananuraga.blogspot.mx/2013/05/progress-on-voicexml-autotest-using.html

---
Yep, I decided to switch to BladewareVxml to use as the basis for the VoiceXML Autotest I'm working on. Pragmatic reasons:

  • BladewareVxml is VoiceXML 2.1 compliant.
  • It's based on OpenVXI, which to my knowledge is used by many commercial products out there. So..., hopefully people would be more likely to use this tool.

What have I done so far? Very basic: get BladewareVxml compiled :) No brainer, I only had to fix a few build configurations, and one header file, VxiCommon.h, adding #include <iterator>. Download it from here: https://www.box.com/s/l9yniyq9pcbgb4nhro90

Next: I'm going to write a C++ interface and process with SWIG, first step toward integration with Python. The idea: software testers will write their test-script in Python, and that C++ interface will act as a bridge between that test script and the BladewareVXML interpreter object.

The C++ class that implements the interface will:
  • Accept (through its constructors) callback-function pointers written in python, such as:
    • readInput
    • renderPrompts
    • inputRecognized
    • inputNomatch
    • inputNoinput
    • transferPerformed
    • submit
  • Accept (through its constructors) VoiceXML platform properties.
  • Have methods that can be called from test script. These methods will interact with Bladeware VoiceXML interpreter object created during the construction:
    • runVxml
    • feedInputSpoken
    • feedInputDTMF
    • feedNoInput
    • hangup
  • Be implemented as singleton, allowing me to obtain a reference to it from any point in the Bladeware's Vxml code.
Before I get to that, I will have to study Bladeware Vxml code in debug mode. Now... where is the starting point(s)? :D Maybe I can start from these ones.... Ok, that's all for now, until next weekend.