OpenVXI

Building and Installing the OpenVXI

Download and Extract the OpenVXI Distribution

If you have not already done so, download the OpenVXI distribution. To extract it on Microsoft Windows, use WinZip from WinZip Computing, Inc., or use the Cygwin or other distribution of GNU gzip and tar as follows. To extract it on Linux, use gzip and tar as follows, downloading and installing GNU gzip if required.

            gzip –cd OpenVXI_2.0.tar.gz | tar xvf -


Running the Pre-built Binaries on Win32

To run the pre-built Win32 binaries on Microsoft Windows NT or Microsoft Windows 2000, set an environment variable called VXISDK to the top-level directory of your OpenVXI distribution, then add %VXISDK%\bin to your Path environment variable so the DLLs and executables are automatically found. Next refer to the Configuration and Run Instructions.


Downloading and Building Third Party Components

Building the OpenVXI requires several pieces of external open software: the Apache Xerces C++ XML parser, the Mozilla SpiderMonkey C ECMAScript (JavaScript) engine, and the W3C Libwww HTTP library. These must be downloaded and built according to the documentation provided with those packages before building the OpenVXI.

  1. Download and build version 1.6.0 of the Apache Xerces C++ XML parser

    On Linux, when running runConfigure, use the typical settings documented in the Xerces build instructions of:

    runConfigure -plinux -cgcc -xg++ -minmem -nfileonly -tnative

    See http://xml.apache.org/xerces-c/index.html for more information on Xerces.

  2. Download and build version 1.5 rc4 of the Mozilla SpiderMonkey C JavaScript engine

    Do not modify the distribution for thread safe builds; thread safety is enforced at the VXIjsi reference implementation layer. On Linux, prior to the build, configure a release (optimized) build by setting BUILD_OPT=1 in your environment.

    See http://www.mozilla.org/js/spidermonkey/ for more information on SpiderMonkey.

  3. Download and build version 5.3.2 of the W3C Libwww library

    After downloading and extracting the source but prior to performing the build apply the bug fix patches in the libwww directory of the OpenVXI package by merely replacing the files in the libwww distribution with the files in that directory (the paths and file names are identical).

    By default, Libwww will attempt to parse all your VoiceXML documents with its built-in Expat XML parser after a fetch but prior to delivering the document to the VoiceXML interpreter, a major performance impact as well as causing obscure fetch errors in some cases. To avoid this on Linux, run configure with the --without-expat option, such as:

    ./configure --without-expat

    To avoid Libwww XML parsing on Windows, after opening the Microsoft Visual C++ Workspace for Libwww, select the “File View” tab, and then expand the entry for wwwinit. Click on the wwwxml link that appears under wwwinit and press the delete key to delete that link. The Libwww patches bundled with the OpenVXI handle the rest of the work.

    See
    http://www.w3.org/Library/ for more information on the Libwww.

Once this is complete, set the following environment variables so the OpenVXI build can locate the required headers and libraries:

Next follow the instructions below to build the OpenVXI.


Building the OpenVXI on Win32

Note: This procedure has been tested on Microsoft Windows NT 4.0 Service Pack 6a and Microsoft Windows 2000 Professional Service Pack 1 with Microsoft Visual C++ 6.0 Service Pack 3, 4, and 5.

  1. Download and build the third party components as documented above
  2. Set an environment variable called VXISDK to the top-level directory of the OpenVXI distribution
  3. Open src/OpenVXI.dsw, the OpenVXI Microsoft Visual C++ workspace, using Microsoft Visual C++ (Note: make sure the environment variables are set prior to starting Microsoft Visual C++.)
  4. Build >> Set Active Configuration, select testVXI – Win32 Debug for the debug version
  5. Build >> Build testVXI.exe
  6. Build >> Set Active Configuration, select testVXI – Win32 Release for the release version
  7. Build >> Build testVXI.exe

The results of the build will go into src\Build\Release for the release binaries, and src\Build\Debug for the debug binaries. The debug binaries have a suffix of “D” prior to the extension to indicate they are “debug” versions, such as testClientD.exe. To run these binaries, move them into a directory in your binary search path (Path environment variable), or set your path to search these directories. Be careful to ensure %VXISDK%\bin appears in your Path after your newly built versions so that your versions get used at run-time. Do the same for the Xerces, SpiderMonkey, and Libwww binaries from your build. Then follow the Configuration and Run Instructions,.


Building the OpenVXI on Linux

Note: This procedure has been tested on Red Hat Linux 7.2 with GNU gmake 3.79.1 and GNU gcc 3.0.2. Unfortunately, we have experienced difficulty in attempts to use older versions.

  1. Download and build the third party components as documented above; set the corresponding environment variables.
  2. Here is a walk through. Xerces, SpiderMonkey, libWWW, and OpenVXI were uncompressed and the environment prepared:

    setenv VXIXERCESDIR /users/openvxi/xerces-c-src1_6_0
    setenv VXISPIDERMONKEYDIR /users/openvxi/js
    setenv VXILIBWWWDIR /users/openvxi/w3c-libwww-5.3.2
    setenv VXISDK /users/openvxi/OpenVXI_2.0.1

    setenv LD_LIBRARY_PATH "$LD_LIBRARY_PATH;$VXIXERCESDIR/lib;$VXISPIDERMONKEYDIR/src/Linux_All_OPT.OBJ;$VXILIBWWWDIR/Library/src/.libs;$VXILIBWWWDIR/modules/md5/.libs;$VXILIBWWWDIR/PICS-client/src/.libs"


    Then the third party libraries were built. If you encounter any problems here, refer to the appropriate third party documentation.

    cd $VXIXERCESDIR/src
    setenv XERCESCROOT $VXIXERCESDIR
    chmod 744 runConfigure
    ./runConfigure -plinux -cgcc -xg++ -minmem -nfileonly -tnative
    gmake

    cd $VXISPIDERMONKEYDIR/src
    gmake -f Makefile.ref BUILD_OPT=1

    cd $VXILIBWWWDIR
    [Overlay the patches as discussed here]
    ./configure --without-expat
    gmake
  3. Set an environment variable called VXISDK to the top-level directory of the OpenVXI distribution
  4. Change directory to src
  5. chmod a+x configure
  6. ./configure
  7. gmake all
  8. Finally, build OpenVXI:

    cd $VXISDK/src
    chmod 744 configure
    ./configure
    gmake all

The results of the build will go into the various src subdirectories, with a static library for the component in each subdirectory and the final executable, testVXI, in the client subdirectory. To run these, set an environment variable called VXISDK to the top-level directory of your OpenVXI distribution. Then move testVXI and the Xerces and SpiderMonkey shared libraries into a directory in your executable and library search paths (PATH and LD_LIBRARY_PATH environment variables respectively), or set those environment variables to search these directories. Then follow the Configuration and Run Instructions.


Copyright (c) 2000-2002. SpeechWorks International, Inc. All rights reserved.


VoiceXML is a Trademark of the VoiceXML forum.