Service providers typically provide numerous voice and data services to end users (also referred to as subscribers). Examples of voice services are voice calls, call forwarding, call waiting, etc. Examples of data services are streaming audio, streaming video, Voice over Internet Protocol (VoIP), online gaming, and IP-TV. The data services are managed by a packet-switched (PS) core network, which interfaces the end user with external Packet Data Networks (PDN), such as the Internet. Some examples of PS-core networks are a General Packet Radio Service (GPRS) core network, an Evolved Packet Core (EPC) of a Long Term Evolution (LTE) network, etc. Mobile devices, such as cell phones, personal data assistants, smart phones, notebook computers, etc., may access the data services provided by the networks over an air interface with one or more base stations. The service providers use offline and online charging functions to keep track of the resource usage incurred by each device for using the various services. The 3GPP/3GPP2 standards groups have defined a set of specifications that may be used to implement online charging systems and offline charging systems in the various network domains (e.g., a circuit-switched domain, a packet-switched domain, and/or a wireless domain), IP multimedia subsystems (IMS), and emerging 3G/OMA application services.
According to the 3GPP TS 32.240 specification, offline charging is a process where charging information for network resource usage is collected concurrently with the resource usage. The charging information is passed through a chain of charging functions, which results in the generation of Charging Data Record (CDR) files that are transferred to the network operator's billing domain for subscriber billing and/or inter-operator accounting. To implement offline charging, a Charging Trigger Function (CTF) is implemented in a network element that provides a service. The CTF collects information pertaining to chargeable events, assembles this information into matching charging events, and sends the charging events to a Charging Data Function (CDF), which may be implemented in the network element or in the Offline Charging System (OFCS).
The CDF receives the charging events from one or more CTFs, and uses the information included in the charging events to construct CDRs. A CDR is a formatted collection of information about a chargeable event (e.g., time of call set-up, duration of the call, amount of data transferred, etc.) for use in billing and accounting. The CDF then sends the CDRs to a Charging Gateway Function (CGF) of the OFCS. The CGF acts as a gateway between the network and the billing domain. Therefore, the CGF collects CDRs from the CDF (and other CDFs), optionally correlates the CDRs and writes the CDRs into a CDR file, and makes the CDR file available to the billing domain.
The 3GPP TS 32.240 specification provides for the support of Fully Qualified Partial CDRs (FQPCs) and Reduced Partial CDRs (RPCs) between a CDF and a CGF. A FQPC is a partial CDR that contains a complete set of the fields specified for the CDR type. This includes all the mandatory and conditional fields as well as those fields that the network operator has provisioned to be included in the CDR. A RPC is a partial CDR that only provides mandatory fields and information regarding changes in the session parameters relative to the previous partial CDR. As an example, the first partial CDR sent from a CDF to a CGF is a FQPC that includes all necessary fields. This FQPC acts as the basis for providing the missing information in RPCs subsequently received by the CGF for the same session. If information for the session has not changed, then the CGF may receive a RPC from the CDF. Upon receiving the RPC, the CGF is able to construct another FQPC from the RPC based on the prior FQPC it received for the same session.