The accounting object controls call related accounting data and the final destination for the accounting records (CDRs). The SBC Core supports the following as possible destinations for the accounting records:

  1. An external CDR server – SBC will transfer accounting records via SFTP if writing records to an external server is enabled. The CDR file roll is controlled through eventLog configuration based on file size and time interval. Depending on the application, you can set a low roll interval in order to transfer the files to the remote server.
  2. RADIUS accounting server – Accounting records can also be written to an external RADIUS accounting server.

    Note

    Records are always written to the local disk.

You can configure the SBC accounting object using the following options:

 For deployments that require it, users with admin privileges can configure the SBC Core to generate CDRs in the format of the (former GENBAND) Q-series SBCs. Refer to Accounting - Q-SBC CDR - CLI for more information. 

Configure CDR Admin Parameters

To set up CDR configuration, use the following command syntax.

Command Syntax

% set oam accounting admin
 	cdrVerToGenerate <0 | 10.1> 
	earlyAttemptState <disabled | enabled>
	eventAcctState <disabled | enabled>
	eventAcctPsxInfoState <disabled | enabled>
	eventAcctMethods <eventMessage | eventNotify | eventOptions | eventPublish | eventRegister | eventRefer | eventSubscribe>
	generationMode <allcalls | destination | none | origination>
	generateSipRecordingCdr <disabled | enabled>
    intermediateAcctInterval <interval, in seconds>
	intermediateAcctMode <interval | telcordia>
	intermediateAcctState <disabled | enabled>
	intermediateLongDurGenTime <hr:min:sec:deci-sec>
	intermediateLongDurThreshold <duration, in hours>
	intermediateTrapState <disabled | enabled>
	maxRecordSequenceNum <uint16 | uint32>
	patchVer <0-255>	
	populateIpTgFarEndSwitchType <disabled | enabled>
	populateNonPortedLnpNumbers <false | true>
	populateRemoteGsxInfoState <disabled | enabled>
	secondStageInheritFirstStage <false | true>
	sendEgressCdrInfoOnReceipt <false | true>
	startAcctState <disabled | enabled>
 
% show oam accounting admin

Command Parameters

Parameter

Length/Range

Description

cdrVerToGenerateN/A

The SBC version on which the CDRs must remain formatted even after the SBC software is upgraded. The valid values for the configuration option are 0 or 10.1 for the SBC 10.1 release. The default value for the configuration is 0 (disabled). If the option is disabled, the CDRs are formatted according to the CAM version of the software release loaded on the SBC.

Note: The valid values list will change over time to support future releases.

  • 0 - (default - indicates this control is disabled)
  • 10.1

Examples of how the configuration control works, if the users do not want to update the billing systems with every SBC upgrade:

Upgrade ScenarioAction and/or Effect

Upgrade from SBC 8.2 (or any old release) to 10.1 

The new control does not take effect.

Upgrade from SBC 8.2 ( or any old release) to 11.1 (or future releases later than 10.1) 

  • Baseline the SBC release and the Billing Systems to SBC 10.1.
  • Once the SBC and the billing system are on SBC 10.1, set the new configuration on the SBC to "10.1" from 0 (disabled).

If the configuration is set to the currently-loaded SBC software version (provided the current SBC loaded version is greater than or equal to 10.1) the CDR formatting is retained according to the selected SBC version across the upgrades.

Upgrade from SBC 10.1 to 11.1 (or future release later than 10.1) 

Set the new configuration to 10.1 from 0 (disabled) prior to the upgrade.

Fresh installation of the SBC (version greater than or equal to 10.1 ) 

  • Set the configuration before the SBC is commissioned to take the calls.
  • Ensure the configuration on the new SBCs are set to 10.1 as a part of the initial config load, before taking any traffic.

Example: you are planning to add more SBCs to a cluster already using the current feature (the SBC version is 11.1 and the CDRs are formatted to 10.1 by having the new config set to 10.1 on the SBCs).

earlyAttemptState

N/A

Specifies whether or not to generate early ATTEMPT records. An early ATTEMPT record is associated with an early call disconnect, before the request is sent. Options are:

  • disabled (default) – Do not generate early ATTEMPT records.
  • enabled – Generate early ATTEMPT records.

