Press the Asterisk now
Computers and telephones are coming together in a big way, and for one reason: Voice over Internet Protocol (VoIP). VoIP exists to do one thing: to make telephone calls cheap by sending them via the Internet, and as such is giving the established telcos heart attacks. When eBay buys out Skype for $2.6 billion, you know that VoIP is set to be very big indeed. In this column, we’re going to talk about Asterisk, a fully featured open-source telephone exchange. Asterisk supports all the features you’d expect in a conventional telephone exchange – incoming and outgoing calls from extensions, with call routing, voicemail and conferencing over normal telephone lines – but it also supports VoIP, letting you get in on this revolution for minimal cost.
Working with telephone exchanges is complicated. From the user’s viewpoint, nothing could be simpler: pick up the handset, listen for a dial tone, dial number, listen for another sequence of tones, and then if you’re lucky talk to the person you’re calling. If you’re unlucky, you talk to a machine, or even interact with a robot voice. Dig deeper, though, and it gets complicated very quickly, a maze of three- and four-letter acronyms designed by the telecoms industry to confuse. And to add to the confusion, different styles of phones work in different ways.
First, let’s examine some of the basics. In the world of wired telephony, there are still two types of phone line: conventional analog and digital ISDN. We’re all familiar with the former, and a few will have used the latter. They work completely differently, so we need to treat them separately. The way an analog phone line works has barely changed since Alexander Graham Bell made his mark, the main reason being the need to ring a bell. The line has a receiver, complete with bell, at one end and a telephone exchange at the other. The exchange end is powered, and provides the voltage that rings the bell in the receiver at the other end. Hence, the two ends of an analog phone line work quite differently and use different forms of signalling – the exchange end is properly called a Foreign Exchange Station (FXS) and the receiver end a Foreign Exchange Office (FXO), and it’s the FXS that sends the ringing voltage to the FXO. An Asterisk system connected to an ordinary phone line will have an FXO plugged into its external lines and an FXS for each internal extension.
As we’ll be seeing later, the fact that one end provides the ringing voltage is very important, and something you have to take into account when setting up an exchange for conventional phones. You also need to be aware that there are subtle differences between how analog lines are set up in different countries: problems arise if, for example, you want to use Caller Line Identification (CLI) to see who’s calling.
The digital world of ISDN is much better suited to computer operation, but problems still exist. ISDN doesn’t have to ring a mechanical bell, so there are fewer differences between its ends. All traffic carried over an ISDN line is in digital form; to be precise, voice digitised at 64Kb/sec (an important number that should be committed to memory). The big difference lies in how ISDN circuits are delivered to you.
In the UK, there are two main methods: two lines at a time (via ISDN2 over a 128Kb/sec circuit) and 30 lines at a time (via ISDN30 over a 2Mb/sec circuit). The astute reader will already be wondering why you only get 30 channels from 2Mb/sec when you should get 32, and the reason is that the two extra channels are used for system signalling. Technically, the data channel is called a B channel and the other two D channels. ISDN circuits are normally terminated using a twisted pair cable with an RJ-45 connector – just like an Ethernet cable – no matter whether the line is delivering two or 30 concurrent phone calls. Obviously, though, you can’t plug an ISDN30 line into a device that’s expecting ISDN2.