GNU Bayonne: Voice Application Server
The comprehensive guide to GNU Bayonne, the premier GNU multi-line telephony application server providing Interactive Voice Response (IVR), automated call distribution, and telephone application scripting.
Historical Server Architecture
GNU Bayonne was the cornerstone of the early GnuComm project and supported analog/digital telephony cards. Preserved for software history.
§1What Was GNU Bayonne?
GNU Bayonne was the telephony application server of the GNU Project. Created by David Sugar in late 1999, it offered a modular, multi-threaded framework for building computerized telephone services: - Interactive Voice Response (IVR) systems ("Press 1 for Sales, Press 2 for Support"). - Automated outbound voice notification systems. - Voicemail processing and unified messaging gateways. - Multi-party telephone conference bridges.
Prior to Bayonne, computer-telephony integration (CTI) was dominated by exorbitantly expensive proprietary software running on proprietary operating systems. Bayonne allowed organizations to assemble low-cost voice servers using standard PC hardware, free GNU/Linux software, and commercial telephony DSP cards.
§2Hardware Driver Architecture
Bayonne featured a clean modular driver architecture that decoupled telephony script logic from underlying line cards: - Dialogic Cards: High-density T1/E1 and analog boards via Dialogic Linux drivers. - Voicetronix: Open-hardware-friendly multi-line voice cards (e.g., OpenLine4, VP4). - ISDN / CAPI: Common ISDN Access Profile interface cards widely deployed in Europe. - SIP / VoIP (Bayonne 2): Pure IP telephony integration without physical voice hardware.
§3Scripting and BayonneXML
Bayonne scripts were event-driven state machines executed by the GNU ccScript engine:
# Historical Bayonne script snippet: Automated Greeting
step greeting
play audio/welcome.au
collect count=1 timeout=5
case $key 1 goto sales
case $key 2 goto support
default goto operatorstep sales play audio/connecting_sales.au transfer sip:sales@internal.domain hangup ```
Bayonne 2 expanded on this with BayonneXML, enabling web developers to dynamically generate telephone call flows from Apache, Perl, PHP, or Python scripts.
This page reconstructs material originally published at gnutelephony.org. It has been formatted and annotated for archival preservation.
Historical source: GNU Bayonne. Reproduced or adapted under the GNU Free Documentation License (GFDL) 1.2 or later where stated.
Historical revision date: 2001-08-20 (Revised 2009-12-05). Restored to permanent static archive in October 2026.