Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

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: whats all the fuss about, and where it is heading?
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 companys research arm, these days Linux is being used to control telephone switchboards and to act as a gatekeeper between telephone systems and the Internet. Its also taking its first steps as a link in the new technologies of voice-over-IP, also known as internet telephony. Whats going on? Meet Greg Herlein. Greg is one of the leading 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 thats just for starters; the goal of the OpenPhone project is an application framework that provides modules 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, its of limited value. However, if an OpenPhone can call any other computer regardless of operating system, or any other phone anywhere in the world thats 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 protocols as the telephone exchanges and uses software to handle calls intelligently (for example, as part of an integrated messaging system that combines phone, email, SMS, fax, and other media in a single framework).

P-P-Pick up a phoneguin
Quicknet Linux guru, Ed Okerson, AKA Super Phoneguin. His drivers for Quicknets telephony cards are in the Linux kernel. Equivalence, a Quicknet subsidiary, develops an open source implementation of the H.323 conferencing protocol

Voice over IP/Internet telephony


Before you can use a computer as a phone, it needs hardware that lets it do the job. Quicknet Technologies, a Californian company, makes hardware telephony cards: these boards arent full-scale telephone switches, but they

4 2 LinuxUser/June 2001

provide audio processing and data compression in hardware, 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 exceptionally flexible and robust environment for developing reliable dedicated telephony applications, comments Stacey Reineccius, the companys 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). Quicknets 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. Quicknets 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 connection becomes unavailable, and route faxes via the Internet. Quicknets committment to Linux includes sponsorship 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 proving 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 natural 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 telephony will become, we believe, more prominent as a portion of the typical ISPs product offerings and business.

Frameworks and call management


Numerous groups are working on open source communications 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 filling in gaps: telephony is a hidebound field, and there are no open source implementations for many of the common 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 continues to support a community website that is hosting the development of the OpenH323 protocol stack, and numerous other bits and pieces, notably a SIP (session initiation protocol) stack. Vovidas 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 theres also Voxilla, an open source project that aims to build a complete suite of telecommunications modules for use with Linux. The broad Greg Herlein 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, different 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 highlevel functions (for example, to establish a voice call from your computer to a telephone number via an IP/PSTN gateway); this is the goal of the OpenPhone project. The sec-

If an OpenPhone can call any other computer regardless of operating system, or any other phone anywhere in the world thats powerful!

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 telephone making a call with the telephone receiving it. The first tele-

phone systems used human operators sitting in front of a plug board: theyd 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 Tlphonique et Tlgraphique) was established to develop standards 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 telephone network (or PSTN). The PSTN is regulated by Oftel, the Office of Telecommunications: equipment which meets their standards (which mostly boil down to compatability with CCITT standards and some basic safety specifications) 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
CONTINUED ON PAGE 45 >

LinuxUser/June 2001 4 3

ALL YOU NEED TO KNOW ABOUT...


TELEPHONY & LINUX

Just putting you through


Right: The music-on-hold setup screen for Andrews and Arnolds Penguin Communications Server, the single-box turnkey small business communications server which enables easy control of the popular Alchemy PBX as well as doubling as a network appliance providing all the standard Internet-related services Below: A preview release of the new user interface for the Penguin. Features include integration with BTs billing information, enabling call costs to be trace to individual extensions. Matt Bishop, R&D team leader, says: Its possible to get these features on applications written for Windows, but the price is higher and we believe that LInux gives our customers a more stable platform.

phone-based system administration tools. Bayonne isnt a graphical application: its 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 companywide voicemail system, with password protection, the ability to replay received messages on demand, ability to email received audio files to a users email box, and so on. As of the Milestone Six release, Bayonne provides XML services, allowing you to add voice services to XML-based application servers. Bayonnes 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 multiline voicemail system). Drivers for Voicetronixs 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 potential of open source software. Dont expect installing a Bayonne system in your company to be easy: the total absence of easy-to-use administration 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 weeks 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 ecommerce website may be well worth the trouble. ond item is the integration of telephony into unified messaging frameworks, systems that allow all communications systems (phone, pager, fax, email, and others as yet undreamed of) to be integrated into a single system.

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 controlling PBXs. It has written drivers that allow a Linux system to talk to a Lucent Technology Network Alchemy switch. The Network Alchemy range are popular cheap PBXs 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

A lot of customers, especially in Europe, are telling us that they want Linux implementations, not NT
Alan Pound, Aculab
< CONTINUED FROM PAGE 43

Messaging frameworks
The higher level packages are exemplified by Bayonne, the GNU integrated voice response server. Bayonne provides a service daemon that can automatically process telephone calls its scripted, so you can control call flow, and is intended for building voice mail systems and tele-

small, fixed-size packets. (ATM is designed to support switched traffic, between two points.) However, prior to the arrival of the Internet the telcos provided data transport via their own packet-switched network: running on protocols such as X.25, these networks (such as British Telecoms Packet Switchstream service) were expensive, slow, and not universally 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 theyre turned back into analogue form by the ISPs 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 networks, blurring the boundary between a telco and an ISP. The blurred boundaries go both ways. Voice calls require bidirectional data transfers: why not carry voice calls over TCP/IP? The technologies of Voice-over-IP, or IP Telephony, got started by companies who wanted to merge their
CONTINUED ON PAGE 46 >

LinuxUser/June 2001 4 5

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

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 telephone switchboards. Andrews and Arnolds 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 something 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 systems. In this system Linux isnt acting as a telephone switch or voice-over-IP gateway; its acting as a control centre for existing PBXs. Its possible to write complex applications for automating call centre operations or providing on-line technical support screening relatively easily, because of the availability of open programming interfaces. The performance of the voicemail server is also noteworthy: a machine costing two or three thousand pounds can provide voice mail for hundreds of users. In addition to selling straightforward PBX control systems (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 businesses: 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 mentioned 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 vendor of high-end telephony boards (up to and including

One day, your telephone will run Linux

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, Aculabs managing director. Whirlwind runs on NT, Linux, and Solaris, and provides an implementation of the ECTFs 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 computer 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 computer telephony systems. The ECTF standards 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 hardware vendors; as it advances in the server sector, more and more CT systems like Whirlwind will appear on it.

The futures bright the futures open


Telephony is just another kind of networking, albeit one with a wide variety of bewilderingly complicated (and proprietary) 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 platform and common standards. As the telephone industry adopts standards such as those of the ECTF (which allow CORBA-compliant programs 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.

< CONTINUED FROM PAGE 45

local area network and telephone extension systems. The initial incentive was to reduce the number of routers or switches a business needed: then there was the opportunity of using spare bandwidth 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, its 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 doesnt have email access. The core standards that made this possible were established by the H.323 committee of the International Multimedia Telecommunications Consortium and supported by the ITU. H.323 defines standards for real-time packet-based communications: 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 protocols have been implemented as open source: the core code is available 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: its supported by an Australian company, Equivalence, a subsidiary of Quicknet Technologies. OpenH323 has now been commercially 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 protocols, 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.

4 6 LinuxUser/June 2001

You might also like