Configuring Diameter-based Accounting

Diameter-based Rf accounting relies on many of the same configuration elements used for RADIUS based accounting. The following two sections explain how to configure both the account-config and account-servers configuration elements. In addition, you must ensure that accounting is enabled for each realm where you want it to occur. The accounting-enable parameter in the realm-config is enabled by default.

Configure the Global Diameter-based Accounting (Rf) Features

To configure the global Diameter-based accounting (Rf) features in the account-config:

  1. In Superuser mode, type configure terminal and press Enter.
    ORACLE# configure terminal
  2. Type session-router and press Enter.
    ORACLE(configure)# session-router
  3. Type account-config and press Enter.
    ORACLE(session-router)# account-config
    ORACLE(account-config)#
  4. hostname—The hostname for this system. This value must be set to “localhost” or the accounting configuration does not work properly.
  5. port—Enter 3868 for the RFC-recommended Diameter port number. You may enter a different port number.
    • minimum: 1025

    • maximum: 65535

  6. strategy—Set the strategy used to select the accounting server which the SBC sends accounting messages. The following are the available strategies:
    • hunt—Selects accounting servers in the order in which they are listed. If the first accounting server is online, working, and has not exceeded any of the defined constraints, all traffic is sent to it. Otherwise the second accounting server is selected. If the first and second accounting servers are offline or exceed any defined constraints, the third accounting server is selected. And so on through the entire list of configured servers
    • failover—Uses the first server in the list of predefined accounting servers until a failure is received from that server. Once a failure is received, it moves to the second accounting server in the list until a failure is received. And so on through the entire list of configured servers.
    • round robin—Selects each accounting server in order, distributing the selection of each accounting server evenly over time.
    • fastest round trip time—Selects the accounting server that has the fastest round trip time (RTT) observed during transactions with the servers (sending a record and receiving an ACK).
    • fewest pending—Selects the accounting server that has the fewest number of unacknowledged accounting messages (that are in transit to the SBC).
  7. protocol—Set this parameter to diameter to use the Rf accounting interface with a Diameter-based accounting server.
  8. state— Enter enabled to use accounting on this system.
  9. dns-realm—If using FQDN lookup of account-servers, specify the realm through which the system reaches DNS resources to resolve your FQDN(s) to IP address(es).
  10. max-msg-delay—Retain the default value of 60 seconds or indicate the length of time in seconds that you want the SBC to continue trying to send each accounting message. During this delay, the SBC can hold a generic queue of 4096 messages.
    • Minimum: zero (0)

    • Maximum: 4294967295

  11. max-wait-failover—Retain the default value of 100 messages or indicate the maximum number of accounting messages the SBC can store its message waiting queue for a specific accounting server, before it is considered a failover situation.

    Once this value is exceeded, the SBC attempts to send it accounting messages, including its pending messages, to the next accounting server in its configured list.

    • Minimum: one (1) message
    • Maximum: 4096 messages
  12. trans-at-close—Retain the default value of disabled if you do not want to defer the transmission of message information to the close of a session. Enter enabled if you want to defer message transmission.
    • disabled—The SBC transmits accounting information at the start of a session (Start), during the session (Interim), and at the close of a session (Stop). The transmitted accounting information for a single session might span a period of hours and be spread out among different storage files.
    • enabled—Limits the number of files on the SBC used to store the accounting message information for one session. It is easiest to store the accounting information from a single session in a single storage file.
  13. generate-start—Retain the default value ok if you want the ACR Start message to be generated once the SBC receives an OK message in response to an INVITE.

    Other options include:

    • none—Accounting Start message should not be generated.
    • invite—Accounting Start message should be generated once the SBC receives a SIP INVITE.
    • ""—When two quotation marks are entered next to each other (empty), behavior is identical to none value.
  14. generate-interim—Retain the default value reinvite-response to cause the SBC to send an Interim charging message to the accounting server.
    You can select none, one, or more than one of the following values:
    • ok—Start message is generated when the SBC receives an OK message in response to an INVITE.
    • reinvite—Interim message is generated when the SBC receives a SIP session reINVITE message.
    • reinvite-response (default)—Interim message is generated when the SBC receives a SIP session reINVITE and responds to it (for example, session connection or failure).
    • reinvite-cancel—Interim message is generated when the SBC receives a SIP session reINVITE, and the Reinvite is cancelled before the SBC responds to it.
    • unsuccessful-attempt—Interim message is generated when a SIP session set-up attempt from a preference-ordered list of next-hop destinations is unsuccessful. This can happen when a local policy lookup, LRT lookup, ENUM query response, or SIP redirect returns a preference-ordered list of next-hop destinations. The interim message contains: the destination IP address, the disconnect reason, a timestamp for the failure, and the number that was called.
  15. generate-event—Enter one or more valid events that prompt creation of an Event record. Enclosed multiple values in parenthesis and separate by spaces.

    value settings include triggering the SBC to generate an accounting message when it:

    • none—(default)
    • Register—Receives a SIP REGISTER.
    • Local-Register—Prompts the SBC to create Event ACRs on a re-REGISTER to which it replied.
    • message—Receives an SMS message.
  16. intermediate-period—Enter amount of time in seconds between generating periodic interim ACR messages during a SIP call. This parameter defaults to zero, which disables continuous Interim charging messages.
  17. vsa-id-range—Ensure that this parameter is left blank when communicating with a Diameter-based Rf accounting server.
  18. max-acr-retries — Retain the default value of zero (0) or enter the maximum number of times that the SBC can resend an ACR for a session.
    • Minimum: zero (0)
    • Maximum: 4
  19. acr-retry-interval — Retain the default value of 10 seconds or enter the time in seconds for the SBC to wait before resending an ACR for a session.
    • Minimum: 5
    • Maximum: 20
  20. acr-buffer-upper-threshold—The upper threshold for the ACR buffer after which the SBC will select an alternate server.
    • 90 (default)
    • 0 - 100
  21. acr-buffer-lower-threshold—The lower threshold for the ACR buffer which, when reached, the SBC will select the primary server again.
    • 70 (default)
    • 0 - 100
  22. maintain-ccf-affinity—Enable affinity between ACRs and CCFs so that all ACRs within a single session are sent to the same CCF, unless it goes down.
    • Disable (default)
    • Enable
  23. send-disconnect-peer-msg— Enables the system to send a DPR to the CCF before disconnecting from the CCF
    • Disable (default)
    • Enable
  24. next-priority-selection-interval—Specifies in minutes how long the system waits after experiencing an overload scenario before it refers to the next priority. The range is 0 to 60 minutes.
  25. Save your work.

