Chapter 12. Linphone—VoIP for the Linux Desktop

Contents

12.1. Configuring Linphone
12.2. Testing Linphone
12.3. Making a Call
12.4. Answering a Call
12.5. Using the Address Book
12.6. Troubleshooting
12.7. Glossary
12.8. For More Information

Abstract

Linphone is a small Web phone application for your Linux desktop. It allows you to make two-party calls over the Internet. There is no need for special hardware items: a standard workstation with a properly configured sound card, microphone, and speakers or headphones is all you need to get started with Linphone.


12.1. Configuring Linphone

Before you start using Linphone there are some basic decisions to make and some configuration tasks to complete. First, determine and configure the run mode of Linphone, determine the connection type to use, then start the Linphone configuration (Go+Preferences) to make the necessary adjustments.

12.1.1. Determining the Run Mode of Linphone

Linphone can be run in two different different modes, depending on the type of desktop you run and on its configuration.

Normal Application

After the Linphone software has been installed, it can be started via the GNOME and KDE application menus or via the command line. When Linphone is not running, incoming calls cannot be received.

GNOME Panel Applet

Linphone can be added to the GNOME panel. Right-click an empty area in the panel, select Add to Panel, and select Linphone. Linphone is then permanently added to the panel and automatically started on login. As long as you do not receive any incoming calls, it runs in the background. As soon as you get an incoming call, the main window opens and you can receive the call. To open the main window to call someone, just click the applet icon.

12.1.2. Determining the Connection Type

There are several different ways to make a call in Linphone. How you make a call and how you reach the other party is determined by the way you are connected to the network or the Internet.

Linphone uses the session initiation protocol (SIP) to establish a connection with a remote host. In SIP, each party is identified by a SIP URL:

sip:username@hostname
   

username is your login on your Linux machine and hostname the name of the computer you are using. If you use a SIP provider, the URL would look like the following example:

sip:username@sipserver
   

username is the username chosen when registering at a SIP server. sipserver is the address of the SIP server or your SIP provider. For details on the registration procedure, refer to Section 12.1.5, “Configuring the SIP Options” (↑Applications) and check the provider's registration documentation. For a list of providers suitable for your purpose, check the Web pages mentioned in Section 12.8, “For More Information” (↑Applications).

The URL to use is determined by the type of connection you choose. If you chose to call another party directly without any further routing by a SIP provider, you would enter a URL of the first type. If you chose to call another party via a SIP server, you would enter a URL of the second type.

12.1.2.1. Calling in the Same Network

If you intend to call a friend or coworker belonging to the same network, you just need the correct username and hostname to create a valid SIP URL. The same applies if this person wants to call you. As long as there is no firewall between you and the other party, no further configuration is required.

12.1.2.2. Calling across Networks or the Internet (Static IP Setup)

If you are connected to the Internet using a static IP address, anyone who wants to call you just needs your username and the hostname or IP address of your workstation to create a valid SIP URL, as described in Section 12.1.2.1, “Calling in the Same Network” (↑Applications). If you or the calling party are located behind a firewall that filters incoming and outgoing traffic, open the SIP port (5060) and the RTP port (7078) on the firewall machine to enable Linphone traffic across the firewall.

12.1.2.3. Calling across Networks or the Internet (Dynamic IP Setup)

If your IP setup is not static—if you dynamically get a new IP address every time you connect to the Internet—it is impossible for any caller to create a valid SIP URL based on your username and an IP address. In these cases, either use the services offered by a SIP provider or use a DynDNS setup to make sure that an external caller gets connected to the right host machine. More information about DynDNS can be found at http://en.wikipedia.org/wiki/Dynamic_DNS.

12.1.2.4. Calling across Networks and Firewalls

Machines hidden behind a firewall do not reveal their IP address over the Internet. Thus, they cannot be reached directly from anyone trying to call a user working at such a machine. Linphone supports calling across network borders and firewalls by using a SIP proxy or relaying the calls to a SIP provider. Refer to Section 12.1.5, “Configuring the SIP Options” (↑Applications) for a detailed description of the necessary adjustments for using an external SIP server.

