SIP Roaming
This section explains how to configure SIP roaming. SIP roaming lets subscribers move from one active SIP device to another (at the same site or multiple sites) and retain service at the last registering device.
Overview
The Oracle® Enterprise Session Border Controller supports multiple active registrations for the same user. The softswitch makes decisions regarding the current location of the user and the handling of requests from devices that are not currently identified as the user location. When there are multiple NATs, the Oracle® Enterprise Session Border Controller is still required to let the softswitch be able to differentiate it.
The Oracle® Enterprise Session Border Controller’s SIP roaming ability supports the following features:
- Multiple active registrations from the same user can be cached, allowing subscribers to move from one active SIP device to another (at the same site or multiple sites) and still retain service at the last registering device. With the SIP roaming feature, one person, using multiple devices, can be contacted at all of the devices. These multiple devices (with their unique contact information) register to indicate that they are available for anyone that wants to contact that one person.
- The Oracle® Enterprise Session Border Controller can also inform network devices (such as softswitches) of private SIP device IPv4 addresses (endpoints) and the public firewall address of the user location.
Process Overview
Caller 1 wants to contact Person A. Caller 1 sends a message to persona@acmepacket.com, but Person A has configured more than one SIP-enabled device to accept messages sent to that address. These devices have unique addresses of desk@10.0.0.4 and phone2@10.0.0.5. Person A has desk@10.0.0.4 and phone2@10.0.0.5 registered with the Oracle® Enterprise Session Border Controller for anything addressed to persona@acmepacket.com.
With the SIP roaming feature, the Oracle® Enterprise Session Border Controller accepts and stores both registrations for persona@acmepacket.com. That way, when someone wants to get in touch with Person A, the messages are sent to both devices (desk@10.0.0.4 and phone2@10.0.0.5) until Person A answers one of them. You do not need to configure your Oracle® Enterprise Session Border Controller for this functionality; your Oracle® Enterprise Session Border Controller automatically provides it.
Using Private IPv4 Addresses
In addition to supporting multiple registries, the Oracle® Enterprise Session Border Controller (E-SBC) can also distinguish user locations by their private IPv4 address and the IPv4 address of the public firewall. Using this information, the E-SBC adds private endpoint and public firewall information to Contact headers.
For example, entering this information causes a Contact header that formerly appeared as the following:
Contact:<sip:0274116202@63.67.143.217>
to subsequently appear as the following:
Contact:<sip:0274116202@63.67.143.217;ep=192.168.1.10;fw=10.1.10.21>
The E-SBC SIP proxy reads this information and populates the contact-endpoint and contact-firewall fields with the appropriate values.
Example 1 With a NAT Firewall
The Oracle® Enterprise Session Border Controller (E-SBC) SIP proxy is configured with the following changeable parameters:
- endpoint= IP address of the SIP UA
- useradd= IP address of the Firewall Public IP address or the source layer 3 IP address of Register message
- userport= IP address port number of the Firewall Public IP address or the source layer 3 IP address port of Register message
- E-SBC address=63.67.143.217
- firewall public address=10.1.10.21
- firewall public address port=10000
- SIP endpoint behind firewall=192.168.1.10
SIP message Contact header:
Contact:<sip:0274116202@63.67.143.217; endpoint=192.168.1.10; useradd=10.1.10.21; userport=10000; transport=udp>
Example 2 Without a NAT Firewall
The Oracle® Enterprise Session Border Controller SIP proxy is configured with the following changeable parameters:
- useradd= IP address of the SIP UA or the source layer 3 IP address of Register message
- userport= IP address port number of the SIP UA or the source layer 3 IP address port of Register message
- Oracle® Enterprise Session Border Controller address=63.67.143.217
- SIP endpoint=192.168.1.10
- SIP endpoint IP address port=5060
SIP message Contact header:
Contact:<sip:0274116202@63.67.143.217; useradd=192.168.1.10; userport=5060; transport=udp>
For SIP, the softswitch responsibility is that the URI SD put in the Contact of the REGISTER message should be reflected in the 200-OK response to the REGISTER request. The Contact header of the response should have an expires header parameter indicating the lifetime of the registration.
The following example shows a Oracle® Enterprise Session Border Controller Send:
Contact: <sep: 0274116202@63.67.143.217 endpoint=192.168.1.10; useradd=10.1.10.21; userport=10000>;
The following examples shows the softswitch Respond:
Contact: <sep: 0274116202@63.67.143.217 endpoint=192.168.1.10; useradd=10.1.10.21; userport=10000>; expires=360
The contact field for endpoint and firewall parameters only appear in the following:
- Contact header of a REGISTER request sent from the Oracle® Enterprise Session Border Controller to the softswitch server
- Contact header of a REGISTER response sent from the softwitch server to the Oracle® Enterprise Session Border Controller
- Request-URI of an initial INVITE sent from the UT CSA server to the Oracle® Enterprise Session Border Controller
An active endpoint is deleted when it does not register within the registration-interval setting or receives a 401 Unauthorized.
SIP Roaming Configuration
You can configure the SIP configuration’s options parameter to indicate that you want to use the private IP address of the SIP device that the user is using and/or the public firewall address that identifies the location of the device. If defined, these options will be added as parameters to all Contact headers.
You can identify the endpoint and/or firewall information using the following options:
- contact-endpoint=<value> where <value> is the endpoint address or label
- contact-firewall=<value> where <value> is the firewall address or label