VoIPv6 on Linux with VOVIDA
The Third Generation Partnership Project (3GPP), which is responsible for the standardization of the third-generation mobile networks, has designated the session initiation protocol (SIP) as the call control protocol and Internet protocol version 6 (IPv6) as the only network protocol for 3G IP-based wireless networks. SIP is an application-layer control protocol used to initiate interactive user sessions involving multimedia elements in third-generation mobile networks. IPv6, a network layer protocol, is the new generation IP protocol, which is intended to replace IPv4 following a migration period. However, because the schedule for upgrading IPv4 to IPv6 is hard to predict, the issue of communication between legacy IPv4 and new IPv6 equipment must be solved. It is assumed that sessions between IPv4-only clients and IPv6-only 3G mobile terminals are needed and transition mechanisms are necessary to achieve inter-networking.
Exploration of such transition mechanisms started at the Ericsson Research Open System Lab in Montreal, in collaboration with Professor Bill Atwood and his graduate students from Concordia University. The idea was to provide a prototype solution based on Linux and open-source software.
In this article, we present a detailed solution for implementing a SIP audio communication between IPv6 endpoints based on the VOCAL system. We also demonstrate our implementation of an IPv4/v6-compatible SIP system on dual-stack Linux servers. As IPv4 and IPv6 will co-exist until a full migration to IPv6 takes place, a mechanism is needed that allows hosts in an IPv6-only network to talk to hosts in an IPv4-only network. We explore NAT-PT, which provides a solution for this scenario, and propose a DNS-ALG (DNS application level gateway) and a SIP-ALG (SIP application level gateway), which will be the subject of a follow up article in Linux Journal.
SIP is an application-layer control protocol that can establish, modify and terminate multimedia sessions, such as Internet telephony calls. SIP establishes sessions using the session description protocol (SDP), which is used to negotiate a set of compatible media types to be shared among participants. It also can invite participants to join existing sessions, such as multicast conferences.
SIP defines two distinct types of messages: requests and responses. A SIP message is either a request from a client to a server or a response from a server to a client. SIP requests can be sent directly from a user agent client to a user agent server, or they can traverse one or more proxy servers along the way (see Figure 1).
Figure 1. Sample scenario where SIP messages go through multiple SIP proxies before reaching their destinations.
User agents send requests either directly to the address indicated in the SIP uniform resource identifier (URI) or to a designated proxy (outbound proxy), independent of the destination address. The current destination address is carried in the request-URI. Each proxy can forward the request based on local policy and information contained in the SIP request.
Figure 2 illustrates an example of a SIP message exchange between two user agents running on two Linux nodes: Sauternes and Gamay. The setup is explained further in a later section and illustrated in Figure 3.
Figure 2. Establishment and termination of a SIP session between two user agents, one on Sauternes and the other on Gamay.
VOVIDA.org is a communications community Web site dedicated to providing a forum for open-source software used in datacom and telecom environments. The VOVIDA Open Communication Application Library (VOCAL) is an open-source project targeted at facilitating the adoption of VoIP in the marketplace. VOCAL provides the development community with software and tools needed to build new VoIP features, applications and services. The software in VOCAL includes a SIP-based Redirect Server, Feature Server, Provisioning Server and Marshal Proxy.
Both the SIPSet and VOCAL Servers now support IPv6. IPv4 and IPv6 are supported at the same time, with VOCAL being able to use both types of addresses. Provisioning currently requires valid IPv4 addresses, however.
In this article, we use the VOCAL implementation to demonstrate audio communications between two user agents running on IPv6 Linux servers. We describe how to set up the network, how to install and configure VOCAL and, finally, how to run and test it.
A minimal test setup requires three nodes: two nodes to establish communications and one node that act as an IPv6 router and DNS server (see Figure 3).
Figure 3. Network Setup
In order to achieve the desired setup presented in Figure 3, we need to follow three steps:
1. Support IPv6 at the kernel level on all the three nodes.
2. Install a Web server that supports IPv6 (Apache) on the two Linux hosts.
3. IPv6 support for DNS and routing.
We explain each of these steps in the following sub-sections.
Trending Topics
| You Need A Budget | Feb 10, 2012 |
| The Linux powered LAN Gaming House | Feb 08, 2012 |
| Creating a vDSO: the Colonel's Other Chicken | Feb 06, 2012 |
| Your CMS Is Not Your Web Site | Feb 01, 2012 |
| Casper, the Friendly (and Persistent) Ghost | Jan 31, 2012 |
| Razor-qt 0.4 - Qt based Desktop Environment | Jan 30, 2012 |
- Fun with ethtool
- Parallel Programming with NVIDIA CUDA
- Readers' Choice Awards 2011
- 100% disappointed with the decision to go all digital.
- Linux-Based X Terminals with XDMCP
- Validate an E-Mail Address with PHP, the Right Way
- You Need A Budget
- Build Your Own Arcade Game Player and Relive the '80s!
- Why Python?
- Python for Android
- I use Wireshark on a daily
1 hour 56 min ago - buena información
7 hours 3 min ago - One important "bucket" that I didn't note (désolé si qqun deja d
8 hours 3 min ago - Gnome3 is such a POS. No one
17 hours 31 min ago - Gnome 3 is the biggest POS
17 hours 41 min ago - I didn't knew this thing by
23 hours 46 min ago - Author's reply
1 day 3 hours ago - Link to modlys
1 day 4 hours ago - I use YNAB because of the
1 day 4 hours ago - Search
1 day 9 hours ago





Comments
figures?
Where are the figures in this article??
Re: VoIPv6 on Linux with VOVIDA
As a small comment here, I would like to note that the SIP Express Router (see www.iptel.org/ser) has been IPv6 capable since the end of 2002. We also have provided IPv4-IPv6 translation over a NAT-PT since more than a year now. With both the server and translator we have also extended the widely used SIP user agent KPhone to support IPv6 (http://www.iptel.org/products/kphone/). Finally, the website of iptel.org is also IPv6 capable under (www.ipv6.iptel.org, 2001:638:806:2001:202:b3ff:fe38:c1cc). Under this site, you can register for a SIP account and conduct SIP calls in the public IPv6 network.
More information about the transition and integration of SIP and IPv6 are available are available in our paaper "SIP and IPv6: Why and how" which was published in January 2002 and is available under www.fokus.fhg.de/mobis/publ/Sisa0301:SIP.pdf
best regards