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 time to live timer in seconds

CassandraTracing

boolean

If true enables the cassandra tracing

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':

  1. '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.

  2. '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.

Previous page Next page
Sentinel IP-SM-GW Version 2.7.0