SIP IMS P-CSCF S-CSCF Target Caching and Invalidation

In IMS architectures, the Oracle Communications Session Border Controller can form these roles:

  • An access session border controller, acting as the media front end to a third-party proxy CSCF (P-CSCF)
  • Combined access session border controller and P-CSCF

In both, the Oracle Communications Session Border Controller needs to resolve the next-hop signaling element with DNS using these methods: NAPTR resource record, DNS SRV, and DNS address query (A-query).

In addition to this use of DNS, the Oracle Communications Session Border Controller can also now be configured to use DNS for the purposes of load balancing toward the core network elements and resiliently tracking failures. Using DNS for core load balancing simplifies initial provisioning and support more graceful failover when upstream elements fall out of service. Although the DNS-based service route can appear active despite an IP address having failed, the Oracle Communications Session Border Controller provides mechanisms to learn targets and their subsequent invalidation via DNS.

You use session agents to set much of the Oracle Communications Session Border Controller’s behavior for S-CSCF target caching and invalidation. The following table describes special ways or change to session agent configuration you must make in order to achieve the desired Oracle Communications Session Border Controller behavior.

Behavior Configuration
You can configure the SBC to resolve the P-CSCF for a registering UE using a DNS NAPTR query. Set the applicable session agent’s port to 0 and its transport-method to ANY.
You can configure the system to resolve the P-CSCF for a registering UE using a DNS SRV query. Set the applicable session agent’s port to 0 and its transport-method to a value other than ANY.
You can configure the system to resolve the P-CSCF for a registering UE using a DNS A-query. Set the applicable session agent’s port to value greater than 0.
When you have configured the SBC to resolve the P-CSCF for a registering UE using a DNS NAPTR query, you can establish the way it learns the next hop that will handle the UE’s signaling. If multiple NAPTR RRs result or if the order values is the same, the one with the lowest order value becomes the target for registration. If there is no in-service destination available, the NAPTR RR with lowest preference of the remaining options becomes the target. No special configuration is required.
When you can configure the Oracle Communications Session Border Controller to resolve the P-CSCF for a registering UE using a DNS SRV query, you can establish the way it learns the next hop that will handle the UE’s signaling. If the SRV target is an FQDN host that resolves to multiple A RRs, the Oracle Communications Session Border Controller either selects a single A RR by hunting or round robins across multiple A RRs. To support the round-robin method, you can set the applicable session agent’s load-balance-dns-query to round robin. Or, you can leave that parameter set to hunt (its default).

Note that the round robin method does not work then the session agent has the dns-load-balance option configured. That option distributed requests to IP address resolved from SRV responses with the same weight and priority.

Note that if the ping is enable for the session agent and load-balance-dns-query is set to round robin, the Oracle Communications Session Border Controller pings all the IP addresses resolved from the DNS query.

Acting as a B2BUA Front End to Third-Party P-CSCF

This section describes the support DNS load balancing provides for an Oracle Communications Session Border Controller acting as a B2BUA front end to a third-party P-CSCF.

NAPTR

The Oracle Communications Session Border Controller performs resolution of the P-CSCF for a registering UE using a DNS NAPTR query. This happens when a session agent is defined with its port set to 0 and its transport method set either to any or *, or when there is no session agent defined. When no session agent is defined, the system performs the NAPTR query according to the registering UE’s URI domain. And if no transport method is defined for the session agent, the default query type is DNS NAPTR. Note that the configuration of how to resolve the P-CSCF is defined for a specific session agent.

When it receives a UE’S initial registration message, the system performs an NAPTR DNS query for the next hop that will handle the UE’s signalling. The Oracle Communications Session Border Controller selects the NAPTR resource record (RR) with the lowest order value as the target for the registration when multiple RRs are returned. If the order value is the same, the system uses the lowest preference RR AS THE target. And if no in-service destination is available, the system selects the RR with the lowest preference from the remaining RRS as the target registration.

DNS SRV

The Oracle Communications Session Border Controller performs resolution of the P-CSCF for a registering UE, starting with a DNS SRV query for a session agent with its port set to 0 and transport method given a setting other than any or *. Note the system provides this support with DNS SRV-based session agents.

