Hack 63. Create an Internet Phone
Talk to the world and save money while doing so.
As the number of broadband installs increases and the connections get faster and faster, the potential to use quality audio and video applications over the Internet has become more feasible. These kinds of heavy-bandwidth applications are no longer the domain of just large corporations with money to spend on expensive Internet access; cable modems and DSL lines bring the technology to the home.
This hack explores how to use two applications to make phone calls to others over the Internet. Although using these applications is fairly straightforward, the configuration of firewalls and security can be a barrier to getting started. In addition to exploring Internet-based calls, I also discuss what options are available to call regular phones from the Internet. A number of services offer PC-to-phone and vice-versa services, and the cost compared to regular phones is often minimal.
GnomeMeeting is a fully open source audio and video conferencing tool. This hack focuses on audio; [Hack #64] focuses on the use of GnomeMeeting as a video conferencing tool.
When you use GnomeMeeting, a gatekeeper manages your connection. This central server provides a directory of connected clients and their call status. The gatekeeper offers a telephone directory-type service for users, complete with a user profile. This hack doesn't cover how to set up a gatekeeper, but information on this is available at http://opengatekeeper.sourceforge.net.
Using GnomeMeeting is fairly simple if you have a working sound cardjust connect to the default gatekeeper and go. Using GnomeMeeting gets more complex when you roll a firewall into the mix. GnomeMeeting requires a number of ports to be open on the firewall for the software to work. Opening these ports can be a concern for those who feel uncomfortable about providing additional access past the firewall. Unfortunately, to use GnomeMeeting, you must ensure these ports are forwarded to the machine running GnomeMeeting (or are opened entirely if more than one machine will run GnomeMeeting), or it won't work. One slight consolation is that you can change some of the ports for different numbers by adjusting some settings in GConf (the GNOME Configuration program that comes with most GNOME installs). The ports to be forwarded are as follows:
Once you have set up your firewall to forward these ports [Hack #81], you must also ensure that these ports are available to the outside world. Smoothwall includes an External Services Access screen where you can configure this. If you're accessing the Internet from a LAN, you should turn on "Enable IP translation" in the H.323 Advanced section of the GnomeMeeting preferences so that GnomeMeeting can apply some processing to work over Network Address Translation (NAT) routers. Previous versions of GnomeMeeting (0.94 and before) required that a special library called RSIP (http://openresources.info.ucl.ac.be/rsip/) be installed to achieve the same feature.
With the network settings complete, you can plug in your microphone. Make sure the mic volume is turned up; many people forget to do this. If you are using an ALSA-based setup, you can adjust the volume by using alsamixer or the volume controls on your desktop. With all of this complete, GnomeMeeting is ready to make calls.
The new kid on the block in the Voice over IP world is Skype (http://www.skype.com). This multiplatform Internet phone uses proprietary peer-to-peer technology to provide an efficient way of connecting to another client. If you don't have a problem with the proprietary nature of Skype, it is a highly recommended tool. The sound quality and performance are simply incredible. One particularly interesting feature about Skype is that it requires no port-forwarding or adjustments to your firewall. This feature can be a saving grace for those who have battled to get GnomeMeeting working and have found the hill too steep to climb. Skype, by comparison, is a breeze to set up.
8.10.3. Calling Regular Phones
Both GnomeMeeting and Skype support PC-to-phone calls, but each has a different method of dealing with these types of calls. In Skype, you simply need to register a SkypeOut account, and then buy credits that allow you to call regular phones. No additional software or hardware is required.
If you want to call phones with GnomeMeeting, the process is more complicated. First, you need to purchase some Quicknet hardware at http://www.linuxjack.com. Due to the patented nature of the G.723.1 audio codec that is required to make phone calls, the codec cannot be included in the GnomeMeeting code. But if you buy the Quicknet hardware, the codec is included in the hardware itself, along with features, such as a speaker phone, hardware support, and other niceties. Once you have installed the hardware and it is working, you need to install the latest version of the Open H323 driver from http://www.openh323.org. It is required to make PC-to-phone calls. To actually make calls with GnomeMeeting you need to register a MicroTelco account on http://www.linuxjack.com. This gives you a login and PIN number that you can enter into the GnomeMeeting settings. Finally, plug your normal phone device (analog phone, cordless phone, etc.) into the Quicknet hardware, and dial the phone as normal.