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
Protocol Architecture

SIP Architecture in GNU Telephony

How GNU Telephony adopted the Session Initiation Protocol (RFC 3261) and engineered GNU SIP Witch to achieve non-transcoding peer-to-peer voice communications.

The Problem with Traditional SIP PBX Systems

In typical commercial deployments of SIP (such as traditional Asterisk or proprietary PBX switches), the PBX acts as a Back-to-Back User Agent (B2BUA). The PBX accepts the incoming SIP INVITE, terminates the audio stream on local DSP or CPU buffers, and establishes a separate outgoing call leg to the callee.

While this B2BUA design allowed PBXs to connect disparate physical networks (such as bridging analog copper loops to T1/E1 digital trunks), it severely degraded performance in pure IP networks and completely broke end-to-end media encryption.

The GNU SIP Witch Routing Philosophy

David Sugar designed GNU SIP Witch to function as a pure SIP registrar, proxy, and redirect server rather than a media-terminating PBX:

  • Direct Endpoint Signaling: SIP Witch negotiates connection parameters and forwards the SIP SDP between caller and callee.
  • Direct Media Paths: The RTP stream flows directly between the two client devices without traversing the SIP Witch server.
  • Zero Transcoding Overhead: Because the server does not process voice packets, a single low-power CPU can handle tens of thousands of active extensions.
  • End-to-End ZRTP Preserved: Because media packets are never decrypted or re-packetized by the server, Phil Zimmermann’s ZRTP protocol operates unimpeded.