TeleFlow VXML

TeleFlow VXML

From TeleFlow

Jump to: navigation, search

TeleFlow, an application development and service creation environment for telecommunication, was created in 1993 to help developers efficiently create and deploy voice applications for a range of hardware environments (including Dialogic, NMS Communications, Ai-Logix) by utilizing a flowchart approach to voice application development.

At the time, there was no obvious standard file structure for expressing voice applications in a non-compiled environment. Accordingly, the TeleFlow project developed its own proprietary Tap/Tam linked-list file structure to encapsulate and express all aspects of a voice system. In the following years, the VoiceXML (or VXML) file structure system became a strong standard employed in telecommunications, and has been widely adopted as an open standard.

Contents

TeleFlow-VXML

This open source application licensed using the GPL License has been created to harmonize the Tap/Tam file structure with VXML, and ensure that developers are creating code that will not become a dead-end. TeleFlow-VXML is a standalone, open source application which enables a developer to convert TeleFlow's flowchart files (Tap/Tam) to VXML. The project will realize the following benefits:

  • Past TeleFlow developers will be able to ensure their source code is transportable to other VXML deployment environments.
  • Current TeleFlow developers will be able to use the TeleFlow products and have some assurance that the applications they create will run on other VXML deployment environments.
  • New TeleFlow developers will be able to use the TeleFlow Designer to create VXML applications
  • TeleFlow-VXML becomes a training tool to show new VXML developers how to express application flow in VXML.
  • Greater adoption of VXML, the prevalent standard.
  • Developers may be able to adapt TeleFlow-VXML to convert other linked-list file structures to save projects developed in TeleFlow like environments to VXML.

Development Plan

PHASE 1: VXML OUTPUT COMPLETED TO BETA

TeleFlow-VXML has been created in order to harmonize the Tap/Tam file structure with VXML, and ensure that developers are creating code that will always be operable in any circumstance. TeleFlow-VXML is a standalone, open source application which enables a developer to convert TeleFlow's flowchart files (Tap/Tam) to VXML. This application realizes the following benefits:

  • TeleFlow developers are ensured their source code is always transportable (note: VXML does not cover all features TeleFlow offers)
  • Current TeleFlow developers will be able to use the TeleFlow products and have some assurance that the applications they create will run on other VXML deployment environments.
  • New TeleFlow developers will be able to use the TeleFlow Designer to create VXML applications
  • TeleFlow-VXML becomes a training tool to show new VXML developers how to express application flow in VXML.
  • Developers may be able to adapt TeleFlow-VXML to convert other linked-list file structures to save projects developed in TeleFlow like environments to VXML.

We are pleased with the results that TeleFlow Designer creates. TeleFlow was developed entirely independently of the VXML standard, and yet the output TeleFlow Designer (via TeleFlow-VXML) creates proper VXML.


PHASE 2: Q3 2008 - PHP/VXML

TeleFlow is a fully multithreaded media service environment, is stable, and includes support for TCPIP protocols including HTTP. The environment was intended to make the task of prototyping voice applications easy, and then enable a developer to rapidly develop and deploy the service. In this regard, TeleFlow has been successful, and for prototyping nothing beats the development environment. However, at the development and integration stages, developers are generally more comfortable with script environments.

PHP is possibly the Internet's most used programming versatile programming and scripting environment. TeleFlow Server is now generally deployed along either an Apache or IIS web server with PHP installed. This is done as request/responses are generally encapsulated in XML, which is easily parsed in PHP.

An example of this is where reminder call is requested by a remote application. That remote application might be a scheduling application that has determined a patient scheduled for an appointment in the near future needs a reminder to make sure they are still intending to show. The request would be an HTTP post with XML tagged information about the telephone number, date and time etc. That XML request would be sent to the PHP service near the TeleFlow service. The PHP would break up the XML and then post an HTTP request to TeleFlow, and an application running on TeleFlow would process the request, and respond accordingly. This is currently how many TeleFlow applications are developed, and is an effective way to off load much of the XML processing to PHP, which is ideal because of rich classed programming environment.

