This feature classifies a REGISTER request according its type (register, re-register, or de-register).
Classifying a REGISTER request
The DetermineRegistrationActionType
feature examines the Contact headers of the first-party REGISTER request received in the body of the third-party REGISTER request.
A register is present if for any contact header:
-
the contact header expires parameter is present and is not zero
-
the contact header expires parameter is not present, but the request expires header is present and is not zero
A de-register is present if for any contact header:
-
the contact header expires parameter is present and zero
-
the contact header address is a wildcard and the request expires header is present and zero
-
the request expires header is present and zero and the contact header expires parameter is not present
The action that should be taken is based on the following table:
register is present | de-register is present | have previous registration data | action |
---|---|---|---|
false |
true |
- |
de-register |
true |
true |
- |
re-register |
- |
false |
true |
re-register |
- |
false |
false |
register |
Details
Feature script name |
DetermineRegistrationActionType |
---|---|
Applicable contexts |
SIP service |
Prerequisite features |
Session state inputs and outputs
Inputs
SentinelSelectionKey |
A selection key with the platform operator, network operator and session type set (such as OpenCloud:OpenCloud:eSRVCCRegistration::) |
---|---|
EncapsulatedRegisterRequest |
The first-party REGISTER request that was in the body of the third-party REGISTER request received by the registrar. |
PreviousRegistrationData |
A list of registration records including all pre-existing, active registrations associated with the subscriber and call ID. |
Outputs
SentinelSelectionKey |
A selection key with the platform operator, network operator, session type and plan-id set (such as OpenCloud:OpenCloud:eSRVCCRegistration:de-register:) |
---|---|
RejectRegisterRequest |
Set to true, if the first-party REGISTER request could not be analysed. For example, if the REGISTER request has a Contact with a wildcard address, while its Expires header is absent, or not equal to zero |