Description

Feature script name

ClosedUserGroup

Applicable contexts

SS7 service

Prerequisite features

The Closed User Group (CUG) feature indicates to the OCS any CUGs that apply to the current session, and optionally restricts a subscriber to sessions within a CUG. The subscriber can be a member of multiple groups, with the group sizes being a maximum of 1,000 entries. The feature has similar functionality to the CUG Closed User Group (CUG) Supplementary Services GSM TS 02.85.

CUG will also have the following features.

  • Supports MOC, MFC, MTC, Network-Initiated.

  • If feature is enabled for the subscriber, and there is no preferential CUG and no CUG specified, then reject the session.

  • The subscriber may provide a CUG index to select which CUG will override the preferential CUG for the session.

  • Set which AVPs and CDR fields contain the CUGs that the session matches. (AVPs presumed to be set by the mapper.)

Each CUG has the following attributes:

  • Rating group

  • Incoming Access (IA) — an arrangement which allows a member of a CUG to receive calls from outside the CUG

  • Outgoing Access (OA) — an arrangement which allows a member of a CUG to place calls outside the CUG.

Note

The ICB and OCB capabilities of the CUG Supplementary Service are not supported:

  • Incoming Calls Barred Within A CUG (ICB) — an access restriction that prevents a CUG member from receiving calls from other members of that group

  • Outgoing Calls Barred Within A CUG (OCB) — an access restriction that prevents a CUG member from placing calls to other members of that group.

Outgoing access

The CUG to use for a call will be determined as follows:

IF CUGToUse is not set AND subscriber's CUGPreferred is set THEN
   CUG for call is CUGPreferred
   RETURN
ENDIF

IF CUGToUse is set but invalid index for subscriber's CUGList THEN
   reject call
   RETURN
ENDIF

CUG for call is CUGList[CUGToUse]

The algorithm to check if the session is within a CUG:

IF numberToCheck exact or longest prefix matches in CUG table THEN
   add CUG name to sessionState.CUGMatchedList list
   add Rating group to sessionState CUGMatchedRatingGroupList list
ENDIF

The number to check include prefix matches:

Call type Number to check against CUG list

MOC

CalledPartyBCDNumber

MFC

CalledPartyNumber

MTC

CallingPartyNumber

NetworkInitiated(Callback)

Leg #4 Address

Emergency

N/A

MOSMS

DestinationSubscriberNumber

In all cases the normalised number will be used for the check.

The CUG feature will not include any logic to determine if the CUG entries are legal. This will be the requirement of the provisioning system.

Any errors encountered during the execution of this feature, such as configuration errors or missing subscriber data, will have no effect: no tariff will be set. The call will be allowed to continue with no effect to the call. (Dependent on error — the rule above specifies rejecting the call if invalid index.)

Session State inputs and outputs

Inputs

Name Type Format Description Behaviour if null/invalid

SentinelSelectionKey

com.opencloud.sentinel.common.SentinelSelectionKey

selection key (for example, <platform>::::)

For selecting configuration data

Report featureCannotStart, featureHasFinished

InitialDPArg

com.opencloud.slee.resources.cgin.cap_v1.CAP1InitialDPArg

CAP-DataTypes.InitialDPArg

InitialDPArg which triggered this session if it is a call

Set ClosedUserGroupCall session state field to false (indicating that this is not a closed user group call)
Increment ClosedUserGroupSubscriberDataError
Report featureHasFinished

CallType

com.opencloud.sentinel.common.CallType

One of: MobileOriginating, MobileTerminating, MobileForwarded, NetworkInitiated, EmergencyCall

Determines how to perform CUG analysis

Report featureCannotStart, featureHasFinished

SessionType

com.opencloud.sentinel.common.SessionType

One of: call, sms

For mobile originating sessions, distinguish call or sms CUG analysis

Report featureCannotStart, featureHasFinished

CAP3InitialDPSMSArg

com.opencloud.slee.resources.cgin.cap_v3.CAP3InitialDPSMSArg

CAP-SMS-ops-args.InitialDPSMSArg

InitialDPSMSArg which triggered this session if it is an sms

Set ClosedUserGroupCallsession state field to false (indicating that this is not a closed user group call)
Increment ClosedUserGroupSubscriberDataError
Report featureHasFinished

ClosedUserGroupEnabled

Boolean

true or false

Whether the subscriber has closed user group support enabled

Equivalent behaviour if null or false
Increment ClosedUserGroupNotEnabled
Set ClosedUserGroupCall session state field to false
Report featureHasFinished

ClosedUserGroupList

String[]

Array of closed user group names

The closed user groups this subscriber belongs to

Increment ClosedUserGroupNotEnabled
Set ClosedUserGroupCall session state field to false
Report featureHasFinished

ClosedUserGroupPreferred

Integer

Any integer from 0 — ClosedUserGroupList.length

Indexes this subscriber’s preferred closed user group in their ClosedUserGroupList