Note:

The SBC SIP code prevents the SBC processing issues by clearing calls when in congestion, as described below:

  • The SBC stores the machine congestion levels 0, 1, and 2.
  • If the SBC reaches congestion level 2, the SIP code automatically stops generating the early ATTEMPT CDR.
  • When the machine congestion level reduces to 0, the SIP code automatically starts to generate the early ATTEMPT CDR (assuming the generation is enabled).
  • A log is generated (per SCM process) that indicates the number of early ATTEMPT CDRs not generated due to congestion.
eventAcctStateN/A

Enable flag to generate EVENT records for OOD SUBSCRIBE, REFER, NOTIFY, REGISTER, OPTIONS, MESSAGE and PUBLISH event records. CDRs are logged when OPTIONS is relayed to the egress side.

  • disabled (default)
  • enabled 
eventAcctPsxInfoStateN/A

Log event records containing PSX information, such as PSX Congestion level, PSX Processing Time, Policy Response Call Type, PSX Billing Info, Route Label, etc.

  • disabled (default)
  • enabled
eventAcctMethodsN/A

This container includes the following Event Accounting Method flags. The SBC logs OOD EVENT records for those flags which are enabled. All flags are disabled by default.

  • eventMessage – Log event records for Message method.
    • disabled (default)
    • enabled
  • eventNotify – Log event records for Notify method.
    • disabled (default)
    • enabled
  • eventOptions – Log event records for Options method.
    • disabled (default)
    • enabled
  • eventPublish – Log event records for Publish method.
    • disabled (default)
    • enabled
  • eventRegister – Log event records for Register method.
    • disabled (default)
    • enabled
  • eventRefer – Log event records for Refer method.
    • disabled (default)
    • enabled
  • eventSubscribe – Log event records for Subscribe method.
    • disabled (default)
    • enabled

To use this feature, eventAcctState must be enabled.

 

generateSipRecordingCdr

 N/A

Enables or disables generation of CDRs for recording SIP calls.

  • disabled (default)
  • enabled

generationMode

N/A

The type of calls for which accounting records should be logged on this SBC. Options are:

  •   orignation (default) – Log accounting records for which this SBC is the originating gateway.
  •   destination – Log accounting records for which this SBC is the destination gateway.
  •   allcalls – Log  accounting records for all calls.
  •   none – Log no  accounting records.

For SIP and H.323 calls, accounting records are generated for all calls (ingress and egress), unless this value is none.

intermediateAcctInterval

N/A

Intermediate Accounting Interval in seconds. (range: 5-86400 / default = 60).

This object only applies when sonusAcctIntAcctMode is set to interval(1).

intermediateAcctMode

N/A

The method by which intermediate records are generated.

  • interval (default) – Generate an intermediate record for each intermediateAcctInterval seconds throughout the call.
  • telcordia – Generate an intermediate record whenever the call exceeds the configured intermediateLongDurThreshold value (in hours) and the intermediateLongDurGenTime (of day) is reached.

intermediateAcctState

N/A

Use this flag to specify whether INTERMEDIATE Accounting Records are generated for calls which are stable for a duration exceeding the intermediate account interval.

  • enabled
  • disabled (default)

intermediateLongDurGenTime

N/A

Octet string that identifies the GMT time to generate Telcordia Long Duration accounting   records.

The format is 00:00:00.0 where each field range is:

field octets   contents      range   
----- -------  ------------  -----
1       1      hour          0..23
2       2      minutes       0..59
3       3      seconds       0..60 (use 60 for leap-second)
4       4      deci-seconds  0..9

intermediateLongDurThreshold

1-24

The Accounting   INTERMEDIATE Records Duration (in hours). This parameter is only applicable when intermediate records mode is set to telcordia. The INTERMEDIATE record is generated for each call whose duration exceeds this threshold on long duration generation time. (default = 24).

intermediateTrapState

N/A

Specifies whether a trap is generated when an INTERMEDIATE record is generated.

  • enabled
  • disabled (default)

maxRecordSequenceNum

N/A

