This feature sets values for the Feature-Caps header on outgoing messages based on data from the session’s FeatureCapsManager
Feature cheat sheet
| B2BUA Instance | SAS Support | Originating / Terminating | Point in Session Plan | Network Operator Data | Subscriber Data | Stateful or Stateless | POJO Feature or SBB Feature |
|---|---|---|---|---|---|---|---|
SCC |
No |
Originating and Terminating |
|
No |
No |
Stateless |
POJO |
Session input variables
| Session State variable name | Variable type | Comments |
|---|---|---|
FeatureCapsManager |
FeatureCapsManager |
Contains information about which Feature-Caps header values should be applied to outgoing messages on each SIP leg |
Statistics
FeatureCapsManagement statistics are tracked by the sentinel.volte.sip SBB
and can be found under the following parameter set in REM:
SLEE-Usage → sentinel.volte.sip service → sentinel.volte.sip SBB → feature → FeatureCapsManagement
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.volte.sip,vendor=OpenCloud,version=2.8.0].SbbID[name=sentinel.volte.sip,vendor=OpenCloud,version=2.8.0].feature.FeatureCapsManagement"
| Name | Description |
|---|---|
Started |
Incremented each time the feature runs |
FailedToStart |
Incremented when a fatal error occurs before feature execution |
IssuedWarning |
Incremented when a non-fatal error occurs during feature execution |
FailedDuringExecution |
Incremented when a fatal error occurs during feature execution |
TimedOut |
Incremented when feature execution does not complete within a reasonable time frame |
StrippedValuesFromMessage |
Incremented when the feature removes Feature-Caps parameter values from a message |
AddedValuesToMessage |
Incremented when the feature adds Feature-Caps parameter values to a message |
Behaviour
This feature interacts with the session’s FeatureCapsManager interface and its associated LegFeatureCapsHandler interfaces.
These interfaces are documented in the Sentinel VoLTE SPI Javadoc.
When invoked, the FeatureCapsManagement feature iterates over all SIP legs associated with the current session.
For each leg, the feature will check if there is a LegFeatureCapsHandler for that leg in the session’s FeatureCapsManager.
If there is a LegFeatureCapsHandler for the leg, the feature will look for SIP INVITE requests and responses in the leg’s outgoing message queue.
Each INVITE request or response found in the queue will be processed as described below.
Each individual message in the queue will only be processed once
(i.e. if the feature is invoked multiple times before a given message is sent, that message will only be processed on the first time that it is seen).
Values to Strip
When a message is processed, the feature will first determine if the LegFeatureCapsHandler has any Feature-Caps values to strip.
If so, the feature will look for those values on any existing Feature-Caps header on the message.
If the values are found, they will be removed from the given header.
Values to Add
After stripping values, the feature will check the LegFeatureCapsHandler for Feature-Caps values to add to the message.
If values are found, then a new Feature-Caps header will be appended to the message.
The new header will contain all of the values to add.
It is possible for the LegFeatureCapsHandler to indicate that new Feature-Caps values are currently suppressed for the leg.
If this is the case, the feature will forgo adding any new Feature-Caps values to the outgoing message.
