4.6. Legacy Endpoints
In conventional telephony, every endpoint is an analog transducer set with a dial-pad (touch-tone) or a rotary -dial pulse wheel. Rotary-dial phones are a dying breed, of course, as the dominance of DTMF has marginalized them to the degree that many telephone companies don't support them any more. Both rotary and touch-tone phones share support for some variant of FXS signalingan electrical protocol described earlierin order to communicate with the CO switch.
4.6.1. FXS/Analog Endpoints
While most legacy switches support analog endpoints through onboard analog ports, VoIP systems require additional interfacing in order to use them. SoftPBX vendors support analog endpoints with FXS signaling in the following fashions :
Of course, analog endpoints are more than just phones. Sometimes they are modems, fax machines, answering machines, burglary or fire alarm systems, or those automated dialers with prerecorded telemarketing messages that sometimes call and interrupt your dinner. Generally, analog endpoints can be connected to a VoIP network using one of the three mechanisms listed.
But many data transmission protocols used by faxes and modems are broken by the voice digitization process used on VoIP networks. Quantization, as described in the earlier section "Time Division Multiplexing," has a knack for screwing up the analog sound wave signals used by modems and faxes to represent data. But don't fretthere's a solution to this problem, and it's covered in Chapter 14.
4.6.2. Digital Endpoints
Digital phones are functionally similar to analog phones, but internally quite different. Their connection to the local switch is a digital connection, carried on two pairs of copper instead of a single loop. Digital endpoints are integrated into the TDM bus, so that the signal carried to them is completely digitized. They have integrated circuitry onboard that can decode that signal and encode one to send back through the TDM bus. Digital phones tend to be more expensive, and more feature-packed, than their analog counterparts. Their signaling standards also tend to be proprietary interpretations of ITU recommendations. For this reason, it can be a challenge using one vendor's digital phone on another vendor's PBX.
18.104.22.168 Using (or not using) digital endpointsdigital endpoints
While it is possible to use digital endpoints in a VoIP environment, the specifics of supporting TDM phones (such as the one shown in Figure 4-10), channel banks, and proprietary TDM-based switches are outside the scope of this book. There are, of course, ways of interfacing digital phones directly with a TDM-aware VoIP switch, but why bother? All you'd really be doing is re-creating a TDM buswhich is one of the legacy technologies we're trying to get away from, right?
A better approach would be to connect the old-school PBX to a VoIP server using a single interface to trunk between them. Then you can migrate each user from a digital/legacy phone to an IP phone over time, and you don't have to heave-ho all those
Figure 4-10. Traditional digital business phones like this one are a part of the PBX system's TDM bus
digital phones right away. A good source for information about time-division phone standards is the book Digital Telephony (Wiley).
Don't feel as if you have to reinvent the wheel to accommodate VoIP. When the time comes, you'll replace your digital phones and all your TDM equipment, too. But a single trunk between the VoIP switch and the PBX switch can be a godsend in a migration to VoIP, because it can carry calls between an old conventional PBX and a new softPBX.
A phone than can be used without holding the receiver next to one's head is called a speakerphone . It has a speaker that is loud enough to clearly hear the remote party, and it has a microphone that can adequately pick up the local user's voice. Most speakerphones have a handset onboard; in fact, most business phones are speakerphones. There are two kinds: full-duplex and half-duplex.
A speakerphoneespecially one of the analog persuasionis naturally prone to acoustic feedback, usually exhibited as an annoying high-pitched squeal or hiss emitted by the speaker. This is caused by the microphone in the phone picking up the sound coming from the speaker and creating a feedback loop, or a signal of a continually amplified and destabilized waveform. The result is that awful hiss. To get around this problem, half-duplex speaker phones have a limiter or gate circuit that cuts off the speaker when the local user is talking. The only drawback is that sometimes both parties can talk at the same time without realizing it, because the speaker is cut off. If you've ever used a half-duplex speakerphone, you know how aggravating this effect can be.
Full-duplex speakerphones solve the feedback loop problem by using DSP (digital signal processing) circuitry to equalize the signal against frequencies of sound that are prone to feeding back or to modify the sound signal in a way that makes it immune to feedback but is undetectable by the human ear.
22.214.171.124 Lines and line appearances
With legacy phone systems, there are two ways to refer to voice channels on each phone. These channels, the circuits across which voice information travels , are either lines or line appearances . What's the difference?
A line is a physical connection to the PBXa single voice circuit that is capable of carrying one concurrent phone call. A line appearance, conversely, is the one concurrent phone call.
Consider the PSTN feature called three-way calling. This feature allows a single phone user to call two other PSTN subscribers simultaneously , switch back and forth between the two conversations, and even bridge the conversations into a three-party conference call. Each of the conversations "appears" to be on a separate line and is therefore called a line appearance, since only one physical line is in use at the caller's phone.
The same is true of analog or traditional phones connected to a PBX. From a PBX subscriber's phone, you may dial extension 101, put that call on hold, dial extension 102, put that call on hold, dial extension 103, put that call on hold, and then switch back and forth among them. Three line appearances, one phone, one line to that phone from the PBX.
In key systems, line appearances and lines tend to be one and the same, as different line appearance buttons on key system phones correspond to individual POTS lines that are connected to the key system.
126.96.36.199 Ring groups and private hunt groups
In some environments, the person closest to a phone is most qualified to answer a call. Ring groups allow two or more phones to ring simultaneously when a call is incoming. Once answered on any phone in the ring group , the ringing stops, and subsequent calls will ring all the phones in the group again.
Private hunt groups are more advanced ring groups. Like the PSTN hunt groups, private hunt groups allow calls destined for a phone that is currently unavailable to roll to another channelusually another phone. Depending on why the phone is unavailable to receive a call, the hunt group may have a different type:
Most PBXs support some combination of ring groups and hunt groups.
4.6.3. Project 4.2. Simulate a Simple Key System with a Ring Group
188.8.131.52 What you need for this project:
Using the POTS line that was connected to the Asterisk server in Project 4.1 and any type of phone (analog or IP), it's pretty easy to emulate a key system. In Project 5.1, we'll assign extension numbers to two IP phones, allow them to dial out using a POTS trunk, and put them together as a ring group for all incoming calls.
In this project, we'll use a Cisco SIP 7960 (phone A) and a Grandstream Budgetone 101 (phone B) to participate in the ring group and the X100P for the PSTN interface. You don't have to use these particular phones if you know how to configure the IP phone you haveas long as the IP phone you're using supports SIP.
A key system is not as sophisticated as a PBXit doesn't do station-to-station calling, and it usually doesn't have extension numbers for each phone. Instead, a key system aggregates one or more PSTN lines so that a larger group of phones, usually no more than 16, can all make use of them. Actual call switching is still handled by the CO switch.
A simple key system can be built around a group of IP endpoints and a basic gateway device, like an appropriately configured Cisco media gateway. Something as sophisticated as Asterisk isn't really necessary, but since it's free, it's a great place to start. The completed project is shown in Figure 4-11.
Figure 4-11. When Project 4.2 is complete, the VoIP test network will look like this
In this setup, all incoming calls on the POTS line will ring all IP phones on the private Ethernet network simultaneously and then connect each incoming call with the IP phone that answers first. If you're using two 7960s rather than one 7960 and one Budgetone, then you can skip Step 2 below, and just repeat Step 1 with the second 7960's configuration in mind. If you're using two Budgetones, skip Step 1.
184.108.40.206 Step 1: Unlock and configure phone A (Cisco 7960)
Before you can go anywhere with Asterisk and a Cisco 7960 SIP phone, you've got to make sure the phone is running SIP firmware and not Cisco-proprietary SCCP firmware. Though Asterisk offers rudimentary support for the SCCP protocol through a software module, SIP is far more accessible to VoIP beginnersnot to mention an open , community-based standard.
The quickest way to tell if your 7960 is loaded with SIP firmware is to power it up and watch the upper-right corner of the LCD display. If, after booting up, the word SIP appears there, then you're in business. If not, it's time to get your hands on another phone. Incidentally, Cisco prohibits the loading of any firmware on its IP phones because each phone is covered by a service agreement.
Once the Cisco 7960 is booted up, unlock it by pressing the Settings button, then 9. Then use the keypad to dial the word cisco . That's the 7960's default password for unlocking its configuration. Next, press the Accept softkey . Now, the phone's configuration is changeable .
First, assign an IP address by pressing Settings, dialing 3 for Network Configuration, and dialing 5 for IP Address. Enter 10.1.1.104. If the 7960 doesn't allow you to enter an IP address, be sure to disable DHCP by scrolling down to option 25 and pressing the No softkey.
Find the Default Router 1 setting and enter 10.1.1.1 (or whatever the address of your gateway is on the 10.x network). Change the phone's subnet mask to 255.255.255.0. Be sure to press the Save softkey after each setting change.
Now, from the main configuration menu on the 7960, choose SIP settings, and then choose Line 1 settings. For the Name and Shortname settings, enter 104. Change the Proxy Address setting to 10.1.1.10i.e., the Asterisk server. Check that the Proxy Port setting is 5060SIP's commonly used port number. When settings are complete, they should resemble this list:
Once all these changes are complete and you're back to the 7960's main screen (the one with the Cisco copyright notice), you'll see 104 in the upper-right corner, along with an icon that looks like a telephone. This icon is an indicator that the IP phone has initiated communication with the SIP registrarthat's one of many SIP terms that means softPBX. The Asterisk server is intentionally ignoring SIP requests from 10.1.1.104, so this indicator is nothing to worry about. It will be gone after the Asterisk server is told how to handle this particular IP phone.
Finally, connect the 7960 to your Ethernet switch.
220.127.116.11 Step 2: Configure phone B (Budgetone 101)
You can apply the following configuration to a second 7960, if you prefer, or set it up on a Budgetone 100 series:
Use the Budgetone's web-based configuration page to change these settings, as you did in Project 3.1. Then connect the Budgetone to your Ethernet switch.
18.104.22.168 Step 3: Define SIP peers for the IP phones
Open /etc/asterisk/sip.conf . This is the file where SIP channels, which Asterisk calls peers , are defined. In this case, we'll need to define twoone for each IP phone. In this file, you'll see this block at the top of the file:
[general] port = 5060 ; Port to bind to bindaddr = 0.0.0.0 ; Address to bind to context = default ; Default for incoming calls
The SIP configuration file is structured so that every section other than the [general] section defines one SIP peer apiece. The sample configuration file provided with Asterisk has some suggested configurations, all commented out. Add the following to the end of the file to set up the two IP phones:
 type=friend context=default username=103 callerid=103 host=10.1.1.103 nat=no canreinvite=no port=5060 dtmfmode=info ; this is required for Budgetone 101 phones  context=default type=friend username=104 callerid=104 host=10.1.1.104 nat=no canreinvite=no port=5060