When it receives a UE’S initial registration message, the Oracle Communications Session Border Controller performs a DNS SRV query for the next hop target that will handle the UE’s signalling. If the SRV target is an FQDN host that then resolves to multiple A RRs, the system then:

  • Selects a single A RR through hunting if the load-balance-dns-query parameter is set to hunt (i.e., the first of several A RRs will always be selected unless it goes out of service)
  • Round-robins across multiple A RRs for a given SRV target (if the load-balance-dns-query parameter is set to round-robin)

By default, the system hunts for and selects a single A RR. If the dns-load-balance option is configured, then round-robin will not work. This option distributes the requests to IP addresses that are resolved from SRV responses with the same weight and priority. Also, if you enable the session agent ping and set the load-balance-dns-query to round-robin, then all IP addresses resolved through the DNS query will be pinged.

Note that when no session agent exists, standard SRV ordering and A record hunting are used.

DNS

The Oracle Communications Session Border Controller generates a DNS query to resolve the P-CSCF for a registering UE if the session is with a port greater than zero (0).

Acting as a P-CSCF

This section describes the support DNS load balancing provides for an Oracle Communications Session Border Controller acting as a P-CSCF.

For each UE registering through the system as a P-CSCF and using any of the three defined methods, the top service route resolved for the UE using DNS is used for subsequent refreshed and INVITE messages without querying DNS or using any selection method. DNS is used in these instances:

  • The DNS result TTL expires and the new results are different or changed.
  • The cached target associated with the UE is out of service.

For SIP messages the UE initiates other than a REGISTER, the system routes the messages according to the top service route. The DNS-resolved target is used for such messaging.

NAPTR

The Oracle Communications Session Border Controller performs resolution of the I-CSCF for a registering UE with an NAPTR query for a session agent with its port set to 0 and transport method given a setting other than any or *. When no session agent is defined, the system performs the NAPTR query according to the registering UE’s URI domain. And if no transport method is defined for the session agent, the default query type is DNS NAPTR. Note that the configuration of how to resolve the P-CSCF is defined for a specific session agent.

When it receives a UE’S initial registration message, the Oracle Communications Session Border Controller performs an NAPTR DNS query for the next hop that will handle the UE’s signalling. The system selects the NAPTR resource record (RR) with the lowest order value as the target for the registration when multiple RRs are returned. If the order value is the same, the system uses the lowest preference RR AS THE target. And if no in-service destination is available, the system selects the RR with the lowest preference from the remaining RRS as the target registration.

DNS SRV

The Oracle Communications Session Border Controller performs resolution of the I-CSCF for a registering UE, starting with a DNS SRV query for a session agent with its port set to 0 and transport method given a setting other than any or * or *. Note that the system provides this support with DNS SRV-based session agents.

When it receives a UE’S initial registration message, the system performs a DNS SRV query for the next hop target that will handle the UE’s signaling. If the SRV target is an FQDN host that then resolves to multiple A RRs, the Oracle Communications Session Border Controller then:

  • Selects a single A RR through hunting if the load-balance-dns-query parameter is set to hunt (i.e., the first of several A RRs will always be selected unless it goes out of service)
  • Round-robins across multiple A RRs for a given SRV target (if the load-balance-dns-query parameter is set to round-robin)

By default, the system hunts for and selects a single A RR. If the dns-load-balance option is configured, then round-robin will not work. This option distributes the requests to IP addresses that are resolved from SRV responses with the same weight and priority. Also, if you enable the session agent ping and set the load-balance-dns-query to round-robin, then all IP addresses resolved through the DNS query will be pinged.

Note that when no session agent exists, standard SRV ordering and A record hunting are used.

DNS

The system generates a DNS query to resolve the I-CSCF for a registering UE if the session is with a port greater than zero (0).

S-CSCF Configuration

To set the port, transport-method, and load-balance-query parameters for a session agent:

  1. In Superuser mode, type configure terminal and press Enter.
    ORACLE# configure terminal
  2. Type and session-router press Enter.
    ORACLE(configure)# session-router
  3. Type session-agent and press Enter. If you are editing a pre-existing configuration, you need to select the configuration before making changes.
    ORACLE((session-router)# session-agent
    ORACLE((session-agent)#
  4. port—Change this parameter to the port value you want, or leave it set to 5060 (default).
  5. transport-method—Leave this parameter set to UDP (default) or enter ANY to support all transport methods.
  6. load-balance-dns-query—To perform load balancing across multiple A RRs, change this value from hunt (default) to round-robin.
  7. Save and activate your configuration.