Description
Feature name |
ClassifyCallScenario |
---|---|
Applicable contexts |
SS7 service |
Prerequisite Features |
None |
The Classify Call feature is a pre credit check feature early in the feature list (but always after the emergency number feature). The feature classifies the call’s Session Type, Roaming Indicator, and Service Type, which are stored in session state variables for future features.
Session type
The call’s session type is classified as one of:
-
MobileOriginating
-
MobileTerminating
-
MobileForwarded.
A CallType enum is defined to represent the values, and the session type is stored in session state variable CallType.
The session type is determined based on the following pseudo code:
Function DetermineSessionType(initialDP) /* make an assumption on insufficient information that originating */ IF initialDP.eventTypeBCSM not set THEN return MobileOriginating ENDIF /* Originating or terminating eventTypeBCSM? */ IF initialDP.eventTypeBCSM is one of {origAttemptAuthorized, collectedInfo, analyzedInformation, routeSelectFailure, oCalledPartyBusy, oNoAnswer, oAnswer, oMidCall,oDisconnect, oAbandon} THEN isOriginatingEventTypeBCSM = true ELSE isOriginatingEventTypeBCSM = false ENDIF IF NOT isOriginatingEventTypeBCSM THEN return MobileTerminating ENDIF IF isOriginatingEventTypeBCSM AND initialDP.redirectingPartyID is set THEN return MobileForwarded ENDIF IF isOriginatingEventTypeBCSM AND initialDP.redirectingPartyID not set THEN return MobileOriginating ENDIF return Unknown
Roaming indicator
The call’s roaming indicator is classified as one of:
-
Roaming
-
NotRoaming.
The roaming indicator is stored in session state variable RoamingIndicator as a Boolean.
The roaming indicator is determined based on the following pseudo code:
Function DetermineRoaming(initialDP) IF initialDP.LocationInformation.VLR-Number prefix in (operator VLR number prefix list) THEN return isNotRoaming ELSE return isRoaming ENDIF
In the case of an MT call, the location information may be reported; but this is dependent on an HLR setting (MAP PSI during MT processing). For MO calls, the LocationInformation relates to the calling party. For the MT case, it relates to the called party. |
The feature maintains a profile address list of home VLR numbers. If the VLR number is in this list, the call is not roaming.
Service type
The call’s service type is classified as one of:
-
Voice
-
Video
-
Data
-
Fax
A ServiceType enum is defined to represent the values, and the service type is stored in session state variable ServiceType.
The service type is determined based on the following pseudo code:
Function DetermineServiceType(initialDP) IF initialDP.ext-basicServiceCode == ext-Teleservice THEN CASE initialDP.ext-basicServiceCode.ext-Teleservice Telephony(11): EmergencyCalls(12): VoiceGroupCall(91): VoiceBroadcast(92): return VOICE Alternate speech and fax group 3(61): Automatic fax group 3(62): return FAX ENDCASE ENDIF IF initialDP.ext-basicServiceCode is ext-BearerService THEN IF initialDP.ext-basicServiceCode.ext-BearerService == Asynchronous data bearer services (30) THEN return VIDEO ELSE IF initialDP.ext-basicServiceCode.ext-BearerService == synchronous data bearer services (20) THEN return DATA ENDIF ENDIF /* assume voice if no match */ return VOICE
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 |
Report featureCannotStart, featureHasFinished |
InitialDPArg |
com.opencloud.slee.resources.cgin.cap_v1.CAP1InitialDPArg |
InitialDP which triggered this session, which will be analysed to classify the session |
Report featureCannotStart, featureHasFinished |
Outputs
Name | Type | Format | Description |
---|---|---|---|
CallType |
com.opencloud.sentinel.common.CallType |
One of: MobileOriginating, MobileTerminating, MobileForwarded, NetworkInitiated, EmergencyCall |
The type of this session |
RoamingIndicator |
Boolean |
true if roaming, false if non-roaming or indeterminate |
Indicates whether this call is roaming or non-roaming |
ServiceType |
com.opencloud.sentinel.common.ServiceType |
One of: Voice, Data, Fax, Video, Unknown |
Indicates the service type of this session |
Error scenarios
Scenario | Handling |
---|---|
Null sessionstate InitialDPArg |
Report featureCannotStart |
Null sessionstate SentinelSelectionKey |
Report featureCannotStart |
InitialDPArg not CAP |
Report featureCannotStart |
Session type could not be determined |
featureFailedToExecute |
Roaming status could not be determined |
featureFailedToExecute |
Service type could not be determined |
featureFailedToExecute |
Feature responses
Response | Reason |
---|---|
featureCannotStart InitialDP has not been set in session state, SessionState Sentinel |
SelectionKey is not set or InitialDP is not CAP |
featureFailedToExecute |
unclassified error |
featureHasFinished |
feature has finished |
Configuration
The ClassifyCall feature configuration consists of the BearerService and TeleService configuration profiles.
BearerService configuration
Parameter | Type | Description |
---|---|---|
BearerServiceCode |
Integer |
The bearer service value |
BearerService |
ServiceType |
The ServiceType associated with the bearer service value |
TeleService configuration
Parameter | Type | Description |
---|---|---|
TeleServiceCode |
Integer |
The tele service value |
TeleService |
ServiceType |
The ServiceType associated with the tele service value |
Each ServiceType attribute can be one of the following: Voice, Data, Fax, Video, Unknown.
For roaming determination, Classify Call uses an address list for matching VLR addresses. See Address Lists for how to configure data for the address list.
Configuration profile naming
Configuration Profile Table Name | Description | Profile Naming |
---|---|---|
${PLATFORMOPERATOR}_Sentinel_AddressListConfigurationTable |
Address list configuration |
${SELECTIONKEY}:ClassifyCallScenario:HomeVLR |
${PLATFORMOPERATOR}_Sentinel_AddressListEntryTable Feature specific |
Address List entry table |
${SELECTIONKEY}:ClassifyCallScenario:HomeVLR:${ADDRESS} |
BearerServiceConfigProfileTable |
BearerService configuration |
SentinelSelectionKey + ':' + BearerServiceCode (for example, |
TeleServiceConfigProfileTable |
TeleService configuration |
SentinelSelectionKey + ':' + TeleServiceCode (for example, |
Provisioning interfaces
The feature is provisioned using the Sentinel Features REST API or web interface.