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=4.0.0].SbbID[name=sentinel.volte.sip,vendor=OpenCloud,version=4.0.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.