Project revival: TwoSquares is preserving GNU Telephony's history and preparing an open-source revival. Contributors and collaborators are welcome.
GNU Telephony
Open-source telephony, preserved and being revived
Ecosystem Context

GNU Telephony in the History of Open Source VoIP

How GNU Telephony, Bayonne, and SIP Witch interacted with and differed from Asterisk, FreeSWITCH, Linphone, Ekiga, and the eventual transition to WebRTC.

1. The Early Pioneers: Bayonne vs. Asterisk (1999-2004)

In the early 2000s, two distinct visions emerged for open-source telephony on Linux:

  • GNU Bayonne (David Sugar): Focused on multi-threaded application scripting, Interactive Voice Response (IVR), voice messaging, and modular drivers for telephony hardware cards. It was an application server designed to sit alongside or on top of telephone switches.
  • Asterisk (Mark Spencer / Digium): Built from the perspective of an IP Private Branch Exchange (PBX). Asterisk sought to emulate and replace the physical telephone switch itself, converting standard PCs into multi-line office PBX switches.

While Asterisk achieved massive commercial adoption by enabling cheap corporate phone systems, its Back-to-Back User Agent (B2BUA) design meant that all voice streams were terminated, uncompressed, and re-encoded at the central server.

2. The Peer-to-Peer Divergence: SIP Witch & FreeSWITCH (2006-2011)

As broadband speeds accelerated and the industry transitioned toward pure SIP architectures, telephony developers faced the limitations of Asterisk's monolithic, single-threaded architecture.

Anthony Minessale and others created FreeSWITCH as a modular, thread-safe, high-concurrency communications platform. Meanwhile, David Sugar took an even more radical architectural step with GNU SIP Witch: completely removing the media proxy from the server.

SIP Witch argued that in an IP-to-IP world, a PBX should never touch media packets. By having the server act strictly as a SIP registrar and redirect server, SIP Witch enabled true peer-to-peer audio between clients, eliminating transcoding latency and providing the perfect foundation for Phil Zimmermann’s ZRTP protocol.

3. The Client Ecosystem: Linphone, Twinkle, and Ekiga

A telephone server is only as capable as the desktop and mobile endpoints connected to it. GNU Telephony worked closely with free software softphone developers:

  • Twinkle (Michel de Boer): A high-performance Qt SIP softphone that was among the very first clients to integrate GNU ZRTP (libzrtpcpp) for one-click encrypted voice calls with SAS vocal confirmation.
  • Linphone (Belledonne Communications): A versatile multi-platform client that incorporated ZRTP and RFC 6189 standards, surviving into modern mobile ecosystems.
  • Ekiga / GnomeMeeting (Damien Sandras): The flagship GNOME desktop VoIP client supporting SIP and H.323.

4. The WebRTC Paradigm Shift

In 2011, Google open-sourced the WebRTC codebase, and the IETF and W3C commenced standardizing real-time communications directly inside web browser engines.

WebRTC solved NAT traversal through standardized ICE/STUN/TURN, mandated encryption via DTLS-SRTP, and eliminated the need for users to download desktop C++ SIP software. While WebRTC adopted many of the media encryption techniques proven by ZRTP, it firmly relocated the real-time communications engine from local desktop daemons into modern web browser runtimes.