Asterisk PBX - Patches to support ZRTP
We have a set of patches that bring ZRTP support to the popular open-source Asterisk PBX. The standard unmodified Asterisk PBX does not allow encrypted calls. These changes add ZRTP support for SIP/RTP calls in Asterisk, but not for the Asterisk IAX protocol.
To add support for ZRTP, first obtain the most recent version of the libZRTP SDK (see below), then download the Asterisk patch file for ZRTP support and apply the patches to the source code for your copy of Asterisk, then compile and rebuild Asterisk.
The online documentation might say that the patch is for Asterisk version 1.4, but you should disregard that and assume the patch is for the particular version specified in the download you select below. We have no plans to support a later version of Asterisk, but we do have a partner who is developing a more advanced patch to fully support a more recent version of Asterisk.
To inquire about licensing our ZRTP support code for Asterisk, contact us. We provide this download for your evaluation only. Simply downloading this patch or the libZRTP SDK does not establish a commercial licensing relationship. You have to talk with us to work that out. The libZRTP SDK is available under the AGPL license, or a commercial license.
Important note: This unsupported Asterisk patch only offers minimal functionality. It's just a proof-of-concept that allows you to connect a ZRTP-enabled client to an Asterisk PBX. It doesn't provide ZRTP support for most advanced PBX features, such as call transfer, putting a call on hold, conference mixing, voice mail, 3-way calling, etc. If you need a PBX which fully supports ZRTP, we suggest FreeSWITCH. There is a ZRTP patch available for FreeSWITCH that seamlessly integrates ZRTP and fully supports all the advanced features of FreeSWITCH.
Support for Asterisk PBX:
- ZRTP Asterisk patch file - Adds ZRTP support to Asterisk version 22.214.171.124
- Manual for ZRTP support in the Asterisk PBX - Online web-based documentation
- libZRTP SDK (AGPL licensed) - This version of the SDK is known to work with the Asterisk patch.
WARNING: This version of the SDK is obsolete, and is not interoperable with current versions, and does not meet the final spec in RFC 6189.
We need to provide a new version here, but this old version is not recommended for real product development.
In particular, it will NOT work with FreeSWITCH.
The Zfone/ZRTP features in Asterisk make use of prerecorded voice clips for prompts and status messages. We discovered that some mysterious codec transcoding bug in Asterisk causes these audio clips to sound distorted. The sound distortion is not caused by our ZRTP patches to Asterisk. The problem can be resolved by compiling the Asterisk source code without any compiler optimization. Do this, from the terminal window:
- cd to asterisk sources directory
- make menuselect
- Select 'Compiler Flags' category
- Check 'DONT_OPTIMIZE' item
- Exit from menuselect with saving changes
- Build and install Asterisk
ZRTP Internet Draft and libZRTP SDK for developers
ZRTP packet formats are defined in the ZRTP Internet Draft. We also have a software development kit to help you implement ZRTP in your VoIP application. Click here to see the Zfone libZRTP SDK documentation. For general information about the ZRTP SDK, including licensing information, see the Zfone libZRTP SDK page.
"Zfone", "libZRTP", and "whisper in someone's ear from a thousand miles away" are all trademarks of Philip Zimmermann.