Table Of Contents
Implementing SBC Billing
Contents
Prerequisites for Implementing Billing
Information About Implementing Billing
Standalone Billing Systems
Integrated Billing Systems
How to Implement Billing
Configuring Local Billing
Configuring Remote Billing
Configuration Examples of Implementing Billing
Configuring Local Billing: Example
Configuring Remote Billing: Example
Additional References
Related Documents
Standards
MIBs
RFCs
Technical Assistance
Related Command Summary
Implementing SBC Billing
The SBC billing component includes the following core features:
•
Compatibility with existing billing systems—To be able to fit the SBC billing system easily into a provider's existing billing architecture is an important functional requirement. This requirement entails the use of mechanisms to obtain billing information in a similar fashion to those of the existing mechanisms.
•
Integration with next-generation technologies and solutions—Equally important as compatibility with existing systems is the requirement to employ next-generation billing technologies, so that service information from SBC, softswitches, voicemail and unified messaging applications, and so on can be collated and billed in a distributed environment.
•
High availability and fault tolerance.
•
Flexible architecture.
The function of the billing component can broadly be divided into two modes:
•
Standalone, record-based call logging.
•
Third-party integrated, distributed RADIUS-based call and event logging.
Note
For a complete description of commands used in this chapter, refer to the Cisco IOS XR Session Border Controller Command Reference. To locate documentation for other commands that appear in this chapter, use the command reference master index, or search online.
Feature History for Implementing SBC Billing
Release
|
Modification
|
Release 3.3.0
|
This feature was introduced on the Cisco XR 12000 Series Router.
|
Release 3.3.1
|
The cache command was modified to take a cache name as the argument rather than the cache path.
|
Release 3.4.0
|
No modification.
|
Release 3.5.0
|
No modification.
|
Release 3.6.0
|
No modification.
|
Contents
•
Prerequisites for Implementing Billing
•
Information About Implementing Billing
•
How to Implement Billing
•
Configuration Examples of Implementing Billing
•
Additional References
•
Related Command Summary
Prerequisites for Implementing Billing
The following prerequisites are required to implement SBC billing:
•
You must be in a user group associated with a task group that includes the proper task IDs for SBC commands being used. For detailed information about user groups and task IDs, see the Configuring AAA Services on Cisco IOS XR Software module of the Cisco IOS XR System Security Configuration Guide.
•
You must install and activate the package installation envelope (PIE) for the SBC software.
For detailed information about PIE installation, refer to the Upgrading and Managing Cisco IOS XR Software module in the Cisco IOS XR Getting Started Guide.
•
To implement billing on the signaling border element (SBE) you must obtain a unique network element ID for the SBE from your network administrator. In addition, you must perform the following tasks depending on what form of billing you require.
–
To implement hard disk record-based call logging, you must first obtain and configure the file hardware and file handling systems (FTP and backup, for instance).
–
To implement integrated RADIUS-based call logging, you must first obtain and configure the file cache hardware and set up the RADIUS network infrastructure.
Information About Implementing Billing
The following sections describe SBC billing topologies. It is critical to understand all SBC billing features and capabilities before performing billing configurations for the SBC.
•
Standalone Billing Systems
•
Integrated Billing Systems
The "Additional Information about Billing Support" module provides additional non-configuration-specific details on many aspects of billing, such as:
•
Event Message Transmission
•
Call Detail Records
•
Administration and Configuration
•
Logging and Alarms
•
Fault Tolerance
•
Security
Standalone Billing Systems
Standalone billing and billing caching is supported in both a unified model SBC, or a standalone SBE. A standalone billing system comprises the following modes of operation and events:
•
When a call starts, SBC begins recording billable events for that call.
•
At the end of the call, SBC stops recording, and collates the events into a single call detail record (CDR).
•
The CDR is stored on disk. Available disk space constrains the number of CDRs that can be stored. For example: 24 hours of records could take up approximately 10 GB of disk space.
In the event that disk space becomes unavailable, an alarm log in the form of a Simple Network Management Protocol (SNMP) trap is generated, requesting that an administrator free up disk space by removing CDRs. No further CDRs are logged until more disk space is made available, but the system continues to accept calls.
A set of thresholds are configured on SBC, which defines a progression of alarms triggered by increasing file size; this enables an administrator to free up disk space before it runs out.
•
The format of the CDRs is in extensible markup language (XML) format, which can be parsed into the format required by the target billing platform.
The CDR format most often used by softswitch vendors to generate CDRs is the Bellcore AMA Format, described in Billing Automatic Message Accounting Format (BAF) Generic Requirements (BAF-GR-1100-CORE). Unfortunately for the next-generation of Voice over IP (VoIP) applications, such as SBC, the BAF format is too telephony specific, and does not contain sufficient provision for IP-centric logging information. (For example, it does not allow for logging of Session Description Protocol (SDP) or RTCP statistics). In addition, the format is not extensible, so it is not possible to define extensions to contain these fields.
An XML format is a desirable alternative, because XML is a flexible, standardized methodology and is commonly used where data must be translated between different platforms (such as between an SBC and a billing server). See the "End-to-End SBC Configuration Example on a Cisco XR 12000 Series Router" module for more information.
Integrated Billing Systems
Integrated billing is achieved through the PacketCable Event Messages architecture (see the PacketCable 1.5 Event Messages Specification; PKT-SP-EM1.5-I01-050128) as exemplified in Figure 15 where the SBC is integrated into this architecture. As shown, the billing server and softswitch both support PacketCable Event Messages.
ISP-A shows SBC operating in a unified model where the billing system is being deployed as a distributed billing system consisting of three billing servers. The SBC can be configured to send to these servers in a range of ways, such as to all three simultaneously, or to use one primary and two backups.
In the unified model, the system operates as follows:
•
The SBC produces event messages (EMs). These event messages are billable or other interesting events, such as call start, call end, and media-type changes.
•
The SBC (and other elements of the system), which produces EMs, sends them in real time (or batched up for network efficiency) using the RADIUS protocol to the billing server.
•
The billing server collates EMs into call detail records.
•
In the event that a billing server(s) is unavailable, the EM is marked as being unsent and is stored for up to 24 hours. (The EMs are stored on the Cisco XR 12000 Series Router hard disk depending on the free space available.)
•
An alarm log is generated, and the EM is resent to the RADIUS servers by manual CLI commands when the RADIUS servers are back online.
ISP-B shows SBC operating in a distributed model where the billing system is being deployed using a single billing server and a softswitch.
In the distributed model, the system operates as follows:
•
Only the SBE communicates with the billing server. That is, no event messages are generated by the DBE. All media-specific information (for example: gate request information and media statistics) is sent by the DBE to the SBE which then generates event messages as required to send to the billing servers.
•
The billing server collates billing information both from the SBE and the softswitch to provide the ISP with a single billing point. The softswitch only interface to the billing service is one of the ways service providers could use to get billing information. It is outside the scope of SBC billing.
•
In the event that a billing server(s) is unavailable, the EM is marked as being unsent and is stored for up to 24 hours. An alarm log is generated, and the EM will be resent by the billing component when the RADIUS server is back online.
Note
Standalone billing and billing caching is supported in both a unified model SBC, or a standalone SBE.
Note
The PacketCable 1.5 Event Messages Specification discusses sending the identifying information (the BCID and FEID) on the outgoing INVITE and responding SDP so that correlation can be done between the two sets of billing data. SBC does not support this mechanism for intra-domain or inter-domain transmission. The billing server must perform the correlation using an alternative method (for example, using the telephone numbers dialed and the time of the call).
Figure 15 Integrated Billing Deployment
How to Implement Billing
The SBE can perform local or remote billing. The key objects to be configured for billing are the long duration checks and the physical location of the cache. To implement either local or remote billing, follow the procedures in the following sections:
•
Configuring Local Billing
•
Configuring Remote Billing
Configuring Local Billing
This task defines how to configure local billing configurations.
SUMMARY STEPS
1.
configure
2.
sbc service-name
3.
sbe
4.
billing local
5.
local address
6.
ldr-check HH:MM
7.
cache name
8.
minor-alarm-threshold value
9.
major-alarm-threshold value
10.
critical-alarm-threshold value
11.
show service sbc sbc name sbe billing local
12.
commit
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
RP/0/0/CPU0:router# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
RP/0/0/CPU0:router(config)# sbc mysbc
|
Enters the mode of an SBC service.
Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
RP/0/0/CPU0:router(config-sbc)# sbe
|
Enters the mode of an SBE entity within an SBC service.
|
Step 4
|
billing local
Example:
RP/0/0/CPU0:router(config-sbc-sbe)# billing
local
|
Enters the local billing mode used to configure billing policy on the SBE.
|
Step 5
|
local-address ipv4 ipv4_IP_address
Example:
RP/0/0/CPU0:router(config-sbc-sbe-lclbill)#
local-address
|
Configures the local IPv4 address for local billing.
|
Step 6
|
ldr-check HH:MM
Example:
RP/0/0/CPU0:router(config-sbc-sbe-lclbill)#
ldr-check 22:30
|
Configures the time of day (local time) to run the long duration record check for reporting over 24 hours.
The range of the HH:MM variable is 00:00 to 23:59.
|
Step 7
|
cache name
Example:
RP/0/RP0/CPU0:router(config-sbc-sbe-lclbill)#
cache mybillingrecords
|
Configures the directory where the billing information is stored when local billing is used.
|
Step 8
|
minor-alarm-threshold value
Example:
RP/0/0/CPU0:router(config-sbc-sbe-lclbill)#
minor-alarm-threshold 50
|
Configures the threshold (in MB) at which a minor alarm is generated if the CDR file reaches that size.
|
Step 9
|
major-alarm-threshold value
Example:
RP/0/0/CPU0:router(config-sbc-sbe-lclbill)#
major-alarm-threshold 500
|
Configures the threshold (in MB) at which a major alarm is generated if the CDR file reaches that size.
|
Step 10
|
critical-alarm-threshold value
Example:
RP/0/0/CPU0:router(config-sbc-sbe-lclbill)#
major-alarm-threshold 1000
|
Configures the threshold (in MB) at which a critical alarm is generated if the CDR file reaches that size.
|
Step 11
|
show service sbc sbc name sbe billing local
Example:
RP/0/0/CPU0:router(config-sbc-sbe-lclbill)#
show service sbc mysbc sbe billing local
|
Displays the current configuration parameters.
|
Step 12
|
commit
Example:
RP/0/0/CPU0:router(config-sbc-sbe-lclbill)#
commit
|
Saves configuration changes. Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.
|
Configuring Remote Billing
This task defines how to configure remote billing configurations.
SUMMARY STEPS
1.
configure
2.
sbc service-name
3.
sbe
4.
control address aaa ipv4 IP_address
5.
network-id id
6.
billing remote
7.
ldr-check HH:MM
8.
cache name
9.
local-address ipv4 path
10.
minor-alarm-threshold threshold
11.
major-alarm-threshold threshold
12.
critical-alarm-threshold threshold
13.
commit
14.
exit
15.
radius accounting SET-name
16.
server server-name
17.
address ipv4 ipv4_ip_address
18.
priority pri
19.
key key
20.
exit
21.
server server-name
22.
address ipv4 ipv4_ip_address
23.
priority pri
24.
key key
25.
exit
26.
activate
27.
exit
28.
radius accounting SET-name
29.
server server-name
30.
address ipv4 ipv4_ip_address
31.
priority pri
32.
key key
33.
exit
34.
server server-name
35.
address ipv4 ipv4_ip_address
36.
priority pri
37.
key key
38.
exit
39.
activate
40.
exit
41.
show
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
RP/0/0/CPU0:router# configure
|
Enables global configuration mode.
|
Step 2
|
sbc service-name
Example:
RP/0/0/CPU0:router(config)# sbc mysbc
|
Enters the mode of an SBC service.
Use the service-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
RP/0/0/CPU0:router(config-sbc)# sbe
|
Enters the mode of an SBE entity within an SBC service.
|
Step 4
|
control address aaa ipv4 IP_address
Example:
RP/0/0/CPU0:router(config-sbc-sbe)# control
address aaa ipv4 192.168.113.2
|
Configure an SBE to use a given IPv4 AAA control address when contacting an authentication or billing server. This address in a unique address within the SVI.
|
Step 5
|
network-id id
Example:
RP/0/0/CPU0:router(config-sbc-sbe)# network-id
5678
|
Configures the network ID.The range of the values for the id variable before hexadecimal conversion is 0 to 99999. The network ID is an identifier for the SBE. It can be picked arbitrarily.
|
Step 6
|
billing remote
Example:
RP/0/0/CPU0:router(config-sbc-sbe)# billing
remote
|
Enters the remote billing mode used to configure billing policy on the SBE.
|
Step 7
|
ldr-check HH:MM
Example:
RP/0/0/CPU0:router(config-sbc-sbe-rmtbill)#
ldr-check 22:30
|
Configures the time of day (local time) to run the long duration record check for reporting over 24 hours.
The range of the HH:MM variable is 00:00 to 23:59.
|
Step 8
|
cache name
Example:
RP/0/0/CPU0:router(config-sbc-sbe-rmtbill)#
cache mybillingrecords
|
Configures the directory where the billing information is saved when remote billing is used.
|
Step 9
|
local-address ipv4 ipv4_IP_address
Example:
RP/0/0/CPU0:router(config-sbc-sbe-rmtbill)#
local-address ipv4 192.168.113.2
|
Configures the local IPv4 address. This IP address should be one of the SVI subnets not used for signaling or media, and will be used by the SBC to communicate with a RADIUS server(s).
|
Step 10
|
minor-alarm-threshold threshold
Example:
RP/0/0/CPU0:router(config-sbc-sbe-rmtbill)#
minor-alarm-threshold 50
|
Configures the threshold (in MB) at which a minor alarm event message is generated.
|
Step 11
|
major-alarm-threshold threshold
Example:
RP/0/0/CPU0:router(config-sbc-sbe-rmtbill)#
major-alarm-threshold 500
|
Configures the threshold (in MB) at which a major alarm event message is generated.
|
Step 12
|
critical-alarm-threshold threshold
Example:
RP/0/0/CPU0:router(config-sbc-sbe-rmtbill)#
critical-alarm-threshold 1000
|
Configures the threshold (in MB) at which a critical alarm event message is generated.
|
Step 13
|
commit
Example:
RP/0/0/CPU0:router(config-sbc-sbe-rmtbill)#
commit
|
Saves configuration changes. Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.
|
Step 14
|
exit
Example:
RP/0/0/CPU0:router(config-sbc-sbe-rmtbill)#
exit
|
Exits the rmtbill mode to the sbe mode.
|
Step 15
|
radius accounting SET-name
Example:
RP/0/0/CPU0:router(config-sbc-sbe)# radius
accounting set1
|
Enters the mode for configuring a RADIUS client for accounting purposes.
|
Step 16
|
server server-name
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc)# server
Cisco-AR1-PC
|
Enters the mode for configuring an accounting server.
|
Step 17
|
address ipv4 ipv4_ip_address
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)#
address ipv4 200.200.200.152
|
Configures the address of an accounting server.
|
Step 18
|
priority pri
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)#
priority 2
|
Configures the priority of the accounting server. The pri argument must be in the range of 1 to 10 (highest to lowest).
|
Step 19
|
key key
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)# key
cisco
|
Configures the RADIUS authentication key or shared secret of the accounting servers.
|
Step 20
|
exit
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)#
exit
|
Exits the server mode to the acc mode.
|
Step 21
|
server server-name
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc)# server
Cisco-AR2-SUN
|
Enters the mode for configuring an accounting server.
|
Step 22
|
address ipv4 ipv4_ip_address
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)#
address ipv4 200.200.200.153
|
Configures the address of an accounting server.
|
Step 23
|
priority pri
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)#
priority 2
|
Configures the priority of the accounting server. The pri argument must be in the range of 1 to 10 (highest to lowest).
|
Step 24
|
key key
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)# key
cisco
|
Configures the RADIUS authentication key or shared secret of the accounting servers.
|
Step 25
|
exit
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)#
exit
|
Exits the server mode to the acc mode.
|
Step 26
|
activate
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc)#
activate
|
Initiates the SBC service.
|
Step 27
|
exit
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc)# exit
|
Exits the acc mode to the sbe mode.
|
Step 28
|
radius accounting SET-name
Example:
RP/0/0/CPU0:router(config-sbc-sbe)# radius set2
|
Enters the mode for configuring a RADIUS client for accounting purposes.
|
Step 29
|
server server-name
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc)# server
CompanyB-iPhoneEx1
|
Enters the mode for configuring an accounting server.
|
Step 30
|
address ipv4 ipv4_ip_address
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)#
address ipv4 200.200.200.154
|
Configures the address of an accounting server.
|
Step 31
|
priority pri
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)#
priority 1
|
Configures the priority of the accounting server. The pri argument must be in the range of 1 to 10 (highest to lowest).
|
Step 32
|
key key
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)# key
CompanyBip
|
Configures the RADIUS authentication key or shared secret of the accounting servers.
|
Step 33
|
exit
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)#
exit
|
Exits the server mode to the acc mode.
|
Step 34
|
server server-name
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc)# server
CompanyB-RKS2
|
Enters the mode for configuring an accounting server.
|
Step 35
|
address ipv4 ipv4_ip_address
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)#
address ipv4 200.200.200.182
|
Configures the address of an accounting server.
|
Step 36
|
priority pri
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)#
priority 2
|
Configures the priority of the accounting server. The pri argument must be in the range of 1 to 10 (highest to lowest).
|
Step 37
|
key key
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)# key
CompanyBip
|
Configures the RADIUS authentication key or shared secret of the accounting servers.
|
Step 38
|
exit
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc-ser)#
exit
|
Exits the server mode to the acc mode.
|
Step 39
|
activate
Example:
RP/0/0/CPU0:router(config-sbc-sbe-acc)#
activate
|
Initiates the SBC service.
|
Step 40
|
exit
Example:
RP/0/0/CPU0:router(config-sbc-sbe-rmtbill)#
exit
|
Exits the rmtbill mode to the sbe mode.
|
Step 41
|
show
Example:
RP/0/0/CPU0:router(config-sbc-sbe)# show
|
Displays the current configuration status.
|
Configuration Examples of Implementing Billing
This section provides the following configuration examples:
•
Configuring Local Billing: Example
•
Configuring Remote Billing: Example
Configuring Local Billing: Example
The following example shows how to configure local billing:
major-alarm-threshold 500
major-alarm-threshold 1000
Configuring Remote Billing: Example
The following example shows how to configure remote billing:
control address aaa ipv4 192.168.113.2
cache cache my_billing_records
local-address ipv4 192.168.113.2
critical-alarm-threshold 3
address ipv4 200.200.200.152
address ipv4 200.200.200.153
address ipv4 200.200.200.154
address ipv4 200.200.200.182
Additional References
The following sections provide references related to implementing SBC billing.
Related Documents
Related Topic
|
Document Title
|
Cisco IOS XR master command reference
|
Cisco IOS XR Master Commands List
|
Cisco IOS XR SBC interface configuration commands
|
Cisco IOS XR Session Border Controller Command Reference
|
Initial system bootup and configuration information for a router using the Cisco IOS XR Software
|
Cisco IOS XR Getting Started Guide
|
Cisco IOS XR command modes
|
Cisco IOS XR Command Mode Reference
|
Standards
Standards
|
Title
|
PKT-SP-EM1.5-I01-050128
|
PacketCable 1.5 Event Messages Specification
|
BAF-GR-1100-CORE
|
Billing Automatic Message Accounting Format (BAF) Generic Requirements
|
MIBs
RFCs
RFCs
|
Title
|
No new or modified RFCs are supported by this feature, and support for existing RFCs has not been modified by this feature.
|
—
|
Technical Assistance
Description
|
Link
|
The Cisco Technical Support website contains thousands of pages of searchable technical content, including links to products, technologies, solutions, technical tips, and tools. Registered Cisco.com users can log in from this page to access even more content.
|
http://www.cisco.com/techsupport
|
Related Command Summary
This section provides an alphabetical list of the commands related to billing configuration on the Cisco XR 12000 Series Router. For more information about the commands, see the Cisco IOS XR Session Border Controller Command Reference.
Command
|
Purpose
|
billing {local | remote}
|
Enters the mode used to configure billing policy on the SBE.
|
cache name
|
Configures the name of the directory where the billing information cache is stored.
|
control address aaa ipv4 IP_address
|
Configure an SBE to use a given IPv4 AAA control address when contacting a billing server. This address in a unique address within the SVI.
|
critical-alarm-threshold value
|
Configures the threshold (in MB) at which a critical alarm event message is generated.
|
ldr-check HH:MM
|
Configures the time of day (local time) to run the long duration record check for reporting over 24 hours.
|
local-address ipv4 path
|
Configures the local IPv4 address.
|
major-alarm-threshold value
|
Configures the threshold (in MB) at which a major alarm event message is generated.
|
minor-alarm-threshold value
|
Configures the threshold (in MB) at which a minor alarm event message is generated.
|
network-id id
|
Configures the network ID. The range of the values for the id variable before hexadecimal conversion is 0 to 99999.
|