12.1.3. Configuring the Network Parameters

Most of the settings contained in the Network tab do not need any further adjustments. You should be able to make your first call without changing them.

NAT Traversal Options

Enable this option only if you find yourself in a private network behind a firewall and if you do not use a SIP provider to route your calls. Select the check box and enter the IP address of the firewall machine in dot notation, for example, 192.168.34.166.

RTP Properties

Linphone uses the real-time transport protocol (RTP) to transmit the audio data of your calls. The port for RTP is set to 7078 and should not be modified, unless you have another application using this port. The jitter compensation parameter is used to control the number of audio packages Linphone buffers before actually playing them. By increasing this parameter, you improve the quality of transmission. The more packages buffered, the greater a chance for “late comers” to be played back. On the other hand increasing the number of buffered packages also increases the latency—you hear the voice of your counterpart with a certain delay. When changing this parameter, carefully balance these two factors.

Other

If you use a combination of VoIP and landline telephony, you might want to use the dual tone multiplexed frequency (DTMF) technology to trigger certain actions, like a remote check of your voice mail just by punching certain keys. Linphone supports two protocols for DTMF transmission, SIP INFO and RTP rfc2833. If you need DTMF functionality in Linphone, choose a SIP provider that supports one of these protocols. For a comprehensive list of VoIP providers, refer to Section 12.8, “For More Information” (↑Applications).

12.1.4. Configuring the Sound Device

Once your sound card has been properly detected by Linux, Linphone automatically uses the detected device as the default sound device. Leave the value of Use sound device as it is. Use Recording source to determine which recording source should be used. In most cases, this would be a microphone (micro). To select a custom ring sound, use Browse to choose one and test your choice using Listen. Click Apply to accept your changes.

12.1.5. Configuring the SIP Options

The SIP dialog contains all SIP configuration settings.

SIP Port

Determine on which port the SIP user agent should run. The default port for SIP is 5060. Leave the default setting unchanged unless you know of any other application or protocol that needs this port.

Identity

Anyone who wants to call you directly without using a SIP proxy or a SIP provider needs to know your valid SIP address. Linphone creates a valid SIP address for you.

Remote Services

This list holds one or more SIP service providers where you have created a user account. Server information can be added, modified, or deleted at any time. See Adding a SIP Proxy and Registering at a Remote SIP Server (↑Applications) to learn about the registration procedure.

Authentication Information

To register at a remote SIP server, provide certain authentication data, such as a password and username. Linphone stores this data once provided. To discard this data for security reasons, click Clear all stored authentification data.

The Remote services list can be filled with several addresses of remote SIP proxies or service providers.

Procedure 12.1. Adding a SIP Proxy and Registering at a Remote SIP Server

  1. Choose a suitable SIP provider and create a user account there.

  2. Start Linphone.

  3. Go to Go+Preferences+SIP.

  4. Click Add proxy/registrar to open a registration form.

  5. Fill in the appropriate values for Registration Period, SIP Identity, SIP Proxy and Route. If working from behind a firewall, always select Send registration and enter an appropriate value for Registration Period. This resends the original registration data after a given time to keep the firewall open at the ports needed by Linphone. Otherwise, these ports would automatically be closed if the firewall did not receive any more packages of this type. Resending the registration data is also needed to keep the SIP server informed about the current status of the connection and the location of the caller. For SIP identity, enter the SIP URL that should be used for local calls. To use this server also as a SIP proxy, enter the same data for SIP Proxy. Finally, add an optional route, if needed, and leave the dialog with OK.

12.1.6. Configuring the Audio Codecs

Linphone supports a several codecs for the transmission of voice data. Set your connection type and choose your preferred codecs from the list window. Codecs not suitable for your current connection type are red and cannot be selected.