echolinux technical details

Some of the following will apply to EchoLink as well, since echolinux is designed to interwork with EchoLink.

Firewall requirements

There are 3 TCP/IP connections involved in echolinux:

VoIP (i.e. audio) data channel

The actual audio data is sent as UDP packets with a destination port number of 5198. If your firewall blocks these incoming packets, you're not going to hear anything!
Note that, when in QSO, there are going to be masses of incoming packets to your UDP port 5198. Your firewall may decide that these packets are an attempted Denial of Service attack, and (if it does decide this) may drop some or all of the packets. If this does happen, you'll either hear nothing after the first few seconds, or you'll hear very chopped audio. Your firewall logs ought to tell you if its dropping packets.

Control channel

A control channel is used for the purpose of initiating connections, and tx/rx switching. This channel sends UDP packets with a destination port number of 5199. If your firewall blocks these incoming packets, you're never going to receive incoming connection requests.

EchoLink Server channel

Although it's possible to run echolinux without talking to an EchoLink server, using the server does enhance the user's experience :-) The server holds information about who's currently online, whether they're currently in QSO, and (crucially) their IP address - which is needed to initiate a connection to them.
The traffic to the EchoLink server is sent as TCP packets with a destination port number of 5200. If your firewall blocks these incoming packets, you won't be able to see who's online. This traffic is only ever initiated by your end - so if you have an SPI firewall which allows any outbound traffic, you'll be OK.

Which program does what ?

The Unix philosophy is to have lots of small programs, each of which does one thing well. This reduces complexity, and complex programs are more likely to have defects and security holes.


(By echolinux here, I mean the binary file named echolinux).
This program runs the control channel. It needs to be started whenever you want to be active on the echolinux system. It reads your config file, and then waits for something to happen. It listens on STDIN (which will be connected to your terminal keyboard unless you're running a GUI), and also for incoming data on the control channel (UDP port 5199). When a connection is established (either by you, or by someone else connecting to you), echolinux spawns an instance of echoaudio.


It's echoaudio which sends and receives the audio data on the VoIP data channel. It also communicates (via commands) with echolinux - for example to send audio level reports to echolinux, and for echolinux to tell echoaudio to die because the QSO has been ended.

The GUI - whichever one you use

The GUI is responsible for starting the initial instance of the echolinux binary, all the communication with the EchoLink Server, and communicating with the echolinux binary. The GUI sends data to STDIN on the echolinux binary, so you don't have to type the echolinux commands on your terminal keyboard. The GUI also receives data back from the echolinux binary - such as the audio level reports so it can provide a 'VU Meter'-like display.
E-mail Andrew Benham