Maximum length of the Record Sequence Number field in the CDR. Options are:

  • uint16 –   (default) 16-bit record sequence number 0 to 65535.
  • uint32 – 32-bit record sequence number 0 to 4294967295.
patchVer0-255

Specifies a CAM patch version to roll the accounting file and print version-specific fields.

Default: 0

populateIpTgFarEndSwitchType

N/A

Enable flag to use   Ingress Far End Switch Type passed down from ERE IP Trunkgroup for SIP ingress calls.

  • disabled (default)
  • enabled

populateNonPortedLnpNumbers

N/A

Enable flag to populate the Called Number Before Translation field in the accounting record for a number for which an LNP lookup was performed and lookup indicated that number has not been ported.

  • false
  • true (default)

populateRemoteGsxInfoState

N/A

Enable flag to allow the destination SBC to propagate its billing data to originating GSX/SBC for GW-GW calls.

  • disabled (default)
  • enabled

secondStageInheritFirstStage

N/A

Enable flag to allow second stage accounting records for two stage calls to inherit fields from the first stage call.

  • false (default)
  • true

sendEgressCdrInfoOnReceipt

N/A

Enable flag to send the egress CDR information immediately after receiving and processing it.

  • false (default)
  • true

startAcctState

N/A

Specifies whether Start Accounting is enabled or disabled for the Node.

  • disabled 
  • enabled (default)

Command Example

To configure CDR administration:

% set oam accounting admin earlyAttemptState enabled generationMode destination 
% set oam accounting admin intermediateAcctInterval 20 intermediateAcctMode telcordia intermediateAcctState enabled intermediateLongDurGenTime 02:03:04.2 intermediateLongDurThreshold 2 intermediateTrapState enabled 
% set oam accounting admin maxRecordSequenceNum uint16 populateIpTgFarEndSwitchType enabled populateNonPortedLnpNumbers true populateRemoteGsxInfoState enabled secondStageInheritFirstStage true sendEgressCdrInfoOnReceipt true startAcctState enabled

To display configured CDR administration details:

% show oam accounting admin
   generationMode               destination;
   intermediateAcctState        enabled;
   intermediateAcctInterval     20;
   secondStageInheritFirstStage true;
   populateNonPortedLnpNumbers  true;
   intermediateAcctMode         telcordia;
   intermediateLongDurGenTime   02:03:04.2;
   startAcctState               enabled;
   intermediateTrapState        enabled;
   populateRemoteGsxInfoState   enabled;
   earlyAttemptState            enabled;
   intermediateLongDurThreshold 2;
   sendEgressCdrInfoOnReceipt   true;
   populateIpTgFarEndSwitchType enabled;
   maxRecordSequenceNum         uint16;

Configure an External CDR Server

To configure the SBC to transfer files to an external CDR server, use the following command syntax.

CDR Server Command Syntax

% set oam accounting cdrServer
	admin <primary | secondary>
	bufferSize <4-1024>
    cdrPort <1-65535>
	connectionTimeout <15-120, in seconds>
	filePostfix <1-255 characters>
	filePrefix <1-255 characters>
	ipAddress <server IP4 or IPv6 address>
	password <encrypted string password data>
	path <1-255 characters>
	transferTimeout <15-600, in seconds>
 	useFilePostFix <disable | enable>     
    useSshKeyFile <disable | enable>
	username <1-255 characters>
 
% show oam accounting cdrServer admin <primary | secondary>
 
% delete oam accounting cdrServer admin 
 
% request oam accounting cdrServer admin <primary | secondary>
	forceCurrentServer
    generateSshPublicKeys
	resetCdrServerStats

CDR Server Command Parameters

Parameter

Length/Range

Description

admin

N/A

Use this object to specify server type:

  • primary
  • secondary
bufferSize4-1024The data size to send to the SFTP server. Note that some servers may not handle large sizes. (default = 1024)
cdrPort1-65535The SSH port number of the remote server. (default = 22)

connectionTimeout

15-120

The time to wait, in seconds, before timing out the connect operation.(default = 30)

filePostfix

1-255 characters

The temporary extension used when useFilePostFix copies the file to the specific CDR server.

filePrefix

1-255 characters

