The Session Refresh feature periodically instructs all INVITE dialog legs to refresh, and ends the call once the max duration is reached.
Details
Feature script name |
SessionRefresh |
|---|---|
Applicable contexts |
SIP service |
Call-Type |
All |
Session Plan |
All |
Execution points |
|
Feature Extension Events |
None |
Network Operator Config |
Yes |
Subscriber Config |
None |
POJO or SBB |
POJO |
Feature FSMs |
None |
Feature Parameters |
None |
SAS Support |
No |
Prerequisite features |
None |
Session state inputs and outputs
Inputs
| Name | Type | Format | Description | Behaviour if null/invalid |
|---|---|---|---|---|
SentinelSelectionKey |
com.opencloud.sentinel.common.SentinelSelectionKey |
selection key + for example, |
For selecting configuration data |
Increment InputParameterErrors common cleanup actions |
CallEstablished |
Boolean |
|
|
Initially set to |
Feature responses
| Response | Reason |
|---|---|
featureHasFinished |
Feature has completed execution for the current invocation. |
featureIssuedWarning |
Feature has encountered a non-fatal issue during execution. |
Feature Statistics
SessionRefresh statistics are tracked by the sentinel.sip SBB and can be found under the following parameter set:
SLEE-Usage → sentinel.sip service ID → sentinel.sip SBB ID → feature.SessionRefresh
| 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. |
SessionRefreshTimerStarted |
Counter |
Incremented when the feature starts the periodic timer. |
SessionRefreshTimerStopped |
Counter |
Incremented when the feature stops the periodic timer. |
InstructRefreshOnTimerFire |
Counter |
Incremented when the feature instructs legs to refresh due to the timer firing. |
InstructRefreshOnChargingReauth |
Counter |
Incremented when the feature instructs legs to refresh due to a charging reauth. |
MaxCallDurationReached |
Counter |
Incremented when the feature ends a call due to the max duration being exceeded. |
Configuration
This feature reads configuration from the SessionRefreshProfileTable profile table.
Profiles in this table are named based on the Sentinel selection key that they should be applied to.
The profile specification for this table is sentinel-sip-session-refresh-feature-profile.
| Parameter | Type | Default Value | Description |
|---|---|---|---|
TimerInterval |
long |
290 |
Interval of periodic timer (seconds) |
RefreshPeriod |
long |
570 |
Period of no activity for leg to refresh (seconds) |
MaxCallDuration |
int |
86400 |
Maximum time the call may be active for (seconds) |
RefreshWithUpdateIfAllowed |
boolean |
false |
Whether the session should be refreshed using UPDATE requests so long as the endpoint allows UPDATE requests. |
Session Input Data
| Name | Type | Description |
|---|---|---|
SentinelSelectionKey |
SentinelSelectionKey |
Used to select configuration data. Issue a feature warning and use default configuration values. |
CallEstablished |
boolean |
Used to determine whether the session should be considered established before receiving an ACK. |
MaxCallDuration |
Long |
If this field is given a value greater than |
Session Output Data
| Name | Type | Description |
|---|---|---|
SessionEstablishedTime |
long |
Unix timestamp representing the time the session was established. |
MaxCallDurationExpireTime |
long |
Unix timestamp representing the time at which the maximum call duration will be reached. |
Provisioning interfaces
The feature is provisioned using the Sentinel web interface.
Behaviour
On an incoming initial ACK or when the callEstablished session state field is true, a repeating timer is set.
The timer’s period is specified by the TimerInterval value in the feature’s configuration. This timer is armed redundantly if the session is replicated.
The number of repetitions will be so such that the timer will stop firing soon after the maximum call duration is reached.
Each time the timer fires, the feature first checks if the maximum call duration has been exceeded.
If the max call duration has been exceeded, the feature will end the session.
If not, Leg.refreshSession is instructed on each leg using the RefreshPeriod from the feature’s configuration.
The RefreshPeriod represents the period of no activity before a refresh request should occur.
If no messages have been sent or received on a leg within the RefreshPeriod, a refresh request transaction will be initiated.
Refresh requests are by default re-INVITE requests.
The Session Refresh feature can be configured using the RefreshWithUpdateIfAllowed configuration to use UPDATE requests instead.
If an endpoint did not include the UPDATE method in it’s Allows header then the RefreshWithUpdateIfAllowed configuration is ignored.
|
|
RFC 6141 describes this process in SIP INVITE dialogs.
This will cause all legs to be refreshed immediately.
|
Receipt of a Re-Auth-Request on the Ro interface
RFC 4005 (https://tools.ietf.org/html/rfc4005#page-13) states:
A Diameter server may initiate a re-authentication and/or re- authorization service for a particular session by issuing a Re-Auth- Request (RAR) message [BASE].
For example, for pre-paid services, the Diameter server that originally authorized a session may need some confirmation that the user is still using the services.
If a NAS receives an RAR message with Session-Id equal to a currently active session and a Re-Auth-Type that includes authentication, it MUST initiate a re-authentication toward the user, if the service supports this particular feature.
Therefore when receiving a RAR, Sentinel responds with an RAA, initiates a Credit Control Update Request (CCR-U) and triggers this feature. This means that one or more SIP dialog refreshes run in parallel to the CCR-U. If the session refresh is successful then no further action is necessary. However if SIP dialog refreshes are not successful then Sentinel will move to the End Session point-in-session, thereby sending a CCR-T.
Additionally when the Validity-Time timer expires, Sentinel acts as though a RAR was received.
