This feature optionally strips preconditions information from initial INVITEs .
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 |
---|---|---|---|---|---|---|---|
Any and All |
No |
Terminating |
|
Yes |
No |
Stateless |
POJO |
Behaviour
When SIP forking occurs, this may cause issues with upstream devices that cannot properly handle preconditions negotiation on multiple early dialogs. If this is a problem, then this can be worked around by stripping preconditions from the initial INVITE, if requested by another feature that is performing SIP forking. The StripPreconditions feature detects whether any other features have requested this behaviour, and removes preconditions from the outbound initial INVITE.
The StripPreconditions feature works as follows.
Features that execute prior to the StripPreconditions feature add legs to a session state variable variable called
StripPreconditionsLegNames
. Currently only MMTelParallelFA and SCCTADSParallelRouting features add legs
to the collection, although any custom feature is permitted to add legs. When the StripPreconditions feature runs, it checks
the StripPreconditionsLegNames
session state variable and performs the following.
-
check if feature’s
EnabledFlag
istrue
. If not selected the feature ends -
strip precondition attributes a=curr, a=des, and a=conf from the SDP of the INVITE. If there are no attributes to strip the feature ends.
-
strip the "preconditions" option tag in the Supported header from the INVITE
The feature supports the removal of preconditions from initial INVITEs and retarget INVITEs.
Prerequisite features
The feature must run before SDPMonitor mode "post" and DiameterPerLegInfo features.
Session state input variables
Variable name | Variable type | Description |
---|---|---|
StripPreconditionsLegNames |
Set<String> |
Collection of leg names that will have preconditions information stripped from initial INVITEs. |
Network operator data
This feature reads the EnabledFlag
in the feature configuration profile table StripPreconditions
to determine if the feature will strip preconditions.
Parameter | Type | Description | Default |
---|---|---|---|
EnabledFlag |
boolean |
true or false |
false |
Statistics
StripPreconditions 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 → StripPreconditions
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.volte.sip,vendor=OpenCloud,version=3.1.0].SbbID[name=sentinel.volte.sip,vendor=OpenCloud,version=3.1.0].feature.StripPreconditions"
Name | Type | Description |
---|---|---|
Started |
Counter |
Incremented each time the feature runs |
FailedToStart |
Counter |
Incremented when a fatal error occurs before feature execution |
IssuedWarning |
Counter |
Incremented when a non-fatal error occurs during feature execution |
FailedDuringExecution |
Counter |
Incremented when a fatal error occurs during feature execution |
TimedOut |
Counter |
Incremented when feature execution does not complete within a reasonable time frame |
RemovePreconditionsFields |
Counter |
Incremented when the feature strips preconditions attributes from INVITE SDP |
InviteNotFoundInQueue |
Counter |
Incremented when the feature is unable to find the INVITE from an internal system queue |
MessageQueueEmpty |
Counter |
Incremented when the feature is unable to find any SIP messages from an internal system queue |
InvalidSDP |
Counter |
Incremented when the feature fails to parse the SDP |
Values examined
Value Name | Source | Notes |
---|---|---|
StripPreconditionsLegNames |
Session State |
Collection of leg names that will have preconditions stripped.
The collection can be updated by any feature that has access to the session state variable |
SDP |
Outgoing INVITE request |
Check if precondition attributes a=curr, a=des, and a=conf are present in the SDP of the INVITE. If yes strip, if no then don’t execute any further. |
Supported Header |
Outgoing INVITE request |
Remove 'preconditions' option tag from the Supported header unless there are no preconditions attributes present in the SDP. |