Is Linux Voice over IP Ready?
What is Voice over IP really? What do you need for Voice over IP? What do you mean, I can't call my girlfriend? What's all that buzz about open and proprietary protocols? Can I start my own telecom service? This article addresses these questions and compares the most popular Linux applications for calling and conferencing.
Internet or digital telephony, or Voice over IP, often abbreviated as VoIP, allows parties to exchange voice data streams over the network. The big difference is that with VoIP the data flows over a general-purpose network, the Internet, whereas conventional telephony uses a dedicated network of voice transmission lines.
Under special circumstances, a VoIP network can be connected with the conventional telephone network. However, at the time of this writing, that is certainly not the standard. In other words, it is likely you will not be able to call people who are using a conventional telephone. Although currently various applications are available, both free and proprietary, telephony over the Internet has some major drawbacks. Most noticeably, the system is unreliable, it can be slow, or there can be a lot of noise on the connection. Therefore, it cannot be used to replace conventional telephony. Think about emergency calls, for instance. Although some providers take some precautions, there is no guarantee you will be able to reach the party you want to call. This is worsened, because in VoIP, there is no agreement yet on a standard for assigning numbers, like the E.164 standard we have for assigning and identifying traditional land lines and mobile phone numbers.
Even if there is some form of integration between VoIP and conventional telephony networks, this is still different for mobile networks. The major problem is that wireless network coverage is not as well developed as cellular network coverage. Additionally, there is the issue of costs when accessing the Internet from your mobile phone. For me, it would amount to 0.50 EUR (+/- $.60 US) per 100K of traffic. It is possible that integration of VoIP in the third-generation telephony network will ease these troubles.
You also should be aware that there is no encryption in VoIP. So, it is fairly easy for anyone to eavesdrop on conversations.
The bottom line is although VoIP is useful, it is not a replacement for land-line telephony (yet).
Let's look at what you'll need to get VoIP up and running.
First of all, you need a provider offering the service. Some popular providers offer the service for free, and some require a subscription fee. Among the free ones are the following: SIPphone, Skype, SIP Broker and Google.
Most free services, however, do not allow you to connect with the conventional telephone network. This so-called full phone service is usually not free. Among the most popular full phone service providers are the following: Vonage, Lingo, AOL TotalTalk and SIPphone.
These lists are certainly not exhaustive, as new local and global providers join the pool on a near-daily basis. Also, many SMEs are currently setting up a VoIP network for internal use within companies. If you want to set up your own VoIP network, you might want to look into Asterisk server software or sipX, which are open-source PBX implementations.
Alternatively, if you want to use only the soft phone, meaning the audio system of your computer (audio boxes and microphone or headset) and accompanying software, check out Ekiga, formerly GnomeMeeting, as announced January 8, 2006, in the GnomeMeeting blog. Although Ekiga supports a range of hardware, it is usually set up to support (video) conferencing features implemented on the software level. Like sipX and Asterisk, it is open-source software.
Note: PBX stands for Private Branch eXchange, the system that centralizes all of a business' telephone sets.
Depending on your network architecture, some applications might work better than others, due to the protocols they use. Most standards-based solutions use either the H.323 or Session Initiation Protocol (SIP). Apart from these two standards, there are a lot of proprietary protocols, such as Skype (from the company with the same name) and SCCP from Cisco. The main difference between them is that SIP stores the client IP address in its packages, resulting in difficulties when you are behind a firewall.
Microsoft NetMeeting and GnomeMeeting use H.323; Microsoft's Messenger and Apple's iChat and SIPphone uses SIP. Server software usually implements several different protocols.
Apart from your network architecture, available bandwidth also might be a limiting factor, as some applications are optimized for low bandwidth, and others expect to be on a broadband connection. This depends on the codecs the VoIP systems use for handling sound.
As far as client hardware is concerned, use a headset. Although your PC, especially if it is a laptop, might have a microphone and speakers built in, you will be far more comfortable using a headset, as it will suppress echo and noise from your environment. If you have the choice, opt for a USB headset. A USB headset is a separate audio device to your system. It functions independently from existing audio hardware, so it avoids any conflicts that might occur between VoIP and normal sound processing.
If the applications you use provide the features, you can redirect audio streams as desired. For instance, you can make the ring tone for alerting you that you have a call come through the normal speakers. When you pick up the call, the voice of the calling party is redirected to your headset.
Free DevOps eBooks, Videos, and more!
Regardless of where you are in your DevOps process, Linux Journal can help!
We offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, and advice & help from the expert sources like:
- Linux Journal
- Users, Permissions and Multitenant Sites
- New Products
- Flexible Access Control with Squid Proxy
- Security in Three Ds: Detect, Decide and Deny
- High-Availability Storage with HA-LVM
- Tighten Up SSH
- DevOps: Everything You Need to Know
- Solving ODEs on Linux
- Non-Linux FOSS: MenuMeters
- diff -u: What's New in Kernel Development