Description

Feature name

ScriptedPromotions

Applicable contexts

  • SS7 service

  • Diameter Mediation service

  • SIP service

Prerequisite features

Postrequisite features

Using the ScriptedPromotions feature, new promotions can be created, enabled, disabled, or removed during normal Sentinel online operation.

The promotions are executed in the Diameter Mediation module which is used by all Sentinel client modules: Diameter Client and SS7 Client. Scripted Promotions are available for all session and call sessions, including Voice/Video/Data/Fax calls triggered by CAMEL, CAMEL callback calls (such as USSD callback), MO SMS, and Diameter sessions.

Session scenarios

The following scenarios are supported and enabled via scripted promotions:

  • charge all units for a session from a single or multiple promotion, entirely suppressing interaction with the OCS

  • charge units from multiple MSCCs in a single CCR where they have different parameters (such as servicdid) to different promotions, to the OCS

  • serially interleave promotions and OCS requests related to a condition

  • charge units to a promotion on OCS failure

  • direct debit and refund units with promotions.

Scripted Promotion may apply:

  • between promotions with wide validity dates

  • between subscription-specific validity dates

  • during certain times of day or on certain days

  • across a service plan for a set of subscribers

  • to certain session types only (such as SMS, Voice calls, GGSN sessions, and so on)

  • based on individual subscription

  • based on AVPs available in the CCRs (such as tarrifs, roaming indicators, serviceIds, rating groups, or location information)

  • based on type of units.

Promotions feature API

The Diameter Mediation module exposes a feature execution point DiameterMediationChargingControlFeatureEndpoint to provide ScriptedPromotions and other third-party developed promotions with the necessary controls over session behaviour. The feature endpoint API provides the following controls:

Method Description

suppressOcsInteraction

request: suppress further interaction with the OCS

enableOcsInteraction

request: enable further interaction with the OCS

isOcsInteractionEnabled

check if ocs interaction is currently enabled

shutdownOCS

request: existing OCS connection shall be shutdown if one exists

ScriptedPromotions uses these controls to apply promotions where applicable to requests from the Diameter mediation clients.

Promotion selection

Promotion selection is performed using the following algorithm:

    Get the list of promotions by selection key
    For each promotion in the list in order of ascending priority
        evaluate the conditional expression of the promotion to determine if it is applicable to the session
        Reserve applicable requested units from the promotion bucket
        Update the CCR and synthesize a CCA

Promotion selection is only relevant to the CreditControlRequests which have RequestServiceUnit AVPs. All UsedServiceUnit AVPs are handled without condition by PromotionsCommitUsedUnits. All outstanding promotion reservations on session end are freed by PromotionsFreeReservations.

Scripted promotion scope

A scripted promotion has one of the following scopes:

  • All subscribers (applies to all subscribers)

  • Subscribed (applies to subscribers who have subscribed to the promotion).

The scope is determined using the subscriberIsEligible function in Promotion Selection Expressions. If this function is present, the scope will be to subscribed subscriber only. If this function is absent, the promotion is scoped to all subscribers.

Configuration

A promotion bucket is referenced by SubscriberId and the bucket name stated by each promotion. A bucket contains the available and reserved units. The unit type may be: time (seconds), bytes, event counts, or some service-specific unit type. The unit type is not enforced by the bucket. It is the responsibility of the promotion to correctly select requested service unit AVPs with the correct unit type for the promotion.

The bucket unit record contains the following fields:

Parameter Description

SubscriberId

Subscriber identifier

BucketName

Name of the bucket

AvailableUnits

Available units for this promotion

ReservedUnits

Any units which have been reserved during session charging but not committed as used units, or freed at session end

The subscriber also has a promotion configuration retrieved by the Subscriber Data Lookup Feature:

Parameter Description

PromotionList

Used by the subscriberIsEligible promotion script function Promotion Selection Expressions

PromotionValidityStartDates

Used by the subscriberIsEligible promotion script function Promotion Selection Expressions

PromotionValidityEndDates

Used by the subscriberIsEligible promotion script function Promotion Selection Expressions

Each scripted promotion is configured in the PromotionsTable:

Parameter Description

SelectionKey

Sentinel selection key the promotion is scoped to (for example, OpenCloud::::)

PromotionName

Promotion name (for example, AnytimeFreeData)

BucketName

Bucket name (for example, AnytimeFreeData)

PromotionPriority

Promotions selection priority

PromotionConditionSrc

See Promotion Selection Expressions (for example chargingUnitTypeOneOf(CCInputOctets,CCOutputOctets,CCTotalOctets))

EncodedValidityEnd

Used by the promotionIsCurrent function to determine promotion-wide validity

EncodedValidityStart

Used by the promotionIsCurrent function to determine promotion-wide validity

PromotionBucketsConfigTable:

Parameter Description

BucketName

The ID of the promotion bucket for which this configuration applies.

DataSource

profile,dbquery,cassandra,unlimited,sessionstate. Used when no dedicated access configuration can be found for a particular bucket name. Note: the profile is only used for testing or demo purposes.

PromotionsConfigTable:

Parameter Description

DefaultDataSource

profile,dbquery,cassandra,unlimited,sessionstate. Used when no dedicated access configuration can be found for a particular bucket name. Note: the profile is only used for testing or demo purposes.

PartialGrantingThreshold

0

PromotionApplicationMode

one_only (single option available)

UnitGrantingMode

partial, full_only. When set to partial, will grant units to the minimum set by the PartialGrantingThreshold parameter. When set to full_only, the units will only be granted if the full amount is available from the promotion bucket.

PromotionsDbQueryConfigProfileTable:

Parameter Description

AddSQL

SQL statement for adding a bucket for a subscriber

DatabaseRequestTimeout

Database request timeout in milliseconds

DeleteSQL

SQL statement for deleting a bucket for a subscriber

istAllSQL

SQL statement for listing all buckets

LoadSQL

SQL statement for loading a bucket based on subscriber id and bucket name

UpdateSQL

SQL statement for updating a bucket based on subscriber id and bucket name

Configuration profile naming

Configuration profile table name Description Profile naming

PromotionsTable

Configuration of scripted promotions

SentinelSelectionKey:priority_promotionname (for example, OpenCloud:::::0_AnytimeFreeData)

PromotionBucketsConfigTable

Configuration of promotion bucket properties (such as access type)

SentinelSelectionKey:BucketName (for example, OpenCloud::::AnytimeFreeData)

PromotionsConfigTable

Configuration of promotions behaviour

SentinelSelectionKey (for example, OpenCloud::::)

PromotionsDbQueryConfigProfileTable

DbQuery statement configuration

SentinelSelectionKey for example, OpenCloud::::)

Provisioning interfaces

Scripted promotions are provisioned using the Sentinel Promotions REST API or web interface.

Previous page Next page
Sentinel Express Version 2.7.0