COPS: CLF

A Connectivity Location Function (CLF) maintains mappings between endpoints with dynamically assigned IP addresses and their physical location. The Oracle Communications Session Border Controller , acting as a P-CSCF, is the intermediary device between a registering endpoint and a CLF. The CLF thus validates and tags a registering endpoint, and the Oracle Communications Session Border Controller applies the CLF's actions. The Oracle Communications Session Border Controller and the CLF maintain a connection with each other using the COPS protocol.

CLF Behavior

The Oracle Communications Session Border Controller and a CLF only interact when an endpoint registers or re-registers. The Oracle Communications Session Border Controller, acting as the P-CSCF, is the first SIP device that the REGISTER message reaches. Upon receiving the REGISTER message(1), the Oracle Communications Session Border Controller queries the CLF using the COPS protocol. The endpoint's (public) IP address and port, and the Oracle Communications Session Border Controller 's IP information are sent to the CLF in a COPS REQ message(2).

The CLF responds to the Oracle Communications Session Border Controller with an Approve or Reject COPS DEC message(3). If the request is approved, then the CLF also sends a location-string value to be inserted in one of the SIP headers. The Oracle Communications Session Border Controller inserts a P-Access-Network-Info header containing the location-string into the incoming REGISTER message and forwards this message(4) to the SIP registrar/I/S-CSCF.

The Endpoint Registering to Registrar diagram is described above.

The Oracle Communications Session Border Controller will insert this P-Access-Network-Info header into all subsequent SIP messages from this endpoint as they are forwarded into the core network. The P-Access-Network-Info header is inserted into all SIP requests and responses except for ACK and CANCEL messages. For all boundaries where SIP messages pass from trusted to untrusted SIP interfaces or session agents, the Oracle Communications Session Border Controller will strip out the P-Access-Network-Info header as expected.

If the CLF responds with a Reject DEC message, the Oracle Communications Session Border Controller rejects the registration, and sends a 503 - Service Unavailable message back to the registering endpoint. In this way, the CLF can be used for admission control.

The Oracle Communications Session Border Controller communicates with the CLF solely for retrieving location information from the CLF, and not for notifying the CLF about an endpoint's registration state or activity. When an endpoint's registration ends, either through a normal expiration, getting rejected by the registrar, or through specific de-registering or error conditions, the Oracle Communications Session Border Controller deletes the locally cached registration location string. The Oracle Communications Session Border Controller does not update the CLF about any registrations that have been deleted.

P-Access-Network-Info Header Handling

The P-Access-Network-Info header is created and populated according to the following rules:

  • If the CLF returns an Accept DEC message and a location string, the Oracle Communications Session Border Controller inserts the location string into a P-Access-Network-Info header in the outgoing REGISTER message.

  • If the CLF returns an Accept DEC message without a location string, the Oracle Communications Session Border Controller inserts the configured default string into a P-Access-Network-Info header in the outgoing REGISTER message.

  • If the CLF returns an Accept DEC message without a location string and no location string is configured on Oracle Communications Session Border Controller , the outgoing REGISTER message is forwarded out of the Oracle Communications Session Border Controller , but no P-Access-Network-Info header is created for the REGISTER message.

CLF Re-registration

The Oracle Communications Session Border Controller will send a new REQ message to the CLF to request a new location string if any of the following events occur:

  • The endpoint's contact address changes.

  • The SIP Register message's Call-ID header changes.

  • The endpoint's public IP Address or UDP port changes.

  • The endpoint connects to a different SIP interface, port, or realm on the Oracle Communications Session Border Controller than it did in the initial REGISTER message.

  • The registration expires in the Oracle Communications Session Border Controller 's registration cache.

CLF Failures

If a COPS connection fails, the Oracle Communications Session Border Controller will continually try to re-establish the connection. Endpoints that are already registered will stay registered unless they timeout or if the registrar rejects their refreshes. When the COPS connection has not been established, and an endpoint registers on a SIP interface that is configured to use CLF, the Oracle Communications Session Border Controller forwards new REGISTER messages to the registrar using the default location string.

CLF Emergency Call Handling

The Oracle Communications Session Border Controller allows emergency calls into the network even if the endpoint that places the emergency call is not registered. In the expected fashion, the Oracle Communications Session Border Controller will query the CLF first for an incoming emergency call sourced from an unregistered endpoint. If the CLF response is successful, then the Oracle Communications Session Border Controller will insert the string returned from the CLF into a P-Access-Network-Info header, and insert this header into the emergency call's REGISTER message. If no location string is returned with a successful CLF response, the default location string is inserted into P-Access-Network-Info header.

If the CLF's response is to reject the emergency call, the Oracle Communications Session Border Controller will insert the configured default location string into the P-Access-Network-Info header and forward the emergency call's REGISTER message toward the registrar. For emergency calls where the endpoint has already successfully registered, the call will be routed into the network using the expected methods for emergency call routing.

Depicts CLF deployment components supporting emergency calls.

If the COPS connection to the CLF is down, emergency calls from un-registered endpoints are still allowed into the network using the default string inserted into the emergency messages.

HA Functionality

The location strings generated by the CLF are replicated on the standby Oracle Communications Session Border Controller in an HA pair. This is required so that a Oracle Communications Session Border Controller in an HA pair can instantly continue processing calls using the previously learned CLF information.

CLF Debugging

A new argument has been added to the show command for viewing CLF statistics. From the user prompt, type show <space> ext-clf-svr <return>.

ORACLE# show ext-clf-svr
14:17:14-114
EBM Status                 -- Period -- -------- Lifetime --------
                 Active    High   Total      Total  PerMax    High
Client Trans          0       0       0          0       0       0
Server Trans          0       0       0          0       0       0
Sockets               0       0       0          0       0       0
Connections           0       0       0          0       0       0
                           ---- Lifetime ----
                    Recent      Total  PerMax
CLF Requests             0          0       0
CLF Admits               0          0       0
CLF Errors               0          0       0
CLF Rejects              0          0       0
CLF Expires              0          0       0
CLFD Errors              0          0       0

Retrieve CLF statistics in the log.embd file.