This feature generates a correlation IMSI when responding to a SRI request. It uses the Correlation Resource Adaptor to allocate an IMSI based on the MCC and MNC.
The generated correlation IMSI is saved in session state and saved in the cassandra database by Store Routing Info Cassandra feature for further inspection when delivering a Short Message.
For quick overview see Flows for SMS delivery.
Feature cheat sheet
Feature Name | Network Operator Data | Used in PlanId(s) | Stateful or Stateless | POJO Feature or SBB Feature |
---|---|---|---|---|
IPSMGWGenerateMTCorrelationId |
Yes |
SRI4SM |
Stateless |
POJO |
Behaviour
The feature is triggered by a SRI_SM response (Version 1, 2 or 3) from the HLR.
In the successful case, it extracts the MCC and MNC from the IMSI in the SRI_SM response.
Once the MCC and MNC are extracted,
PLMN ID Analyser Component is used to check that the PLMN ID (MCC + MNC) is configured as a home PLMN ID,
then the feature requests a correlation IMSI from the Correlation Resource Adaptor, providing the PLMN ID.
If the SRI_SM failed, it uses the FakeMCC
and FakeMNC
configured in the IPSMGWGenerateMTCorrelationIdConfigProfileTable
.
If the Correlation RA allocates an IMSI successfully, the feature checks if the correlation IMSI is already in use by querying the Cassandra database.
If the correlation IMSI is not in use, the feature stores the correlation IMSI into Session State and finishes execution.
If the correlation IMSI is in use, the feature requests another correlation IMSI from the Correlation RA. The process is retried up to MaxGenerationAttempts
number of times.
An SMSC may use a correlation IMSI for some period of time after the SRI-SM transaction completes. However the correlation IMSI will be returned to the pool after a configured time period. Therefore the "in-use" check is performed by this feature. See Store Routing Info Cassandra to understand when the correlation IMSI is erased from the database.
Configuration
The feature uses the IPSMGWGenerateMTCorrelationIdConfigProfileTable
and the SIP Sentinel Configuration for its configuration.
IPSMGWGenerateMTCorrelationIdConfigProfileTable
Profile field | Variable type | Description |
---|---|---|
MaxGenerationAttempts |
int |
Number of attempts to generate the correlation IMSI |
CassandraTracing |
Boolean |
If |
FakeMCC |
String |
The fake MCC to be used when generating a fake IMSI |
FakeMNC |
String |
The fake MNC to be used when generating a fake IMSI |
The correlation IMSI pool configuration is described on the Configuring a Correlation RA entity page.
Statistics
IPSMGWGenerateMTCorrelationId statistics are tracked by the sentinel.ipsmgw SBB
and can be found under the following parameter set in REM:
SLEE-Usage → sentinel.ipsmgw service → sentinel.ipsmgw SBB → feature → IPSMGWGenerateMTCorrelationId
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.ipsmgw,vendor=OpenCloud,version=3.1.0].SbbID[name=sentinel.ipsmgw,vendor=OpenCloud,version=3.1.0].feature.IPSMGWGenerateMTCorrelationId"
Statistic | Incremented when… |
---|---|
FoundIMSI |
could retrieve the IMSI from the SRI-SM response message |
FoundMtCorrelationId |
could generate a correlation IMSI from correlation RA |
MtCorrelationIdInUse |
the generated IMSI is already in use |
MtCorrelationIdValid |
the generated IMSI is available (not in use) and set in session state |
ErrorGeneratingMtCorrelationId |
fatal exception is raised |
Retries |
the number of attempts required to allocate a non in-use correlation IMSI, values greater than 1 a retry was needed |