2.3 Request Message Validation
The RBAR application processes the diameter request message based on the configuration, to extract the user identity addresses.
- Determine whether the Application ID in the message
header is defined in the configuration.
If a valid Application ID cannot be found, the message is not processed. An answer response with a Result code AVP for DIAMETER_APPLICATION_UNSUPPORTED is returned.
- If a valid (configured) Application ID is received in a
diameter request message, validate whether the pair (Application ID, command
code) received in the message is defined in the configuration.
If the pair cannot be found in the configuration, the appropriate routing exception handling procedure is invoked.
- If the pair is configured, search for a valid routing entity address in the message based on the highest priority routing entity type (Primary routing entity type in address resolution configuration) assigned to the pair.
- Search for a valid routing entity address in the
message based on a prioritized set of AVPs assigned to the triplet.
If a valid routing entity address cannot be found in searching the configured routing entity types assigned to the pair, the routing exception handling procedure is invoked that is assigned to the Application ID and this routing entity type.
Routing Exception Handling
When an ingress RBAR request message cannot be resolved to a destination (no address matched, no valid digits decoded, or any other error returns), RBAR invokes a routing exception handling procedure based on user-defined configuration.
Routing exception handling procedures result in one for the following configured actions:
- Forward the message unchanged
- Forward the message using a user-defined default destination
- Send answer response with a user-defined result-code AVP value and error message AVP
- Send answer response with user-defined experimental-code AVP values and error message AVP
- Abandon request (discard the ingress diameter request message)
The routing exceptions support the following:
- Unknown command code
- Valid address not found
- Valid address was found and did not match a configured address or address range
Supported AVPs
RBAR supports the AVPs associated with a user identity type (IMSI, MSISDN, IMPI, IMPU) as defined in Table 2-1.
Table 2-1 RBAR Supported AVPs
For a User Identity Type (IMSI, MSISDN, IMPI, IMPU) AVPs | Vendor ID and AVP Code | AVP Type | AVP Reference |
---|---|---|---|
User-Name |
Vendor-ID: none AVP code: 1 |
UTF8String | Section 8.14 of RFC 3588bis |
Service-Information
|
Vendor-ID: 10415 (3GPP) AVP code: 873 |
Grouped | Section 7.2.192 of 3GPP 32.299 |
Subscription-ID
|
Vendor-ID: none AVP code: 443 |
Grouped | Section 8.46 of RFC 4006 |
Subscription-ID-Data |
Vendor-ID: none AVP code: 444 |
UTF8String | Section 8.48 of RFC 4006 |
Public-Identity |
Vendor-ID: 10145 (3GPP) AVP code: 601 |
UTF8String | Section 6.3.2 of 3GPP 29.229 |
MSISDN |
Vendor-ID: 10415 (3GPP) AVP code: 701 |
OctetString | Section 6.3.2 of 3GPP 29.329 |
User-Identity:
|
Vendor-ID: 10415 (3GPP) AVP code: 700 |
Grouped | Section 6.3.1 of 3GPP 29.329 |
Public-Identity |
Vendor-ID: 10145 (3GPP) AVP code: 601 |
UTF8String | Section 6.3.2 of 3GPP 29.229 |
MSISDN |
Vendor-ID: 10415 (3GPP) AVP code: 701 |
OctetString | Section 6.3.2 of 3GPP 29.329 |
User-Identifier:
|
Vendor-ID: none AVP code: 3102 |
Grouped | Section 6.4.2 of 3GPP 29.336 |
User-Name |
Vendor-ID: none AVP code: 1 |
UTF8String | Section 8.14 of RFC 3588bis |
MSISDN |
Vendor-ID: 10415 (3GPP) AVP code: 701 |
OctetString | Section 6.3.2 of 3GPP 29.329 |
For a Routing Entity Type IPv4 Address | |||
Framed-IP-Address |
Vendor-ID: none AVP code: 8 |
OctetString | Section 6.11.1 of RFC 4005 |
For a Routing Entity Type IPv6 Prefix Address | |||
Framed-IPv6-Prefix |
Vendor-ID: none AVP code: 97 |
OctetString | Section 6.11.6 of RFC 4005 |
Each of the configured user identity types supported in RBAR is associated with certain AVPs that contain the user identity type as defined by various diameter application standards. Table 2-2 presents all possible combinations of the user identity types and the associated AVPs.
Table 2-2 Combinations of User Identity Types and Associated AVPs
User Identity Types/AVPs | IMSI | MSISDN | IMPI | IMPU |
---|---|---|---|---|
MSISDN | Applicable | Applicable | ||
User-Identity: MSISDN | Applicable | Applicable | ||
Public-Identity | Applicable | Applicable | Applicable | Applicable |
User-Identity: Public-Identity | Applicable | Applicable | Applicable | Applicable |
User-Name | Applicable | Applicable | Applicable | Applicable |
User-Identifier: User-Name | Applicable | Applicable | ||
User-Identifier: MSISDN | Applicable | Applicable | ||
Subscription-ID-Data (0-E.164) | Applicable | Applicable | ||
Service-Information:
|
Applicable | Applicable | ||
Subscription-ID-Data (1-IMSI) | Applicable | Applicable | ||
Service-Information:
|
Applicable | Applicable | ||
Subscription-ID-Data (2-SIP URI) | Applicable | Applicable | Applicable | Applicable |
Service-Information:
|
Applicable | Applicable | Applicable | Applicable |
Subscription-ID-Data (3-NAI) | Applicable | Applicable | Applicable | Applicable |
Service-Information:
|
Applicable | Applicable | Applicable | Applicable |
Subscription-ID-Data (4-Private) | Applicable | Applicable | Applicable | Applicable |
Service -Information:
|
Applicable | Applicable | Applicable | Applicable |
Wildcarded-Public-Identity | Applicable |
A user identity type can be associated with one or more data formats that is examined when deriving the user identity address from the associated AVPs. The relation between user identity types and the corresponding data formats to be encountered in the ingress diameter request message are listed in Table 2-3.
Table 2-3 Relation between Configured User Identity Types and Data Formats
Configurable User Identity Types/User Identity Formats in Messages | IMSI | MSISDN | IMPI | IMPU |
---|---|---|---|---|
IMSI
Format: ASCII Example: 311480123456789 |
Applicable | Applicable | ||
MSISDN
Format: ASCII and TBCD Example: 19194605500 |
Applicable | Applicable | ||
SIP URI with IMSI
Format: ASCII |
Applicable | Applicable | ||
Examples:
sip:123456789012345@nai.epc.mnc456.mcc123.3gppnetwork.org sip:6311150999995555@ims.mnc015.mcc311.3gppnetwork.org sip:311480999995555@my.network.org sip: 6311480999995555@my.network.org |
||||
SIP URI with MSISDN
Format: ASCII Examples: sip:+1-919-460-5500@xyz.com;user=phone sip:311480999995555@my.network.org |
Applicable | Applicable | ||
SIP URI with NAI
Format: ASCII Example: sip:311480999995555@my.network.org |
Applicable | Applicable | ||
TEL URI with MSISDN
FORMAT: ASCII |
Applicable | Applicable | ||
Examples:
tel:+1-919-460-5500; phone-context=example.com tel:+19258889999 tel:19195551212 |
||||
NAI with IMSI/MSISDN
Format: ASCII |
Applicable | Applicable | Applicable | Applicable |
Examples:
123456789012345@xyz.com 123456789012345 311480999995555@ims.mnc480.mcc311.3gppnetwork.org 6311150999995555@xyz.com 6311150999995555@ims.mnc015.mcc311.3gppnetwork.org |
||||
NAI
Format: ASCII Example: handy.manny@xyz.com |
Applicable | Applicable |
Routing Based on IMSI/MSISDN Prefix Lookup
If configured, RBAR performs prefix-based lookups after the full address lookup is performed. The prefix and range based lookup is only performed if the full address lookup does not find a match and can be enabled by the operator for a combination of Application ID, Command-Code, and Routing Entity type.
If a match is found in the prefix database, that RBAR application populates the Destination-Host AVP and/or the Destination-Realm AVP based on the resolved destination.
If a match is not found in the prefix database, then RBAR performs the no address match found routing exception handling procedure.
The IMSI/MSISDN prefix and range lookup can be enabled or disabled on a system wide basis.
Identifying IMSIs and MSISDNs
In certain diameter messages over the Cx interface (and possibly over the Sh interface), certain AVPs that typically carry an IMSI sometimes can carry an MSISDN.
Address resolution applications like Full Address Based Resolution (FABR) and Range Based Address Resolution (RBAR) need to categorize user Identities (digit strings) decoded from the diameter request AVPs as either MSISDN or IMSI, to allow looking up the user identity in the appropriate lookup table.
- The configured routing entity type
- The contents of the AVP
For instance, if the user identity has been decoded from a SIP URI that has a plus sign before the digits (such as sig:+1-919-460-5500@oracle.com), it can be directly categorized as an MSISDN.
- The number of digits in the user identity
In certain cases, none of these methods allow a clear categorization (for example, if the number of digits needs to be used and the received number of digits are applicable to both IMSIs and MSISDNs, and thus leads to an ambiguous determination; or if there is no plus sign before the digits).
If RBAR has been configured to decode an IMPU/MSISDN from a user identity (digit string), but cannot determine whether the user identity is an IMSI or an MSISDN based on digit analysis, a tie-breaker is needed to properly categorize the user identity.
- RBAR
extracts the first 5 or 6 digits of the user identity and compares them against
a list of configured 5- or 6-digit MCC-MNC combinations.
The
pages can be used to configure up to 2500 distinct combinations of Mobile Country Code (MCC) and Mobile Network Code (MNC). (Refer to the Diameter Common User's Guide and Help for procedures to configure MCC-MNC combinations.) - If a match occurs, the user identity is considered as an IMSI. RBAR bypasses the AVP, since RBAR does not support decoding an IMSI form a routing entity IMPU or MSISDN.
- If a match does not occur, the user identity is considered as a MSISDN and used for MSISDN lookup.
Figure 2-1 IMSI/MSISDN Overlap Range Scenario
