This feature
parses P-Visited-Network-Identifier
(PVNI) and P-Access-Network-Info
(PANI) headers to extract the Mobile Country Code
(MCC) and Mobile Network Code
(MNC) values for the subscriber into session state fields.
This feature parses PVNI
and PANI
headers in the initial SIP request or Registration Records to extract MCC
and MNC
values to store in session state. The following features rely on the MCC
and MNC
data stored by this feature for use in Credit Control Requests (CCR), Call Detail Records (CDR) and Accounting Requests (ACR):
Description
Feature Script Name |
ExtractNetworkInfo |
---|---|
Call-Type |
Orig or Term |
Prerequisite features |
N/A |
Session Plan |
all |
Execution points |
For Sentinel Express: Post_SipAccess_SubscriberCheck, Post_SubscriptionSubscriberCheck, Post_SipTransaction_SubscriberCheck, Post_SipThirdPartyAccess_SubscriberCheck. For Sentinel VoLTE: Post_SipAccess_SessionCheck, Post_SubscriptionSessionCheck, Post_SipTransaction_SessionCheck. |
Network Operator Config |
Yes |
Subscriber Config |
No |
POJO or SBB |
POJO |
Feature FSMs |
None |
Feature Parameters |
None |
SAS Support |
Yes |
RA Entity Links |
None |
Session State Inputs and Outputs
Inputs
Name | Type | Purpose |
---|---|---|
PvniMccMnc |
com.opencloud.sentinel.common.MccMnc |
If set, the feature will not attempt to do |
PaniMccsMncs |
List<com.opencloud.sentinel.common.MccMnc> |
If set, the feature will not attempt to do |
IsoCountryCode |
String |
If set, the feature will not update the |
RegistrationRecords |
RegistrationRecord |
|
Outputs
Name | Type | Description |
---|---|---|
PvniMccMnc |
com.opencloud.sentinel.common.MccMnc |
The |
PaniMccsMncs |
List<com.opencloud.sentinel.common.MccMnc> |
A list of |
IsoCountryCode |
String |
The ISO Country Code found from the |
Behaviour
MCC and MNC
The ExtractNetworkInfo feature parses P-Access-Network-Info (PANI) and P-Visited-Network-Identifier (PVNI) headers found in the SIP trigger or Registration Records to determine the Mobile Country Code (MCC) and Mobile Network Code (MNC) for the subscriber. The following OpenCloud extension AVPs are used to communicate MCC and MNC information in CDRs and CCRs:
-
OC-ACCESS-NETWORK-MCC-MNC
-
OC-VISITED-NETWORK-MCC-MNC
-
OC-IMSI-NETWORK-MCC-MNC
Priority is given to any headers present in the SIP trigger, if they are able to be parsed. In Mobile Terminating cases OC-Term-P-Access-Network
and OC-Term-P-Visited-Network
headers added by SCC during reorigination are used if present. For any given header type, if it is missing or invalid in the SIP trigger, the feature will then check registration records. When an MNC cannot be determined, but the MCC was able to be extracted, a value of "000" will be used in place of the missing MNC.
For information on Sentinel AVP definitions, please refer to Sentinel AVPs in the Sentinel Administration guide.
ISO Country Code
The ExtractNetworkInfo feature parses P-Access-Network-Info (PANI) and P-Visited-Network-Identifier (PVNI) headers found in the SIP trigger or Registration Records to determine the ISO Country Code for the subscriber and populates the IsoCountryCode
session state field. The section below explains precedence:
Originating
-
Look for a
country
parameter in the trigger’s P-Access-Network-Info headers -
Look for an
MCC
in the trigger’s P-Access-Network-Info headers and find theISOCountryCode
for that MCC in the correspondingMobileCountryCodeInformation
profile -
Look for an
MCC
in the Cellular-Network-Info headers and find theISOCountryCode
for that MCC in the correspondingMobileCountryCodeInformation
profile -
Look for an
MCC
in the P-Cellular-Network-Info headers and find theISOCountryCode
for that MCC in the correspondingMobileCountryCodeInformation
profile -
Look for a
country
parameter in the registration data P-Access-Network-Info headers -
Look for an
MCC
in the registration P-Access-Network-Info headers and find theISOCountryCode
for the correspondingMobileCountryCodeInformation
profile
Terminating
-
Look for a
country
parameter in the registration data P-Access-Network-Info headers
If a country
parameter is not found in stored P-Access-Network-Info headers:
-
Look at available
MCC
information from the registration P-Visited-Network-Info header to determine if the subscriber is roaming -
Look at available
MCC
information from the registration P-Access-Network-Info headers to determine if the subscriber is roaming and determine the subscribers Access-Network type (WLAN, EUTRAN, or NR)
Store the ISOCountryCode
associated with the first available MCC
found in the subscriber’s P-Access-Network-Info headers
Statistics
ExtractNetworkInfo statistics are tracked by the sentinel.sip SBB
and can be found under the following parameter set in REM:
SLEE-Usage → sentinel.sip service → sentinel.sip SBB → feature → ExtractNetworkInfo
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.sip,vendor=OpenCloud,version=4.1].SbbID[name=sentinel.sip,vendor=OpenCloud,version=4.1].feature.ExtractNetworkInfo"
Name | Type | Description |
---|---|---|
Started |
Counter |
Incremented when the feature is triggered. |
FailedToStart |
Counter |
Incremented when the feature fails to start. |
FailedDuringExecution |
Counter |
Incremented when the feature fails while executing. |
IssuedWarning |
Counter |
Incremented when the feature issues a warning. |
TimedOut |
Counter |
Incremented when the feature times out during execution. |
AccessNetworkMccMncFoundInTrigger |
Counter |
Incremented when access network MCCs and MNCs are found in the triggering message. |
AccessNetworkMccMncFoundInRegistrationData |
Counter |
Incremented when access network MCCs and MNCs are found in registration data. |
CellularNetworkMccMncFoundInTrigger |
Counter |
Incremented when access network MCCs and MNCs are determined from a Cellular-Network header on the triggering message. |
UnableToDetermineAccessNetworkMccMnc |
Counter |
Incremented when access network MCCs and MNCs cannot be determined. |
VisitedNetworkMccMncFoundInRegistrationData |
Counter |
Incremented when the visited network MCC and MNC are found in registration data. |
VisitedNetworkMccMncFoundInTrigger |
Counter |
Incremented when the visited network MCC and MNC are found in trigger. |
UnableToDetermineVisitedNetworkMccMnc |
Counter |
Incremented when the visited network MCC and MNC cannot be determined. |
IsoCountryCodeFoundFromHeader |
Counter |
Incremented when an ISO country code is extracted directly from an access network info header. |
IsoCountryCodeFoundFromMccMnc |
Counter |
Incremented when an ISO country code is determined from an MCC and MNC value. |
IsoCountryCodeFoundFromHomeNetworkConfig |
Counter |
Incremented when an ISO country code is determined from home network configuration in Sentinel. |
UnableToDetermineAccessNetworkIsoCountryCode |
Counter |
Incremented when an ISO country code cannot be determined. |
Configuration
When parsing MNC’s from digit strings (such as an IMSI), the MobileCountryCodeInformation
profile table is used to determine whether the MNC is two or three digits.
The table maps an MCC to a list of that country’s MNC’s which are then compared against the digit string to determine length. At present, other fields are for administrative use only.
Parameter | Type | Description |
---|---|---|
MCC |
String |
The three digit Mobile Country Code each profile represents. |
MNCs |
String[] |
An ordered list of the two or three digit Mobile Network Codes for this MCC. |
Country |
String |
The name of the country the MCC belongs to (for documentation purposes only.) |
CountryDialCode |
String |
A digit string representing the actual dial code for this country. |
ISOCountryCode |
String[] |
An ordered list of two-character strings representing the ISOCountryCode - each entry corresponds to an MNC. Use "UNKNOWN" for missing values. |
Brands |
String[] |
An ordered list of brand names corresponding to each MNC. Use "UNKNOWN" for missing values. |
Operators |
String[] |
An ordered list of operator names corresponding to each MNC. Use "UKNOWN" for missing values. |
The ExtractNetworkInfo feature also relies on configuration from the SipSentinelConfigurationTable
. The data is scoped by selection key.
Parameter |
Type |
Description |
ISOCode |
String |
A two-character string representing the ISOCountryCode for the home network |
It also relies on the PLMN ID Analyser Component and its configuration to determine if an MCC is a home MCC.
An example MobileCountryCodeInformation
profile:
MCC: "530" Country: "New Zealand" ISOCountryCode: "nz" CountryDialCode: "64" MNCs: !array type: java.lang.String values: - "00" - "01" ... Brands: !array type: java.lang.String values: - "Telecom" - "Vodafone" ... Operators: !array type: java.lang.String values: - "Telecom New Zealand" - "Vodafone New Zealand" ...
The value at at a given index of each of the following array attributes corresponds to the value at the same index of any other:
-
MNC
(01) -
Brands
(Vodafone) -
Operators
(Vodafone New Zealand)
Configuration Profile Naming
Table Name | Description | Profile Naming |
---|---|---|
MobileCountryCodeInformation |
The Mobile Network Codes associated with a given Mobile Country Code. |
SentinelSelectionKey with three digit Mobile Country Code suffix (for example, |
The ExtractNetworkInfo feature also relies on configuration from the SipSentinelConfigurationTable
. The data is scoped by selection key.
Table Name | Description | Profile Naming |
---|---|---|
SipSentinelConfigurationTable |
SentinelSelectionKey (for example, |
Provisioning Interfaces
The feature is provisioned using the web interface.