Set ClosedUserGroupCall session state field to false
Report featureCannotStart
Increment ClosedUserGroupSubscriberDataError
Report releaseCallAndCloseDialog, featureHasFinished

ClosedUserGroupToUse

Integer

Null or any integer from 0 — ClosedUserGroupList.length

Index which overrides ClosedUserGroupPreferred if set

Set ClosedUserGroupSelectedGroupName session state field to ClosedUserGroupPreferred

Outputs

Name Type Format Description

ClosedUserGroupCall

Boolean

true or false

Indicates whether this session is a closed user group call

ClosedUserGroupSelectedGroupName

String

May be null if ClosedUserGroupCall is false or CUG analysis failed

Name of the selected closed user group

RatingGroup

Long

May be null if ClosedUserGroupCall is false or CUG analysis failed

ID of the selected rating group

Error scenarios

Scenario Handling

Null sessionstate SentinelSelectionKey

Report featureCannotStart

Null sessionstate CallType

Report featureCannotStart

Null sessionstate SessionType

Report featureCannotStart

Null sessionstate ClosedUserGroupPreferred

Report featureCannotStart
Increment ClosedUserGroupSubscriberDataError
Report releaseCallAndCloseDialog

SessionState: CUG preferred id is invalid

Set sessionstate ClosedUserGroupCall to false
Report featureCannotStart
Increment ClosedUserGroupSubscriberDataError
Report releaseCallAndCloseDialog

OtherPartyAddress could not be set successfully

Set sessionstate ClosedUserGroupCall to false
Increment ClosedUserGroupSubscriberDataError

No CUG Group was selected

Set sessionstate ClosedUserGroupCall to false
Increment NonClosedUserGroupCall Report releaseCallAndCloseDialog No CUG Profile was found for group

Feature responses

Response Reason

featureCannotStart

Invalid session state or configuration

releaseCallAndCloseDialog

CUG preferred ID is null, CUG preferred ID is invalid, no CUG Group was selected, call not allowed, or no CUG Profile was found for group

featureIssuedWarning

OtherPartyAddress has not been set or no CUG Group was selected

featureHasFinished

feature has finished

Configuration

Each ClosedUserGroup’s configuration includes:

a general configuration profile (1 entry):

Parameter Type Description

Name

String

Name of the the CUG

Description

String

Description of the CUG

RatingGroup

Long

Rating group to associate with the CUG

RestrictIncomingAccess

Boolean

Global per-subscriber override to restrict incoming calls from non-CUG members

RestrictOutgoingAccess

Boolean

Global per-subscriber override to restrict outgoing calls to non-CUG members

a list of numbers (configured as address lists; 0..N entries):

Parameter Values

Number

Normalized number

The CUG number list is provisioned in international format:

  • 6421678956

  • 6492324856

  • 64800123456 (0800 123456)

a per-subscriber configuration (held in session state and retrieved by, for example, the Subscriber Data Lookup Feature; 1 entry):

Parameter Type Values

CUGEnabled

Boolean

true/false

CUGPreferred

Integer

CUG Index (for example, 0)

CUGList

String[]

List of CUG names (for example, CUG1,CUG17,CUG_OPENCLOUD)

CUGIncomingAccessAllowed

Boolean

true/false

CUGOutgoingAccessAllowed

Boolean

true/false

OCS interface

In the case of Diameter Ro, a proprietary AVP will be set to indicate:

  • the specific CUG group tariff code(s) (SessionState.CUGTariffGroup)

  • the CUG name (SessionState.CUGName)

  • type of access (SessionState.CUGAccessType with values IntraCUG, IncomingAccess, OutgoingAccess)

The AVP mapping will be determined as part of the vendor-specific integration requirements for the OCS.

Triggers and application contexts

Application Contexts:

  • cap-v2-gsmSSF-to-gsmSCF-AC

  • capssf_scfGenericAC (CAP3)

The InitialDP will be triggered on DP2 (Collected_Info).

Configuration profile naming

Configuration Profile Table Name Description Profile Naming

ClosedUserGroupCUGsProfileTable

CUG general configuration

${SELECTIONKEY}:${CUGName} (for example, OpenCloud:Opencloud::::CUG1Profile)

${PLATFORMOPERATOR}_Sentinel_AddressLisConfigurationTable

Address list configuration

${SELECTIONKEY}:ClosedUserGroup:${CUGName} (for example, OpenCloud:Opencloud::::ClosedUserGroup:CUG1Profile)

${PLATFORMOPERATOR}_Sentinel_AddressListEntryTable

Feature specific Address List entry table

${SELECTIONKEY}:ClosedUserGroup:${CUGName}:${ADDRESS} (for example, OpenCloud:Opencloud::::ClosedUserGroup:CUG1Profile:34600000001)

Provisioning interfaces

The feature is provisioned using the Sentinel Features REST API or web interface.

Previous page Next page
Sentinel Express Version 2.7.0