Early Gallows Telephone VoiceTronix
VoiceTronix
Home
Downloads
Purchasing
Products
New Products
Open Source
Contact
Links
OpenLine4 Card
OpenLine4 Card
OpenLog4 Card
OpenLog4 Card
OpenLog8i Card
OpenLog8i Card
OpenH323 VOIP Gateway
VOIP Gateway
Open Source
Open Source
Open Source
FreeBSD Drivers
Bayonne IVR Server
Bayonne IVR Server
Open Source Telecom
Open Source Telecom
Open Source

Contents

Why Open Source
Why Voicetronix
Open Source Projects
CT Programming Examples

Why Open Source for Computer Telephony?

Voicetronix proudly supports Open Source CT projects, especially for operating systems such as Linux and FreeBSD.  These operating systems are perfect for CT because they are stable, open source, and free.  These operating systems are variants of the Unix operating system, which is an excellent choice for CT due to its stability, remote administration capabilities, and true multitasking.  For these reasons many enterprise-scale CT systems and large PBXs run Unix.

Advantages of Open Source include Cost and Remote Administration.  You are free to maintain your own CT systems, or use the maintainer of your choice.  Why depend on CT software/hardware vendors to fix bugs when they choose, and pay expensive support to maintain proprietary, closed source CT systems?

Build your own CT systems, using free open source software components.  It's easy!

Production Cost

Using Open Source software a CT system can be built for the price of a CT card, a PC, and a little effort.  This can give your company a tremendous cost advantage over traditional CT system business models, that charge largely for their proprietary software.  End-users can use this cost advantage to build and maintain their own low cost, high quality CT system.  VARs can use this cost advantage to lower their production costs, enabling higher profits or generating a competitive advantage through lower pricing to the customer.

Consider this cost comparison for a typical 4-port IVR server:
 
Component
 Closed Source
Open Source
PC
$700
$500
CT Card
$550
$550
Operating System
$300 (Win2k desktop)
Free
Application Software
$3000 
Free
Total
$4550
$1050

Notes:

  1. Approximate prices in US$.
  2. The PC required can be low end.  Typical free OSs run very well on much less powerful machines than required by modern closed source OSs.  Use low cost commodity hardware rather than leading edge.
  3. A monitor is generally not required for IVR servers powered by free OSs, as they can be remote administered via telnet.

Maintenance Costs

With Open Source software, you have a team of developers working for you to upgrade and fix bugs on your CT system - all for free.  This is why Open Source software tends to be far more reliable and stable than comparable closed source systems.  Open source software has a far lower cost of ownership for this reason.

If there is a bug in Open Source software, any developer can find and fix it.  In a closed source system, you are at the mercy of the software vendor.

Remote Administration

A Linux CT server connected to the internet can be easily administered from anywhere in the world:
  • Personnel local to the system need only install the OS, and connect it to the internet and a phone line.
  • CT suppliers can then install/maintain software using remote tools like telnet and ftp (or secure variants).
  • Systems can be tested by dialing in to the phone lines connected to the target system.
Voicetronix has used these techniques to develop, install, test, upgrade, and maintain CT systems all over the world - all without leaving our Australian offices!

How much time and money could your company save by effective Remote Administration of CT systems?

Why Voicetronix?

Linux/FreeBSD Developers

Voicetronix is one of the few CT hardware vendors with Open Source drivers.  This is very important if you are developing under an Open Source operating system such as Linux or FreeBSD.  One reason is that Open Source operating systems like Linux are evolving very rapidly and unfortunately closed source drivers usually only work with a very narrow range of kernel versions.  Another reason is that it guarantees the driver will always be supported and bugs can be fixed if required.

If you buy CT hardware from a vendor with a closed source driver please be prepared for the following:

  • You must ignore any kernel upgrades until the vendor decides they are ready to maintain their driver.
  • You must put up with all of the bugs in their driver until the vendor is ready to fix them.
  • You must understand that the vendor's main business is in the Windows world, so support will be slow or non-exisitant.  Be prepared for them to sideline or even abandon development under your OS without regard for your needs.
  • You must understand that they will probably never support your favorite Open Source operating system (especially if it has a lower profile than Linux).
Please note - these are actual experiences that customers of closed source CT hardware have reported to us and our resellers.

Linus Torvalds, leader of the Linux development effort, has stated that because binary-only drivers depend so heavily on a given kernel version, and therefore are so prone to "breaking" when kernel development proceeds, as it is bound to do, he does not intend to support nor encourage the use of binary-only loadable drivers.

If Linux developers try to maintain compatibility with a given binary-only driver, it would severely limit the avenues of development open to Linux.  The goal in Linux development is to achieve the highest performance, the best stability (in terms of bug free code), and the most advanced technology possible.

Windows Developers

Voicetronix products come with free high quality support, and are competitively priced.

Voicetronix Open Source Projects

