The Zfone beta is free to users, but is not open source, so it can't be packaged with official Linux (Ubuntu, Debian, OpenSUSE) distribution repositories. Ready-to-install binaries are available for Windows and Mac OS X.
Linux users must download the program, install the dependencies, and build the program from a source tarball. The following sections describe how to do this.
First you have to register with the Zfone Project, including accepting a Terms of Service agreement, and then you'll get an email message with the information required to download a copy.
Installing the Dependencies
The dependencies are available via Debian or Ubuntu repositories. The following instructions are written primarily for Debian, although they've been tested on Ubuntu as well. For Ubuntu, where you see the # root prompt, do $ sudo from the userspace prompt instead.
GNU nano is my favorite command-line text editor, but of course you can use your preferred text editor. If it's a GUI editor and you're opening a file that requires root access, open it as root. For example:
$ sudo gedit filename
Remember that if you have opened a file with a text editor, # indicates a comment line.
To install the dependencies, use the following command:
# aptitude install g++ automake autoconf iptables-dev libglib2.0-dev
Of course, you can use whichever GUI installer you have to install these programs. If the installer says one of the programs is installed, don't worry about it.
Loading the Kernel Modules
These modules come from the iptables-dev application you just installed.
# nano /etc/modules
Add these lines to the bottom of the file:
# added for zfone iptable_filter ip_queue
Save and exit.
Building the Zfone Source
Make a zfone directory wherever convenient; then download the zfone-linux.tar file from the site into the zfone directory:
cd [path-to]/zfone $ tar xvf zfone-linux.tar # ./install.sh
Zfone automatically adds a file to run the zfoned daemon script, which will run Zfone in the background until a voice or videoconferencing application starts (see the next section for details). The obvious thing to do is to run update-modules to incorporate it into the regular run-level startup sequences in rc.d*. However, when I tested this, update-modules worked properly, but the daemon didn't start.
You'll want to run Zfone on startup so that you can simply start your VoIP application. If the other end isn't running Zfone, however, you can still have an unsecured conversation without concern about Zfone interfering with the communication; the default setting is for Zfone to start encryption and shut off if the called party doesn't support it.
Starting Zfone Automatically During Boot
The following instructions are for either the KDE or Gnome window manager, until you get to the specific sections for KDE and Gnome.
To start Zfone automatically with Gizmo, create a new script:
# nano /etc/init.d/zfonestart.sh
Once the file is open, enter the following:
#!/bin/sh sleep 30 /usr/local/bin/zfoned exit 0
Save and exit. This approach makes sure that the zfoned daemon starts after the desktop by delaying Zfone activation by 30 seconds. There's a substantial delay in loading the desktop if rc.local calls the zfoned daemon directly:
# nano /etc/rc.local
To prevent this problem, add these lines above exit 0:
echo "start zfone and zfoned" sh /etc/init.d/zfonestart.sh
Save and exit.
KDE 3.5.x Setup
Create a new desktop icon by right-clicking the desktop and selecting Create New > Link to Application. In the New Properties window, click the General tab and enter zfone in the text window next to the icon. Click the Applications tab and enter /usr/local/bin/zfone in the Command window.
Open the file manager. If you don't have it set to display hidden files by default, select that option. Open /home/username/Desktop. Select the new zfone.desktop file and cut it; then open the /home/username/.kde/Autostart directory and paste the file. You can now reboot. Zfone should appear in the KDE System Tray.
Choose Menu > Control Center > Personal > Sessions. The Startup Programs tab should be displayed. If not, select it and choose Add. In the new window, enter zfone for Name and /usr/local/bin/zfone for Command. Save and reboot. Zfone should appear in the Gnome System Tray.
Setting Preferences in the Zfone Client
Right-click Zfone in the System Tray and select Preferences to open the tab-based interface. On the General tab, select all except Hear ctx. On the Crypto tab, do nothing. For Sniff, check all. If you're using Gizmo, that's all you need to do; otherwise, check the program documentation in whatever VoIP application you're using, to find out what ports you need to set.