This feature implements the initial registration procedures for ESRVCC.
ESRVCC registration process
ATCF not involved in registration
The ESRVCC registration feature checks if the ATFC parameters are present in the Feature-Caps header. If not present, the feature stores registration data, accepts registration and ends.
ATCF is involved in registration
If the ATFC parameters are present in the Feature-Caps header, the feature queries HSS and updates ATCF if required.
-
The Feature-Caps header of the first-party REGISTER request includes a number of ATCF-related parameters:
-
+g.3gpp.atcf
-
+g.3gpp.atcf-mgmt
-
+g.3gpp.atcf-path
-
-
The ESRVCC registration feature:
-
queries the HSS to obtain the STN-SR and the C-MSISDN (correlation MSISDN)
-
compares the STN-SR returned by the HSS with the STN-SR that was in the first-party REGISTER request
-
If they are different, the HSS is updated with the STN-SR from the first-party REGISTER request
-
-
updates the ATCF, passing it the SCC AS’s own ATU-STI and the C-MSISDN, by sending the ATCF a SIP MESSAGE message.
-
The address of the ATCF is taken from the
+g.3gpp.atcf-mgmt
parameter in the Feature-Caps header of the first-party REGISTER request. -
The body of the SIP MESSAGE has a content type application/vnd.3gpp.SRVCC-info+xml and contains an XML document such as:
<?xml version="1.0" encoding="UTF-8"?> <SRVCC-infos> <SRVCC-info ATCF-Path-URI="<sip:termsdgfdfwe@localhost:5560>"> <ATU-STI>sip:sccas1.home1.net:5060</ATU-STI> <C-MSISDN>tel:+16505550425</C-MSISDN> </SRVCC-info> </SRVCC-infos>
-
-
stores the registration data
-
If any of these steps fail (for example, the ATCF update times out, or the HSS returns a failed Answer) the ESRVCC registration feature responds to the registrar core with a SIP error. |
ATFC Update retry
The ESRVCCRegistration feature may be configured to retry the ATCF update if the ATCF responds with a configured SIP error response. The ESRVCCRegistration feature will resend the MESSAGE request, on receipt of the SIP error response, after the delay period has expired. The delay period is configurable.
Related features
-
ESRVCCReregistration handles the re-registration procedures for ESRVCC.
Session state
Before …
CMSISDN |
The correlation MSISDN retrieved from the HSS |
---|---|
EncapsulatedRegisterRequest |
The first-party REGISTER request that was in the body of the third-party REGISTER request received by the registrar. The ESRVCC feature processes the Feature-Caps header from the REGISTER request |
HasCMSISDN |
If CMSISDN was fetched from HSS |
PrivateId |
The private-id of the UE |
PublicIds |
The list of public IDs provided in the 3rd party registrar message |
SentinelSelectionKey |
A selection key with the platform operator, network operator and session type set to ESRVCCRegistration
(such as |
StnSR |
The STN-SR from the third-party register request, if it differs from the current HSS state. |
… After
AcceptRegisterRequest |
Indicates whether the REGISTER must be acepted after execution of the feature |
---|---|
AtcfMgmtUri |
The ATCF Management URI from Feature-Caps header in the initial first-party REGISTER request |
AtcfPathUri |
The ATCF Path URI from Feature-Caps header in the initial first-party REGISTER request |
CurrentATUSTI |
The ATU-STI for the SCC AS |
IsUeSrvccCapable |
Indicates whether the UE supports ESRVCC |
RejectRegisterRequest |
Indicates whether the |
Mappers
This feature uses mappers that conform to:
Mapping | Mapper Execution Point |
---|---|
SentinelRegistrarSessionState.class → OutgoingSipRequest.class |
RegistrarMappingPoint.UpdateATCF |
Statistics
ESRVCCRegistration statistics are tracked by the sentinel.registrar SBB
and can be found under the following parameter set in REM:
SLEE-Usage → sentinel.registrar service → sentinel.volte.sip SBB → feature → CacheESRVCCRegistration
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.registrar,vendor=OpenCloud,version=4.0.0].SbbID[name=sentinel.registrar,vendor=OpenCloud,version=4.0.0].feature.CacheESRVCCRegistration"
Parameter | … incremented if … |
---|---|
Started |
The feature runs |
FailedToStart |
A fatal error occurs before feature execution |
IssuedWarning |
A non-fatal error occurs during feature execution |
FailedDuringExecution |
A fatal error occurs during feature execution |
TimedOut |
Feature execution does not complete within a reasonable time frame |
MapperErrorUpdatingATCF |
The mapper that creates a SIP MESSAGE message, to pass to the ATCF, fails |
NetworkErrorUpdatingATCF |
There is a network error sending a SIP MESSAGE message to the ATCF |
ATCFRespondsWithSipError |
The ATCF responds to a SIP MESSAGE message with an error response |
ATCFResponseTimesOut |
There is no response to the SIP MESSAGE message sent to the ATCF |
RegisterMissingFeatureCAPSHeader |
The REGISTER message is missing a Feature-Caps header |
RegisterFeatureCAPSHeaderMissingAtcfMgmt |
The Feature-Caps header does not contain a |
Error scenarios
The ESRVCC feature increments statistics and responds to the registrar core with rejectReqisterRequest()
if:
-
the REGISTER request is missing essential headers or header parameters
-
there is a problem sending a UserDataRequest to the HSS, such as a mapper error creating the message, or a network error sending the message
-
there is a problem sending a ProfileUpdateRequest to the HSS, such as a mapper error creating the message, or a network error sending the message
-
there is a problem sending a SIP MESSAGE message to the ATCF, such as a mapper error creating the message, or a network error sending the message.
Configuration
This feature has a configuration profile which determines the user identities used when querying the HSS.
The default profile table is named CacheESRVCCRegistrationConfigProfileTable
and profiles are named with a Sentinel
Selection Key e.g. opencloud::::
. The feature has a Sentinel Feature Configuration page in REM.
Attribute Name | Type | Description |
---|---|---|
UserIdentityTypeStringForStnSrRequest |
An enum with value |
Determines whether the user’s IMS Public ID or C-MSISDN will be used for their identity when requesting the STN-SR from the HSS. |
IncludePrivateIdInStnSrRequest |
boolean |
Determines whether the user’s IMS Private ID will be included in the request for the STN-SR. |
RetryAtcfUpdateOnSIPErrorDelayMilliseconds |
long |
Time, in milliseconds, to wait before retrying the ATCF update. If the time is less than, or equal to zero, then ATCF update retry is disabled. |
RetryAtcfUpdateOnSIPErrorCode |
int |
The SIP error response, received from the ATCF, that will trigger an ATCF update retry. ATCF update retry is disabled if the value is not a valid SIP error response code (400-699). |
There are also fields relevant to this feature in the RegistrarConfigurationTable table:
AtcfUpdateTimeout |
The time (ms) the ESRVCC registration feature should wait for a response from the ATCF. |
---|