Home Telephone System
The area where my home differs from most is the
telephone system, all phones in the house use Voice Over
Internet Protocol (VOIP) which is then interfaced with the
Public Switched Telephone Network (PSTN) over a BT analogue
phone line. The architecture of my VOIP system is described
Before we moved into the house, I had the opportunity to
flood wire the house with Cat6 network cable. My thoughts were
that this wiring would be suitable for a range of applications
in addition to supporting the Local Area Network (LAN).
One obvious use for this cabling was for the internal phone
lines. Normal BT lines are limited to a Ring Equivalence Number
(REN) of 4, and with handsets having typical RENs of 1, this
limits the number of devices that you can, or at least should,
connect to a single phone line. With a requirement to install
phones in at least two public rooms, one bedroom, two
office/studies, the loft and garage as well as the need to
connect two satellite receiver boxes, this was going to present
a problem. My initial solution was to install a Private Branch
Exchange (PBX) - it sounds grand, but you can pick these up new
for a reasonable sum on eBay. I chose a 19" rack mount unit
which supported 4 PSTN lines and 16 internal extensions,
although only one PSTN line was ever connected. The Cat6 cable
from each room is terminated in a patch panel in the loft and
the PBX was installed there. Although this system worked
reasonably well, it wasn't my ideal solution, so I have just
migrated to using a Voice Over Internet Protocol (VOIP) based
The networking infrastructure in the house is pretty
comprehensive and the addition of a VOIP system seemed like a
natural progression, particularly as PC based VOIP solutions are
now freely available. In fact, "freely" is a good description. A
number of free systems are available, including the open source
telephony project which is available free to all under the terms
of the GNU General Public License (GPL).
However, the system that I chose was
FreeSwitch is another Open Source project, headed up by one of
the original Asterisk developers, (Anthony Minessale). An
interesting article on Anthony's motivation behind developing
FreeSwitch can be found
So, what actually is FreeSwitch ? Well, quoting
from the FreeSwitch home page . . .
"FreeSWITCH is an open source telephony platform designed
to facilitate the creation of voice and chat driven products
scaling from a soft-phone up to a soft-switch. It can be used as
a simple switching engine, a PBX, a media gateway or a media
server to host IVR applications using simple scripts or XML to
control the callflow."
FreeSwitch is available as either source code
or as precompiled binaries for a range of platforms including
Windows, Linux and Mac OS. I believe that the majority of users
and developers are running it under various flavours of Linux.
Although I may head down this road in the future, I wanted to
quickly evaluate FreeSwitch under Windows, so I am currently
running the precompiled Windows package.
I started by downloading the binary and installing it under
WindowsXP on a 500 MHz Pentium 3 with 512MB of RAM. I knew that
this was not going to be a powerful enough machine for actual
use, but it gave me a good appreciation of what FreeSwitch
could do and confirmed that it would meet my needs. Before I
went ahead and bought any hardware VOIP phones, I used the
softphone from CounterPath Corporation for initial
testing. These tests quickly confirmed what a great system FreeSwitch is and inspired me to source a higher spec PC to run
it on. I picked up a new Dell Optiplex 755 with a 2.4 GHz Quad
Core Q6600 and 2GB of RAM for £200 from eBay.
The side bar contains links to installation of the
"production" system and how it is configured in my application.
The one area where FreeSwitch may be a little
lacking at the moment is in the documentation but there is a
Wiki which is developing all the time and contains a
wealth of useful information. There is also a very active user
conference with a
mailing list and presence on IRC.
Most, if not all, of the information on these pages is
at a very basic level. For anyone with a telecoms or IP
Telephony background, the information presented will no doubt
appear overly simplistic or maybe even wrong. However, it is my
best attempt to describe what I've done, along with the mistakes
that I've made along the way - hopefully, others will find it
useful. Please bring any glaring errors to my attention though
and I'll correct them.