VoiceTronix is participating in the following open source projects:
  • VPB Driver - the driver for the Voicetronix CT Cards.
  • Bayonne - the telecommunications application server of the GNU project.  Example.
  • OpenH323 PSTNGW - A VOIP gateway based on the OpenH323 project.
  • Logger - a free voice logging application - build your own voice logger/call recorder!
  • CT Server - an easy to use library for building powerful CT applications using Perl. Example.
  • Speex - New! An open source voice codec for compressing speech signals. Designed as an open source alternative to heavily patented, royalty-based vocoders such as G729/G723.1
In addition, there are several other projects we would like to start.  Please contact us if you are interested in working with us on any of these projects:
  • VPB Driver ports to other operating systems.
  • A SIP based VOIP gateway.
  • A port of the CT Library package to Python.
  • Also, please contact us if you have any other project ideas for our products that involve Open Source CT.

VPB Driver

In 1999 we released the source code for the VPB driver.  Originally written for Windows NT, it has now been ported to Linux, FreeBSD, and Windows 98/2000, and also supports our OpenLine and OpenLog product families.  It has been running under Linux for over two years and is stable with no known bugs.  The FreeBSD version has been running for 12 months and has no known bugs.

The VPB driver is licensed under the LGPL license to enable it to be freely included in both open and closed source products.

We are also interested in working with developers who wish to use our cards with other operating systems.  The driver code is mainly a gcc-compilable user mode library with a tiny kernel mode component - making it very easy to port.  Contact us with your OS needs.

Download

Logger

This package is a LGPL-licensed voice logger application, suitable for voice logging and call recording.  The application is designed to use the Voicetronix OpenLog cards, and currently runs under Linux.  Typical commercial voice loggers cost around US$1000/channel.  Using this package you can build your own 8-channel logger for the price of a PC and a OpenLog8i card.

Select Communications were kind enough to partially support this project.

This package contains the (C++/perl/html) source code for the logger.

The logger application has the following features:

  • A C++ voice logging server, that is configured via web-based GUIs.
  • Records phone calls (or other audio) to hard disk.
  • A web-based configuration GUI.
  • A web-based replay GUI (replay from anywhere on the internet via a browser).
  • Has the ability to monitor calls being recorded in real time via a sound blaster on the logging PC.
  • Can record up to eight simultaneous calls (can be expanded in multiples of eight by installing additional OpenLog8i cards).
  • Full source code provided.
  • New! Backup your logged audio to CDR with this package submitted by Brandon Bidewell.
Download

OpenH323 PSTNGW

A 4/8/12/16 port Voice Over IP (VOIP) gateway running H323, using GSM speech compression.  This software enables a VOIP gateway to built for the price of a PC and a OpenLine card.  The project uses the OpenH323 PSTNGW software package.  

Illustration (thanks to Rodney Machado for the illustration).

New! A pstngw-patch package has been developed by Voicetronix to make building the gateway software easier. It is no longer necessary to use OpenH323 CVS to check out the software. See ReadMe.txt in the pstngw-patch package for more information.

Download

CT Server

A client/server library for rapid Computer Telephony (CT) application development in Perl.  It uses Voicetronix hardware, and runs under Linux.   Example Code
  • The Perl client talks to the server via TCP/IP
  • There is one client process per phone line
  • A single server process (ctserver) handles multiple lines
  • Uses TCP/IP ports 1200..1203 for ports 1..4 of the CT card

Programming Model

The programming model is based on the ccscript language developed by David Sugar for the IVR server Bayonne.  David has developed this new scripting language that enables elegant implementations of IVR menus.  For other tasks, Bayonne has the ability to shell out to other languages.  Typical Bayonne applications use ccscript for menus, then shell out to Perl for other tasks such as database lookup, and complicated logic.

The ctserver package uses a variation of this approach.  Rather than writing a new language, the advantages of the ccscript programming model have been imported into a powerful existing language (Perl) by writing a small library. This allows CT applications to be written entirely in one language.

The result is an easy way to write CT applications.  Perl is a very useful language for CT, the author has found it possible to write CT applications in a fraction of the time it takes in C/C++.  This approach could also be extended to other languages (LISP, Python etc) by writing appropriate client-side libraries.

There is a single Perl process for each phone line.  To support multiple lines, start multiple Perl processes, one for each line.

Future Work

  • write a Python version of the server library to enable Python CT development
  • write more sample applications
  • write servers for different CT cards
  • write a server that uses /dev/dsp rather than a CT card
  • modify client/serer protocol to be compatible with telnet

Credits

David Sugar - designed the ccscript programming model, provided voice files via Bayonne.
Rich Bodo - ideas on TOSI architecture and client/server model.
Dave Bakhash - ideas and interesting discussions on client/server CT models using LISP.

Download

CT Programming Examples

There are many ways to program CT applications, including scripting languages and C/C++.  Here are a few sample applications, that demonstrate CT programming with Voicetronix hardware:

Bayonne - "playrec" script allows you to play and record files by entering the file name as a string DTMF digits.
CT Server - "playrec" script written in Perl.  Here is a simple "click to call" web cgi.
Voicetronix C/C++ Driver API - play and record wave files from your phone line.

Don't want to build your own CT System?

If you don't feel comfortable with developing your own CT system, but would still like to use our products and/or Open Source CT - then contact us and we will help connect you with suitable developers for your application.