The bracketed headings,  and , correspond to the two SIP phones whose SIP usernames you configured, respectively. They apply the settings that follow to a SIP channel that is reserved for the endpoint claiming a particular usernameeither 103 or 104. Now, to make them ring when somebody calls in on the POTS line.
22.214.171.124 Step 4: Create a ring group for the two IP phones
In order to disable the demonstration greetings and configuration that ships with Asterisk out of the box, you'll need to open /etc/extensions.conf and find the section that begins with [default] . Find the directive include => demo and comment it out by placing a semicolon ( ; ) at the beginning of the line. Then, add this entry right below it, still in the [default] section:
include => keysystem
Now, move up the file to just above the [default] section and add the following bit of Asterisk configs :
[keysystem] exten => s,1,Answer( ) ; Answer the line exten => s,2,Dial(SIP/104&SIP/103,40,r) ; ring our SIP phones
These two entries, placed in the new [keysystem] section, establish the two tasks the softPBX must do in order to ring the two IP phones when the POTS line rings. First, the Answer( ) application command tells the softPBX that, by default, all incoming calls will be answered by the softPBX.
The second command, Dial , causes Asterisk to ring both SIP phones103 and 104simultaneously. The one to answer the call will cause the ringing to stop and the other will no longer be able to join the call merely by answering. Note the ampersand ( & ), which delineates multiple channels for simultaneous ringing.
The SIP/104 and SIP/103 notations refer to SIP channels, just as Zap/1-1 referred to a Zaptel analog channel in the earlier project. These SIP voice channels were established in Step 3.
To try out the ring group, execute a "restart now" at the Asterisk CLI, and then use a cell phone or an extra phone line to call in to the POTS line that's connected to Zap/1-1. Both IP phones will ring while displaying the incoming caller ID information, and the first phone to pick up will field the incoming call.
126.96.36.199 Step 5: Allow the SIP phones to dial out
As it stands now, an incoming call on the POTS line would indeed ring on the 103 and 104 phones simultaneously. But neither phone can currently place an outbound call through the POTS line on channel Zap/1-1. To do this, you'll need to include another context in extensions.conf . In the [default] section, add the following:
include => trunkld
This change allows the call routing for outbound calls, as contained in the [trunkld] section of the file, to be applied so that Zap1 can be used to originate PSTN calls. Now, after an Asterisk CLI "reload," your SIP phones will be able to dial 9 followed by a valid 11-digit PSTN number in order to place outbound calls.
All of these configurations are essentially just modifications to the softPBX's call-routing scheme. Historically, and in VoIP, this scheme is referred to as a dial-plan .