This feature records registration requests in Cassandra to keep track of which site a user last registered at.
Feature cheat sheet
Feature Name | Network Operator Data | Used in PlanId(s) | Stateful or Stateless | POJO Feature or SBB Feature |
---|---|---|---|---|
IPSMGWRegistrationTrackingCassandra |
Yes |
register,de_register |
Stateless |
POJO |
Session Input variables
The feature reads the following fields in Session State
Session State variable name | Variable type | Comments |
---|---|---|
MSISDN |
String |
The MSISDN of the subscriber issuing the (de-)registration request. Used as part of the primary key in the registration record in Cassandra. |
networkInitiatedDeRegistration |
boolean |
Used to determine if a de-registration request was user or network initiated.
Network-initiated de-registration requests for users registered most recently at a different site will result is the |
encapsulatedRegisterResponse |
javax.sip.message.Response |
Used to extract the max expires header value for the TTL value when recording the registration record in Cassandra. |
ATMRegistrationSuccessful |
boolean |
Set by the ATM Registration feature to indicate if the ATM registration was successful or not. Used during registration to conditionally write an ownership record only if the ATM registration was successful. |
Session output variables
Session State variable name | Variable type | Comments |
---|---|---|
skipATMRegistration |
boolean |
True if the |
Statistics
IPSMGWRegistrationTrackingCassandra 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 → IPSMGWRegistrationTrackingCassandra
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.ipsmgw,vendor=OpenCloud,version=4.0.0].SbbID[name=sentinel.ipsmgw,vendor=OpenCloud,version=4.0.0].feature.IPSMGWRegistrationTrackingCassandra"
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. |
DataStoreError |
Counter |
Incremented when the feature is unable to write a registration record to Cassandra. |
DataStoreSuccess |
Counter |
Incremented when the feature successfully writes a registration record to Cassandra. |
DataReadError |
Counter |
Incremented when the feature is unable to read the registration records from Cassandra. |
WriteConsistencyFallback |
Counter |
Incremented when the feature falls back from QUORUM to LOCAL_QUORUM consistency for a write to Cassandra. |
ReadConsistencyFallback |
Counter |
Incremented when the feature falls back from QUORUM to LOCAL_QUORUM consistency for a read from Cassandra. |
MissingRegistrationRecord |
Counter |
Incremented when the feature is unable to find any registration record for the subscriber during a de-register request. |
ReadResponseLatency |
Sample |
Sample statistic of the RTT for Cassandra read requests. |
WriteResponseLatency |
Sample |
Sample statistic of the RTT for Cassandra write requests. |
Configuration
The feature’s configuration is scoped by the Sentinel Selection Key.
The Profile Table used to hold feature configuration is IPSMGWRegistrationTrackingCassandraConfigProfileTable
.
The following attributes are available:
Attributes | Type | Meaning |
---|---|---|
CassandraTTL |
int |
The base TTL to use for the registration record in Cassandra (the max expires header value will be added to this) |
CassandraTracing |
boolean |
Controls whether tracing is enabled for Cassandra queries |
Behaviour
The feature is triggered upon Initial Registration, and De-Registration.
On initial registration, if ATM registration was successful, this feature writes a registration record to Cassandra including the subscriber’s MSISDN, the site’s GT (the sentinelIPSMGWAddress
in the shared IPSMGW configuration), and the current timestamp.
When a user de-registers, the feature first checks the networkInitiatedDeRegistration
session state field.
If the de-registration is user-initiated, the feature completes and allows the de-registration to proceed.
If the de-registration is network-initiated, the feature reads the registration records in Cassandra for the subscriber (using their MSISDN), finds the one with the most recent timestamp, and compares the site GT in that record to the current site’s GT.
If the site GTs match, the feature completes and allows the de-registration to proceed.
If the site GTs are different (indicating that the subscriber most recently registered at a different site), then the feature sets the skipATMRegistration
session state field to true
so that the ATM de-registration is skipped.