PortaSIP can correctly process calls that come to and from end points that are registered on IPv6 networks (e.g., from a user calling from an Apple mobile application). This enables you to provide services to users connected to either the IPv6 or IPv4 networks and permit them to communicate with each other, as well.
Since IPv6 hosts are not directly reachable by the IPv4 network and vice versa, technologies such as DNS64/NAT64 are used for interactions between networks.
This is how it works: When a IPv6-only user agent tries to reach a IPv4-only resource by their hostname, a DNS64 server creates a synthetic IPv6 address for the destination resource that the IPv6-only user agent is capable of addressing. NAT64 then translates this synthetic IPv6 address into an IPv4 address.
However, for SIP calls between IPv6-only and IPv4-only devices, not only the host address of the SIP server needs translation. A SIP message might contain IP addresses in various headers and therefore for the call to be correctly handled, they may also need to be translated.
Imagine that an end user’s softphone is connected to the IPv6 network. He calls a friend whose IP phone is connected to the IPv4 network and is registered with PortaSIP as a SIP server. PortaSIP operates within the IPv4 network. Let’s look at how to handle this call flow:
The softphone sends an INVITE request. The DNS64/NAT64 communication routes this INVITE outside the IPv6 network to PortaSIP. PortaSIP processes calls involving DNS64/NAT64 networks in the following way:
- The SIPProxy component checks the Via SIP header added by a previous user agent to define whether a call comes either to or from an IPv6 user agent via DNS64/NAT64 and checks the Route SIP header to define whether the call is destined for an IPv6 user agent.
- If IPv6 network involvement is detected, the SIPProxy modifies the Record-Route SIP header of the message by inserting its own transport in both IPv4 and synthetic IPv6 formats. This ensures correct signaling among PortaSIP and IPv6 user agents.
- Information about the network used is also inserted into the PortaSIP-Notify SIP header.
- When a media stream must be conveyed via a RTPProxy, the B2BUA component analyzes this header and inserts the IPv6 address into the c attribute of the SDP field.
This PortaSwitch feature helps service providers keep up with the ongoing slow but steady Internet transition to the IPv6 network. It also gives application developers an opportunity to use PortaSIP’s capabilities with their applications and publish them, too, on the biggest application markets.