4 2
LinuxUser/June 2001
ALL YOU NEED TO KNOW ABOUT...
TELEPHONY & LINUX
Off the hook
Charlie Stross takes a look at the brave new world of Linux and open source
telephony: what’s all the fuss about, and where it is heading?
T
he history of computing has been intimately
entangled with telephony ever since Post Office
telephone engineer Tommy Flowers was drafted
in to help Alan Turing design the first British
computers.
Linux is no exception. Descended from UNIX, a system
developed by a telephone company’s research arm,
these days Linux is being used to control tele-
phone switchboards and to act as a gate-
keeper between telephone systems
and the Internet. It’s also taking its
first steps as a link in the new
technologies of voice-over-IP,
also known as internet tele-
phony. What’s going on?
Meet Greg Herlein.
Greg is one of the lead-
ing lights of the
OpenPhone project.
“Every computer should
be able to act as a phone -
hopefully a very smart and
programmable phone,” Greg
explains. And that’s just for starters;
the goal of the OpenPhone project is an
application framework that provides mod-
ules for all the various jobs phone equipment
needs to do, including teleconferencing, signalling,
and routing calls. Such a system absolutely has to be open:
“like fax machines, the usefulness of internet phones
depends upon how many other devices are out there that
they can interoperate with,” says Herlein. “If a Linux-based
OpenPhone can only call other Linux computers, it’s of
limited value. However, if an OpenPhone can call any
other computer regardless of operating system, or any
other phone anywhere in the world – that’s powerful!”
There are two ways of using a computer as a phone:
voice over IP (VoIP), in which data streams connect two
computers over the internet, and conventional telephony,
in which the computer talks the same networking proto-
cols as the telephone exchanges and uses software to han-
dle calls intelligently (for example, as part of an integrated
messaging system that combines phone, email, SMS, fax,
and other media in a single framework).
Voice over IP/Internet telephony
Before you can use a computer as a phone, it needs hard-
ware that lets it do the job. Quicknet Technologies, a
Californian company, makes hardware telephony cards:
these boards aren’t full-scale telephone switches, but they
P-P-Pick up a
phoneguin
Quicknet Linux guru, Ed Okerson, AKA
Super Phoneguin. His drivers for
Quicknet’s telephony cards are in the Linux
kernel. Equivalence, a Quicknet subsidiary,
develops an open source implementation of
the H.323 conferencing protocol
LinuxUser/June 2001 4 3
provide audio processing and data compression in hard-
ware, along with an analogue phone line interface (in the
case of the PhoneJACK card). Quicknet is serious about
Linux and IP telephony. “Linux offers developers an excep-
tionally flexible and robust environment for developing
reliable dedicated telephony applications,” comments
Stacey Reineccius, the company’s CEO.
The idea of a telephony card is that you plug your desk
telephone into it; thereafter, you can use the telephone as a
terminal. Drivers that come with the card can also forward
your calls via TCP/IP to a similarly equipped PC, or the
public switched telephone network (PSTN). Quicknet’s
PhoneJACK lets you plug a phone into your PC and use it
to make Voice-over-IP calls; its related LineJACK card lets
you switch between PSTN and IP calls.
Quicknet’s IP telephony cards help provide support for
Voice over IP traffic by allowing you to turn a PC into a
gateway; but to get the most out of an office full of these
systems you need a switchboard or PBX (private branch
exchange) so you can hook up your voice-over-IP phone
system to the public switched telephone network (PSTN).
The first example of this to appear on Linux is Asterisk (see
www.asteriskpbx.com), a PBX application running initially
on Tormenta or Adtran Atlas T1 and T3 frame relay cards
(with Quicknet PhoneJACK cards for Voice over IP).
Asterisk lets you set up call routing logic, provides features
such as call bridging, transfer, and parking, voice mail, and
intercom facilities. Other features of software PBXs mirror
those of real small office exchanges: the ability to route
calls via different internet telephone carriers (or standard
PSTN carrier), track calling histories, automatically re-route
IP calls via a new carrier in event that a network connec-
tion becomes unavailable, and route faxes via the Internet.
Quicknet’s committment to Linux includes sponsor-
ship of the OpenH323 effort. OpenH323 is an open source
project to develop an open source implementation of
H.323, the standard for teleconferencing over TCP/IP. The
company also produces a number of boards intended for
use with Linux, notably the LinuxJack board, which they
support with open sourced drivers.
“We have found that Linux is not only a fantastic prov-
ing environment for developing technologies but it makes
for an extremely cost effective server side system when
needed for call control and billing, but as a client or low
density installation it makes terrific sense for small-scale
servers,” says Reineccius. “Telephony and Linux are a nat-
ural fit. They will continue to run into, over and through
each other for some time to come. Telephony demands
reliability and low costs. Voice over IP requires that plus
good Internet access. As most ISPs use Linux as the primary
operating system under the systems and technologies and
also have a lots of Internet connectivity, Linux and tele-
phony will become, we believe, more prominent as a por-
tion of the typical ISP’s product offerings and business.”
Frameworks and call management
Numerous groups are working on open source communi-
cations software that can go into a framework, gluing VoIP
telephony and conventional telephony into a common
infrastructure. At present a lot of the work is going into fill-
ing in gaps: telephony is a hidebound field, and there are
no open source implementations for many of the com-
mon protocols. This is changing, though: take Vovida.org
as an example. Vovida Networks, a manufacturer of
switches, was acquired by Cisco in 2000; a large chunk of
their codebase has been open-sourced, and Cisco contin-
ues to support a community website that is hosting the
development of the OpenH323 protocol stack, and numer-
ous other bits and pieces, notably a SIP (session initiation
protocol) stack. Vovida’s protocol suites cover MGCP, RTP,
SIP, COPS, RADIUS, and TRIP (telephony routing over IP); a
range of protocols that have established themselves in the
voice-over-IP field.
Then there’s
also Voxilla, an
open source pro-
ject that aims to
build a complete
suite of telecom-
munications mod-
ules for use with
Linux. The broad
requirement is to
be able to switch
multimedia streams (which, after all, is what telephony is
about). The Voxilla team broke the requirements down
into four categories: applications, converts, protocols, and
device drivers. The intersection of Linux and telephony
gives rise to a bewildering alphabet soup: for example, dif-
ferent protocols are required to talk to switches, paging
towers, conferencing applications, messaging tools, and so
on. Meanwhile, the GNUcomm project, run by the Free
Software Foundation, is busy trying to build a multimedia
streaming/switching suite; the goal is to allow switching of
multimedia streams and calls over IP.
All these protocol projects are components in the big
Lego jar of Linux telephony. Two key items are coming
together: the first is a complete set of telephony protocols
in the form of a framework that lets applications call high-
level functions (for example, to establish a voice call from
your computer to a telephone number via an IP/PSTN gate-
way); this is the goal of the OpenPhone project. The sec-
Talking about
telephony and
computers...
If you want more than two people
to be able to talk to each other by
telephone, you need a network: a
set of lines with phones on the end
of each one, and a mechanism in
the centre that connects the tele-
phone making a call with the tele-
phone receiving it. The first tele-
phone systems used human opera-
tors sitting in front of a plug board:
they’d physically connect the lines
to two households by running a
wire from the line the call came in
on to the outgoing line. Later,
electromechanical switches came
into use: a committee within the
ITU called the CCITT (Comité
Consultatif International
Téléphonique et Télégraphique)
was established to develop stan-
dards for telephone switching and
data communications.
With the dissolution of the old
Post Office monopoly in 1982, a
new entity effectively came into
existence: the public switched tele-
phone network (or PSTN). The
PSTN is regulated by Oftel, the
Office of Telecommunications:
equipment which meets their stan-
dards (which mostly boil down to
compatability with CCITT stan-
dards and some basic safety speci-
fications) can be connected to the
PSTN, and a number of telcos
(telecommunications companies
such as British Telecom or Cable
and Wireless) provide switching
services and transport for calls.
Telcos are in the business of
selling network bandwidth. Rather
than using discrete wires for each
circuit through their network, calls
are converted into data streams at
the exchange and the packets
routed to their destination. This
allows the telcos to multiplex calls
between two exchanges, making
better use of their network. Unlike
Internet traffic, telco traffic is
mostly encapsulated using ATM, a
technology that transfers data in
“If an OpenPhone can call any
other computer regardless of
operating system, or any other
phone anywhere in the world -
that’s powerful!”
Greg Herlein
CONTINUED ON PAGE 45 >
LinuxUser/June 2001 4 5
phone-based system administration tools.
Bayonne isn’t a graphical application: it’s a server. To do
something useful with Bayonne you need to write scripts
in the ccscript language. Ccscript is a state-based language
that is driven by events, such as a user punching a DTMF
digit in a voice menu, receiving a call disconnect signal,
and so on. It can play sound samples from stored files on
disk, collect caller ID information, record from the phone
to an audio file on disk, and so on. In fact, using Bayonne
you can rapidly write a script that implements a company-
wide voicemail system, with password protection, the abil-
ity to replay received messages on demand, ability to email
received audio files to a user’s email box, and so on. As of
the Milestone Six release, Bayonne provides XML services,
allowing you to add voice services to XML-based applica-
tion servers.
Bayonne’s driver support is currently relatively limited,
but it is designed to take plugins that let it interface to
other systems: in particular it is capable of driving multiple
Quicknet LineJACK cards (for example, to provide a multi-
line voicemail system). Drivers for Voicetronix’s analogue
DSP cards, Pika MonteCarlo telephone cards, Dialogic and
Aculab cards are also supplied. The list of supported cards is
expanding slowly, as vendors wake up to the sales poten-
tial of open source software.
Don’t expect installing a Bayonne system in your com-
pany to be easy: the total absence of easy-to-use adminis-
tration tools, and the requirement to dink around with
VoIP cards and drivers, make it a job for specialists.
However, if you want to build a cheap, efficient voicemail
system that can cope with several simultaneous callers, or
if you want to build your own system for forwarding voice
calls over the Internet between distant offices, Bayonne
may reward a week’s work with a system that is tailored to
your requirements. In particular, the ability to build a
v-commerce system that mimics the structure of your e-
commerce website may be well worth the trouble.
Computer-telephony integration
Just about every company has a PBX, the local switch that
allows multiple telephone extensions to talk to each other,
or route external calls out to the PSTN via the cheapest
provider. Linux can help here, too.
Andrews and Arnold, a British telephony equipment
supplier, has found Linux works well as a system for con-
trolling PBX’s. It has written drivers that allow a Linux sys-
tem to talk to a Lucent Technology Network Alchemy
switch. The Network Alchemy range are popular cheap
PBX’s aimed at small to medium enterprises; they provide
up to 180 telephone extensions on up to 60 trunks. These
telecoms routers are also TCP/IP aware: they can provide
access to ISDN and leased line connections, and support
small, fixed-size packets. (ATM is
designed to support switched traf-
fic, between two points.)
However, prior to the arrival of
the Internet the telcos provided
data transport via their own pack-
et-switched network: running on
protocols such as X.25, these net-
works (such as British Telecom’s
Packet Switchstream service) were
expensive, slow, and not universal-
ly accessible. The commonest way
of accessing the service was via a
leased line, a permanent connec-
tion switched through to the PAD
(packet assembler/disassembler,
X.25 equivalent of a router).
The arrival of the Internet was a
rude shock to the telcos, who had
previously milked the lucrative
business data communications
market. While huge amounts of
money could be made by supplying
TCP/IP connectivity, there were
inefficiencies in the system.
Making a call to your ISP via
modem entails turning digital data
(leaving your computer) into audio
frequency tones (via the modem);
these are in turn converted back
into digital form by the exchange,
then transmitted to the ISP, where
they’re turned back into analogue
form by the ISP’s modems or
routers before being re-digitised. It
all seems a lot simpler to keep the
signals digital from one end to the
other: but the original technology
for doing this, ISDN, is now dated
and sluggish.
The current approach is to
transmit packets between
exchanges using ATM, then relay
data to the consumer using ADSL,
a short-range high bandwidth data
protocol that can run over existing
twisted-pair wires. Some switches
are now designed to route TCP/IP
packets directly over ATM net-
works, blurring the boundary
between a telco and an ISP.
The blurred boundaries go both
ways. Voice calls require bidirec-
tional data transfers: why not carry
voice calls over TCP/IP? The tech-
nologies of Voice-over-IP, or IP
Telephony, got started by compa-
nies who wanted to merge their
ond item is the integration of telephony into unified mes-
saging frameworks, systems that allow all communications
systems (phone, pager, fax, email, and others as yet
undreamed of) to be integrated into
a single system.
Messaging frameworks
The higher level packages are exem-
plified by Bayonne, the GNU inte-
grated voice response server.
Bayonne provides a service daemon
that can automatically process tele-
phone calls – it’s scripted, so you can
control call flow, and is intended for
building voice mail systems and tele-
“A lot of customers,
especially in Europe,
are telling us that they
want Linux implemen-
tations, not NT”
Alan Pound, Aculab
ALL YOU NEED TO KNOW ABOUT...
TELEPHONY & LINUX
Just putting
you through
Right: The music-on-hold
setup screen for Andrews
and Arnold’s Penguin
Communications Server,
the single-box turnkey
small business communi-
cations server which
enables easy control of
the popular Alchemy PBX
as well as doubling as a
network appliance provid-
ing all the standard
Internet-related services
Below: A preview release
of the new user interface
for the Penguin. Features
include integration with
BT’s billing information,
enabling call costs to be
trace to individual exten-
sions. Matt Bishop, R&D
team leader, says: “It’s
possible to get these fea-
tures on applications writ-
ten for Windows, but the
price is higher and we
believe that LInux gives
our customers a more sta-
ble platform.”
CONTINUED ON PAGE 46 >
< CONTINUED FROM PAGE 43
4 6
LinuxUser/June 2001
ALL YOU NEED TO KNOW ABOUT...
TELEPHONY & LINUX
Key links
OpenPhone
www.openphone.org
Voxilla
www.voxilla.org
Asterisk soft PBX
www.asteriskpbx.com
Quicknet
www.linuxjack.com
GNUcomm
www.fsf.org/software/
gnucomm/
gnucomm.html
Bayonne
http://bayonne.
sourceforge.net
Andrews and
Arnold
www.aa.nu
OpenH323
www.openh323.org
local area network and telephone
extension systems. The initial
incentive was to reduce the num-
ber of routers or switches a busi-
ness needed: then there was the
opportunity of using spare band-
width on expensive leased lines to
connect voice calls between
remote sites. Once the basics of
connecting calls via TCP/IP were
available, other options opened up:
the ability to connect calls from the
PSTN over TCP/IP meant that, for
example, it’s possible to record a
message on a voicemail system
and email it to the recipient, or to
take email and automatically fax it
out to a destination that doesn’t
have email access. The core stan-
dards that made this possible were
established by the H.323 commit-
tee of the International Multimedia
Telecommunications Consortium
and supported by the ITU.
H.323 defines standards for
real-time packet-based communi-
cations: related standards include
H.225 for call control protocol,
Q.931 for digital subscriber signal-
ing, and T.120 for real time data
conferencing protocol. These pro-
tocols have been implemented as
open source: the core code is avail-
able from www.openh323.org, and
builds on Linux for x86. The goal of
the OpenH323 project is to create
a full-scale implementation of the
H.323 teleconferencing protocol:
it’s supported by an Australian
company, Equivalence, a subsidiary
of Quicknet Technologies.
“OpenH323 has now been com-
mercially tested and/or deployed
not just by Quicknet but also by
Nortel, Lucent and many others,
and is interoperable with a plethora
of H.323 devices including Cisco
VoIP gateways, gatekeepers and
phones,” says Quicknet.
H.323 is a complex protocol; for
controlling calls, two simpler proto-
cols, SIP (Session Initiation
Protocol) and MGCP (Media
Gateway Control Protocol), are
building momentum. An open
source version of MGCP has been
released by Vovida; no open SIP
implementation is available yet.
virtual private network applications. In fact, these switches
blur the boundary between internetworking hardware and
telephony, acting as LAN hubs and routers as well as tele-
phone switchboards.
Andrews and Arnold’s Linux tools allow a Linux server
to drive a Network Alchemy router. Configuration of the
router from Linux is possible: more to the point, the Linux
server can provide full call logging (into a MySQL database,
if desired), a comprehensive voicemail system that goes
beyond the one built into the Network Alchemy systems,
and APIs to allow integration of Linux-based applications.
“With the Alchemy system we use, almost any Linux
box will do – even a 486. We normally recommend some-
thing bigger, and it depends on the number of channels,
but an 800MHz PIII machine with SCSI disks was hard
pushed to register one per cent usage with 30 channels of
voicemail including DTMF decode,” says Adrian Kennard,
technical director of Andrews and Arnold. “The tools we
have written do multi-Alchemy voicemail and voice-based
applications, as well as phone control and call billing sys-
tems.”
In this system Linux isn’t acting as a
telephone switch or voice-over-IP gate-
way; it’s acting as a control centre for
existing PBX’s. It’s possible to write com-
plex applications for automating call
centre operations or providing on-line
technical support screening relatively
easily, because of the availability of
open programming interfaces. The per-
formance of the voicemail server is also noteworthy: a
machine costing two or three thousand pounds can pro-
vide voice mail for hundreds of users.
In addition to selling straightforward PBX control sys-
tems (with integrated voicemail and fax services), Andrews
and Arnold have some specialised telephony applications
already available, notably hotel and legal billing systems
that, in conjunction with an appropriate office exchange,
can automate the telephony operations of those business-
es: the low cost, reliability, and ease of integration of Linux
are all assets in these markets.
Controlling the external PBX is not the ultimate in
Linux telephony integration: for that, the Linux box needs
to be the PBX – as in the case of the Asterisk soft PBX men-
tioned earlier – or indeed to be the platform it runs on.
The holy grail of the high-level computer telephony
market is integrated messaging, in which every type of
communication, fax, pager, SMS, phone, email, goes
through a common framework. Aculab, the UK-based ven-
dor of high-end telephony boards (up to and including
OC3 cards, able to handle data rates up to 155Mbits/sec), is
developing the Whirlwind computer telephony platform:
essentially an operating system for voice applications.
Whirlwind is a cross-platform development: “We had a lot
of customers, especially in Europe, telling us that they
want Linux implementations, not NT,” says Alan Pound,
Aculab’s managing director.
Whirlwind runs on NT, Linux, and Solaris, and provides
an implementation of the ECTF’s S.100 and S.300 APIs,
which specify how computer telephony applications
should interface to standard CT Bus boards. (CT Bus
defines a single communications bus that can be installed
in various popular personal computer card slots (ISA/EISA,
PCI, and the emerging compact PCI).
Essentially Whirlwind is an operating system for com-
puter telephony applications, providing access to voice
channels and allowing applications written using the
S.100 APIs to talk to the boards; this is a proprietary system,
but other vendors are also implementing S.100 and S.300
compliant systems, and applications written to these open
standards are portable between comput-
er telephony systems. The ECTF stan-
dards show that the telephony industry
in general is moving in the direction
that the computer industry moved in
the 1980s, first towards open standards,
and then towards open source. Linux is
seen as a strategic platform by some of
the largest computer telephony hard-
ware vendors; as it advances in the serv-
er sector, more and more CT systems like Whirlwind will
appear on it.
The future’s bright – the future’s open
Telephony is just another kind of networking, albeit one
with a wide variety of bewilderingly complicated (and pro-
prietary) protocols. The telephony industry is discovering
Linux, just as Linux is discovering telephony.
On one hand, Linux telephony enthusiasts like Greg
Herlein are working to make Linux a platform for handling
telephone calls. On the other hand, traditional telephone
hardware companies like Aculab (which builds kit for
switching calls) are discovering the lure of an open plat-
form and common standards.
As the telephone industry adopts standards such as
those of the ECTF (which allow CORBA-compliant pro-
grams to talk to telephone switches), and as Linux learns to
handle voice-over-IP, the fields are converging: and one
day, your telephone will run Linux.
One day, your
telephone
will run Linux
< CONTINUED FROM PAGE 45