CONTENTS

Why Open Source
Why Voicetronix
Open Source Projects
CT Programming Examples


Linux Drivers



FreeBSD Drivers

Asterisk
Asterisk


Bayonne IVR
Server


VoIP Gateway

 

 

 
 
 
OPEN SOURCE
 

Why Open Source for Computer Telephony?

Voicetronix proudly supports Open Source CT projects, especially for operating systems such as Linux.  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

By 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
$350
$350
Operating System
$300 (Windows desktop)
Free
Application Software
$3000 
Free
Total
$4350
$850

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 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.  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-existent.  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.

Voicetronix Open Source Projects

Voicetronix is participating in the following open source projects:

  • OpenPBX - a free small office PBX package for Voicetronix hardware.
  • VPB Driver - the driver for the Voicetronix CT Cards.
  • Bayonne - the telecommunications application server of the GNU project.  Example.
  • Asterisk - open source PC-PBX or IP-PBX software running Linux supported by our OpenPRI, OpenPCI, OpenSwitch and OpenLine4 cards.
  • 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.
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.


OpenPBX

An Alternative Open Source Linux PBX package

A full function, web-enabled small office PBX package. Turn your PC into a PBX using a Voicetronix card and the OpenPBX software package. Integrate PBX and other back-office functionality such as email, web and file serving into a single PC to build a fully functional PBX/IT solution for SOHO environments.

The web based GUI means the PBX can be easily configured, compared to other PBXes that have clunky, hard to use touch-tone based user interfaces. For example your web browser can be used to access your voice mail, rather than pressing buttons on your phone.

On-line Demo

Technical

The OpenPBX is an Open Source Linux PBX written entirely in Perl. It interfaces to the Voicetronix telephony cards via the CT Server middle-ware described below. The code is very compact, only 1000 lines of Perl code are required for the basic PBX functionality. This made development extremely rapid, compared to using traditional approaches like C/C++. It also means the PBX is very easy to extend and customize, for example add unlimited voice mail boxes, or a custom IVR menu ("Press 1 for Sales, 2 for Support....") with a small amount of Perl code.

Download

OpenPBX is part of the CT Server package described below. Just download the CT Server package to get started with OpenPBX!

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 and Windows 98/2000/XP. It has been running under Linux for over 7 years and is stable.  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.

We have free hardware available for people willing to work with us to port our driver to new operating systems such as NetBSD/OpenBSD/FreeBSD and OS X. Please 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 and OpenPri cards, running under Linux.

Typical commercial voice loggers cost around US$1000/channel.  Using this package you can build your own 4 channel logger for the price of a PC and an OpenLog or OpenPCI card. For high density solutions, using the OpenPri Hi-Z span PCI card will allow you to build a logger solution for under US$60/channel.

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 via a browser).
  • Has the ability to monitor calls being recorded in real time via a sound blaster on the logging PC.
  • Full source code provided.

For more information on Logger please click.

Download

Asterisk

Voicetronix supports the VPB interface that allows developers to use Asterisk with our multi-channel FXO and FXS interface PCI cards. Build:

  • IP-PBX solutions running SIP or H.323 using supported IP-phones together with our OpenLine4 card, acting as the PSTN gateway.
  • Traditional PC-PBX solutions offering advanced telephony and call features using our OpenSwitch cards and standard analogue handsets.
  • The VPB interface for Asterisk consists of chan_vpb.c and associated configuration file. Voicetronix will be handling the patches and bug fixes for the VPB interface. For more information please visit our downloads page.

    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,1201,1202,... for ports 1,2,3... of the CT card
    • Supports Voicetronix PCI cards cards for building PC based PBXs, IVR, ACD and Call recording systems.
    • Contains source code for the OpenPBX PC-PBX!

    Download

    CT Server 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.


    CT Server - 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.

     

     

     

     

     

     

     
    © Copyright 2007 VoiceTronix Pty Ltd