Configure Accounting Servers

You must create one or more servers to which the SBC can send accounting messages.

  1. Continuing from the previous account-config configuration, enter the account server sub-element by typing account-servers Enter.
    AZALEA(account-config)# account-servers
    AZALEA(account-server)#
  2. hostname—Set this to the IP address or the FQDN of the Diameter-based Rf accounting server.
  3. fqdn-pooltype—When accessing a diameter accounting server using an FQDN, specify whether the pool of servers resolved to this FQDN is the primary or secondary pool of servers with which the system performs accounting functions. If all servers resolved to the primary pool are unavailable, the system uses the secondary pool from which it accesses CCF servers.
  4. port—Enter 3868 for the RFC-recommended Diameter port number. You may enter a different port number if desired.
    • minimum: 1025

    • maximum: 65535

  5. state—Retain the default enabled to enable this account server or enter disabled to disable it.
  6. min-round-trip—Retain the default 250 milliseconds or indicate the minimum round trip time of an accounting message.
    • minimum: 10 milliseconds

    • maximum: 5000 milliseconds

      A round trip consists of the following:

      The SBC sends an accounting message to the account server.

      The account server processes this message and responds back to the SBC.

      If the fastest RTT is the strategy for the account configuration, the value you enter here can be used to determine an order of preference (if all the configured account servers are responding in less than their minimum RTT).

  7. max-inactivity—Retain the default 60 seconds or indicate the length of time in seconds that you want the SBC with pending accounting messages to wait when it has not received a valid response from the target account server.
    • minimum: 1 second

    • maximum: 300 seconds

    Once this timer value is exceeded, the SBC marks the unresponsive account server as disabled in its failover scheme. When a server connection is marked as inactive, the SBC attempts to restart the connection and transfers pending messages to another queue for transmission. Accounting messages might be moved between different account servers as servers become inactive or disabled.
  8. restart-delay—Retain the default 30 seconds or indicate the length of time in seconds you want the SBC to wait before resending messages to a disabled account server.
    • minimum: 1 second

    • maximum: 300 seconds

  9. priority—Enter the number corresponding to the priority of this account server, for use with server prioritization. The default for this parameter is 0, meaning the prioritization feature is turned off—and that the SBC will therefore prioritize accounting servers by IP address and port.
  10. origin-realm—Enter the realm in which the SBC communicates with the Diameter Rf accounting server.
  11. domain-name-suffix—Enter the suffix to be appended to any Diameter FQDN or Diameter Identity used when the SBC communicates with the Diameter Rf accounting server. Your value can be any string, to which the SBC will prepend with a dot.
  12. watchdog-ka-timer—Set this parameter to the value in seconds that the SBC waits between sending DWRs. 0 disables this feature. Valid non-zero values are 6 - 65535
  13. Save your work.

Create a Dictionary File for Decoding AVPs

You can generate an AVP dictionary from the SBC to install and use for decoding Oracle-specific Rf AVPs in messages using Wireshark. After generating this dictionary, you include it within your Wireshark deployment and configure a Wireshark resource file. This allows Wireshark to decode standalone and grouped AVPs identified with the ACME_DIAM_VENDOR_ID label.

To create this dictionary, you:
  1. Login to your cloud SBC.
  2. Run the command dump_diam_dict from the ACLI. The system creates the file /opt/logs/OracleSBCRf.xml.
  3. Copy the file from the SBC using SFTP.
    Having generated the file, you next establish it as a Wireshark decode entity.
  4. Navigate to the path where your Wireshark application is installed. On Windows, this is typically "C:\Program Files\Wireshark\diameter".
  5. Open the dictionary.xml file, using a notepad application with Admin privileges. This file contains an assortment of content types, one of which is called an "ENTITY". The ENTITY list allows Wireshark to use decoding resources.
  6. Add a new entry to the ENTITY list, using the name of your AVP file. This procedure uses the example file name OracleSBCRf.xml. The code block below gives an example of two items in the ENTITY list, one of which is your new entry.
    ...
    <!ENTITY Custom SYSTEM “Custom.xml”> 
    <!ENTITY OracleSBCRF SYSTEM “OracleSBCRF.xml”>
    ...
  7. Close this file using the following syntax at the end of the file.
    ...
    &Custom;        
    &OracleSBCRF; 
    </dictionary>
  8. Put your OracleSBCRf.xml file in the same directory as the "diameter" file.
  9. Start or restart Wireshark.
At this point, Wireshark can decode the applicable AVPs sent within Rf interface messages.