Changing the Precedence for Handling orig and verstat Values
By default, the ESBC uses incoming PAI headers as a vehicle to retrieve information, create an orig value and to convey verstat values. If PAI headers are not present or sufficient, the system uses incoming FROM headers for these purposes. Some regions, however, require that the FROM header be the first source of this information. To accommodate these deployments, you can configure the ESBC to use the FROM as the primary caller id source for information used to determine a SHAKEN orig claim and the verstat value. This behavior is applicable to both ATIS and 3GPP based implementations.
The ESBC refers to the URIs in PAI and FROM headers for the presence of telephone numbers (TNs) as identifying information during authentication and verification procedures:
- To support authentication, when the ESBC receives an out-of-dialog INVITE with no identification header or verstat value, it searches for an appropriate TN in the request and, if it finds one, creates an 'orig' key and initiates a signing request.
- To support verification procedures, meaning the initial request did have
an identity header, the ESBC :
- Searches for an appropriate TN in the request and, if it finds one, creates an 'orig' key and initiates a verification request.
- Obtains verification and populates the header from which it selects TNs with verstat values indicating verification success or failure.
The presence of multiple TNs as well as URIs that are not TNs in the initial request adds some complexity with respect to the use of the information and the population of the verstat result. In addition to changing the preferred source of TNs, this feature also results in the TN URI and SIP URI parsing and selection behaviors covered below.
You can enable this functionality on a global basis using the flip-tn-lookup-order parameter within the sti-config. The default is disabled.
ORACLE(sti-config)#flip-tn-lookup-order enabled
If preferred, you can enable this functionality on a per-server basis by enabling the flip-tn-lookup-order value as an option within the sti-server.
ORACLE(sti-server)#options +flip-tn-lookup-order=enabled
The sti-server option setting, when enabled, takes precedence over the global configuration. This allows you to, for example, use the default behavior across the device, while preferring the FROM header for the STI servers that you configure with the option.
When enabled, the ESBC changes behaviors to the following:
- Prioritizes the selection of URIs in FROM headers to populate the “orig” shaken passport claim.
- Prioritizes the selection of URIs in FROM headers for population of the “verstat” received from Verification Server.
- Applies precedence to any sti-server option setting over the global setting.
When you enable the feature, detailed ESBC authentication behavior includes checking the URI in the FROM and PAI headers for the presence of a TNs and creating an orig key using that TN. Regardless of the TN selection, the ESBC always performs the signing request, and continues to process the call:
- If a TN is present in the FROM, the ESBC uses that TN to create the "orig" key.
- If there is no TN in the FROM, and there is a tel PAI, the ESBC uses the tel PAI to create the "orig" key.
- If there is no TN in the FROM, there is no tel PAI and there is a SIP PAI, the ESBC uses the SIP PAI to create the "orig" key.
- If there is no TN in any header, the ESBC does not send a validation request to the STI servers and sets the verstat to No-TN-Validation in the FROM and PAI headers.
Detailed ESBC verification behavior also begins with checks for the presence of TNs. Regardless of the TN selection, the ESBC performs the same procedure for selecting a TN and creating an "orig" key it performs for authentication, initiates the verification request, and continues processing the call. Results of the TN check includes:
- If there is a TN in the FROM, the ESBC applies the verstat to the FROM header.
- If there is a TN in the FROM, and there is a PAI header with a TN (either SIP or Tel PAI), where the values of the TNs match, the ESBC adds the verstat parameter to both the From and PAI headers.
- If there is not a TN in the From, and there is a PAI header with a TN (either SIP or Tel PAI), the ESBC adds the verstat parameter to the PAI header.
Additional verstat population behavior when there are multiple PAI headers includes:
- If there is a TN in the From, and two PAI headers:
- Tel URI and SIP URI with matching TNs, the system adds the verstat to all headers.
- One PAI matches and the other does not, the system adds the verstat to the From and the matching PAI.
- Neither PAI has a TN, the system adds the verstat to the From only.
- If there is not a TN in the From, but there are Tel and SIP PAIs that
have TNs, the system adds the verstat to the Tel PAI.
The system also compares the Tel PAI TN with the SIP PAI. If the TNs match, the system also adds the verstat to the SIP PAI.
- If there is a From Header with no TN, and the PAI headers also have no TNs, the system adds the verstat to all headers.