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
Media Transport

VoIP Protocols & Media Stack

The engineering behind real-time audio delivery: RFC 3550 RTP/RTCP packet sequencing, jitter buffers, and GNU ccRTP.

Real-Time Transport in IP Networks

Unlike web traffic (HTTP over TCP) or file transfers, real-time voice communication cannot tolerate the latency introduced by TCP retransmission timers. Packetized audio requires UDP transport governed by the Real-time Transport Protocol (RTP, RFC 3550).

RTP adds a lightweight 12-byte header to every UDP audio packet containing a sequence number, a timestamp, and a Synchronization Source (SSRC) identifier. These fields allow the receiving endpoint to reassemble audio samples in chronological order, compute packet jitter, and compensate for out-of-order Internet packet delivery.

GNU ccRTP Framework

GNU ccRTP provided the core C++ RTP engine for GNU Telephony. Developed by Federico Montesino Pouzols and David Sugar, ccRTP supported:

  • Adaptive Jitter Buffers: Dynamically expanding and contracting playout buffers to smooth erratic network latency.
  • RTCP Feedback Metrics: Calculating Interarrival Jitter, Round-Trip Time (RTT), and cumulative packet loss percentages.
  • Multicast Distribution: Transmitting identical audio streams to thousands of listeners over IP Multicast without duplicating packet generation.