DiaOCS
clause defines OCS which handles Diameter Gy requests originated by a
PCEF running on a GGSN, PDN GW or other
gateway.<AuthBy DiaOCS>
clause.<OCSGy>
clause to
use for processing Diameter Gy messages. OCSGy
module
is required to read information from Gy requests and add information to Gy
answers. This allows separating the OCS logic
from Diameter messages details.OCSGySession
module
shipped with Radiator policy and charging support modules is configured
with <OCSGySessionSQL>
clause.CSGySession
clause must implement the interface
defined by the GySessionGeneric.pm
module. The
backend is not limited to SQL but should use a a backend that supports
frequent creation and updating of session data.OCSmsg
Multiple-Services-Credit-Control
attribute that
reports unit usage. There is no default.OCSmsg
M-S-C-C
and its allocationMultiple-Services-Credit-Control
attribute that
returns final units to the PCEF. The default
is to add Final-Unit-Indication
with
Final-UnitAction = TERMINATE
.OCSmsg
Multiple-Services-Credit-Control
attribute that
has Service-Identifier
and
Rating-Group
filled in, where applicableThresholdHook
.# Trigger ThresholdHook when half and little remaining Thresholds 50, 10
ThresholdHook
will be called once for each threshold.
The order of calls depends on the order the thresholds are configured with
the Thresholds
parameter.OCSmsg
ValidityTime
defines the quota validity
time in seconds. If this option is not defined,
Validity-Time
attribute is not included in the
CCA and the client will use its default
value. There is no default value.# Instruct the client report no later than after 10 minutes ValidityTime 600
ValidityTime
to derive Tcc timer value for Gy session
supervision. Defaults to 2
.# Tcc timer expires a bit later than RFC suggests TccMultiplier 2.1
TccTimer
is defined, it will set the
value of Tcc timer in seconds directly ignoring the possible
TccMultiplier
. When Tcc timer is set to
0
with TccTimer
or combination of
ValidityTime
and TccMultiplier
,
or TccCheckInterval
is 0
, Radiator
will not do Gy session supervision. TccTimer
is not
defined by default.# Tcc timer is 1200. No dependency on the other variables TccTimer 1200
TccCheckInterval
is set to 0
,
Radiator will not do Gy session supervision allowing an external process
to supervise the sessions. The default is 30
seconds.# Check the Tcc timer expiries one a minute TccCheckInterval 60
TccCheckInterval
is set to 0
,
Radiator will not do Gy session supervision allowing an external process
to supervise the sessions. The default is 30
seconds.# Check the Tcc timer expiries one a minute TccCheckInterval 60
# Disable all triggers Triggers
CC-Session-Failover
in CCA messages. The possible values are:
FAILOVER_NOT_SUPPORTED
and
FAILOVER_SUPPORTED
. SessionFailover
is not set by default, and hence the clients default to
FAILOVER_NOT_SUPPORTED
.# Tell clients we support failover SessionFailover FAILOVER_SUPPORTED
ailureHandling
is set, Radiator
will add Credit-Control-Failure-Handling
in
CCA messages. The possible values are:
TERMINATE
, CONTINUE
, and
RETRY_AND_TERMINATE
. FailureHandling
is not set by default, and hence the clients default to
TERMINATE
.# Tell clients they can try our other instances FailureHandling RETRY_AND_TERMINATE
OCSGy
module processes incoming Diameter
Gy messages and adds any attributes required by allocations and other
processing done by OCS.<Auth DiaOCS>
do not directly
use Diameter Gy messages.<AuthBy DiaOCS>
clause
OCSGy
parameter.<AuthBy DiaOCS>
SPR parameter.SubscriberSelect*
statements.SubscriberColumnDef
parameters, one for each
interesting field returned by SubscriberColumnSelect
.
The general format is:SubscriberColumnDef n, dataitem
n
is the index of the field in the result of
SubscriberSelect*
. 0
is the
first field.dataitem
is the name of a entry in the
subscriber informationName | Description |
id |
Index or other identifier that uniquely identifies the subscription in the OCSDB |
e164 |
E.164 formatted telephone number for the user |
imsi |
IMSI for the user |
nai |
NAI for the user |
private |
Private identifier for the user |
enabled |
Value the evaluates as true in Perl means the subscription is enabled |
initial_quota |
Initial quota for the subscriber |
quota |
Currently remaining quota |
all_reservations |
Quota that is currently reserved across all active Gy sessions |
ServiceSelect
statement.ServiceColumnDef
parameters, one for each interesting
field returned by ServiceSelect
. The general format
is:ServiceColumnDef n, dataitem
n
is the index of the field in the result of
ServiceSelect
. 0
is the first
field.dataitem
is the name of a entry in the
PCC rule informationName | Description |
id |
Index or other identifier that uniquely identifies this service in the OCSDB |
name |
Free form description of this service for humans. Not used with Gy protocol. |
service_identifier |
Value of Service-Identifier
attribute in Gy messages |
default_allocation |
How many service units are allocated for the service by default |
unit_type |
Currently supported value is
TOTAL_OCTETS |
unit_price |
Price for one unit_type |
rating_group |
Defined as value of Rating-Group
attribute if service belongs to a rating group.
NULL or empty otherwise |
pool_identifier |
Defined as value of
G-S-U-Pool-Identifier attribute if service
belongs to a pool. NULL or empty
otherwise |
RatingGroupSelect
statement.RatingGroupColumnDef
parameters, one for each
interesting field returned by RatingGroupSelect
. The
general format is:RatingGroupColumnDef n, dataitem
n
is the index of the field in the result of
RatingGroupSelect
. 0
is the
first field.dataitem
is the name of a entry in the data
plan informationName | Description |
id |
Index or other identifier that uniquely identifies this rating group in the OCSDB |
name |
Free form description of this rating group for humans. Not used with Gy protocol. |
rating_group |
Value of Rating-Group attribute in
Gy messages |
default_allocation |
How many service units are allocated for the rating group by default |
unit_type |
Currently supported value is
TOTAL_OCTETS |
unit_price |
Price for one unit_type |
pool_identifier |
Defined as value of
G-S-U-Pool-Identifier attribute if the
rating group belongs to a pool. NULL or empty
otherwise |
PoolSelect
statement.PoolColumnDef
parameters, one for each interesting
field returned by PoolSelect
. The general format
is:PoolColumnDef n, dataitem
n
is the index of the field in the result of
PoolSelect
. 0
is the first
fielddataitem
is the name of a entry in the
subscriber informationName | Description |
id |
Index or other identifier that uniquely identifies this pool in the OCSDB |
name |
Free form description of this pool for humans. Not used with Gy protocol. |
pool_identifier |
Value of G-S-U-Pool-Identifier
attribute for this pool |
default_allocation |
How many service units are allocated for the pool by default |
exponent |
Value of Exponent in the Unit-Value
attribute for this pool |
RefreshPeriod
specifies the time period
in seconds that OCSDBSQL
will refresh the service,
rating group and pool definitions by rereading the database. If set to
0
, then OCSDBSQL
will only read the
definitions from the database at startup and on
SIGHUP
. Defaults to 0
.# Refresh the informations two times a day RefreshPeriod 43200.
<OCSGySessionSQL>
stores
information about subscribers' Gy sessions and reservations within
sessions in SQL. The Gy session table has one row for each active session.
For each service, rating group and pool reservation within a session, one
row is created to hold the allocation information. By default session and
allocation information is kept after the session is finished providing
history information about all Gy
sessions.<OCSGySessionSQL>
implements
the interface defined by OCSGySessionGeneric.pm
which
allows creating customised Gy session repositories.AuthBy DiaOCS GySession
parameter.INITIAL_REQUEST
is received.AddSessionQuery
. The values for %0
-
%7
come from OCSmsg
.UPDATE_REQUEST
is received.UpdateSessionQuery
. %0
is the ID
fetched with GetSessionSelect
. %1
is
the quota reservation change for this session.TERMINATION_REQUEST
is received.CloseSessionQuery
. %0
is the id
fetched with GetSessionSelect
.GetSessionSelect
. %0
is replaced by
the Diameter Session-Id
attribute
value.GetSessionSelect
statement.GetSessionColumnDef
parameters, one for each
interesting field returned by GetSessionSelect
. The
general format is:GetSessionColumnDef n, dataitem
n
is the index of the field in the result of
GetSessionSelect
. 0
is the first
field.dataitem
is the name of a entry in the
subscriber informationName | Description |
id |
Index or other identifier that uniquely identifies this session in the Gy Session |
start_time |
Unix timestamp for the session start |
reserved_quota |
Quota currently reserved for this session |
subscription_id |
Value of id identifying the subscriber as fetched by OCSDB |
session_id |
Session-Id for this Gy
session |
imsi |
IMSI for the subscriber |
nai |
NAI for the subscriber |
e164 |
E.164 formatted telephone number for the subscriber |
TccQuery
. %0
is the Unix timestamp
adjusted by Tcc timer value from Auth
DiaOCS
.TccQuery
to do the clean up.TccCleanupQuery
. %0
is the Unix
timestamp adjusted by Tcc timer value from Auth
DiaOCS
.AddAllocationQuery
.%0
is the id fetched with
GetAllocationsSelect
%1
tells if this reservation is for a session,
rating group or pool%2
is the
Service-Identifier
%3
is the Rating-Group
%4
is the number of the reserved service
units%5
is the amount of quota corresponding to the
reserved service units%6
is the pool identifier which identifies the
information about a pool in OCSDBUpdateServiceAllocationQuery
.%0
is the id fetched with
GetAllocationsSelect
%1
is the
Service-Identifier
%2
is the Rating-Group
%3
is the number of the reserved service
units%4
is the amount of quota corresponding to the
reserved service units%5
is the pool identifier which identifies the
information about a pool in OCSDBUpdateServiceAllocationQuery
and uses
UpdateRGAllocationQueryParam
with the same special
values as defined for
UpdateServiceAllocationQueryParam
.UpdateServiceAllocationQuery
and uses
UpdateRGAllocationQueryParam
with the same special
values as defined for
UpdateServiceAllocationQueryParam
.GetAllocationsSelect
. %0
is replaced
by the Diameter Session-Id
attribute
value.GetAllocationsSelect
statement.GetSessionColumnDef parameters
, one for each
interesting field returned by GetSessionSelect
. The
general format is:GetAllocationsColumnDef n, dataitem
n
is the index of the field in the result of
GetAllocationsSelect
. 0
is the
first field.dataitem
is the name of a entry in the
subscriber informationName | Description |
id |
Index or other identifier that uniquely identifies this allocation in the Gy session |
allocation_type |
Is this allocation for a service, rating group or pool |
service_identifier |
Has a non-empty and non-NULL value for service allocation |
rating_group |
Has a non-empty and non-NULL value for rating group allocation |
pool_identifier |
Has a non-empty and non-NULL when the service or rating group is a pool member or the allocation describes the pool |
service_units |
The number of units allocated for this service or rating
group.
NoteNot meaningful for allocation the describes a
pool
|
allocated_quota |
The amount of quota this the
service_units reserve |
pool_identifier |
Has a non-empty and non-NULL when the service or rating group is a pool member or the allocation describes the pool |
CloseAllocationQuery
. %0
is the
allocation ID.