This feature stores SMS Routing information retrieved from an HLR in Cassandra. The stored data includes additional correlation information.
Feature cheat sheet
Feature Name | Network Operator Data | Used in PlanId(s) | Stateful or Stateless | POJO Feature or SBB Feature |
---|---|---|---|---|
IPSMGWStoreRoutingInfoCassandra |
Yes |
SRI4SM,MTFSM_PS,MTFSM_CS,MTFSM_CS_PS,MTFSM_PS_CS |
Stateless |
POJO |
Parameters
This feature can operate with two parameters - 'Store' or 'Refresh'. For details, please refer to Behaviour
Session output variables
The IPSMGWStoreRoutingInfoCassandra feature populates the following fields in Session State
Session State variable name | Variable type | Comments |
---|---|---|
MSISDN |
String |
Populated when processing a SRI4SM |
The feature populates reads the following fields from Session State when refreshing data
Session State variable name | Variable type | Comments |
---|---|---|
IMSI |
String |
The MT Correlation ID/IMSI used as the key for the row |
SRI4SMArgV1 |
MAPSendRoutingInfoForSMArg |
The encoded java object representing v1 SRI4SM arg, if the application context was v1 |
SRI4SMArgV2 |
MAPRoutingInfoForSM_Arg |
The encoded java object representing v2 SRI4SM arg, if the application context was v2 |
SRI4SMArgV3 |
MAPRoutingInfoForSM_Arg |
The encoded java object representing v3 SRI4SM arg, if the application context was v3 |
SRI4SMResV1 |
MAPSendRoutingInfoForSMRes |
The encoded java object representing v1 SRI4SM result, if the application context was v1 |
SRI4SMResV2 |
MAPRoutingInfoForSM_Res |
The encoded java object representing v2 SRI4SM result, if the application context was v2 |
SRI4SMResV3 |
MAPRoutingInfoForSM_Res |
The encoded java object representing v3 SRI4SM result, if the application context was v3 |
SRI4SMResAppContext |
String |
A string of the application context name |
Statistics
IPSMGWStoreRoutingInfoCassandra 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 → IPSMGWStoreRoutingInfoCassandra
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.ipsmgw,vendor=OpenCloud,version=2.7.0].SbbID[name=sentinel.ipsmgw,vendor=OpenCloud,version=2.7.0].feature.IPSMGWStoreRoutingInfoCassandra"
Name | Description |
---|---|
StartedStore |
Incremented when the feature is triggered with a mode of 'Store' |
StartedRefresh |
Incremented when the feature is triggered with a mode of 'Refresh' |
TriggerOpenRequest |
Incremented when the feature is triggered on a DialogOpenRequestTcapMessage |
TriggerTCOperation |
Incremented when the feature is triggered on a TCOperationTcapMessage |
TriggerTCEnd |
Incremented when the feature is triggered on a TCEnd message |
TriggerSipResponse |
Incremented when the feature is triggered on a SIP Response |
ParsingSendRoutingInfoForSMArgV1 |
Incremented when the feature attempts to parse a MAP v1 MAPSendRoutingInfoForSMArg |
ParsingSendRoutingInfoForSMArgV2 |
Incremented when the feature attempts to parse a MAP v2 MAPRoutingInfoForSM_Arg |
ParsingSendRoutingInfoForSMArgV3 |
Incremented when the feature attempts to parse a MAP v3 MAPRoutingInfoForSM_Arg |
ParsingSendRoutingInfoForSMResV1 |
Incremented when the feature attempts to parse a MAP v1 MAPSendRoutingInfoForSMRes |
ParsingSendRoutingInfoForSMResV2 |
Incremented when the feature attempts to parse a MAP v2 MAPRoutingInfoForSM_Res |
ParsingSendRoutingInfoForSMResV3 |
Incremented when the feature attempts to parse a MAP v3 MAPRoutingInfoForSM_Res |
RefreshingData |
Incremented when the feature refreshes data |
RefreshingRefreshingDataSkippedDueErrorMessage |
Incremented when the feature skips refreshing the data due to receiving an error message |
DataStoreError |
Incremented when data is not successfully stored to Cassandra |
DataStoreSuccess |
Incremented when data is successfully stored in Cassandra |
Configuration
The feature uses the IPSMGWRoutingInfoCassandraConfigProfileTable
profile to configure the Cassandra attribute time-to-live (TTL), and whether tracing is enabled for Cassandra queries.
The following attributes are used:
Attributes | Type | Meaning |
---|---|---|
CassandraTTL |
int |
Cassandra’s |
CassandraTracing |
boolean |
If |
Behaviour
The feature stores the CS Routing Information for SMS into the Cassandra Database using the schema detailed here. This includes the SRI for SM request and response content.
It can operate in two modes - 'Store' or 'Refresh':
-
'Store' mode is triggered on incoming SRI for SM Requests and responses. On a request it will extract the MSISDN from the request and store it in session state. On successful SRI response it encodes the SRI response and associated request, and writes them into the Cassandra DB using the IMSI read from session state, rather than from the message itself. It is important that the IMSI is read from session state, so that a MT Correlation ID can be used, rather than the true IMSI. The true IMSI is written as part of correlation data. When the feature is triggered by an SRI for SM error result, it will write an empty row to the Cassandra DB using just the MT Correlation IMSI as primary key and the MSISDN. If the write is successful, it will replace the proxied error with a success response including the correlation IMSI. When this empty row is read by FetchRoutingInfo during MT-FSM handling, it indicates that CS delivery is not possible, but PS delivery may be an option. The row is stored with a configurable TTL, so no manual cleanup process is required.
-
'Refresh' mode is triggered on indication of successful delivery of an SMS message (either via SIP encapsulated SMS over IP, or via a MAP MT Forward SM ACK). The successful delivery of an SMS indicates that the routing info remains valid and should not time out, so it is refreshed in Cassandra. This ensures that a batch of SMS for the same IMSI within the Time To Live period are correlated together. The feature uses the fields stored in session state by the IPSMGWFetchRoutingInfoCassandra feature and re-stores them in Cassandra.
When storing or refreshing data in Cassandra the primary key is formatted as an IMSI, and the value of the primary key is read from Session State. If suitable primary key information is not available (for example the Generate MT Correlation Id feature was unable to allocate a correlation IMSI), or there is a failure to write the routing information into Cassandra, an error response to the SRI-SM is sent.
A related feature is the Fetch Routing Info Cassandra.