As VXML is fully structured XML, PHP is an ideal parser to destruct the language into discrete elements. The elements can then be identified for processing in either the same PHP application or in TeleFlow. Most of the logical processing and variable handling can be managed within PHP, whereas the all voice and telephone related functionality will be managed by TeleFlow. HTTP Posts and Gets will manage the passing of process requests between the two servers.

Aside from providing support for VXML, having a PHP server resident with TeleFlow provides a means to distribute applications widely, and provide a means to automatically update them en-mass to various hosts. The means of publishing will enable developers who created applications that mean TeleFlow Marketplace standards, will be able to deploy them widely, and possibly realize advertising based revenues.

This approach of adding VXML via PHP processing will not break the current functionality of TeleFlow in anyway. The environment will only benefit from having a second means to define applications by. Because TeleFlow Designer would be the primary means to develop the VXML, engenic and its community will align TeleFlow-VXML (Designer) and TeleFlow-PHP/VXML (Server) in subsequent releases. In addition, the PHP language itself, running beside TeleFlow, will open the TeleFlow environment to a much wider audience.

Software Components

TeleFlow VXML uses the following components:

  • Stefan Heymann's great XML parser system
http://www.destructor.de/xmlparser/index.htm
  • DeMime - excellent for Mime

Revision History

  • 0.01 - 2007/07/20 Basic output of VXML good for a starting point for VXML developers
most functionally guessed at just to get output looking real
  • 0.02 - 2007/08/20 Clean up, and first release to SourceForge


Requested Improvements

  • Convert Standard 16b 8Khz Wav (and Mp3) voice files to XML/VXML format
  • Continue development of VXML output
  • Proper variable definitions (Session / Application etc)
  • Menu structures linked to voice files (requires minor

Release Document

  Program: TFVXMLConverter
  Version: 0.02 (alpha)
  Authors:  various (engenic)
  Date:    2007
  License: GPL



  PURPOSE
  As of 0.01 this program is intended for VXML developers who want to jump start
  creating a VXML application by using TeleFlow Designer.  TeleFlow Designer has
  all the requirements programmed within it to be able to create full VXML
  code from its flowchart development environment.  This was a bit of a surprise
  as TeleFlow was initially created in 1993... well before XML and VXML.

  This program does the following:
  1) Load TeleFlow application XML (Tap, Tam, dbf) files
  2) Write its all out to VXML


  FILES
  Uses the following components:
  - Stefan Heymann's great XML parser system
      http://www.destructor.de/xmlparser/index.htm
  - DeMime - excellent for Mime

  Revision History
  0.01 - 2007/07/20 Basic output of VXML good for a starting point for VXML developers
         - most functionally guessed at just to get output looking real
  0.02 - 2007/08/20 Clean up, and first release to SourceForge

  Next
  - Convert Standard 16b 8Khz Wav (and Mp3) voice files to XML/VXML format
  - Continue development of VXML output
  - Proper variable definitions (Session / Application etc)
  - Menu structures linked to voice files (requires minor changes in TF Designer)
  - Couple with HTTP for real time requests


  CONTRIBUTORS
  The intention is to start with Delphi/Pascal to build out the converter.  It might
  just stay in Delphi as it is a fabulous language for this kind of thing.
  Eventually, I could see a PHP engine converting and sending back out VXML.

  Note: The files that comprise this environment will ALWAYS be "Open Source"
  If you do wish to add code to this environment we will happily add it to the
  code set, and provide it for others to build with.  If you do decide to
  contribute code, it will also be included in the source.

  Contributed code must be assigned to engenic in order to ensure viability of
  the project.  Should a new open source license be selected, all assigned code
  will also remain open source.

  VXMLConvertStep is the function you will want to work with for the most part


  EXPECTATIONS
  The TF Designer will need adds and improvements in order to accommodate aspects
  of VXML.  We are willing to do this.  


  CONVENTIONS
  "@@@" (spoken "atatat" by the developers) is engenic's way of saying
  "this is incomplete, broken, incorrect, needs improvement or just plain sucks."