The remote file prefix that is used to form the remote file. This prefix will be appended with a date stamp and sequence number once transferred.

ipAddress  

IPv4 or IPv6
format

The IP Address of the external CDR server. The following IP address types are supported:

  • IPv4 – This is V4 IP address in dotted decimal form (for example 128.127.50.224).
  • IPv6 – This is V6 IP address in hexadecimal/colon form (for example, 1280:1276:3350:2224:2222:3333:8888:1245 or fd00:21:445:128::7880).

password

N/A

The remote server password.

path

1-255 characters

The remote directory path where the files should be transferred.

transferTimeout

15-600

The time to wait, in seconds, before timing out the file transfer. (default = 120).

useFilePostFix

N/A

When enabled, this flag appends the string specified by the filePostFix field to the file name of the CDR file while the SBC transfers/writes it to the specified (primary or secondary) remote CDR server. This allows CDR server applications to determine when the file is completely transferred. 

  • disable
  • enable (default)
useSshKeyFileN/A

Enable this parameter to use SSH public key for authenticating the remote CDR server.

  • disable (default)
  • enable

username

1-255 characters

Remote username.

CDR Server 'request' Parameters

Parameter

Description

forceCurrentServer

Use this request parameter to forcibly set the specified server as the current server.

generateSshPublicKeysGenerates SSH public key to authenticate the remote CDR servers.

resetCdrServerStats

Use this request parameter to reset the CDR server statistics.

 

CDR Server Command Example

To display the configured CDR server details:

% show oam accounting cdrServer admin
admin primary {
    ipAddress         10.10.10.10;
    username          admin;
	password          $3$6ukQCu3ULEw=;
    path              "testPath ";
    filePostFix		  cdr;
	filePrefix        cdr;
    connectionTimeout 15;
    transferTimeout   15;
	cdrPort           22;
 	useFilePostFix    enable;
	useSshKeyFile     enable;
 }


To display the complete status of CDR details from system-level command line:

> show table oam accounting cdrServer status
                           SUCCESSFUL  FAILED     PENDING
TYPE     STATE   PROGRESS  TRANSFERS   TRANSFERS  TRANSFERS
-------------------------------------------------------------
primary   active   idle       2           1          0
secondary standby  idle       0           7          0


To set specified server as current server:

> request oam accounting cdrServer admin secondary forceCurrentServer
[ok][2010-07-27 04:10:00]
 
> show table oam accounting cdrServer status
                                SUCCESSFUL  FAILED     PENDING   
TYPE       STATE    PROGRESS    TRANSFERS   TRANSFERS  TRANSFERS 
------------------------------------------------------------------
primary    standby  idle        2           0          0         
secondary  active   idle        0           7          0         
[ok][2010-07-27 04:12:36]


To reset server statistics for a server:

> request oam accounting cdrServer admin secondary resetCdrServerStats
[ok][2010-07-27 04:14:33]

> show table oam accounting cdrServer status
                                SUCCESSFUL  FAILED     PENDING   
TYPE       STATE    PROGRESS    TRANSFERS   TRANSFERS  TRANSFERS 
------------------------------------------------------------------
primary    standby  idle        2           0          0         
secondary  active   idle        0           0          0 


To configure event log roll interval:

% set oam eventLog typeAdmin acct rolloverInterval 60 rolloverType repetitive
[ok][2010-07-15 09:09:07]
[edit]
 
% set oam eventLog typeAdmin acct rolloverStartTime                         
   Possible completions:
   <dateTime (CCYY-MM-DDTHH:MM:SS)>
% set oam eventLog typeAdmin acct rolloverStartTime 2010-07-15T09:12:00
[ok][2010-07-15 09:09:49]
[edit]
 
% set oam eventLog typeAdmin acct rolloverAction start                
[ok][2010-07-15 09:10:00]
[edit]
 
% commit

Commit complete.
[ok][2010-07-15 09:10:02]


To set CDRs as compressed or uncompressed:

% set oam eventLog typeAdmin acct cdrFileTransferType compressed
[ok][2021-11-15 09:09:07]
[edit]

% set oam eventLog typeAdmin acct cdrFileTransferType uncompressed
[ok][2021-11-15 09:29:17]
[edit]


