The system follows the procedures of RFC 3263 for NAPTR/SRV to correctly identify the SIP communication address, IP Address and Port and Preferred Transport, of the SIP server.
If DNS NAPTR/SRV support is enabled in the routing profile, the outbound transport selection is based on the DNS NAPTR procedures.
NAPTR/SRV procedures are employed only for SIP dialog creating requests.
NAPTR procedures are used for determining the transport.
SRV procedures are used for determining the port and facilitating load balancing.
The SIP routing system uses the following logic to locate a SIP server:
If Next Hop Server field contains an FQDN, proceed to Step 2, or else proceed below as IP Address is specified.
The system selects the outbound transport based on the SIP Request-URI scheme selected for the call. By default the scheme is SIP, so the system selects the outbound transport as UDP.
The system enforces end-to-end SIP scheme in the Request-URI for the following call scenarios.
If SIP scheme is received in the Request-URI message of the incoming request and SBC is not responsible for the Request-URI.
If a call is originating from or terminating to a remote worker that is registered with SIP scheme.
For both scenarios, the system selects the outbound transport as TLS.
The system checks if port information is specified as part of the Next Hop Server field. If a port is not specified, the system uses a default port based on the transport selected as shown in the following table. If a port is specified, the system uses the configured port.
Transport |
Default Port |
TLS |
5061 |
TCP/UDP |
5060 |
The DNS procedures are now complete and a SIP server is located
The system performs the DNS NAPTR process to determine the SIP server transport.
If transport is not specified, NAPTR is enabled because the configuration is mutually exclusive. The system looks up a DNS NAPTR record for the FQDN to determine the preferred transport to the SIP server.
If no NAPTR records are found, the system proceeds with the best effort SRV lookup, assuming that an SRV record exists for the prefixed FQDN. The prefix for the SRV query is based on the SIP Request-URI scheme selected for the call. If SIP scheme is used, UDP SRV record lookup is performed with the _sip._udp prefix. If SIPS scheme is used, the TCP SRV record lookup is performed with the sips._tcp.
If NAPTR records are found, the system proceeds with the SRV lookup based on the NAPTR lookup result order and preference flags. The SRV record prefix selected is based on the current NAPTR transport selected.
Table 1: Transport protocol and SRV record prefixes
Transport |
SRV record prefixes |
TLS |
_sips._tcp
|
TCP |
_sip._tcp
|
UDP |
_sip._udp
|
The system selects the outbound transport and proceeds to Step 3.
If transport is specified, the system selects the outbound transport and then proceeds to Step 3.
The system performs the DNS SRV processing to locate the SIP server port.
If SRV is enabled, the system continues as follows:
If a port is not specified or DNS NAPTR is pending, the system proceeds with DNS SRV lookup for the resulting FQDN from NAPTR response. The system can also perform a DNS SRV lookup for the configured FQDN using the SRV prefixes.
If SRV lookup fails, the system selects the port based on the outbound transport as shown in Table 1 and proceeds to Step 4 assuming that there would be a DNS A record for the FQDN.
If SRV lookup is successful, the system proceeds with a DNS A record lookup on the FQDN returned as part of the SRV result. The system then continues to Step 4.
If SRV is disabled in the routing profile, the system selects the port based on the transport selected as listed in Table 1. The system continues with Step 4.
The system performs DNS A lookup on the resulting FQDN from the SRV response or the configured FQDN if NAPTR/SRV is not performed.
If DNS A lookup fails and NAPTR/SRV records exist that are yet to be processed, the system returns to NAPTR/SRV processing in Steps 2 and 3 until a DNS A lookup succeeds.
If the DNS A record lookups are complete, the system returns a DNS error to the SIP routing system. The SIP routing system takes down the call by rejecting the incoming SIP request with a SIP error response because the SIP server could not be located.
If DNS A record lookup succeeds, DNS procedures are complete and a SIP server is located. The system uses the selected transport, IP Address, and the port for finding a valid server configuration.
After the SIP server is located, the SIP routing system compares the IP address of the located SIP server with the following IP addresses:
If a match is found, the SIP routing system determines the server flow associated with the matched server configuration. The system continues with outbound call processing.