The
first requirement is, of course, a laptop computer. For VoIP
applications, the most important hardware requirement is processor
power for encoding and decoding audio. The laptop also needs either a
USB port or a PCMCIA slot for the EVDO modem, another USB port for a
USB microphone, and enough memory and disk space to reliably run the
Linux distribution you choose. To set up VoIP remotes for our radio
station, I purchased a older Toshiba Satellite A10-S100 laptop with a
2GHz processor for under $200.
The choice of a Linux distribution is important, since many
distributions do not work well with EVDO modems. I settled on Ubuntu
Hardy Heron because few people reported issues getting EVDO modems to
work with its kernel. The distribution you choose must include the
usbserial kernel module and a modem dialer such as wvdial.
Choosing an EVDO provider and modem
Once you have your laptop ready, you need to choose a cellular
provider. Four major providers offer EVDO coverage in the United
States: AT&T, Verizon, Alltel, and Sprint. (Verizon and Alltel have
merged, but currently, Alltel still offers separate services under
separate branding.) I chose Alltel because it gave me the option to
bring my own device and the option to forgo a contract if you buy
(rather than rent) a device from Alltel or bring your own device. The
other providers require a contract for service, and, as far as I could
ascertain, do not allow you to provide your own device. Looking around
eBay, I found an Alltel-branded UTStarcom PC5750 EVDO modem for around
$35. Each provider has its own modem firmware, so the branding of the
modem is important. Also, make sure to take the card to your local
cellular store to have it activated, since currently there is no way to
activate EVDO cards under Linux.
The modem was easy to get working under Ubuntu Hardy. All I had to
do was blacklist the buggy Airprime driver and configure a dialer. To
accomplish the former, add the following line to
/etc/modprobe.d/blacklist:
blacklist airprime
After you reboot you should be able to use wvdial or another modem
dialer to connect to your EVDO provider. I used wvdial with the
following configuration (in /etc/wvdial.conf), which you can modify
depending on your provider. The highlighted lines are
provider-specific. (Authentication is performed with codes written to
the card firmware during activation, and the username and password are
the same for every service client on most providers.)
[Dialer Defaults]
Stupid Mode = On
Modem = /dev/ttyACM0
Baud = 115200
Init = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Phone = #777
Username = 4192605072@alltel.net
Password = alltel
Init1 = ATZ
ISDN = 0
Modem Type = Analog Modem
Auto Reconnect = on
Carrier Check = no
[Dialer shh]
Init3 = ATM0
[Dialer Pulse]
Dial Command = ATDP
Thanks to Linux Screw for the original wvdial script. You can also find dialing information for the four major United States EVDO providers there.
You can add wvdial to /etc/rc.local to ensure that you have Internet
connectivity on startup, as long as the EVDO modem is plugged in before
boot.
Setting up VoIP
Once you've set up the operating system, the last piece of the puzzle is the VoIP application. First, the software must support SIP
(Session Initiation Protocol). While SIP is not VoIP-specific, it is
the de facto standard protocol for setting up VoIP calls. On Ubuntu,
the Ekiga softphone application is installed by default. The setup
wizard for Ekiga will help you set up an account for SIP service at ekiga.net.
You need to do this both on the laptop and on the computer you will be
calling. You can use ekiga.net with any SIP phone, not just the Ekiga
application. In our radio studio, we set up a Windows XP computer
that's also used for email and Web browsing with the X-Lite softphone and an ekiga.net account, and connected it to the radio board.
When talking about VoIP, you will hear a great deal about codecs.
Codec is short for "coder-decoder," and refers to a method of digitally
representing audio data. Most codecs include some form of compression
to allow audio transmission through a lower bandwidth connection. In
VoIP, codecs are small pieces of software that integrate with the
phones or softphones at either end. Codecs encode data for transmission
to the other party and decode it when it is received. The choice of
codec determines the required bandwidth and quality of the voice
transmission.
Since the purpose of VoIP in this case is to provide high-quality
audio transmission, the choice of codecs is important. It is also
important to configure fallback codecs when using a low quality link
such as EVDO, where available bandwidth can vary greatly. To configure
codecs in Ekiga, open Edit -> Preferences. In the preferences
sidebar, under Codecs, choose Audio Codecs. Here you can enable and
disable codecs and set codec priorites. I have had the most success
with 16Khz Speex as my primary codec, followed by PCMU, 8Khz Speex, and
finally GSM. GSM is the same codec used for cellular telephony, and
should only be used in low-bandwidth situations. Configure the codecs
for the softphones at both ends.
When you need audio transmission for a media application, you
probably do not want to use the internal microphone of the laptop. For
our application, a USB microphone, intended for podcasting, allowed me
to feed much higher quality audio into the system. The mike was
detected by Ubuntu immediately, but it had to be set as the default
device in the Audio Devices panel in Ekiga preferences before Ekiga
would utilize it.
How did our VoIP remote system perform? The Alive Festival is
an outdoor music concert held every June in northeastern Ohio, a very
hilly region with bad cellular coverage. Our cellular phones were
unusable in some areas of the festival grounds. Fortunately, our
station's booth was at the top of a hill, where we could pick up the
signal from the cell tower. The PCMU codec worked nearly flawlessly
even with the low bandwidth afforded by such a weak signal. The only
glitch came while interviewing a popular singer. As people crowded
around the booth, the cell signal decreased to the point that there was
not quite enough bandwidth for PCMU. The interview wound up sounding
choppy, but still understandable.
Even with such bad bandwidth conditions, Ekiga performed well.
Without the VoIP setup, we would have had unreliable and low-quality
audio for interviews, which is unacceptable for broadcast media. The
VoIP application allowed us to control the quality of our audio and
utilize a better microphone with improved noise immunity (a requirement
at an outdoor concert).