This feature retrieves Circuit Switched routing information from the Cassandra Database and stores it into session state.
Feature cheat sheet
Feature Name | Network Operator Data | Used in PlanId(s) | Stateful or Stateless | POJO Feature or SBB Feature |
---|---|---|---|---|
IPSMGWFetchRoutingInfoCassandra |
Yes |
MTFSM_PS,MTFSM_CS,MTFSM_PS_CS,MTFSM_CS_PS |
Stateless |
POJO |
Session Input variables
The feature reads the following fields in Session State
Session State variable name | Variable type | Comments |
---|---|---|
MTFSMDeliveryOrder |
com.opencloud.sentinel.ipsmgw.shared.config.profile.DeliveryOrder |
One of |
Session output variables
The IPSMGWFetchRoutingInfoCassandra feature populates the following fields in the Session State
Session State variable name | Variable type | Comments |
---|---|---|
MSISDN |
String |
The MSISDN |
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 |
MAPSendRoutingInfoForSMArg |
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 |
MAPSendRoutingInfoForSMRes |
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 |
CorrelatedMTFSM |
boolean |
Set to true if the lookup from Cassandra returned a matching row. |
MTFSMDeliveryOrder |
DeliveryOrder |
Set to PS_ONLY when no CS routing info was present in cassandra row |
SentinelSelectionKey |
SentinelSelectionKey |
Plan Id field will be set to MTFSM_PS when no CS routing info was present in cassandra row |
Statistics
IPSMGWFetchRoutingInfoCassandra 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 → IPSMGWFetchRoutingInfoCassandra
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.ipsmgw,vendor=OpenCloud,version=2.9.0].SbbID[name=sentinel.ipsmgw,vendor=OpenCloud,version=2.9.0].feature.IPSMGWFetchRoutingInfoCassandra"
Name | Description |
---|---|
FetchRoutingInfoSuccess |
Incremented when a matching record is returned from Cassandra |
FetchRoutingInfoFailure |
Incremented when a matching record is not returned from Cassandra |
Configuration
The feature uses the IPSMGWRoutingInfoCassandraConfigProfileTable
profile to configure whether tracing is enabled for Cassandra queries.
Behaviour
The feature is triggered on MAP MT Forward Short Message (MT-FSM) requests. The IMSI in the MT-FSM is used as the 'mtcorrelationid' primary key field when querying Cassandra. The contents of the query result are written into session state, and used to facilitate delivery of the SMS.
If a row is not found, an UnidentifiedSubscriber error is returned to the SMSC and the feature ends.
If a row is found, the Store Routing Info Cassandra feature has written all available CS routing data to Cassandra using the schema detailed here.
If the row includes circuit switched routing information for SMS (i.e. the SRI request and response), the feature ends.
If the row does not include CS routing info or the any of the CS routing info fields such as the arg or the res could not be decoded, but PS is one of the options in the current MTFSMDeliveryOrder session state field, the plan Id in the selection key is set to MTFSM_PS and the MTFSMDeliveryOrder is set to PS_ONLY
- otherwise an unidentifiedSubscriber error is sent in response to the MT-FSM.