Telephone
1.360.227.6036

E-Mail
info@ivrforbeginners.com

Frequently Asked Questions

Here you will find answers to the IVR development questions which are asked of us most often. Feel free to email us for answers to questions which you don't find here.

Platform questions

Q: Which operating systems are supported?
A: Our server and our simulator run on Windows 2000, Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008.

Applications that you develop in any language which is supported by the server and simulator (see the next section) can run on any of the same platforms.

Java applications that you create can run on any platform with a Java virtual machine which has connectivity to our server.

The same is true of Mono applications - install the runtime on a machine and insure that our server can connect to it.


Q: What do I have to do to deploy my Java application on a Linux host?
A: Assuming that you have already installed our server and /or simulator on a nearby Windows machine with IP connectivity to the Linux host, this is the deal:

  • Copy the classes used by your application to the host
  • Copy our jar file containing our support for Java to the host (the same jar file we use to support Java locally)
  • Set the class path used by the host so that it can locate your application's class files and our jar file
  • Insure that the host runs a Java virtual machine compatible with JDK version 1.2 or later
  • Open up a spare port on the host and specify the port  number and either of the host address or host node name when you deploy your application with our deployment wizard

Q: Do I need an expensive PBX?
A: No. In a small office environment where you have only a few lines you may want to install a telephony card like those from CallUrl or Dialogic into a PCI slot or connect a USB device like the one from Way2Call to a hub. Of course, you may need a PBX if you want to transfer or conference calls.


Q: I already have a PBX. How do I determine if my environment is compatible with your IVR?
A: In general, you need to ask your vendor if its PBX includes support for the Telephony Applications Programming Interface - also known as TAPI in jargon.

Digium's Asterisk PBX is a special case. It does not support TAPI, but it does support SIP and our TAPI-based IVR can be made to answer calls in a SIP environment. More detail on that option is here.

Note that there have been three major releases of TAPI over the years so you'll need to ask your vendor if its TAPI support is at least compatible with version 2.1 of TAPI and if it provides a "wave driver" so that our IVR can access the audio stream in a call to play and record media files, and perform text-to-speech and speech-recognition operations.

Links to the documentation for several popular PBX vendors are here: Alcatel, Avaya, Cisco, Panasonic, Samsung, Siemens, ShoreTel

Programming language questions

Q: Do you support applications written with any of the .Net languages?
A: Yes, pick one, or pick them all. Just be sure that your  application's assembly targets version 1.1 or later of the framework. And unlike MSS we actually support version 2.0 of the framework as well.


Q: Do you support applications written in Java?
A: Yes, just insure you install a Java virtual machine compatible with version 1.2 of the JDK or later.


Q: Do you support applications written in Delphi?
A: Yes, we have tested with Delphi 7 and Delphi 2005 and Borland Developer Studio 2006.


Q: Do you support applications written in Visual Basic or Visual FoxPro?
A: Yes, in either language an IVR application is an in-process Automation component (ActiveX DLL) loaded by our server or simulator.


Q: Do you support applications written in script languages?
A: Yes, if the language is compatible with the Windows Script Host. We have tested the server and simulator with applications written in the VB Script and J/Script languages which are bundled with the operating system and with Ruby, Perl, Python and Object Rexx which are freely available online from their developers.


Q: Do you support applications written in C++?
A: Yes, of course. It is the most canonical language in our environment. Just use a Microsoft compiler to implement the voice user interface. If you don't have one, download the freebie. Use any compiler you like to implement the business logic of your application.


Q: What about the C language?
A: We have a C binding but we'd prefer that you use C++. We used it to support the bindings in the 'other' languages. But like most things written in C it is unforgiving and if you make a mistake you risk crashing the server.


Q: Do all languages use the same API?
A: Yes, for the most part. There are small differences due to the capabilities of the language. So for example, some languages support exceptions, multiple overloads and intrinsic strings and some don't. But in any language, applications can perform telephony, media streaming and recording, text-to-speech and speech recognition operations. Yes, you read that correctly - you can do speech recognition even in Visual Basic or a scripting language like Perl, Python or Ruby.


Q: What if my favorite language is not supported?
A: If your language is compatible with COM you can use our support for COM that makes Visual Basic an option.

Alternatively you may be able to use the C binding if your language can make "API calls" to functions in dynamic link libraries (DLLs).

Hardware questions

Q: Do I need to buy hardware to prototype an application?
A: No, you can use our simulator to develop an application.


Q: Can I deploy an application on a line where I only have a voice modem?
A: Yes, you will be able to answer calls, play announcements, pass text strings through a text-to-speech engine, record messages, and detect keypad input.

You will not be able to use speech recognition except in a clumsy way because the drivers for voice-modems tend not to allow programs fully duplexed access to the audio streams in a call.


Q: What are the hardware requirements?
A: You need to use a device which has a software component known as a Telephony Service Provider (TSP) which is compatible with version 2.1 of the telephony support - TAPI - in Windows.


Q: Do you sell telephony hardware?
A: Not currently.


Q: Can you recommend some telephony hardware?
A: No, but you'll find some options to consider on the hardware page.

Speech Engine Questions

Q: What are the requirements for text-to-speech (TTS) and automatic speech recognition (ASR) engines.
A: Our server is compatible with TTS and ASR engines that are compliant with version 5 of the Speech API - SAPI.

We bundle the server that we sell with compatible TTS and ASR engines. While you are experimenting with our free simulator, you can download the TTS and ASR engines from their source.


Q: I want to use synthetic speech but I don't like the sound of the free voices bundled with the operating system. What can I do?
A: You'll find some vendors of text-to-speech engines listed here and here and here. Be sure to check with the vendor to make sure that you buy a license with sufficient headroom for the number of lines on which you expect to be synthesizing text concurrently.


Q: What about languages other than English?
A: There are a number of vendors who sell TTS engines using European and Asian languages. See the previous question. We know of only one non-English, SAPI compliant ASR engine which is described here.


Trademarks

  • Microsoft, Windows, C#, Visual Basic, Visual FoxPro, JScript and ActiveX are trademarks or registered trademarks of Microsoft Corporation.
  • Borland and Delphi are trademarks or registered trademarks of Borland Software Corporation.
  • Java and JavaScript are trademarks or registered trademarks of Sun Microsystems, Inc.
  • Mono is a registered trademark of Novell
  • Avaya is a trademark or registered trademark of  Avaya, Inc.
  • Alcatel is a trademark or registered trademark of Alcatel Corporation
  • Cisco is a trademark or registered trademark of Cisco Systems, Inc.
  • Eicon, Diva and Dialogic are registered trademarks or trademarks of Dialogic Corporation formerly Eicon Networks Corporation
  • Panasonic is a trademark or registered trademark of Matsushita Electric Industrial Company
  • Samsung is a trademark or registered trademark of Samsung
  • Siemens is a trademark or registered trademark of  Siemens AG
  • ShoreTel is a trademark or registered trademark of ShoreTel, Inc
  • Linux is a Registered Trademark of Linus Torvalds
  • Asterisk and Digium are trademarks or registered trademarks of Digium, Inc.