Configure RADIUS Accounting Support

Remote Authentication Dial In User Service (RADIUS) is a standardized protocol for supporting Authentication, Authorization, and Accounting (AAA) management in a distributed client-server architecture. The SBC can map CDR fields and other input parameters to attributes (standard as well as vendor-specific attributes) in RADIUS call-accounting records. The SBC, acting as a RADIUS client, can send the call-accounting records to an external RADIUS server.

The radius object allows you to configure RADIUS client parameters for transporting call accounting information from the SBC Core to a RADIUS sever as well as parameters needed to access the RADIUS server.

RADIUS Command Syntax

% set oam accounting radius
	accountingAdmin
	   failoverPolicy <prioritizedSelection | roundRobin>
   		maxErrorRate <percentage>
   		maxNoResponseTime <time, in milliseconds>
	   	maxPacketRetryCount <#>
	   	maxQueuedPacketsInMemory <#>
 	  	nasIdentifier <1-253 characters>
 	  	nasIpAddress <Ip Address>
  	 	sendNasIdentifier <false | true>
  	 	sendNasIpAddress <false | true>
 	  	state <disabled | enabled>
	radiusServer
 		cleanupDelay <delay amount>
		priority <#>
		serverAddress <IPv4 or IPv6 address>
		serverPort <UDP port>
		sharedSecret <16-128 characters>
		state <disabled | enabled>

RADIUS Command Parameters

Parameter

Description

accountingAdmin

Global accounting configuration for all RADIUS servers. Parameters include:

  • failoverPolicy – The failover policy for the radius servers upon error detection.
    • prioritizedSelection – (default) Select the server with the highest priority that is not marked as failed.
    • roundRobin – Select the server with the next lower priority.
  • maxErrorRate – Maximum percentage of timed out transactions allowed. If percentage is exceeded, the RADIUS server is considered failed. (range: 0-100 / default = 25).
  • maxNoResponseTime – Maximum time allowed, in milliseconds, to wait for any response from the server. If no responses are received from a RADIUS server within the allotted time, the server is considered failed. (range: 1000-10000 / default = 2000)
  • maxPacketRetryCount – Maximum number a packet is retransmitted before it is dropped, after which it is assumed that the RADIUS server rejected the packet. (range: 5-25 / default = 10).
  • maxQueuedPacketsInMemory – Maximum number of radius packets allowed to be queued in memory before they are flushed to disk. Packets are queued up in memory if no RADIUS servers are available (range: 10000 - 4.294967295E9 / default = 1000000).
  •  nasIdentifier – NAS-Identifier to send to RADIUS server (length: 1-253 characters).
  •  nasIpAddress – NAS IPv4 or IPv6 address to send to the RADIUS server.
  •  sendNasIdentifier – If “true”, send NAS identifier to the RADIUS server.
    • false (default)
    • true
  •   sendNasIpAddress – If “true”, send NAS IP address to the RADIUS server.
    • false
    • true (default)
  • state – Enable flag to send accounting records to a RADIUS server.
    • disabled (default)
    • enabled

radiusServer

Use this object to configure individual RADIUS servers.

  •  <server name>
  •  cleanupDelay – The time during which the RADIUS server maintains the received requests after they are acknowledged so that retries sent to the server can be detected (range: 1-30)
  •  priority – The server selection priority for this server. The lower the numerical value, the higher the priority.
  •  serverAddress – The IPv4 or IPv6 IP address of the server (using hostname, IPv4 address in dot notation, or IPv6 address in hex-colon notation).
  •  serverPort – Target UDP port used to send requests to the RADIUS server. This can be either a service name to be looked up in the services file, or an integer value.
  •  sharedSecret – The shared secret used to authenticate the packet. Length is between 16 and 128.
  •  state – The administrative state of the RADIUS server configuration.
    • disabled
    • enabled

RADIUS Command Example

To display the configuration of radius accounting administration parameters:

% show oam accounting radius accountingAdmin
state             disabled;
nasIpAddress      10.34.26.151;
nasIdentifier     nas2;
maxErrorRate      4;
maxNoResponseTime 3344;