GNU ZRTP How-To: Compilation and Integration
A step-by-step technical guide for compiling libzrtpcpp, linking it against GNU ccRTP and GNU Common C++, and verifying ZRTP session establishment.
Obsolete Build Instructions
These instructions reference legacy compilers (GCC 4.x), outdated distribution repositories, and obsolete build flags. They are preserved strictly for archaeological and forensic build reproducibility.
§1Historical Build Prerequisites
To compile `libzrtpcpp` from source on a contemporary GNU/Linux system (such as Debian 6.0 Squeeze or Ubuntu 10.04 Lucid Lynx), the following development packages were required:
# Historical apt-get command for Debian/Ubuntu (c. 2010)
sudo apt-get install build-essential cmake pkg-config libcommoncpp2-dev libccrtp-dev libssl-dev libgcrypt11-devNote: Later releases of `libzrtpcpp` (version 2.0+) transitioned from GNU Common C++ to GNU uCommon C++ (`libucommon-dev`).
§2Compiling libzrtpcpp from Tarball
Download the authoritative source archive from the GNU mirror:
tar -xzvf libzrtpcpp-4.6.6.tar.gz
cd libzrtpcpp-4.6.6
./configure --prefix=/usr --enable-shared --with-crypto=gcrypt
make
sudo make install
sudo ldconfigTo verify the library installation: ```bash pkg-config --modversion libzrtpcpp # Expected output: 4.6.6 (or contemporary release) ```
§3Verifying ZRTP in Client Endpoints
When integrating with SIP endpoints such as Twinkle or GNU SIP Witch:
1. Enable ZRTP in client audio preferences. 2. Dial an echo test or another ZRTP-capable client. 3. Observe terminal output: ```text [ZRTP] Hello packet sent... [ZRTP] Hello received from peer. [ZRTP] Negotiating DH-3072 key exchange. [ZRTP] SRTP session established using AES-CFB-128. [ZRTP] Short Authentication String: "bakers-dog" ``` 4. Verbally confirm the SAS words with the remote peer and press the "Verify" key to store the retained secret.
This page reconstructs material originally published at gnutelephony.org. It has been formatted and annotated for archival preservation.
Historical source: GNU ZRTP. Reproduced or adapted under the GNU Free Documentation License (GFDL) 1.2 or later where stated.
Historical revision date: 2008-01-20 (Revised 2011-06-15). Restored to permanent static archive in October 2026.