5 Background Processes

This chapter explains the process which runs automatically as part of the Oracle Communications Convergent Charging Controller application. This process is started automatically by the SLEE.

diameterBeClient

The diameterBeClient takes SLEE messages from the diamActions library and converts them to Diameter messages. It also maintains all Diameter connections.

Startup

The diamActions library and diameterBeClient will load the configuration (from the eserv.config file and the SLC database) on startup and on receiving a SIGHUP, at which point it needs to reload the config.

Example DIAMETER Section

Here is an example DIAMETER section configuration in the eserv.config file.

DIAMETER = {DCD = {serviceDomainInterfaceName =
"dcdBeClient"loggedNotificationPeriod = 300loggedInvalidPeriod =
300databaseCacheValiditySeconds = 18000 Origin-Host =
"ocpc.oracle.com"Origin-Realm = "ocpc.oracle.com"serviceContextID =
"ocpc@oracle.com"Auth-Application-Id =
4Vendor-Specific-Application-Id = [{Vendor-Id =
193Auth-Application-Id = 4Acct-Application-Id = 19302}]enableDraft8
= false# scheme = "SchemeA"honour_disconnect = trueVendor-Id =
16247Product-Name = ""timeout_x = 30000000transmit_limit =
2trace_debug_flags = "all"statistics_interval =
300NotificationFilter = {CollectiveNotice = truePerPeerNotice =
{initial_request = trueupdate_request = truetermination_request =
trueevent_request = trueunknown_request = truetotal_request =
truerequest_timeout = truenon_request_type_result_codes =
true}}}DomainTypes = [{name = "DIAMETER"schemeName =
"SchemeA"routing = "Round Robin" voidUnusedReservation =
falsedefaultSessionFailover = 0defaultEventFailover =
0defaultFailureHandling = 0balanceEnquiryMethod =
"balanceCheck"includeDcdCdrFields = falsedefaultFixedCostDuration =
86400enableScap = falseoverwriteZeroCallAnswerTime = falseDomains =
[{name = "myDomainA"routing = "Round Robin" realmFailureWaitSeconds
= 20weighting = 1}{name = "myDomainB"routing =
"Failover"realmFailureWaitSeconds = 20weighting = 1}]AVPs = [{name
= "ConfirmNamedEventReservationRequest" mandatoryContents =
["Subscription-Id""Service-Identifier""NE-Used-Service-Unit"]optionalContents
= []}{avpCode = 443name = "Subscription-Id"type =
"Grouped"mandatoryContents =
["Subscription-Id-Type""Subscription-Id-Data"]optionalContents =
[]}{avpCode = 450name = "Subscription-Id-Type"type =
"Enumerated"literal = "0" # END_USER_E164}{avpCode = 444name =
"Subscription-Id-Data"type = "UTF8String"ccsConcept =
"acsProfile"profileBlock =18profileTag = 327686profileFormat =
"LNSTRING"conditionProfileBlock = 17conditionProfileTag =
2009conditionValue = 14}{avpCode = 439name =
"Service-Identifier"type = "Unsigned32"ccsConcept =
"eventType"cdrTag = "DIAMETER_SERVICE_ID"cdrOperation =
"replace"}{avpCode = 446name = "NE-Used-Service-Unit"type =
"Grouped"mandatoryContents =
["CC-Service-Specific-Units-Used"]}{avpCode = 417name =
"CC-Service-Specific-Units-Used"type = "Unsigned64"ccsConcept =
"numUnitsUsed"vendorId = 0flags = 0repeating = falsemaxOccurrences
= 10conversion = [{esg = 1vendor = 2serviceProvider = 1}{esg =
3vendor = 2serviceProvider = 2}]conversionScale =
1conversionRounding = "floor"interpretBase = 10octetLength = 0}{
name = ”3GPP-MS-TimeZone” vendorId = 10415 #3GPP
avpCode = 23 ccsConcept = “callerMsTimeZone” type =
“OcterString” octetLength = 2}{avpCode = 900vendorId =
16247name = "Custom-Scp-Action"type = "Enumerated"ccsConcept =
"scpAction"repeating = true}{name = "DirectNamedEventRequest-Money
Refund"mandatoryContents =
["Subscription-Id""SOS-TopUp-RequestedAction""Charging-Start-Timestamp"]}
{name = "SOS-TopUp-RequestedAction"type = "Enumerated"value =
"5"avpCode = 436} {name = "WalletRechargeRequest"mandatoryContents
=
["Subscription-Id""TopUp-RequestedAction""Charging-Start-Timestamp""Topup-Amount""Topup-Voucher-Number""Topup-Voucher-Type""Topup-Voucher-Id""Topup-Voucher-Serial-Number""Source-System-Id"]optionalContents
=
["Voucher-Recharge_Failed-Flag""Voucher-Recharge_Failed_Date_Time""Topup-Voucher-Balance-Validity-Start""Topup-Voucher-Balance-Validity-Relative"]}{name
= "Voucher-Recharge_Failed-Flag"type = "Integer32"vendorId =
581avpCode = 50998ccsConcept =
"voucherRechargeFailureFlag"includeIf = true} {name =
"Voucher-Recharge_Failed-Date-Time"type = "Integer32"vendorId =
581avpCode = 50999ccsConcept =
"voucherRechargeFailureDateTime"excludeWhenIn = "0"} {name =
"TopUp-RequestedAction"type = "Enumerated"value = "4"avpCode = 436}
{ name = "Charging-Start-Timestamp" type = "Integer32" profileBlock
= 18 profileTag = 327999 avpCode = 12000} { name =
"Topup-Voucher-Number" avpCode = 12001 ccsConcept =
"voucherInfoVoucher" type = "Integer32"} { name = "Topup-Amount"
avpCode = 12002 type = "Grouped" mandatoryContents = [
"Value-Digits" ] optionalContents = [ "Exponent" ]} {name =
"Value-Digits"avpCode = 12003ccsConcept = "voucherInfoValue"type =
"Integer32"} {name = "Topup-Voucher-Type"avpCode = 12005ccsConcept
= "voucherTypeName"type = "UTF8String"} {name =
"Topup-Voucher-Id"vendorId = 581avpCode = 50026ccsConcept =
"voucherInfoVoucherId"type = "Integer32"}{ name =
"Topup-Voucher-Serial-Number"avpCode = 12008ccsConcept =
"voucherInfoVoucherSerialNumber"type = "Unsigned64"}{name =
"Topup-Voucher-Balance-Validity-Start"avpCode = 12009ccsConcept =
"voucherInfoBalanceValidityStart"type = "Time"}{name =
"Topup-Voucher-Balance-Validity-Relative"avpCode = 12010type =
"Grouped"optionalContents =
["Topup-Voucher-Balance-Validity-Offset""Topup-Voucher-Balance-Validity-Type]}{name
= "Topup-Voucher-Balance-Validity-Offset"avpCode = 12011ccsConcept
= "voucherInfoBalanceValidityOffset"type = "Integer32"}{name =
"Topup-Voucher-Balance-Validity-Type"avpCode = 12012ccsConcept =
"voucherInfoBalanceValidityType"type = "Enumerated"}{name =
"WalletRechargeResponse"mandatoryContents =
["Topup-Balance-Information""Topup-Receipt-Number"]} {name =
"Topup-Balance-Information"vendorId = 581 # IntecavpCode =
50030type = "Grouped"mandatoryContents =
["Topup-Balance-Type-ID"]optionalContents =
["Topup-Balance-Expire-Date""Topup-Unit-Value"]} {name =
"Topup-Balance-Type-ID"avpCode = 50020vendorId = 581 #
IntecccsConcept = "walletInfoBalanceType"type = "Integer32"}{name =
"Topup-Balance-Expire-Date"vendorId = 581 # IntecavpCode =
50032ccsConcept = "walletInfoBalanceExpiry"type = "Integer32"}
{avpCode = 445vendorId = 581name = "Topup-Unit-Value"type =
"GroupedUnitValue"ccsConcept =
"walletInfoBalanceSystemValue"conversionScale = signInversion -
truemandatoryContents = ["Topup-Value-Digits"]optionalContents =
["Topup-Exponent"]} {avpCode = 447name = "Topup-Value-Digits"type =
"Integer64"} {avpCode = 449name = "Topup-Exponent"type =
"Integer32"literal = "1"} {name = "Topup-Receipt-Number"avpCode =
50024type = "UTF8String"} {name = "CreateEDRRequest"} {name =
"CreateEDRResponse"} {name = "BadPINRequest"} {name =
"BadPINResponse"}{name = "Termination-Cause"avpCode = 295type =
"Enumerated"ccsConcept = "terminationCause"conversion = [{esg = 8 #
releasedNoFundsvendor = 6 # DIAMETER_AUTH_EXPIRED}{esg = 9 #
disconnectedLegBNoFundsvendor = 6 # DIAMETER_AUTH_EXPIRED}{esg = 14
# callingPartyDisconnectedvendor = 1 # DIAMETER_LOGOUT}{esg = 15 #
calledPartyDisconnectedvendor = 1 # DIAMETER_LOGOUT}]}]ContextCopy
= [{contextItem = "scpActionSupervise"profileBlock = 17profileTag =
6356992 # Hex 0x00610000profileFormat = "INTEGER"}{contextItem =
"scpActionDoNotSupervise"profileBlock = 17profileTag = 6356993 #
Hex 0x00610001profileFormat = "INTEGER"}{contextItem =
"scpActionRelease"profileBlock = 17profileTag = 6356994 # Hex
0x00610002profileFormat = "INTEGER"}{contextItem =
"scpActionSendMessage"profileBlock = 17profileTag = 6356995 # Hex
0x00610003profileFormat = "INTEGER"}{contextItem =
"scpActionPlayAnnouncement"profileBlock = 17profileTag = 6356996 #
Hex 0x0061004profileFormat = "INTEGER"}{contextItem =
"scpActionSuperviseWithoutControlling"profileBlock = 17profileTag =
6356997 # Hex 0x0061005profileFormat = "INTEGER"}{contextItem =
"callState"profileBlock = 17profileTag = 6356998 # Hex
0x0061006profileFormat = "INTEGER"}{contextItem =
"sendCount"profileBlock = 17profileTag = 6356999 # Hex
0x0061007profileFormat = "INTEGER"}{contextItem =
"preCallAnnouncementId"profileBlock = 17profileTag = 6357000 # Hex
0x0061008profileFormat = "INTEGER"}{contextItem =
"preCallLowBalance"profileBlock = 17profileTag = 6357001 # Hex
0x0061009profileFormat = "INTEGER"}]TimeIn = {profileBlock =
17profileTag = 6357002 # Hex 0x006100a, continuing from example
ContextCopy valuesprofileFormat = "TIME"}TimeOut = {profileBlock =
17 profileTag = 6357003 # Hex 0x006100bprofileFormat = "TIME"}}] #
End of DomainTypes arrayPeerSchemes = [{schemeName = "SchemeA"Peers
= [{name = "host1"scheme = [ "scheme1", "schmeme2"
]permittedOriginHosts = ["host1.realm1.oracle.com"]peer_group =
"host1"transport = "tcp"initiation = "connect"RemoteAddresses = [
"192.168.1.10"]remote_port = 3868netmask6Bits = 128netmaskBits =
32permittedInstances = 0reqSctpInboundStreams =
8reqSctpOutboundStreams = 8sctp_hbinterval = 1000watchdogPeriod =
30connectionTimeout = 30inBufferSize = 0outBufferSize = 0} # end of
Peer host1{name = "host2"scheme = [ "scheme1", "schmeme2"
]permittedOriginHosts = ["host1.realm1.oracle.com"]peer_group =
"host1"transport = "tcp"initiation = "connect"RemoteAddresses = [
"192.168.1.11"]remote_port = 3868netmask6Bits = 128netmaskBits =
32permittedInstances = 0reqSctpInboundStreams =
8reqSctpOutboundStreams = 8sctp_hbinterval = 1000watchdogPeriod =
30connectionTimeout = 30inBufferSize = 0outBufferSize = 0} # end of
Peer host1} # End of Scheme A{schemeName = "SchemeB"Peers = [{name
= "host1"scheme = [ "scheme1", "schmeme2" ]permittedOriginHosts =
["host1.realm1.oracle.com"]peer_group = "host1"transport =
"tcp"initiation = "connect"RemoteAddresses = [
"192.168.1.10"]remote_port = 3868netmask6Bits = 128netmaskBits =
32permittedInstances = 0reqSctpInboundStreams =
8reqSctpOutboundStreams = 8sctp_hbinterval = 1000watchdogPeriod =
30connectionTimeout = 30inBufferSize = 0outBufferSize = 0} # end of
Peer host1]} # End of Scheme B] # End of PeerSchemes sectionroutes
= [{realm = "FirstRealm" host = "host1.realm1.oracle.com" priority
= 1round_robin = 0direct = true}]NamedEventTypes = [{eventClass =
"abc"eventName = "def"eventType = 123isDebit = true}{eventClass =
"ghi"eventName = "jkl"eventType = 456}]HostSpecificData = [{name =
"ocpc.oracle.com"DCD = {Origin-Host = "ocpc.oracle.com"Origin-Realm
= "ocpc.oracle.com"}routes = [{realm = "myDomainA"host =
"host1.realm1.oracle.com"priority = 1round_robin = 0direct =
true}]}]}

Statistics Logged by diameterBeClient

Diameter statistics are generated by each SLC, and then transferred at periodic intervals to the Service Management System (SMS) for permanent storage and analysis.

An existing statistics system (smsStats) provides functions for the collection of basic statistical events. This is provided in the Convergent Charging Controller SMS application. Refer to SMS Technical Guide for details.

Enabling Statistics

To enable statistics on an SCP after installing the database entries on the SMF.

  1. On the Table Replication tab of the SMS Node Management screen, select the DCD replication entry:

    SMS->SMF_STATISTICS_DEFN->SMF_STDEF_DCD

    and drag it over to the allocated Replication Groups. Refer to Configuring Table Replication in the SMS User's Guide for details.

  2. After creating the config file, you need to send a HUP to the smsStatsDaemon to force a reread of the database entries:

    # fuser -s 1
    /IN/service_packages/SMS/bin/smsStatsDaemon

DCD Statistics

SMS statistics are logged with APPLICATION_ID = ‘DCD’ (application number 97)

The following statistics are defined:

  • DIAMETER_MIN_LATENCY: Minimum Latency
  • DIAMETER_MAX_LATENCY: Maximum Latency
  • DIAMETER_AVERAGE_LATENCY: Average Latency
  • DIAMETER_CC_TYPE_INITIAL: Initial Requests sent
  • DIAMETER_CC_TYPE_UPDATE: Update Requests sent
  • DIAMETER_CC_TYPE_TERMINATION: Termination Requests sent
  • DIAMETER_CC_TYPE_EVENT: Event Requests sent
  • DIAMETER_TIMEOUT: CCRs timed out
  • DIAMETER_SUCCESS: CCAs received with success result code
  • DIAMETER_FAILURE_3xxx: CCAs received, error code in range 3000 to 3999
  • DIAMETER_FAILURE_4xxx: CCAs received, error code in range 4000 to 4999
  • DIAMETER_FAILURE_5xxx: CCAs received, error code in range 5000 to 5999
  • DIAMETER_FAILURE_1xxx: CCAs received, error code in range 1000 to 1999
  • DIAMETER_FAILURE_UNKNOWN: CCAs received, error code in undefined range
  • RAA_GENERATED_SENT: RAA generated from stored RAR, send to server
  • RAA_NO_OUTSTANDING_RAR: Rejecting received RAA, no record of RAR
  • RAA_RECEIVED: RAA received from DCA
  • RAA_SENT: RAA sent to Diameter server
  • RAA_SENT_WITH_ERROR: RAA sent to Diameter server, with error indication
  • RAA_TIMEOUT_ALREADY_CLEARED: RAA received, but timeout already cleared
  • RAA_UNKNOWN_SESSION_ID: RAA rejecting received RAA, unknown session ID
  • RAR_RECEIVED: RAR received from diameter server
  • RAR_SEND_FAIL: RAR failed to send RAR to DCA, no dialog etc.
  • RAR_SENT: RAR sent to DCA
  • RAR_TIMEOUT_RAA_SENT: RAR send timeout, and RAA reject sent to server
  • TERM_REQUEST_BEFORE_RAA: Termination request before RAA received
  • RAR_UNKNOWN_SESSION_ID: RAR received with unknown session ID
  • RAR_NOT_ENABLED_RESPONSE: RAR received gets configured resultcode

For all statistics, the Destination-Realm or Host ID involved is put into SMF_STATISTICS.DETAIL.

Reports

The following reports are available:

  • DCD System Stats
  • DCD System Stats by Realm/Host

Reports are generated using the SMS Report Functions screen. Refer to SMS User's Guide for details.

Example Report

Here is an example DCD System Stats report.

DCD Statistics Listing==============================Start
Date: 15 October 2007Finish Date: 30 October 2007Report Type:
Totals24 October 2007, 21:20:12Node Name Statistics ID
                     
     Totals--------------------
------------------------------------------------
----------mtv-tst-scp10 DIAMETER_FAILURE_UNKNOWN
                     
3mtv-tst-scp10 DIAMETER_SUCCESS
                    
319mtv-tst-scp10 DIAMETER_FAILURE_5xxx
                    
14mtv-tst-scp10 DIAMETER_CC_TYPE_INITIAL
                   
214mtv-tst-scp10 DIAMETER_FAILURE_1xxx
                     
2mtv-tst-scp10 DIAMETER_TIMEOUT
                    
63mtv-tst-scp10 DIAMETER_CC_TYPE_UPDATE
                    
185mtv-tst-scp10 DIAMETER_FAILURE_3xxx
                     
8mtv-tst-scp10 DIAMETER_CC_TYPE_TERMINATION
                    
86mtv-tst-scp10 DIAMETER_CC_TYPE_EVENT
                    
14mtv-tst-scp10 DIAMETER_FAILURE_4xxx
                    
39Completed

DCD EDRs

EDR Generation

EDRs are generated and processed by the slee_acs on the SLC and uploaded at regular intervals to the SMS using the cmnPushFiles process.

Diameter Charging Driver (DCD) tags are appended to the EDRs generated by the Advanced Control Services application. See Event Detail Record Reference Guide for the full list and descriptions.

DCD EDR Tags

Here are the EDR tags produced by DCD.

DIA_RC (result code)
Description: Number indicating diameter result-code received in CCA message.
Format: Integer
Concept: Result-Code
Notes:  
Example: DIA_RC=2001
DIA_REQ (current session message
number)
Description: Sequential number, indicating message within the current session.
Format: Integer
Concept: CC-Request-Number
Notes: For Diameter event based messages, this will always be 0, and hence not recorded.
Example: DIA_REQ=1
DIA_SID (session id)
Description: This is a unique value identifying the Diameter session.
Format:

Of the form:

DiameterIdentity;time;SLEE_CallID

Where:

  • DiameterIdentity is that of the SLC (that is, the Origin-Host used in the CCR message)
  • time is the time of the first request (expressed as the number of seconds since the Unix epoch time)
  • SLEE_CallID is a unique call identifier used by the SLEE processes to track each active session
Concept: Session-ID
Notes: The values for time and SLEE_CallID are in decimal format, but they are actually sent out in hexadecimal format.
Example: DIA_SID=scp1.oracle.com;47A228C3;15459A
DIA_TIME (time ccr sent)
Description: The time the CCR was sent, in hundredths of second
Format: Date - "YYYY-MM-DD-HH-MM-SSSS"
Concept: Session-ID
Notes:  
Example: DIA_TIME=2008-03-27-20-41-3831

Custom Tag Names

The cdrTag configuration parameter allows for an EDR to have tag names that are customer defined.

Example EDRs

Here are some example EDRs generated by DCD.

Refer to ACS EDR Tags for the non-DCD tags.

Example 1

Whole EDR for an InitialTimeReservation and ConfirmTimeReservation:

EDR:
'VOICE_MO|CID=285222|OA=0|OTI=0|CUST=1|SN=0777666444|TN=0777666444|CGN=8888887|CLI=8888887|SK=1|TCS=20080327204138|TCE=20080327204241|LPN=|LAC=|CS=4|CPC=10|CC=|CPNI=0|PCNA=|TPNI=0|PTNA=|CGNA=|TGNA=|TFN=ST-2,SDTN-21,uatb-3,PB-22,END-14|LGID=0|CPN=uatbWcseBrch|CAET=3|CCET=60.0|CA=60777666555|RELC=17|OCPI=|CPNN=3|CGNN=3|CPPI=1|NOAT=1|CBAT=0|FATS=0|CCTS=20080327204138|HTS=20080327204138|AIDL=|DIA_SID=nzwn-test03-z2;47ec0682;45a26|DIA_REQ=0|DIA_RC=2001|DIA_TIME=2008-03-27-20-41-3831|DIA_SID=nzwn-test03-z2;47ec0682;45a26|DIA_REQ=1|DIA_RC=2001|DIA_TIME=2008-03-27-20-41-3847|FCA=60777666555|WALR=86'

Note the DCD part of the EDR. All four tags are present twice:

  • The Initial Time Reservation

    DIA_SID=nzwn-test03-z2;47ec0682;45a26|DIA_REQ=0|DIA_RC=2001|DIA_TIME=2008-03-27-20-41-3831|

  • The Termination Time Reservation

    DIA_SID=nzwn-test03-z2;47ec0682;45a26|DIA_REQ=1|DIA_RC=2001|DIA_TIME=2008-03-27-20-41-3847|

Example 2

Whole EDR for DirectNamedEvent:

EDR:
'VOICE_MO|CID=287224|OA=0|OTI=0|CUST=1|SN=0777666444|TN=|CGN=8888887|CLI=8888887|SK=1|TCS=20080327231115|TCE=0|LPN=|LAC=|CS=1|CPC=10|CC=|CPNI=0|PCNA=|TPNI=0|PTNA=|CGNA=|TGNA=|TFN=ST-1,bevt-2,END-3|LGID=0|CPN=DirectDebit|CAET=0|CCET=0.0|CA=|RELC=31|OCPI=|CPNN=3|CGNN=3|CPPI=1|NOAT=0|CBAT=0|FATS=0|CCTS=0|HTS=0|AIDL=|DIA_SID=nzwn-test03-z2;47ec2993;461f8|DIA_RC=2001|DIA_TIME=2008-03-27-23-11-1577'

Note in the DCD part of the EDR that event based EDRs only need to receive DIA_SID, DIA_RC and DIA_TIME, that is, no DIA_REQ:

DIA_SID=nzwn-test03-z2;47ec2993;461f8|DIA_RC=2001|DIA_TIME=2008-03-27-23-11-1577'

Example 3

For cdrTag for MMM_TAG and ZZZ_TAG, the following would be an example of what the resulting EDR would look like.

CCS_BE|CID=205383|OA=0|OTI=0|CUST=1|SN=1130|TN=|CGN=0212994768|CLI=0212994768|SK=3|TCS=20091117192600|LPN=|LAC=|CS=1|CPC=10|CC=|CPNI=0|PCNA=|TPNI=0|PTNA=|CGNA=|TGNA=|TFN=ST-1,CCDR-8,CCDR-12,CCDR-14,bevt-2,DISC-3,END-7|LGID=0|CPN=ST-BE-END|OCPI=|CPNN=3|CGNN=3|CPPI=1|NOAT=0|CBAT=0|FATS=0|CCTS=0|HTS=0|AIDL=|AAA_TAG=11111|CMX_EC=CR96791|CMX_EN=BasicTest|DIA_SID=eng-host06-z6.usp.co.nz;4b02f8c8;32247|DIA_RC=2001|DIA_TIME=2009-11-17-19-26-0062|MMM_TAG=55555|ZZZ_TAG=777