Description
Feature name |
DetermineRegistrationStatus |
|---|---|
Applicable contexts |
SIP service |
SAS Support |
No |
Prerequisite Features |
None |
The Determine Registration Status feature is a pre credit check feature early in the feature list (but always after the emergency number feature).
The feature attempts to identify the user’s registration state as one of Registered or Unregistered, which is then stored in the SipRegistrationStatus session state variable for future features.
Leg Manager inputs
| Leg | Name | Type | Format | Description Behaviour if null/invalid |
|---|---|---|---|---|
callingParty |
InviteRequest |
org.jainslee.resources.sip.SipRequest |
See Easysip javadoc |
INVITE received from the calling party Runtime exception handled by feature runner |
Error scenarios
| Scenario | Handling |
|---|---|
Failed to get an INVITE request from the calling party leg |
Report featureCannotStart |
Insufficient information to determine registration status |
Report featureFailedToExecute |
Registration status
The call’s registration status is classified as one of:
-
Registered
-
Unregistered.
A SipRegistrationStatus enum is defined to represent the values, and the registration status is stored in session state variable SipRegistrationStatus.
The session type is determined based on the following pseudo code:
Function determineRegistrationStatus(callingPartyInvite)
regState = determineRegistrationStatusBasedOnPServedUser(callingPartyInvite)
IF regState is null
THEN
featureFailedToExecute()
ENDIF
SipRegistrationStatus Function determineRegistrationStatusBasedOnPServedUser(callingPartyInvite)
header = callingPartyInvite.getAddressHeader(P_SERVED_USER)
IF header is null
THEN
return null
ENDIF
regState = header.getParameter(REGSTATE)
IF regState not set
THEN
return null
ENDIF
IF regState is REG
THEN
return Registered
ELSEIF regState is UNREG
THEN
return Unregistered
ELSE
return null
Feature responses
| Response | Reason |
|---|---|
featureCannotStart |
CallingParty leg InviteRequest has not been set |
featureFailedToExecute |
Registration status could not be determined |
featureHasFinished |
feature has finished |
