University of Athens
http://www.cnl.di.uoa.gr
Communication Networks Laboratory
AAA, B
ILLING,
C
HARGING
in a Multi-Operator /
Multi-Service Provider
Environment
Involved Players in Service Provision
Content/Service
Provider
User/Subscriber
Application
domain
Internet Access
domain
Network
domain
User
domain
Fixed Operator
Mobile Operator
Internet Service
Provider
Service
Aggregator
!
Current (2G) business model is inflexible and leads to multiple
separate bills
"
From the Mobile Operator
"
From the Internet Service Provider
"
From the Content/Service Provider
!
Probable (3G) business models
"
Network Operator centric model
"
Service Aggregator centric model
"
Content/Service Provider centric model
are more flexible, support one-Stop Billing but arise a number of requirements,
such as:
• Standard format and attributes of charging records
• Standard protocols for the transmission of charging information
• Automatic apportioning of revenues between contributing players
• Open interfaces for dynamic provision of charging information
• Open interfaces for dynamic introduction of new pricing models
Requirements imposed by the involved players
Users/subcribers’ perspective:
!
Transparent Charges (subscribers would like to receive a single itemised bill for using
voice and data services offered by network operators and independent application/service
providers, “One-stop Billing”)
!
Predictable Charges (subscribers require the application of understandable Charging
Models, and to be constantly aware of the charges to be levied through the “Charging
Indication”)
Operators’ perspective:
!
Generic Charging Architecture enabling various charging models (flat-rate, volume-, time-,
QoS-based)
!
Layer based charging (transport, service and content)
!
Auditability (the charging system should be able, when requested, to prove the validity of
the calculated charges by tracing the origin)
!
Support of both pre-paid and post-paid charging mechanisms
Internet access and content/service providers’ perspective:
!
Flexible Models enabling Dynamic application of new pricing policy
!
Automatic procedure for the sharing of the incoming revenue
Charging
Function
Billing
Function
Accounting
Function
USER
CAB System
MD
Network
Operator
CCF
CGF
Reconf/tion
Function
VASP
Definition of basic terms
!
CHARGING
The Charging function collects information related to a chargeable event from specific
network nodes, which are able to generate such kind of information. As a chargeable
event can be considered any activity utilising network resources and related services
that the operator charges for. The charging information generated by network nodes is
structured in the form of Charging Data Record (CDR) and transferred via standards
charging protocols.
!
BILLING
The Billing function processes the records coming from the charging functional entity
according to the respective tariffs (stored in the HSS or inside the Billing System) in
order to calculate the charge for which the user should be billed. This function is
performed by a Billing System that transforms charging records into bills requiring
payment.
!
ACCOUNTING
In case of roaming the Accounting function is responsible to calculate the portion that
is due to each operator. Additionally, it is reasponsible for sharing the incoming
User CAB service 1..* 1..* Mobile operator 1..* 1..* 1..* 1..* VASP 0..* 0..* 1..* 1..* 0..* 0..* 0..* 0..* 1..* 1..* 0..* 0..* 1..* 1..* 1..* 1..* 1..* 1..*
A
flexible
Framework
for
Reconfigurable
Service
Provision
Reconfiguration
Manager
Location Manager
Reconfiguration Control/
Service Provision Platform
Open
APIs
Charging
Accounting and
Billing Module
MT
3G Core
Network
IP Network
UTRAN
GERAN
WLAN
Network infrastructure
Laptop
VASP
Technology independent open interfaces
API extensions for policy-based
reconfiguration
OSA, Parlay, JAIN APIs
HSS
LCS
Messaging
...
MDs
QoS
Charging
...
RCSPM
VASP
VASP
VASP
User Profiling
Service Discovery
Service Deployment
Service Data
Management
VASP
An
integrated
Charging,
Billing
&
Accounting
Framework
U
S
E
R
Configuration
Messages
Charging
Information
Bill
OSA-like
Interface
Open Network
Service for
Reconfigurability
CAB Gateway
CAB Service
Open
Network
Services
Open
Network
Services
OSA-like
Interface
Pricing
Policies
Open
APIs
Service
Providers
Domain
Open
APIs
Open
APIs
FunctionVAS
VAS
Open
Network
Services
Open
Network
Services
Manager Reconfiguration ChargingFunction Service ManagerAdvanced
Function MD
VAS
AAAVAS
MD AAA Manager Roaming Users Billing Accounting Packet-Switched Core network WLAN UTRAN CGF SGSN GGSN I-CSCFHSS
Internet Multimedia Subsystem AS GGSN SGSN S-CSCF BGCF MGCF MRFC P-CSCF CCFLCS
Metering Device MD Reconfiguration Manager Metering Device Access networks AP AP GIF AP AP IWU NODE B RNC NODE B WLAN AAA FAPS
CS
IMS
Service
Domain
HSS
VASP
SGSN
GGSN
MSC
GMSC
MMS
Relay/
Server
S-CSCF P-CSCF I-CSCF BGCF MRFC ASMD
AAA
Server
{
{
{
{
CGF
CCF
SCCF
CPCF
MDC
MD
C
H
A
R
G
I
N
G
G
A
T
E
W
A
Y
Event
Charging
Function
Bearer
Charging
Function
Session
Charging
Function
{
{
LCS
Charging Functional Model
AAA
Server
WLAN
IpInterfac e (from csapi) IpAppChargingSession creditAmountErr() creditAmountRes() creditUnitErr() creditUnitRes() debitAmountErr() debitAmountRes() debitUnitErr() debitUnitRes() directCreditAmountErr() directCreditAmountR... directCreditUnitErr() directCreditUnitRes() directDebitAmountErr() directDebitAmountRe... directDebitUnitErr() directDebitUnitRes() extendLifeTimeErr() extendLifeTimeRes() rateErr() rateRes() reserveAmountErr() reserveAmountRes() reserveUnitErr() reserveUnitRes() sessionEnded() (from cs) IpChargingSession creditAmountReq() creditUnitReq() debitAmountReq() debitUnitReq() directCreditAmountR... directCreditUnitReq() directDebitAmountRe... directDebitUnitReq() extendLifeTimeReq() getAmountLeft() getLifeTimeLeft() getUnitLeft() rateReq() release() reserveAmountReq() reserveUnitReq() (from cs) IpChargingManager createChargingSession() (from cs) <<uses>> IpAppChargingManager sessionAborted() (from cs) <<uses>> 1 0..n 1 0..n createSplitChargingSession()
IpAppMDReconfigurationSession <<uses>> IpMDReconfigurationManager createReconfigurationSession() 1 0..n 1 IpAppMDReconfigurationManager sessionAborted() 1 0..n <<uses>> IpInterface (from csapi) (from cs) (from cs) (from cs) IpMDReconfigurationSession monitorFlowReq() cancelFlowMonitoring() modifyFlowMonitoringReq() directCollectMeteringDataReq() applyMeteringPolicyReq directApplyMeteringPolicyReq() cancelMeteringPolicy() (from cs) monitorFlowErr() monitorFlowRes() cancelFlowMonitoringAck() applyMeteringPolicyErr() applyMeteringPolicyRes() directApplyMeteringPolicyErr() directApplyMeteringPolicyRes() modifyFlowMonitoringErr() modifyFlowMonitoringRes() directCollectMeteringDataErr() directCollectMeteringDataRes() cancelMeteringPolicyAck() release() sessionEnded()
IpAppAdvancedChargingServiceSession currentRevenueErr() currentRevenueRes() directCollectFlowInfoErr() directCollectFlowInfoRes() applyPricingPolicyErr() applyPricingPolicyRes() directApplyPricingPolicyErr() directApplyPricingPolicyRes() IpAdvancedChargingServiceSession currentRevenueReq() directCollectFlowInfoReq() applyPricingPolicyReq directApplyPricingPolicyReq() <<uses>> cancelPricingPolicyAck() cancelPricingPolicy() IpAdvancedChargingServiceManager createAdvancedServiceSession() activateLocationBasedChargingReq() cancelLocationBasedCharging() 1 0..n 1 IpAppAdvancedChargingServiceManager sessionAborted() 1 0..n <<uses>> activateLocationBasedChargingErr() activateLocationBasedChargingRes() cancelLocationBasedChargingAck() IpInterface (from csapi) (from cs) (from cs) (from cs) (from cs) addChargingRecordReq() addChargingRecordErr() addChargingRecordRes() release() sessionEnded()