summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8506.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc8506.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc8506.txt')
-rw-r--r--doc/rfc/rfc8506.txt7283
1 files changed, 7283 insertions, 0 deletions
diff --git a/doc/rfc/rfc8506.txt b/doc/rfc/rfc8506.txt
new file mode 100644
index 0000000..674d6b3
--- /dev/null
+++ b/doc/rfc/rfc8506.txt
@@ -0,0 +1,7283 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) L. Bertz, Ed.
+Request for Comments: 8506 Sprint
+Obsoletes: 4006 D. Dolson, Ed.
+Category: Standards Track Y. Lifshitz, Ed.
+ISSN: 2070-1721 Sandvine
+ March 2019
+
+
+ Diameter Credit-Control Application
+
+Abstract
+
+ This document specifies a Diameter application that can be used to
+ implement real-time credit-control for a variety of end-user services
+ such as network access, Session Initiation Protocol (SIP) services,
+ messaging services, and download services. The Diameter Credit-
+ Control application as defined in this document obsoletes RFC 4006,
+ and it must be supported by all new Diameter Credit-Control
+ application implementations.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ https://www.rfc-editor.org/info/rfc8506.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 1]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+Copyright Notice
+
+ Copyright (c) 2019 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+ This document may contain material from IETF Documents or IETF
+ Contributions published or made publicly available before November
+ 10, 2008. The person(s) controlling the copyright in some of this
+ material may not have granted the IETF Trust the right to allow
+ modifications of such material outside the IETF Standards Process.
+ Without obtaining an adequate license from the person(s) controlling
+ the copyright in such materials, this document may not be modified
+ outside the IETF Standards Process, and derivative works of it may
+ not be created outside the IETF Standards Process, except to format
+ it for publication as an RFC or to translate it into languages other
+ than English.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 2]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+Table of Contents
+
+ 1. Introduction ....................................................6
+ 1.1. Requirements Language ......................................7
+ 1.2. Terminology ................................................7
+ 1.3. Advertising Application Support ............................9
+ 2. Architecture Models .............................................9
+ 3. Credit-Control Messages ........................................11
+ 3.1. Credit-Control-Request (CCR) Command ......................11
+ 3.2. Credit-Control-Answer (CCA) Command .......................12
+ 4. Credit-Control Application Overview ............................13
+ 4.1. Service-Specific Rating Input and Interoperability ........14
+ 4.1.1. Specifying Rating Input AVPs .......................15
+ 4.1.2. Service-Specific Documentation .....................16
+ 4.1.3. Handling of Unsupported/Incorrect Rating Input .....16
+ 4.1.4. RADIUS Vendor-Specific Rating Attributes ...........17
+ 5. Session-Based Credit-Control ...................................17
+ 5.1. General Principles ........................................17
+ 5.1.1. Basic Support for Tariff Time Change ...............18
+ 5.1.2. Credit-Control for Multiple Services within
+ a (Sub-)Session ....................................19
+ 5.2. First Interrogation .......................................23
+ 5.2.1. First Interrogation after Authorization and
+ Authentication .....................................25
+ 5.2.2. First Interrogation Included with
+ Authorization Messages .............................27
+ 5.3. Intermediate Interrogation ................................29
+ 5.4. Final Interrogation .......................................31
+ 5.5. Server-Initiated Credit Re-authorization ..................32
+ 5.6. Graceful Service Termination ..............................34
+ 5.6.1. Terminate Action ...................................37
+ 5.6.2. Redirect Action ....................................38
+ 5.6.3. Restrict Access Action .............................40
+ 5.6.4. Usage of the Server-Initiated Credit
+ Re-authorization ...................................41
+ 5.7. Failure Procedures ........................................41
+ 6. One-Time Event .................................................44
+ 6.1. Service Price Inquiry .....................................45
+ 6.2. Balance Checks ............................................46
+ 6.3. Direct Debiting ...........................................46
+ 6.4. Refunds ...................................................47
+ 6.5. Failure Procedure .........................................48
+ 7. Credit-Control Application State Machines ......................50
+ 8. Credit-Control AVPs ............................................59
+ 8.1. CC-Correlation-Id AVP .....................................61
+ 8.2. CC-Request-Number AVP .....................................62
+ 8.3. CC-Request-Type AVP .......................................62
+ 8.4. CC-Session-Failover AVP ...................................63
+
+
+
+Bertz, et al. Standards Track [Page 3]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ 8.5. CC-Sub-Session-Id AVP .....................................64
+ 8.6. Check-Balance-Result AVP ..................................64
+ 8.7. Cost-Information AVP ......................................64
+ 8.8. Unit-Value AVP ............................................65
+ 8.9. Exponent AVP ..............................................65
+ 8.10. Value-Digits AVP .........................................66
+ 8.11. Currency-Code AVP ........................................66
+ 8.12. Cost-Unit AVP ............................................66
+ 8.13. Credit-Control AVP .......................................66
+ 8.14. Credit-Control-Failure-Handling AVP (CCFH) ...............67
+ 8.15. Direct-Debiting-Failure-Handling AVP (DDFH) ..............68
+ 8.16. Multiple-Services-Credit-Control AVP .....................68
+ 8.17. Granted-Service-Unit AVP .................................70
+ 8.18. Requested-Service-Unit AVP ...............................71
+ 8.19. Used-Service-Unit AVP ....................................71
+ 8.20. Tariff-Time-Change AVP ...................................72
+ 8.21. CC-Time AVP ..............................................72
+ 8.22. CC-Money AVP .............................................72
+ 8.23. CC-Total-Octets AVP ......................................72
+ 8.24. CC-Input-Octets AVP ......................................72
+ 8.25. CC-Output-Octets AVP .....................................73
+ 8.26. CC-Service-Specific-Units AVP ............................73
+ 8.27. Tariff-Change-Usage AVP ..................................73
+ 8.28. Service-Identifier AVP ...................................74
+ 8.29. Rating-Group AVP .........................................74
+ 8.30. G-S-U-Pool-Reference AVP .................................74
+ 8.31. G-S-U-Pool-Identifier AVP ................................75
+ 8.32. CC-Unit-Type AVP .........................................75
+ 8.33. Validity-Time AVP ........................................75
+ 8.34. Final-Unit-Indication AVP ................................76
+ 8.35. Final-Unit-Action AVP ....................................77
+ 8.36. Restriction-Filter-Rule AVP ..............................78
+ 8.37. Redirect-Server AVP ......................................78
+ 8.38. Redirect-Address-Type AVP ................................79
+ 8.39. Redirect-Server-Address AVP ..............................79
+ 8.40. Multiple-Services-Indicator AVP ..........................80
+ 8.41. Requested-Action AVP .....................................80
+ 8.42. Service-Context-Id AVP ...................................81
+ 8.43. Service-Parameter-Info AVP ...............................82
+ 8.44. Service-Parameter-Type AVP ...............................82
+ 8.45. Service-Parameter-Value AVP ..............................83
+ 8.46. Subscription-Id AVP ......................................83
+ 8.47. Subscription-Id-Type AVP .................................83
+ 8.48. Subscription-Id-Data AVP .................................84
+ 8.49. User-Equipment-Info AVP ..................................84
+ 8.50. User-Equipment-Info-Type AVP .............................84
+ 8.51. User-Equipment-Info-Value AVP ............................85
+ 8.52. User-Equipment-Info-Extension AVP ........................85
+
+
+
+Bertz, et al. Standards Track [Page 4]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ 8.53. User-Equipment-Info-IMEISV AVP ...........................86
+ 8.54. User-Equipment-Info-MAC AVP ..............................86
+ 8.55. User-Equipment-Info-EUI64 AVP ............................86
+ 8.56. User-Equipment-Info-ModifiedEUI64 AVP ....................86
+ 8.57. User-Equipment-Info-IMEI AVP .............................86
+ 8.58. Subscription-Id-Extension AVP ............................87
+ 8.59. Subscription-Id-E164 AVP .................................87
+ 8.60. Subscription-Id-IMSI AVP .................................87
+ 8.61. Subscription-Id-SIP-URI AVP ..............................88
+ 8.62. Subscription-Id-NAI AVP ..................................88
+ 8.63. Subscription-Id-Private AVP ..............................88
+ 8.64. Redirect-Server-Extension AVP ............................88
+ 8.65. Redirect-Address-IPAddress AVP ...........................89
+ 8.66. Redirect-Address-URL AVP .................................89
+ 8.67. Redirect-Address-SIP-URI AVP .............................89
+ 8.68. QoS-Final-Unit-Indication AVP ............................89
+ 9. Result-Code AVP Values .........................................91
+ 9.1. Transient Failures ........................................91
+ 9.2. Permanent Failures ........................................92
+ 10. AVP Occurrence Table ..........................................92
+ 10.1. Credit-Control AVP Table .................................93
+ 10.2. Re-Auth-Request/Re-Auth-Answer AVP Table .................94
+ 11. RADIUS/Diameter Credit-Control Interworking Model .............94
+ 12. IANA Considerations ...........................................97
+ 12.1. Application Identifier ...................................97
+ 12.2. Command Codes ............................................97
+ 12.3. AVP Codes ................................................97
+ 12.4. Result-Code AVP Values ...................................98
+ 12.5. CC-Request-Type AVP ......................................98
+ 12.6. CC-Session-Failover AVP ..................................98
+ 12.7. CC-Unit-Type AVP .........................................99
+ 12.8. Check-Balance-Result AVP .................................99
+ 12.9. Credit-Control AVP .......................................99
+ 12.10. Credit-Control-Failure-Handling AVP .....................99
+ 12.11. Direct-Debiting-Failure-Handling AVP ....................99
+ 12.12. Final-Unit-Action AVP ...................................99
+ 12.13. Multiple-Services-Indicator AVP ........................100
+ 12.14. Redirect-Address-Type AVP ..............................100
+ 12.15. Requested-Action AVP ...................................100
+ 12.16. Subscription-Id-Type AVP ...............................100
+ 12.17. Tariff-Change-Usage AVP ................................100
+ 12.18. User-Equipment-Info-Type AVP ...........................100
+ 13. Parameters Related to the Credit-Control Application .........101
+ 14. Security Considerations ......................................101
+ 14.1. Direct Connection with Redirects ........................102
+ 14.2. Application-Level Redirects .............................103
+
+
+
+
+
+Bertz, et al. Standards Track [Page 5]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ 15. Privacy Considerations .......................................104
+ 15.1. Privacy-Sensitive AVPs ..................................104
+ 15.2. Data Minimization .......................................106
+ 15.3. Diameter Agents .........................................107
+ 16. References ...................................................107
+ 16.1. Normative References ....................................107
+ 16.2. Informative References ..................................110
+ Appendix A. Credit-Control Sequences .............................111
+ A.1. Flow I ....................................................111
+ A.2. Flow II ...................................................113
+ A.3. Flow III ..................................................116
+ A.4. Flow IV ...................................................117
+ A.5. Flow V ....................................................119
+ A.6. Flow VI ...................................................120
+ A.7. Flow VII ..................................................121
+ A.8. Flow VIII .................................................123
+ A.9. Flow IX ...................................................124
+ Acknowledgements .................................................130
+ Authors' Addresses ...............................................130
+
+1. Introduction
+
+ This document specifies a Diameter application that can be used to
+ implement real-time credit-control for a variety of end-user services
+ such as network access, Session Initiation Protocol (SIP) services,
+ messaging services, and download services. ("Credit-control" is
+ sometimes abbreviated as "CC" in figures and tables throughout this
+ document.) The Diameter Credit-Control application as defined in
+ this document obsoletes [RFC4006], and it must be supported by all
+ new Diameter Credit-Control application implementations. This
+ document provides a general solution to real-time cost and
+ credit-control.
+
+ The prepaid model has been shown to be very successful -- for
+ instance, in GSM networks, where network operators offering prepaid
+ services have experienced a substantial growth of their customer base
+ and revenues. Prepaid services are now cropping up in many other
+ wireless and wire-line-based networks.
+
+ In mobile networks, additional functionality is required beyond that
+ specified in the Diameter base protocol [RFC6733]. For example, the
+ 3GPP charging and billing requirements document [TGPPCHARG] states
+ that an application must be able to rate service information in
+ real time. In addition, it is necessary to check that the end user's
+ account provides coverage for the requested service prior to
+ initiation of that service. When an account is exhausted or expired,
+ the user must be denied the ability to compile additional chargeable
+ events.
+
+
+
+Bertz, et al. Standards Track [Page 6]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ A mechanism has to be provided to allow the user to be informed of
+ the charges to be levied for a requested service. In addition, there
+ are services such as gaming and advertising that may credit as well
+ as debit a user account.
+
+ The other Diameter applications provide service-specific
+ authorization, and they do not provide credit authorization for
+ prepaid users. The credit authorization shall be generic and
+ applicable to all the service environments required to support
+ prepaid services.
+
+ To fulfill these requirements, it is necessary to facilitate
+ credit-control communication between the network element providing
+ the service (e.g., Network Access Server (NAS), SIP Proxy,
+ Application Server) and a credit-control server.
+
+ The scope of this specification is credit authorization. Service-
+ specific authorization and authentication are out of scope.
+
+1.1. Requirements Language
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here.
+
+1.2. Terminology
+
+ AAA: Authentication, Authorization, and Accounting.
+
+ AA-Answer: "AA-Answer" generically refers to a service-specific
+ authorization and authentication answer. AA-Answer commands are
+ defined in service-specific authorization applications, e.g.,
+ [RFC7155] [RFC4004].
+
+ AA-Request: "AA-Request" generically refers to a service-specific
+ authorization and authentication request. AA-Request commands are
+ defined in service-specific authorization applications, e.g.,
+ [RFC7155] [RFC4004].
+
+ Credit-control: "Credit-control" is a mechanism that directly
+ interacts in real time with an account and controls or monitors
+ the charges related to service usage. Credit-control is a
+ process of (1) checking whether or not credit is available,
+ (2) credit reservation, (3) deduction of credit from the end-user
+ account when service is completed, and (4) refunding of reserved
+ credit that is not used.
+
+
+
+Bertz, et al. Standards Track [Page 7]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Diameter Credit-Control server: A Diameter Credit-Control server
+ acts as a prepaid server, performing real-time rating and
+ credit-control. It is located in the home domain and is accessed
+ by Service Elements or Diameter AAA servers in real time, for the
+ purpose of price determination and credit-control before the
+ service event is delivered to the end user. It may also interact
+ with Business Support Systems.
+
+ Diameter Credit-Control client: A Diameter Credit-Control client is
+ an entity that interacts with a credit-control server. It
+ monitors the usage of the granted quota according to instructions
+ returned by the credit-control server.
+
+ Interrogation: The Diameter Credit-Control client uses interrogation
+ to initiate a session-based credit-control process. During the
+ credit-control process, it is used to report the used quota and
+ request a new one. An interrogation maps to a request/answer
+ transaction.
+
+ One-time event: A charging transaction session comprising a single
+ request and single response.
+
+ Rating: The act of determining the cost of the service event.
+
+ Service: A type of task performed by a Service Element for an
+ end user.
+
+ Service Element: A network element that provides a service to the
+ end users. The Service Element may include the Diameter
+ Credit-Control client or another entity (e.g., a RADIUS AAA
+ server) that can act as a credit-control client on behalf of the
+ Service Element. In the latter case, the interface between the
+ Service Element and the Diameter Credit-Control client is outside
+ the scope of this specification. Examples of Service Elements
+ include NASs, SIP Proxies, and Application Servers such as
+ messaging servers, content servers, and gaming servers.
+
+ Service event: An event relating to a service provided to the
+ end user.
+
+ Session-based credit-control: A credit-control process that makes
+ use of several interrogations: the first, a possible intermediate,
+ and the final. The first interrogation is used to reserve money
+ from the user's account and to initiate the process. Intermediate
+ interrogations (if any) may be needed to request a new quota while
+ the service is being rendered. The final interrogation is used to
+ exit the process. The credit-control server is required to
+ maintain session state for session-based credit-control.
+
+
+
+Bertz, et al. Standards Track [Page 8]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+1.3. Advertising Application Support
+
+ Diameter nodes conforming to this specification MUST advertise
+ support by including the value of 4 in the Auth-Application-Id of the
+ Capabilities-Exchange-Request and Capabilities-Exchange-Answer
+ commands [RFC6733].
+
+2. Architecture Models
+
+ The current accounting models specified in the RADIUS accounting and
+ Diameter base specifications [RFC2866] [RFC6733] are not sufficient
+ for real-time credit-control, where creditworthiness is to be
+ determined prior to service initiation. Also, the existing Diameter
+ authorization applications [RFC7155] [RFC4004] only provide service
+ authorization; they do not provide credit authorization for prepaid
+ users. In order to support real-time credit-control, a new type of
+ server is needed in the AAA infrastructure: the Diameter
+ Credit-Control server. The Diameter Credit-Control server is the
+ entity responsible for credit authorization for prepaid subscribers.
+
+ A Service Element may authenticate and authorize the end user with
+ the AAA server by using AAA protocols, e.g., RADIUS or the Diameter
+ base protocol (possibly extended via a Diameter application).
+
+ Accounting protocols such as RADIUS accounting and the Diameter base
+ accounting protocol can be used to provide accounting data to the
+ accounting server after service is initiated and to provide possible
+ interim reports until service completion. However, for real-time
+ credit-control, these authorization and accounting models are not
+ sufficient.
+
+ When real-time credit-control is required, the credit-control client
+ contacts the credit-control server with information about a possible
+ service event. The credit-control process is performed to determine
+ potential charges and to verify whether the end user's account
+ balance is sufficient to cover the cost of the service being
+ rendered.
+
+ Figure 1 illustrates the typical credit-control architecture, which
+ consists of a Service Element with an embedded Diameter
+ Credit-Control client, a Diameter Credit-Control server, and a AAA
+ server. A Business Support System is usually deployed; at a minimum,
+ it includes billing functionality. The credit-control server and AAA
+ server in this architecture model are logical entities. The real
+ configuration can combine them into a single host. The
+ credit-control protocol is the Diameter base protocol [RFC6733] with
+ the Diameter Credit-Control application.
+
+
+
+
+Bertz, et al. Standards Track [Page 9]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ When an end user requests services such as SIP or messaging, the
+ request is typically forwarded to a Service Element (e.g., a SIP
+ Proxy) in the user's home realm as defined in [RFC6733]. In some
+ cases, it might be possible that the Service Element in the local
+ realm [RFC6733] can offer services to the end user; however, a
+ commercial agreement must exist between the local realm and the home
+ realm. Network access is an example of a service offered in the
+ local realm where the NAS, through a AAA infrastructure,
+ authenticates and authorizes the user with the user's home network.
+
+ Service Element AAA and CC
+ +----------+ +---------+ Protocols+-----------+ +--------+
+ | End |<---->|+-------+|<------------>| AAA | |Business|
+ | User | +->|| CC || | Server |->|Support |
+ | | | || Client||<-----+ | | |System |
+ +----------+ | |+-------+| | +-----------+ | |
+ | +---------+ | ^ +--------+
+ +----------+ | | CC Protocol | ^
+ | End |<--+ | +-----v----+ |
+ | User | +------>|Credit- | |
+ +----------+ Credit-Control |Control |--------+
+ Protocol |Server |
+ +----------+
+
+ Figure 1: Typical Credit-Control Architecture
+
+ There can be multiple credit-control servers in the system for
+ redundancy and load balancing. The system can also contain separate
+ rating server(s), and accounts can be located in a centralized
+ database. To ensure that the end user's account is not debited or
+ credited multiple times for the same service event, only one entity
+ in the credit-control system should perform duplicate detection.
+ System-internal interfaces can exist to relay messages between
+ servers and an account manager. However, the detailed architecture
+ of the credit-control system and its interfaces is implementation
+ specific and is out of scope for this specification.
+
+ Protocol-transparent Diameter relays can exist between the
+ credit-control client and credit-control server. Also, Diameter
+ redirect agents that refer credit-control clients to credit-control
+ servers and allow them to communicate directly can exist. These
+ agents transparently support the Diameter Credit-Control application.
+ The different roles of Diameter agents are defined in Diameter base
+ [RFC6733], Section 2.8.
+
+ If Diameter Credit-Control proxies exist between the credit-control
+ client and the credit-control server, they MUST advertise support for
+ the Diameter Credit-Control application.
+
+
+
+Bertz, et al. Standards Track [Page 10]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+3. Credit-Control Messages
+
+ This section defines new Diameter message Command Code values that
+ MUST be supported by all Diameter implementations that conform to
+ this specification. The Command Codes are as follows:
+
+ +------------------------+---------+------+-------------+
+ | Command Name | Abbrev. | Code | Reference |
+ +------------------------+---------+------+-------------+
+ | Credit-Control-Request | CCR | 272 | Section 3.1 |
+ | Credit-Control-Answer | CCA | 272 | Section 3.2 |
+ +------------------------+---------+------+-------------+
+
+ Table 1: Credit-Control Commands
+
+ Section 3.2 of [RFC6733] (Diameter base) defines the Command Code
+ Format specification. These formats are observed in credit-control
+ messages.
+
+3.1. Credit-Control-Request (CCR) Command
+
+ The Credit-Control-Request message (CCR) is indicated by the Command
+ Code field being set to 272 and the 'R' bit being set in the Command
+ Flags field. It is used between the Diameter Credit-Control client
+ and the credit-control server to request credit authorization for a
+ given service.
+
+ The Auth-Application-Id MUST be set to the value 4, indicating the
+ Diameter Credit-Control application.
+
+ The CCR is extensible via the inclusion of one or more
+ Attribute-Value Pairs (AVPs).
+
+ Message Format:
+
+ <Credit-Control-Request> ::= < Diameter Header: 272, REQ, PXY >
+ < Session-Id >
+ { Origin-Host }
+ { Origin-Realm }
+ { Destination-Realm }
+ { Auth-Application-Id }
+ { Service-Context-Id }
+ { CC-Request-Type }
+ { CC-Request-Number }
+ [ Destination-Host ]
+ [ User-Name ]
+ [ CC-Sub-Session-Id ]
+ [ Acct-Multi-Session-Id ]
+
+
+
+Bertz, et al. Standards Track [Page 11]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ [ Origin-State-Id ]
+ [ Event-Timestamp ]
+ *[ Subscription-Id ]
+ *[ Subscription-Id-Extension ]
+ [ Service-Identifier ]
+ [ Termination-Cause ]
+ [ Requested-Service-Unit ]
+ [ Requested-Action ]
+ *[ Used-Service-Unit ]
+ [ Multiple-Services-Indicator ]
+ *[ Multiple-Services-Credit-Control ]
+ *[ Service-Parameter-Info ]
+ [ CC-Correlation-Id ]
+ [ User-Equipment-Info ]
+ [ User-Equipment-Info-Extension ]
+ *[ Proxy-Info ]
+ *[ Route-Record ]
+ *[ AVP ]
+
+3.2. Credit-Control-Answer (CCA) Command
+
+ The Credit-Control-Answer message (CCA) is indicated by the Command
+ Code field being set to 272 and the 'R' bit being cleared in the
+ Command Flags field. It is used between the credit-control server
+ and the Diameter Credit-Control client to acknowledge a
+ Credit-Control-Request command.
+
+ Message Format:
+
+ <Credit-Control-Answer> ::= < Diameter Header: 272, PXY >
+ < Session-Id >
+ { Result-Code }
+ { Origin-Host }
+ { Origin-Realm }
+ { Auth-Application-Id }
+ { CC-Request-Type }
+ { CC-Request-Number }
+ [ User-Name ]
+ [ CC-Session-Failover ]
+ [ CC-Sub-Session-Id ]
+ [ Acct-Multi-Session-Id ]
+ [ Origin-State-Id ]
+ [ Event-Timestamp ]
+ [ Granted-Service-Unit ]
+ *[ Multiple-Services-Credit-Control ]
+ [ Cost-Information ]
+ [ Final-Unit-Indication ]
+ [ QoS-Final-Unit-Indication ]
+
+
+
+Bertz, et al. Standards Track [Page 12]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ [ Check-Balance-Result ]
+ [ Credit-Control-Failure-Handling ]
+ [ Direct-Debiting-Failure-Handling ]
+ [ Validity-Time ]
+ *[ Redirect-Host ]
+ [ Redirect-Host-Usage ]
+ [ Redirect-Max-Cache-Time ]
+ *[ Proxy-Info ]
+ *[ Route-Record ]
+ *[ Failed-AVP ]
+ *[ AVP ]
+
+4. Credit-Control Application Overview
+
+ The credit authorization process takes place before and during
+ service delivery to the end user and generally requires the user's
+ authentication and authorization before any requests are sent to the
+ credit-control server. The credit-control application defined in
+ this specification supports two different credit authorization
+ models: credit authorization with money reservation and credit
+ authorization with direct debiting. In both models, the
+ credit-control client requests credit authorization from the
+ credit-control server prior to allowing any services to be delivered
+ to the end user.
+
+ In the first model, the credit-control server rates the request,
+ reserves a suitable amount of money from the user's account, and
+ returns the amount of credit reserved. Note that credit resources
+ may not imply actual monetary credit; credit resources may be granted
+ to the credit-control client in the form of units (e.g., data volume
+ or time) to be metered.
+
+ Upon receipt of a successful credit authorization answer with a
+ certain amount of credit resources, the credit-control client allows
+ service delivery to the end user and starts monitoring the usage of
+ the granted resources. When the credit resources granted to the user
+ have been consumed or the service has been successfully delivered or
+ terminated, the credit-control client reports back to the server the
+ used amount. The credit-control server deducts the used amount from
+ the end user's account; it may perform rating and make a new credit
+ reservation if the service delivery is continuing. This process is
+ accomplished with session-based credit-control that includes the
+ first interrogation, possible intermediate interrogations, and the
+ final interrogation. For session-based credit-control, both the
+ credit-control client and the credit-control server are required to
+ maintain credit-control session state. Session-based credit-control
+ is described in more detail, with more variations, in Section 5.
+
+
+
+
+Bertz, et al. Standards Track [Page 13]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ In contrast, credit authorization with direct debiting is a
+ single-transaction process wherein the credit-control server directly
+ deducts a suitable amount of money from the user's account as soon as
+ the credit authorization request is received. Upon receipt of a
+ successful credit authorization answer, the credit-control client
+ allows service delivery to the end user. This process is
+ accomplished with the one-time event. Session state is not
+ maintained.
+
+ In a multi-service environment, an end user can issue an additional
+ service request (e.g., data service) during an ongoing service (e.g.,
+ voice call) toward the same account. Alternatively, during an active
+ multimedia session, an additional media type is added to the session,
+ causing a new simultaneous request toward the same account.
+ Consequently, this needs to be considered when credit resources are
+ granted to the services.
+
+ The credit-control application also supports operations such as
+ service price inquiries, user's balance checks, and refunds of credit
+ on the user's account. These operations are accomplished with the
+ one-time event. Session state is not maintained.
+
+ Flexible failure handling, specific to the credit-control
+ application, is defined in the application. This allows the service
+ provider to control the credit-control client's behavior according to
+ its own risk management policy.
+
+ The Credit-Control-Failure-Handling AVP (also referred to as the
+ CCFH) and the Direct-Debiting-Failure-Handling AVP (also referred to
+ as the DDFH) are defined to determine what is done if the sending of
+ credit-control messages to the credit-control server has been
+ temporarily prevented. The usage of the CCFH and the DDFH allows
+ flexibility, as failure handling for the credit-control session and
+ one-time event direct debiting may be different.
+
+4.1. Service-Specific Rating Input and Interoperability
+
+ The Diameter Credit-Control application defines the framework for
+ credit-control; it provides generic credit-control mechanisms
+ supporting multiple service applications. The credit-control
+ application therefore does not define AVPs that could be used as
+ input in the rating process. Listing the possible services that
+ could use this Diameter application is out of scope for this generic
+ mechanism.
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 14]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ It is reasonable to expect that a service level agreement will exist
+ between providers of the credit-control client and the credit-control
+ server covering the charging, services offered, roaming agreements,
+ agreed-upon rating input (i.e., AVPs), and so on.
+
+ Therefore, it is assumed that a Diameter Credit-Control server will
+ provide service only for Diameter Credit-Control clients that have
+ agreed beforehand as to the content of credit-control messages.
+ Naturally, it is possible that any arbitrary Diameter Credit-Control
+ client can interchange credit-control messages with any Diameter
+ Credit-Control server, but with a higher likelihood that unsupported
+ services/AVPs could be present in the credit-control message, causing
+ the server to reject the request with an appropriate Result-Code.
+
+4.1.1. Specifying Rating Input AVPs
+
+ There are two ways to provide rating input to the credit-control
+ server: by either using AVPs or including the rating input in the
+ Service-Parameter-Info AVP. The general principles for sending
+ rating parameters are as follows:
+
+ 1. Using AVPs:
+
+ A. The service SHOULD reuse existing AVPs if it can use AVPs
+ defined in existing Diameter applications (e.g., [RFC7155]
+ for network access services). [RFC6733] strongly recommends
+ the reuse of existing AVPs.
+
+ For AVPs of type Enumerated, the service may require a new
+ value to be defined. Allocation of new AVP values is done as
+ specified in [RFC6733], Section 1.3.
+
+ B. New AVPs can be defined if the existing AVPs do not provide
+ sufficient rating information. In this case, the procedures
+ defined in [RFC6733] for creating new AVPs MUST be followed.
+
+ C. For services specific only to one vendor's implementation, a
+ vendor-specific AVP code for private use can be used. Where
+ a vendor-specific AVP is implemented by more than one vendor,
+ allocation of global AVPs is encouraged instead; refer to
+ [RFC6733].
+
+ 2. The Service-Parameter-Info AVP MAY be used as a container to pass
+ legacy rating information in its original encoded form (e.g.,
+ ASN.1 BER). This method can be used to avoid unnecessary
+ conversions from an existing data format to an AVP format. In
+ this case, the rating input is embedded in the Service-Parameter-
+ Info AVP as defined in Section 8.43.
+
+
+
+Bertz, et al. Standards Track [Page 15]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ New service applications SHOULD favor the use of explicitly defined
+ AVPs as described in items 1a and 1b, to simplify interoperability.
+
+4.1.2. Service-Specific Documentation
+
+ The service-specific rating input AVPs, and the contents of the
+ Service-Parameter-Info AVP or Service-Context-Id AVP (defined in
+ Section 8.42), are not within the scope of this document. To
+ facilitate interoperability, it is RECOMMENDED that the rating input
+ and the values of the Service-Context-Id be coordinated via an
+ informational RFC or other permanent and readily available reference
+ (preferably that of another cooperative standardization body, e.g.,
+ 3GPP, the Open Mobile Alliance (OMA), or 3GPP2). However, private
+ services may be deployed that are subject to agreements between
+ providers of the credit-control server and client. In this case,
+ vendor-specific AVPs can be used.
+
+ This specification, together with the above-mentioned service-
+ specific documents, governs the credit-control message. Service-
+ specific documents (i.e., those documents that do not define new
+ credit-control applications) define which existing AVPs or new AVPs
+ are used as input to the rating process; thus, the AVPs in question
+ have to be included in the Credit-Control-Request command by a
+ Diameter Credit-Control client supporting a given service as
+ "* [AVP]". Should the Service-Parameter-Info AVP be used, the
+ service-specific document MUST specify the exact content of this
+ Grouped AVP.
+
+ The Service-Context-Id AVP MUST be included at the command level of a
+ Credit-Control-Request to identify the service-specific document that
+ applies to the request. The specific service or rating-group the
+ request relates to is uniquely identified by the combination of
+ Service-Context-Id and Service-Identifier or rating-group.
+
+4.1.3. Handling of Unsupported/Incorrect Rating Input
+
+ Diameter Credit-Control implementations are required to support
+ mandatory rating-related AVPs defined in service-specific documents
+ for the services they support, according to the 'M' bit rules in
+ [RFC6733].
+
+ If a rating input required for the rating process is incorrect in
+ the Credit-Control-Request or if the credit-control server does not
+ support the requested service context (identified by the
+ Service-Context-Id AVP at the command level), the
+ Credit-Control-Answer MUST contain the error code
+ DIAMETER_RATING_FAILED. A CCA message with this error MUST contain
+ one or more Failed-AVP AVPs containing the missing and/or unsupported
+
+
+
+Bertz, et al. Standards Track [Page 16]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ AVPs that caused the failure. A Diameter Credit-Control client that
+ receives the error code DIAMETER_RATING_FAILED in response to a
+ request MUST NOT send similar requests in the future.
+
+4.1.4. RADIUS Vendor-Specific Rating Attributes
+
+ When service-specific documents include RADIUS vendor-specific
+ attributes that could be used as input in the rating process, the
+ rules described in [RFC7155] for formatting the Diameter AVP MUST be
+ followed.
+
+ For example, if the AVP code used is the vendor attribute type code,
+ the Vendor-Specific flag MUST be set to 1 and the Vendor-Id MUST be
+ set to the IANA Vendor identification value. The Diameter AVP Data
+ field contains only the attribute value of the RADIUS attribute.
+
+5. Session-Based Credit-Control
+
+5.1. General Principles
+
+ For session-based credit-control, several interrogations are needed:
+ the first, the intermediate (optional), and the final. This is
+ illustrated in Figures 3 and 4 (Sections 5.2.1 and 5.2.2).
+
+ If the credit-control client performs credit reservation before
+ granting service to the end user, it MUST use several interrogations
+ toward the credit-control server (i.e., session-based
+ credit-control). In this case, the credit-control server MUST
+ maintain the credit-control session state.
+
+ Each credit-control session MUST have a globally unique Session-Id as
+ defined in [RFC6733]; this Session-Id MUST NOT be changed during the
+ lifetime of a credit-control session.
+
+ Certain applications require multiple credit-control sub-sessions.
+ These applications would send messages with a constant Session-Id AVP
+ but with a different CC-Sub-Session-Id AVP. If several credit
+ sub-sessions will be used, all sub-sessions MUST be closed separately
+ before the main session is closed so that units per sub-session may
+ be reported. The absence of the CC-Sub-Session-Id AVP implies that
+ no sub-sessions are in use.
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 17]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Note that the Service Element might send a service-specific
+ re-authorization message to the AAA server due to expiration of the
+ authorization lifetime during an ongoing credit-control session.
+ However, the service-specific re-authorization does not influence the
+ credit authorization that is ongoing between the credit-control
+ client and credit-control server, as credit authorization is
+ controlled by the burning rate of the granted quota.
+
+ If service-specific re-authorization fails, the user will be
+ disconnected, and the credit-control client MUST send a final
+ interrogation to the credit-control server.
+
+ The Diameter Credit-Control server may seek to control the validity
+ time of the granted quota and/or the production of intermediate
+ interrogations. Thus, it MAY include the Validity-Time AVP in the
+ Answer message to the credit-control client. Upon expiration of the
+ Validity-Time, the credit-control client MUST generate a
+ credit-control update request and report the used quota to the
+ credit-control server. It is up to the credit-control server to
+ determine the value of the Validity-Time to be used for consumption
+ of the granted service unit(s) (G-S-U). If the Validity-Time is
+ used, its value SHOULD be given as input to set the session
+ supervision timer Tcc (the session supervision timer MAY be set to
+ two times the value of the Validity-Time, as defined in Section 13).
+ Since credit-control update requests are also produced at the expiry
+ of granted service units and/or for mid-session service events, the
+ omission of Validity-Time does not mean that intermediate
+ interrogation for the purpose of credit-control is not performed.
+
+5.1.1. Basic Support for Tariff Time Change
+
+ The Diameter Credit-Control server and client MAY optionally support
+ a tariff change mechanism. The Diameter Credit-Control server may
+ include a Tariff-Time-Change AVP in the Answer message. Note that
+ the granted units should be allocated based on the worst-case
+ scenario, so that the overall reported used units would never exceed
+ the credit reservation. For example, in the case of a forthcoming
+ tariff change, in which the new rate is higher, the allocation should
+ be given so it does not exceed the credit, assuming that all of it is
+ used after the tariff changed.
+
+ When the Diameter Credit-Control client reports the used units and a
+ tariff change has occurred during the reporting period, the Diameter
+ Credit-Control client MUST separately itemize the units used before
+ and after the tariff change. If the client is unable to distinguish
+ whether units straddling the tariff change were used before or after
+ the tariff change, the credit-control client MUST itemize those units
+ in a third category.
+
+
+
+Bertz, et al. Standards Track [Page 18]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ If a client does not support the tariff change mechanism and it
+ receives a CCA message carrying the Tariff-Time-Change AVP, it MUST
+ terminate the credit-control session, giving a reason of
+ DIAMETER_BAD_ANSWER in the Termination-Cause AVP.
+
+ For time-based services, the quota is consumed at the rate of the
+ passage of real time (ignoring leap seconds). That is, precisely
+ 1 second of quota is consumed per second of real time. At the time
+ when credit resources are allocated, the server already knows how
+ many units will be consumed before the tariff time change and how
+ many units will be consumed afterward. Similarly, the server can
+ determine the units consumed at the "before" rate and the units
+ consumed at the "afterward" rate in the event that the end user
+ closes the session before the consumption of the allotted quota.
+ There is no need for additional traffic between the client and server
+ in the case of tariff time changes for continuous time-based service.
+ Therefore, the tariff change mechanism is not used for such services.
+ For time-based services in which the quota is NOT continuously
+ consumed at a regular rate, the tariff change mechanism described for
+ volume and event units MAY be used.
+
+5.1.2. Credit-Control for Multiple Services within a (Sub-)Session
+
+ When multiple services are used within the same user session and each
+ service or group of services is subject to different cost, it is
+ necessary to perform credit-control for each service independently.
+ Making use of credit-control sub-sessions to achieve independent
+ credit-control will result in increased signaling load and usage of
+ resources in both the credit-control client and the credit-control
+ server. For instance, during one network access session, the
+ end user may use several HTTP-based services that could be charged
+ with different costs. The network-access-specific attributes, such
+ as Quality of Service (QoS), are common to all the services carried
+ within the access bearer, but the cost of the bearer may vary,
+ depending on its content.
+
+ To support these scenarios optimally, the credit-control application
+ enables independent credit-control of multiple services in a single
+ credit-control (sub-)session. This is achieved by including the
+ optional Multiple-Services-Credit-Control AVP in Credit-Control-
+ Request/Credit-Control-Answer messages. It is possible to request
+ and allocate resources as a credit pool shared between multiple
+ services. The services can be grouped into rating-groups in order to
+ achieve even further aggregation of credit allocation. It is also
+ possible to request and allocate quotas on a per-service basis.
+ Where quotas are allocated to a pool by means of the Multiple-
+ Services-Credit-Control AVP, the quotas remain independent objects
+
+
+
+
+Bertz, et al. Standards Track [Page 19]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ that can be re-authorized independently at any time. Quotas can also
+ be given independent result codes, validity times, and Final-Unit-
+ Indication AVP values or QoS-Final-Unit-Indication AVP values.
+
+ A rating-group gathers a set of services, identified by a Service-
+ Identifier and subject to the same cost and rating type (e.g.,
+ $0.1/minute). It is assumed that the Service Element is provided
+ with rating-groups, service-identifiers, and their associated
+ parameters that define what has to be metered by means outside the
+ scope of this specification. (Examples of parameters associated to
+ service-identifiers are IP 5-tuples and HTTP URLs.) Service-
+ identifiers enable authorization on a per-service-based credit as
+ well as itemized reporting of service usage. It is up to the
+ credit-control server whether to authorize credit for one or more
+ services or for the whole rating-group. However, the client SHOULD
+ always report used units at the finest supported level of
+ granularity. Where a quota is allocated to a rating-group, all the
+ services belonging to that group draw from the allotted quota.
+ Figure 2 provides a graphical representation of the relationship
+ between service-identifiers, rating-groups, credit pools, and
+ credit-control (sub-)sessions.
+
+ Diameter Credit-Control (Sub-)Session
+ |
+ +------------+-----------+-------------+--------------- +
+ | | | | |
+ Service-Id a Service-Id b Service-Id c Service-Id d.....Service-Id z
+ \ / \ / /
+ \ / \ / /
+ \ / Rating-Group 1.......Rating-Group n
+ \ / | |
+ Quota ---------------Quota Quota
+ | / |
+ | / |
+ Credit Pool Credit Pool
+
+ Figure 2: Multiple-Service (Sub-)Session Example
+
+ If independent credit-control of multiple services is used, the
+ Validity-Time AVP, and the Final-Unit-Indication AVP or
+ QoS-Final-Unit-Indication AVP, SHOULD be present either in the
+ Multiple-Services-Credit-Control AVP(s) or at the command level as
+ single AVPs. However, the Result-Code AVP MAY be present both at the
+ command level and within the Multiple-Services-Credit-Control AVP.
+ If the Result-Code AVP at the command level indicates a value other
+ than SUCCESS, then the Result-Code AVP at the command level takes
+ precedence over any other AVPs included in the Multiple-Services-
+ Credit-Control AVP.
+
+
+
+Bertz, et al. Standards Track [Page 20]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The credit-control client MUST indicate support for independent
+ credit-control of multiple services within a (sub-)session by
+ including the Multiple-Services-Indicator AVP in the first
+ interrogation. A credit-control server not supporting this feature
+ MUST treat the Multiple-Services-Indicator AVP and any received
+ Multiple-Services-Credit-Control AVPs as invalid AVPs.
+
+ If the client indicated support for independent credit-control of
+ multiple services, a credit-control server that wishes to use the
+ feature MUST return the granted units within the Multiple-Services-
+ Credit-Control AVP associated to the corresponding service-identifier
+ and/or rating-group.
+
+ To avoid a situation where several parallel (and typically also
+ small) credit reservations must be made on the same account (i.e.,
+ credit fragmentation), and also to avoid unnecessary load on the
+ credit-control server, it is possible to provide service units as a
+ pool that applies to multiple services or rating-groups. This is
+ achieved by providing the service units in the form of a quota for a
+ particular service or rating-group in the Multiple-Services-Credit-
+ Control AVP, and also by including a reference to a credit pool for
+ that unit type.
+
+ The reference includes a multiplier derived from the rating
+ parameter, which translates from service units of a specific type to
+ the abstract service units in the pool. For instance, if the rating
+ parameter for service 1 is $1/MB and the rating parameter for
+ service 2 is $0.5/MB, the multipliers could be 10 and 5 for
+ services 1 and 2, respectively.
+
+ If (1) S is the total service units within the pool, (2) M1, M2, ...,
+ Mn are the multipliers provided for services 1, 2, ..., n, and
+ (3) C1, C2, ..., Cn are the used resources within the session, then
+ the pool's credit is exhausted and re-authorization MUST be sought
+ when:
+
+ C1*M1 + C2*M2 + ... + Cn*Mn >= S
+
+ The total credit in the pool, S, is calculated from the quotas, which
+ are currently allocated to the pool as follows:
+
+ S = Q1*M1 + Q2*M2 + ... + Qn*Mn
+
+ If services or rating-groups are added to or removed from the pool,
+ then the total credit is adjusted appropriately. Note that when the
+ total credit is adjusted because services or rating-groups are
+ removed from the pool, the value that needs to be removed is the
+ consumed one (i.e., Cx*Mx).
+
+
+
+Bertz, et al. Standards Track [Page 21]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Re-authorizations for an individual service or rating-group may be
+ sought at any time -- for example, if a "non-pooled" quota is used up
+ or the Validity-Time expires.
+
+ Where multiple G-S-U-Pool-Reference AVPs (Section 8.30) with the same
+ G-S-U-Pool-Identifier are provided within a Multiple-Services-Credit-
+ Control AVP (Section 8.16) along with the Granted-Service-Unit AVP,
+ these AVPs MUST have different CC-Unit-Type values, and they all draw
+ from the credit pool separately. For instance, if one multiplier for
+ time (M1t) and one multiplier for volume (M1v) are given, then the
+ used resources from the pool yield the sum of C1t*M1t + C1v*M1v,
+ where C1t is the time unit and C1v is the volume unit.
+
+ Where service units are provided within a Multiple-Services-Credit-
+ Control AVP without a corresponding G-S-U-Pool-Reference AVP, these
+ units are handled independently from any credit pools and from any
+ other services or rating-groups within the session.
+
+ The "credit pool" concept is an optimal tool to avoid the
+ over-reservation effect of the basic single-quota tariff time change
+ mechanism (Section 5.1.1). Therefore, Diameter Credit-Control
+ clients and servers implementing the independent credit-control of
+ multiple services SHOULD leverage the credit pool concept when
+ supporting the tariff time change. The Diameter Credit-Control
+ server SHOULD include both the Tariff-Time-Change AVP and the
+ Tariff-Change-Usage AVP in two quota allocations in the Answer
+ message (i.e., two instances of the Multiple-Services-Credit-Control
+ AVP). One of the grants is allocated to be used before the potential
+ tariff change, while the second grant is for use after a tariff
+ change. Both granted unit quotas MUST contain the same Service-
+ Identifier and/or rating-group. This dual-quota mechanism ensures
+ that the overall reported used units would never exceed the credit
+ reservation. The Diameter Credit-Control client reports the used
+ units both before and after the tariff change in a single instance of
+ the Multiple-Services-Credit-Control AVP.
+
+ Failure handling for credit-control sessions is defined in
+ Section 5.7 and reflected in the basic credit-control state machines
+ defined in Section 7. Credit-control clients and servers
+ implementing the functionality of independent credit-control of
+ multiple services in a (sub-)session MUST ensure failure handling and
+ general behavior fully consistent with Sections 5.7 and 7 while
+ maintaining the ability to handle parallel ongoing credit
+ re-authorization within a (sub-)session. Therefore, it is
+ RECOMMENDED that Diameter Credit-Control clients maintain a PendingU
+ message queue (Section 7) and restart the Tx timer (Section 13) every
+ time a CCR message with the value UPDATE_REQUEST is sent while they
+ are in PendingU state. When answers to all pending messages are
+
+
+
+Bertz, et al. Standards Track [Page 22]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ received, the state machine moves to Open state, and the Tx timer is
+ stopped. Naturally, when a problem is detected and acted upon per
+ Section 5.7, all of the ongoing services are affected (e.g., failover
+ to a backup server affects all of the CCR messages in the PendingU
+ queue).
+
+ Since the client may send CCR messages with the value UPDATE_REQUEST
+ while in PendingU state (i.e., without waiting for an answer to
+ ongoing credit re-authorization), the time space between these
+ requests may be very short, and the server may not have received the
+ previous request(s) yet. Therefore, in this situation the server may
+ receive out-of-sequence requests and SHOULD NOT consider this an
+ error condition. A proper answer is to be returned to each of those
+ requests.
+
+5.2. First Interrogation
+
+ When session-based credit-control is required (e.g., the
+ authentication server indicated a prepaid user), the first
+ interrogation MUST be sent before the Diameter Credit-Control client
+ allows any service events for the end user. The CC-Request-Type AVP
+ is set to the value INITIAL_REQUEST in the request message.
+
+ If the Diameter Credit-Control client knows the cost of the service
+ event (e.g., a content server delivering ringing tones may know their
+ cost) the monetary amount to be charged is included in the Requested-
+ Service-Unit AVP. If the Diameter Credit-Control client does not
+ know the cost of the service event, the Requested-Service-Unit AVP
+ MAY contain the number of requested service events. Where the
+ Multiple-Services-Credit-Control AVP is used, it MUST contain the
+ Requested-Service-Unit AVP to indicate that the quota for the
+ associated service/rating-group is requested. In the case of
+ multiple services, the Service-Identifier AVP or the Rating-Group AVP
+ within the Multiple-Services-Credit-Control AVP always indicates the
+ service concerned. Additional service event information to be rated
+ MAY be sent as service-specific AVPs or MAY be sent within the
+ Service-Parameter-Info AVP at the command level. The
+ Service-Context-Id AVP indicates the service-specific document
+ applicable to the request.
+
+ The Event-Timestamp AVP SHOULD be included in the request and
+ contains the time when the service event is requested in the Service
+ Element. The Subscription-Id AVP or the Subscription-Id-Extension
+ AVP SHOULD be included to identify the end user in the credit-control
+ server. The credit-control client MAY include the User-Equipment-
+ Info AVP or User-Equipment-Info-Extension AVP so that the
+
+
+
+
+
+Bertz, et al. Standards Track [Page 23]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ credit-control server has some indication of the type and
+ capabilities of the end-user access device. How the credit-control
+ server uses this information is outside the scope of this document.
+
+ The credit-control server SHOULD rate the service event and make a
+ credit reservation from the end user's account that covers the cost
+ of the service event. If the type of the Requested-Service-Unit AVP
+ is "money", no rating is needed, but the corresponding monetary
+ amount is reserved from the end user's account.
+
+ The credit-control server returns the Granted-Service-Unit AVP in the
+ Answer message to the Diameter Credit-Control client. The Granted-
+ Service-Unit AVP contains the amount of service units that the
+ Diameter Credit-Control client can provide to the end user until a
+ new Credit-Control-Request MUST be sent to the credit-control server.
+ If several unit types are sent in the Answer message, the
+ credit-control client MUST handle each unit type separately. The
+ type of the Granted-Service-Unit AVP can be time, volume, service-
+ specific, or money, depending on the type of service event. The unit
+ type(s) SHOULD NOT be changed within an ongoing credit-control
+ session.
+
+ There MUST be a maximum of one instance of the same unit type in one
+ Answer message. However, if multiple quotas are conveyed to the
+ credit-control client in the Multiple-Services-Credit-Control AVPs,
+ it is possible to carry two instances of the same unit type
+ associated to a service-identifier/rating-group. This is typically
+ the case when a tariff time change is expected and the credit-control
+ server wants to make a distinction between the granted quota before
+ the tariff change and the granted quota after the tariff change.
+
+ If the credit-control server determines that no further control is
+ needed for the service, it MAY include the result code indicating
+ that the credit-control is not applicable (e.g., if the service is
+ free of charge). This result code, at the command level, implies
+ that the credit-control session is to be terminated.
+
+ The Credit-Control-Answer message MAY also include the Final-Unit-
+ Indication AVP or the QoS-Final-Unit-Indication AVP to indicate that
+ the Answer message contains the final units for the service. After
+ the end user has consumed these units, the Diameter Credit-Control
+ client MUST behave as described in Section 5.6.
+
+ This document defines two different approaches for performing the
+ first interrogation to be used in different network architectures.
+ The first approach uses credit-control messages after the user's
+ authorization and authentication take place. The second approach
+ uses (1) service-specific authorization messages to perform the first
+
+
+
+Bertz, et al. Standards Track [Page 24]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ interrogation during the user's authorization/authentication phase
+ and (2) credit-control messages for the intermediate and final
+ interrogations. If an implementation of the credit-control client
+ supports both methods, determining which method to use SHOULD be
+ configurable.
+
+ In service environments such as NAS environments, it is desired to
+ perform the first interrogation as part of the authorization/
+ authentication process for the sake of protocol efficiency. Further
+ credit authorizations after the first interrogation are performed
+ with credit-control commands defined in this specification.
+ Implementations of credit-control clients operating in the
+ environments mentioned in this document SHOULD support this method.
+ If the credit-control server and AAA server are separate physical
+ entities, the Service Element sends the request messages to the AAA
+ server, which then issues an appropriate request or proxies the
+ received request forward to the credit-control server.
+
+ In other service environments, such as the 3GPP network and some SIP
+ scenarios, there is a substantial decoupling between registration/
+ access to the network and the actual service request (i.e., the
+ authentication/authorization is executed once during registration/
+ access to the network and is not executed for every service event
+ requested by the subscriber). In these environments, it is more
+ appropriate to perform the first interrogation after the user has
+ been authenticated and authorized. The first, intermediate, and
+ final interrogations are executed with credit-control commands
+ defined in this specification.
+
+ Other IETF standards or standards developed by other standardization
+ bodies may define the most suitable method in their architectures.
+
+5.2.1. First Interrogation after Authorization and Authentication
+
+ The Diameter Credit-Control client in the Service Element may get
+ information from the authorization server as to whether
+ credit-control is required, based on its knowledge of the end user.
+ If credit-control is required, the credit-control server needs to be
+ contacted prior to initiating service delivery to the end user. The
+ accounting protocol and the credit-control protocol can be used in
+ parallel. The authorization server may also determine whether the
+ parallel accounting stream is required.
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 25]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Figure 3 illustrates the case where both protocols are used in
+ parallel and the Service Element sends credit-control messages
+ directly to the credit-control server. More credit-control sequence
+ examples are given in Appendix A.
+
+ Diameter
+ End User Service Element AAA Server CC Server
+ (CC Client)
+ | Registration | AA-Request/Answer(accounting, CC, or both)|
+ |<----------------->|<------------------>| |
+ | : | | |
+ | : | | |
+ | Service Request | | |
+ |------------------>| | |
+ | | CCR(Initial, Credit-Control AVPs) |
+ | +|------------------------------------------>|
+ | CC stream|| | CCA(Granted-Units)|
+ | +|<------------------------------------------|
+ | Service Delivery | | |
+ |<----------------->| ACR(start, Accounting AVPs) |
+ | : |------------------->|+ |
+ | : | ACA || Accounting stream |
+ | |<-------------------|+ |
+ | : | | |
+ | : | | |
+ | | CCR(Update, Used-Units) |
+ | |------------------------------------------>|
+ | | | CCA(Granted-Units)|
+ | |<------------------------------------------|
+ | : | | |
+ | : | | |
+ | End of Service | | |
+ |------------------>| CCR(Termination, Used-Units) |
+ | |------------------------------------------>|
+ | | | CCA |
+ | |<------------------------------------------|
+ | | ACR(stop) | |
+ | |------------------->| |
+ | | ACA | |
+ | |<-------------------| |
+
+ ACR: Accounting-Request
+ ACA: Accounting-Answer
+
+ Figure 3: Protocol Example with First Interrogation
+ after User's Authorization/Authentication
+
+
+
+
+
+Bertz, et al. Standards Track [Page 26]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+5.2.2. First Interrogation Included with Authorization Messages
+
+ The Diameter Credit-Control client in the Service Element MUST
+ actively co-operate with the authorization/authentication client in
+ the construction of the AA-Request by adding appropriate
+ Credit-Control AVPs. The credit-control client MUST add the
+ Credit-Control AVP to indicate credit-control capabilities and MAY
+ add other relevant credit-control-specific AVPs to the proper
+ authorization/authentication command to perform the first
+ interrogation toward the home Diameter AAA server. The
+ Auth-Application-Id is set to the appropriate value, as defined in
+ service-specific authorization/authentication application document
+ (e.g., [RFC7155] [RFC4004]). The home Diameter AAA server
+ authenticates/authorizes the subscriber and determines whether
+ credit-control is required.
+
+ If credit-control is not required for the subscriber, the home
+ Diameter AAA server will respond as usual, with an appropriate
+ AA-Answer message. If credit-control is required for the subscriber
+ and the Credit-Control AVP with the value set to CREDIT_AUTHORIZATION
+ was present in the authorization request, the home AAA server MUST
+ contact the credit-control server to perform the first interrogation.
+ If credit-control is required for the subscriber and the
+ Credit-Control AVP was not present in the authorization request, the
+ home AAA server MUST send an authorization reject Answer message.
+
+ The Diameter AAA server supporting credit-control is required to send
+ the Credit-Control-Request command (CCR) defined in this document to
+ the credit-control server. The Diameter AAA server populates the CCR
+ based on service-specific AVPs used for input to the rating process,
+ and possibly on Credit-Control AVPs received in the AA-Request. The
+ credit-control server will reserve money from the user's account,
+ will rate the request, and will send a Credit-Control-Answer message
+ to the home Diameter AAA server. The Answer message includes the
+ Granted-Service-Unit AVP(s) and MAY include other credit-control-
+ specific AVPs, as appropriate. Additionally, the credit-control
+ server MAY set the Validity-Time and MAY include the CCFH and the
+ DDFH to determine what to do if the sending of credit-control
+ messages to the credit-control server has been temporarily prevented.
+
+ Upon receiving the Credit-Control-Answer message from the
+ credit-control server, the home Diameter AAA server will populate the
+ AA-Answer with the received Credit-Control AVPs and with the
+ appropriate service attributes according to the authorization/
+ authentication-specific application (e.g., [RFC7155] [RFC4004]). It
+ will then forward the packet to the credit-control client. If the
+ home Diameter AAA server receives a credit-control reject message, it
+
+
+
+
+Bertz, et al. Standards Track [Page 27]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ will simply generate an appropriate authorization reject message to
+ the credit-control client, including the credit-control-specific
+ error code.
+
+ In this model, the credit-control client sends further credit-control
+ messages to the credit-control server via the home Diameter AAA
+ server. Upon receiving a successful authorization Answer message
+ with the Granted-Service-Unit AVP(s), the credit-control client will
+ grant the service to the end user and will generate an intermediate
+ Credit-Control-Request, if required, by using credit-control
+ commands. The CC-Request-Number of the first UPDATE_REQUEST MUST be
+ set to 1 (for details regarding how to produce a unique value for the
+ CC-Request-Number AVP, see Section 8.2).
+
+ If service-specific re-authorization is performed (i.e., the
+ authorization lifetime expires), the credit-control client MUST add
+ to the service-specific re-authorization request the Credit-Control
+ AVP with a value set to RE_AUTHORIZATION to indicate that the
+ credit-control server MUST NOT be contacted. When session-based
+ credit-control is used for the subscriber, a constant credit-control
+ message stream flows through the home Diameter AAA server. The home
+ Diameter AAA server can make use of this credit-control message flow
+ to deduce that the user's activity is ongoing; therefore, it is
+ recommended to set the authorization lifetime to a reasonably high
+ value when credit-control is used for the subscriber.
+
+ In this scenario, the home Diameter AAA server MUST advertise support
+ for the credit-control application to its peers during the capability
+ exchange process.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 28]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Figure 4 illustrates the use of authorization/authentication messages
+ to perform the first interrogation. The parallel accounting stream
+ is not shown in the figure.
+
+ Diameter
+ Service Element AAA Server CC Server
+ End User (CC Client)
+ | Service Request | AA-Request (CC AVPs) | |
+ |------------------>|--------------------->| |
+ | | | CCR(Initial, CC AVPs)
+ | | |-------------------->|
+ | | | CCA(Granted-Units)|
+ | | |<--------------------|
+ | | AA-Answer(Granted-Units) |
+ | Service Delivery |<---------------------| |
+ |<----------------->| | |
+ | : | | |
+ | : | | |
+ | : | | |
+ | | | |
+ | | CCR(Update, Used-Units) |
+ | |--------------------->| CCR(Update, Used-Units)
+ | | |-------------------->|
+ | | | CCA(Granted-Units)|
+ | | CCA(Granted-Units)|<--------------------|
+ | |<---------------------| |
+ | : | | |
+ | : | | |
+ | End of Service | | |
+ |------------------>| CCR(Termination, Used-Units) |
+ | |--------------------->| CCR(Term., Used-Units)
+ | | |-------------------->|
+ | | | CCA |
+ | | CCA |<--------------------|
+ | |<---------------------| |
+
+ Figure 4: Protocol Example with Use of Authorization Messages
+ for the First Interrogation
+
+5.3. Intermediate Interrogation
+
+ When all the granted service units for one unit type are spent by the
+ end user or the Validity-Time has expired, the Diameter
+ Credit-Control client MUST send a new Credit-Control-Request to the
+ credit-control server. In the event that credit-control for multiple
+ services is applied in one credit-control session (i.e., units
+ associated to Service-Identifier(s) or the rating-group are granted),
+ a new Credit-Control-Request MUST be sent to the credit-control
+
+
+
+Bertz, et al. Standards Track [Page 29]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ server when the credit reservation has been wholly consumed or upon
+ expiration of the Validity-Time. It is always up to the Diameter
+ Credit-Control client to send a new request well in advance of the
+ expiration of the previous request in order to avoid interruption in
+ the Service Element. Even if the granted service units reserved by
+ the credit-control server have not been spent upon expiration of the
+ Validity-Time, the Diameter Credit-Control client MUST send a new
+ Credit-Control-Request to the credit-control server.
+
+ There can also be mid-session service events, which might affect the
+ rating of the current service events. In this case, a spontaneous
+ update (a new Credit-Control-Request) SHOULD be sent, including
+ information related to the service event, even if all the granted
+ service units have not been spent or the Validity-Time has not
+ expired.
+
+ When the used units are reported to the credit-control server, the
+ credit-control client will not have any units in its possession
+ before new granted units are received from the credit-control server.
+ When the new granted units are received, these units apply from the
+ point where the measurement of the reported used units stopped.
+ Where independent credit-control of multiple services is supported,
+ this process may be executed for one or more services, a single
+ rating-group, or a pool within the (sub-)session.
+
+ The CC-Request-Type AVP is set to the value UPDATE_REQUEST in the
+ intermediate request message. The Subscription-Id AVP or
+ Subscription-Id-Extension AVP SHOULD be included in the intermediate
+ message to identify the end user in the credit-control server. The
+ Service-Context-Id AVP indicates the service-specific document
+ applicable to the request.
+
+ The Requested-Service-Unit AVP MAY contain the new amount of
+ requested service units. Where the Multiple-Services-Credit-Control
+ AVP is used, it MUST contain the Requested-Service-Unit AVP if a new
+ quota is requested for the associated service/rating-group. The
+ Used-Service-Unit AVP contains the amount of used service units
+ measured from the point when the service became active or, if interim
+ interrogations are used during the session, from the point when the
+ previous measurement ended. The same unit types used in the previous
+ message SHOULD be used. If several unit types were included in the
+ previous Answer message, the used service units for each unit type
+ MUST be reported.
+
+ The Event-Timestamp AVP SHOULD be included in the request and
+ contains the time of the event that triggered the sending of the new
+ Credit-Control-Request.
+
+
+
+
+Bertz, et al. Standards Track [Page 30]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The credit-control server MUST deduct the used amount from the
+ end user's account. It MAY rate the new request and make a new
+ credit reservation from the end user's account that covers the cost
+ of the requested service event.
+
+ A Credit-Control-Answer message with the CC-Request-Type AVP set to
+ the value UPDATE_REQUEST MAY include the Cost-Information AVP
+ containing the accumulated cost estimation for the session, without
+ taking any credit reservations into account.
+
+ The Credit-Control-Answer message MAY also include the Final-Unit-
+ Indication AVP or the QoS-Final-Unit-Indication AVP to indicate that
+ the Answer message contains the final units for the service. After
+ the end user has consumed these units, the Diameter Credit-Control
+ client MUST behave as described in Section 5.6.
+
+ There can be several intermediate interrogations within a session.
+
+5.4. Final Interrogation
+
+ When the end user terminates the service session or when graceful
+ service termination (described in Section 5.6) takes place, the
+ Diameter Credit-Control client MUST send a final Credit-Control-
+ Request message to the credit-control server. The CC-Request-Type
+ AVP is set to the value TERMINATION_REQUEST. The Service-Context-Id
+ AVP indicates the service-specific document applicable to the
+ request.
+
+ The Event-Timestamp AVP SHOULD be included in the request and
+ contains the time when the session was terminated.
+
+ The Used-Service-Unit AVP contains the amount of used service units
+ measured from the point when the service became active or, if interim
+ interrogations are used during the session, from the point when the
+ previous measurement ended. If several unit types were included in
+ the previous Answer message, the used service units for each unit
+ type MUST be reported.
+
+ After final interrogation, the credit-control server MUST refund the
+ reserved credit amount not used to the end user's account and deduct
+ the used monetary amount from the end user's account.
+
+ A Credit-Control-Answer message with the CC-Request-Type AVP set to
+ the value TERMINATION_REQUEST MAY include the Cost-Information AVP
+ containing the estimated total cost for the session in question.
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 31]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ If the user logs off during an ongoing credit-control session or if
+ the user becomes logged off for some other reason (e.g., a final-unit
+ indication causes user logoff according to local policy), the Service
+ Element, according to application-specific policy, may send a
+ Session-Termination-Request (STR) to the home Diameter AAA server as
+ usual [RFC6733]. Figure 5 illustrates the case when the final-unit
+ indication causes user logoff upon consumption of the final granted
+ units and the generation of an STR.
+
+ The Diameter AAA server responds with a Session-Termination-Answer
+ (STA).
+
+ Service Element AAA Server CC Server
+ End User (CC Client)
+ | Service Delivery | | |
+ |<----------------->| | |
+ | : | | |
+ | : | | |
+ | : | | |
+ | | | |
+ | | CCR(Update, Used-Units) |
+ | |-------------------->| CCR(Update, Used-Units)
+ | | |-------------------->|
+ | | CCA(Final-Unit, Terminate)
+ | CCA(Final-Unit, Terminate)|<--------------------|
+ | |<--------------------| |
+ | : | | |
+ | : | | |
+ | Disconnect user | | |
+ |<------------------| CCR(Termination, Used-Units) |
+ | |-------------------->| CCR(Term., Used-Units)
+ | | |-------------------->|
+ | | | CCA |
+ | | CCA |<--------------------|
+ | |<--------------------| |
+ | | STR | |
+ | |-------------------->| |
+ | | STA | |
+ | |<--------------------| |
+
+ Figure 5: User Disconnected Due to Exhausted Account
+
+5.5. Server-Initiated Credit Re-authorization
+
+ The Diameter Credit-Control application supports server-initiated
+ re-authorization. The credit-control server MAY optionally initiate
+ the credit re-authorization by issuing a Re-Auth-Request (RAR) as
+ defined in the Diameter base protocol [RFC6733]. The
+
+
+
+Bertz, et al. Standards Track [Page 32]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Auth-Application-Id in the RAR message is set to 4 to indicate
+ "Diameter Credit Control", and the Re-Auth-Request-Type is set to
+ AUTHORIZE_ONLY.
+
+ Section 5.1.2 defines the feature to enable credit-control for
+ multiple services within a single (sub-)session where the server can
+ authorize credit usage at a different level of granularity. Further,
+ the server may provide credit resources to multiple services or
+ rating-groups as a pool (see Section 5.1.2 for details and
+ definitions). Therefore, the server, based on its service logic and
+ its knowledge of the ongoing session, can decide to request credit
+ re-authorization for a whole (sub-)session, a single credit pool, a
+ single service, or a single rating-group. To request credit
+ re-authorization for a credit pool, the server includes in the RAR
+ message the G-S-U-Pool-Identifier AVP indicating the affected pool.
+ To request credit re-authorization for a service or a rating-group,
+ the server includes in the RAR message the Service-Identifier AVP or
+ the Rating-Group AVP, respectively. To request credit
+ re-authorization for all the ongoing services within the
+ (sub-)session, the server includes none of the above-mentioned AVPs
+ in the RAR message.
+
+ If a credit re-authorization is not already ongoing (i.e., the
+ credit-control session is in Open state), a credit-control client
+ that receives an RAR message with Session-Id equal to a currently
+ active credit-control session MUST acknowledge the request by sending
+ the Re-Auth-Answer (RAA) message and MUST initiate the credit
+ re-authorization toward the server by sending a Credit-Control-
+ Request message with the CC-Request-Type AVP set to the value
+ UPDATE_REQUEST. The Result-Code 2002 (DIAMETER_LIMITED_SUCCESS)
+ SHOULD be used in the RAA message to indicate that an additional
+ message (i.e., a CCR message with the value UPDATE_REQUEST) is
+ required to complete the procedure. If a quota was allocated to the
+ service, the credit-control client MUST report the used quota in the
+ Credit-Control-Request. Note that the end user does not need to be
+ prompted for the credit re-authorization, since the credit
+ re-authorization is transparent to the user (i.e., it takes place
+ exclusively between the credit-control client and the credit-control
+ server).
+
+ Where multiple services in a user's session are supported, the
+ procedure in the above paragraph will be executed at the granularity
+ requested by the server in the RAR message.
+
+ If credit re-authorization is ongoing at the time when the RAR
+ message is received (i.e., an RAR-CCR collision), the credit-control
+ client successfully acknowledges the request but does not initiate a
+ new credit re-authorization. The Result-Code 2001 (DIAMETER_SUCCESS)
+
+
+
+Bertz, et al. Standards Track [Page 33]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ SHOULD be used in the RAA message to indicate that a credit
+ re-authorization procedure is already ongoing (i.e., the client was
+ in PendingU state when the RAR was received). The credit-control
+ server SHOULD process the Credit-Control-Request as if it was
+ received in answer to the server-initiated credit re-authorization
+ and should consider the server-initiated credit re-authorization
+ process successful upon reception of the RAA message.
+
+ When multiple services are supported in a user's session, the server
+ may request credit re-authorization for a credit pool (or for the
+ (sub-)session) while a credit re-authorization is already ongoing for
+ some of the services or rating-groups. In this case, the client
+ acknowledges the server request with an RAA message and MUST send a
+ new Credit-Control-Request message to perform re-authorization for
+ the remaining services/rating-groups. The Result-Code 2002
+ (DIAMETER_LIMITED_SUCCESS) SHOULD be used in the RAA message to
+ indicate that an additional message (i.e., a CCR message with the
+ value UPDATE_REQUEST) is required to complete the procedure. The
+ server processes the received requests and returns an appropriate
+ answer to both requests.
+
+ The above-defined procedures are enabled for each of the possibly
+ active Diameter Credit-Control sub-sessions. The server MAY request
+ re-authorization for an active sub-session by including the
+ CC-Sub-Session-Id AVP in the RAR message in addition to the
+ Session-Id AVP.
+
+5.6. Graceful Service Termination
+
+ When the user's account runs out of money, the user may not be
+ allowed to compile additional chargeable events. However, the home
+ service provider may offer some services -- for instance, access to a
+ service portal where it is possible to refill the account -- from
+ which the user is allowed to benefit for a limited time. The length
+ of this time is usually dependent on the home service provider
+ policy.
+
+ This section defines the optional graceful service termination
+ feature. This feature MAY be supported by the credit-control server.
+ Credit-control client implementations MUST support the Final-Unit-
+ Indication AVP or QoS-Final-Unit-Indication AVP with at least the
+ teardown of the ongoing service session once the subscriber has
+ consumed all the final granted units.
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 34]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Where independent credit-control of multiple services in a single
+ credit-control (sub-)session is supported, it is possible to use
+ graceful service termination for each of the services/rating-groups
+ independently. Naturally, the graceful service termination process
+ defined in the following subsections will apply to the specific
+ service/rating-group as requested by the server.
+
+ In some service environments (e.g., NAS), graceful service
+ termination may be used to redirect the subscriber to a service
+ portal for online balance refill or other services offered by the
+ home service provider. In this case, the graceful service
+ termination process installs a set of packet filters to restrict the
+ user's access capability only to/from the specified destinations.
+ All the IP packets not matching the filters will be dropped or,
+ possibly, redirected to the service portal. The user may also be
+ sent an appropriate notification as to why the access has been
+ limited. These actions may be communicated explicitly from the
+ server to the client or may be configured "per service" at the
+ client. Explicitly signaled redirection or restriction instructions
+ always take precedence over configured ones.
+
+ It is also possible to use graceful service termination to connect
+ the prepaid user to a top-up server that plays an announcement and
+ prompts the user to replenish the account. In this case, the
+ credit-control server sends only the address of the top-up server
+ where the prepaid user shall be connected after the final granted
+ units have been consumed. An example of this case is given in
+ Appendix A.7.
+
+ The credit-control server MAY initiate graceful service termination
+ by including the Final-Unit-Indication AVP or the
+ QoS-Final-Unit-Indication AVP in the Credit-Control-Answer to
+ indicate that the message contains the final units for the service.
+
+ When the credit-control client receives the Final-Unit-Indication AVP
+ or the QoS-Final-Unit-Indication AVP in the answer from the server,
+ its behavior depends on the value indicated in the Final-Unit-Action
+ AVP. The server may request the following actions: TERMINATE,
+ REDIRECT, or RESTRICT_ACCESS.
+
+ Figure 6 illustrates the graceful service termination procedure
+ described in the following subsections.
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 35]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Diameter
+ End User Service Element AAA Server CC Server
+ (CC Client)
+ | Service Delivery | | |
+ |<----------------->| | |
+ | |CCR(Update, Used-Units) |
+ | |-------------------->|CCR(Update, Used-Units)
+ | : | |-------------------->|
+ | : | |CCA(Final-Unit, Action)
+ | : | |<--------------------|
+ | |CCA(Final-Unit, Action) |
+ | |<--------------------| |
+ | | | |
+ | : | | |
+ | : | | |
+ | /////////////// |CCR(Update, Used-Units) |
+ |/Final Units End/->|-------------------->|CCR(Update, Used-Units)
+ |/Action and // | |-------------------->|
+ |/Restrictions // | | CCA(Validity-Time)|
+ |/Start // | CCA(Validity-Time)|<--------------------|
+ | ///////////// |<--------------------| |
+ | : | | |
+ | : | | |
+ | Replenish account | +-------+ |
+ |<--------------------------------------------->|Account| |
+ | | | +-------+ |
+ | | | RAR |
+ | + | RAR |<====================|
+ | | |<====================| |
+ | | | RAA | |
+ | ///////////// | |====================>| RAA |
+ | /If supported / | | CCR(Update) |====================>|
+ | /by CC Server/ | |====================>| CCR(Update) |
+ | ///////////// | | |====================>|
+ | | | | CCA(Granted-Units)|
+ | | | CCA(Granted-Units)|<====================|
+ | Restrictions ->+ |<====================| |
+ | removed | | |
+ | : | | |
+ | OR | CCR(Update) | |
+ | Validity-Time ->|-------------------->| CCR(Update) |
+ | expires | |-------------------->|
+ | | | CCA(Granted-Units)|
+ | | CCA(Granted-Units)|<--------------------|
+ | Restrictions ->|<--------------------| |
+ | removed | | |
+
+ Figure 6: Optional Graceful Service Termination Procedure
+
+
+
+Bertz, et al. Standards Track [Page 36]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ In addition, the credit-control server MAY reply with the Final-Unit-
+ Indication AVP or QoS-Final-Unit-Indication AVP holding a Granted-
+ Service-Unit (G-S-U) with a zero grant, indicating that the service
+ SHOULD be terminated immediately, and no further reporting is
+ required. Figure 7 illustrates a graceful service termination
+ procedure that applies immediately after receiving a zero grant.
+
+ Diameter
+ End User Service Element AAA Server CC Server
+ (CC Client)
+ | Service Delivery | | |
+ |<----------------->| | |
+ | |CCR(Update, Used-Units) |
+ | |--------------------->|CCR(Update, Used-Units)
+ | : | |-------------------->|
+ | : | |CCA(Final-Unit, Action,
+ | : | | Zero G-S-U)
+ | : | |<--------------------|
+ | |CCA(Final-Unit, Action, |
+ | | Zero G-S-U) |
+ | |<---------------------| |
+ | /////////////// | | |
+ |/Action and // | | |
+ |/Restrictions // | | |
+ |/Start // | | |
+ | ///////////// | | |
+ | : | | |
+ | : | | |
+
+ Figure 7: Optional Immediate Graceful Service Termination Procedure
+
+5.6.1. Terminate Action
+
+ The Final-Unit-Indication AVP or the QoS-Final-Unit-Indication AVP
+ with Final-Unit-Action set to TERMINATE does not include any other
+ information. When the subscriber has consumed the final granted
+ units, the Service Element MUST terminate the service. This is the
+ default handling applicable whenever the credit-control client
+ receives an unsupported Final-Unit-Action value and MUST be supported
+ by all the Diameter Credit-Control client implementations conforming
+ to this specification. A final Credit-Control-Request message to the
+ credit-control server MUST be sent if the Final-Unit-Indication AVP
+ or the QoS-Final-Unit-Indication AVP indicating action TERMINATE was
+ present at the command level. The CC-Request-Type AVP in the request
+ is set to the value TERMINATION_REQUEST.
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 37]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+5.6.2. Redirect Action
+
+ The Final-Unit-Indication AVP or the QoS-Final-Unit-Indication AVP
+ with Final-Unit-Action set to REDIRECT indicates to the Service
+ Element supporting this action that, upon consumption of the final
+ granted units, the user MUST be redirected to the address specified
+ in the Redirect-Server AVP or Redirect-Server-Extension AVP as
+ follows.
+
+ The credit-control server sends the Redirect-Server AVP or Redirect-
+ Server-Extension AVP in the Credit-Control-Answer message. In such a
+ case, the Service Element MUST redirect or connect the user to the
+ destination specified in the Redirect-Server AVP or Redirect-Server-
+ Extension AVP, if possible. When the end user is redirected (by
+ using protocols other than Diameter) to the specified server or
+ connected to the top-up server, an additional authorization (and
+ possibly authentication) may be needed before the subscriber can
+ replenish the account; however, this scenario is out of scope for
+ this specification.
+
+ In addition to the Redirect-Server AVP or Redirect-Server-Extension
+ AVP, the credit-control server MAY include one or more Restriction-
+ Filter-Rule AVPs, one or more Filter-Rule AVPs, or one or more
+ Filter-Id AVPs in the Credit-Control-Answer message to enable the
+ user to access other services (for example, zero-rated services). In
+ such a case, the access device MUST treat all packets according to
+ the Restriction-Filter-Rule AVPs, Filter-Rule AVPs, and the rules
+ referred to by the Filter-Id AVP. After treatment is applied
+ according to these rules, all traffic that has not been dropped or
+ already forwarded MUST be redirected to the destination specified in
+ the Redirect-Server AVP or Redirect-Server-Extension AVP.
+
+ An entity other than the credit-control server may provision the
+ access device with appropriate IP packet filters to be used in
+ conjunction with the Diameter Credit-Control application. This case
+ is considered in Section 5.6.3.
+
+ When the final granted units have been consumed, the credit-control
+ client MUST perform an intermediate interrogation. The purpose of
+ this interrogation is to indicate to the credit-control server that
+ the specified action started and to report the used units. The
+ credit-control server MUST deduct the used amount from the end user's
+ account but MUST NOT make a new credit reservation. The
+ credit-control client, however, may send intermediate interrogations
+ before all the final granted units have been consumed for which
+ rating and money reservation may be needed -- for instance, upon
+ Validity-Time expiration or upon mid-session service events that
+ affect the rating of the current service. Therefore, the
+
+
+
+Bertz, et al. Standards Track [Page 38]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ credit-control client MUST NOT include any rating-related AVPs in the
+ request sent once all the final granted units have been consumed, as
+ an indication to the server that (1) the requested final unit action
+ started and (2) rating and money reservation are not required (when
+ the Multiple-Services-Credit-Control AVP is used, the Service-
+ Identifier AVP or the Rating-Group AVP is included to indicate the
+ services concerned). Naturally, the Credit-Control-Answer message
+ does not contain any granted service units and MUST include the
+ Validity-Time AVP to indicate to the credit-control client how long
+ the subscriber is allowed to use network resources before a new
+ intermediate interrogation is sent to the server.
+
+ At the expiry of Validity-Time, the credit-control client sends a
+ Credit-Control-Request (UPDATE_REQUEST) as usual. This message does
+ not include the Used-Service-Unit AVP, as there is no allotted quota
+ to report. The credit-control server processes the request and MUST
+ perform the credit reservation. If during this time the subscriber
+ did not replenish their account, whether they will be disconnected or
+ will be granted access to services not controlled by a credit-control
+ server for an unlimited time is dependent on the home service
+ provider policy. (Note: The latter option implies that the Service
+ Element should not remove the restriction filters upon termination of
+ the credit-control.) The server will return the appropriate
+ Result-Code (see Section 9.1) in the Credit-Control-Answer message in
+ order to implement the policy-defined action. Otherwise, a new quota
+ will be returned, and the Service Element MUST remove all the
+ possible restrictions activated by the graceful service termination
+ process and continue the credit-control session and service session
+ as usual.
+
+ The credit-control client may not wait until the expiration of the
+ Validity-Time and may send a spontaneous update (a new
+ Credit-Control-Request) if the Service Element can determine, for
+ instance, that communication between the end user and the top-up
+ server took place. An example of this case is given in Appendix A.8
+ (Figure 18).
+
+ Note that the credit-control server may already have initiated the
+ above-described process for the first interrogation. However, the
+ user's account might be empty when this first interrogation is
+ performed. In this case, the subscriber can be offered a chance to
+ replenish the account and continue the service. When the
+ credit-control client receives (at either the session level or a
+ service-specific level) a Final-Unit-Indication AVP or QoS-Final-
+ Unit-Indication AVP, together with Validity-Time AVPs, but without a
+ Granted-Service-Unit AVP, it immediately starts the graceful service
+ termination process without sending any messages to the server. An
+ example of this case is illustrated in Appendix A.8 (Figure 18).
+
+
+
+Bertz, et al. Standards Track [Page 39]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+5.6.3. Restrict Access Action
+
+ A Final-Unit-Indication AVP with Final-Unit-Action set to
+ RESTRICT_ACCESS indicates to the device supporting this action that,
+ upon consumption of the final granted units, the user's access MUST
+ be restricted according to the IP packet filters given in the
+ Restriction-Filter-Rule AVP(s) or according to the IP packet filters
+ identified by the Filter-Id AVP(s). The credit-control server SHOULD
+ include either the Restriction-Filter-Rule AVP or the Filter-Id AVP
+ in the Final-Unit-Indication group AVP of the Credit-Control-Answer
+ message.
+
+ A QoS-Final-Unit-Indication AVP with Final-Unit-Action set to
+ RESTRICT_ACCESS indicates to the device supporting this action that,
+ upon consumption of the final granted units, the actions specified in
+ Filter-Rule AVP(s) MUST restrict the traffic according to the
+ classifiers in the Filter-Rule AVP(s). If one or more Filter-Id AVPs
+ are provided in the Credit-Control-Answer message, the credit-control
+ client MUST restrict the traffic according to the IP packet filters
+ identified by the Filter-Id AVP(s). The credit-control server SHOULD
+ include either the Filter-Rule AVP or the Filter-Id AVP in the
+ QoS-Final-Unit-Indication group AVP of the Credit-Control-Answer
+ message.
+
+ If both the Final-Unit-Indication AVP and the QoS-Final-Unit-
+ Indication AVP exist in the Credit-Control-Answer message, a
+ credit-control client that supports the QoS-Final-Unit-Indication AVP
+ SHOULD follow the directives included in the QoS-Final-Unit-
+ Indication AVP and SHOULD ignore the Final-Unit-Indication AVP.
+
+ An entity other than the credit-control server may provision the
+ access device with appropriate IP packet filters to be used in
+ conjunction with the Diameter Credit-Control application. Such an
+ entity may, for instance, configure the access device with IP flows
+ to be passed when the Diameter Credit-Control application indicates
+ RESTRICT_ACCESS or REDIRECT. The access device passes IP packets
+ according to the filter rules that may have been received in the
+ Credit-Control-Answer message, in addition to those rules that may
+ have been configured by the other entity. However, when the user's
+ account cannot cover the cost of the requested service, the action
+ taken is the responsibility of the credit-control server that
+ controls the prepaid subscriber.
+
+ If another entity working in conjunction with the Diameter
+ Credit-Control application already provisions the access device with
+ all the required filter rules for the end user, the credit-control
+ server presumably need not send any additional filters. Therefore,
+ it is RECOMMENDED that credit-control server implementations
+
+
+
+Bertz, et al. Standards Track [Page 40]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ supporting graceful service termination be configurable for sending
+ the Restriction-Filter-Rule AVP, the Filter-Rule AVP, the Filter-Id
+ AVP, or none of the above.
+
+ When the final granted units have been consumed, the credit-control
+ client MUST perform an intermediate interrogation. The
+ credit-control client and the credit-control server process this
+ intermediate interrogation and execute subsequent procedures, as
+ specified in Section 5.6.2.
+
+ The credit-control server may initiate graceful service termination
+ when replying with the action RESTRICT_ACCESS for the first
+ interrogation. This is similar to the behavior specified in
+ Section 5.6.2.
+
+5.6.4. Usage of the Server-Initiated Credit Re-authorization
+
+ Once the subscriber replenishes the account, they presumably expect
+ all the restrictions applied by the graceful service termination
+ procedure to be removed immediately and unlimited service access to
+ be resumed. For the best user experience, the credit-control server
+ implementation MAY support the server-initiated credit
+ re-authorization (see Section 5.5). In such a case, upon the
+ successful account top-up, the credit-control server sends the
+ Re-Auth-Request (RAR) message to solicit the credit re-authorization.
+ The credit-control client initiates the credit re-authorization by
+ sending the Credit-Control-Request message with the CC-Request-Type
+ AVP set to the value UPDATE_REQUEST. The Used-Service-Unit AVP is
+ not included in the request, as there is no allotted quota to report.
+ The Requested-Service-Unit AVP MAY be included in the request. After
+ the credit-control client successfully receives the Credit-Control-
+ Answer with a new Granted-Service-Unit AVP, all the possible
+ restrictions activated for the purpose of graceful service
+ termination MUST be removed in the Service Element. The
+ credit-control session and the service session continue as usual.
+
+5.7. Failure Procedures
+
+ The CCFH, as described in this section, determines the behavior of
+ the credit-control client in fault situations. The CCFH may be
+ (1) received from the Diameter home AAA server, (2) received from the
+ credit-control server, or (3) configured locally. The CCFH value
+ received from the home AAA server overrides the locally configured
+ value. The CCFH value received from the credit-control server in the
+ Credit-Control-Answer message always overrides any existing values.
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 41]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The authorization server MAY include the Accounting-Realtime-Required
+ AVP to determine what to do if the sending of accounting records to
+ the accounting server has been temporarily prevented, as defined in
+ [RFC6733]. It is RECOMMENDED that the client complement the
+ credit-control failure procedures with a backup accounting flow
+ toward an accounting server. By using different combinations of the
+ Accounting-Realtime-Required AVP and the CCFH, different safety
+ levels can be built. For example, by choosing a CCFH equal to
+ CONTINUE for the credit-control flow and an Accounting-Realtime-
+ Required AVP equal to DELIVER_AND_GRANT for the accounting flow, the
+ service can be granted to the end user even if the connection to the
+ credit-control server is down, as long as the accounting server is
+ able to collect the accounting information and information exchange
+ is taking place between the accounting server and credit-control
+ server.
+
+ As the credit-control application is based on real-time bidirectional
+ communication between the credit-control client and the
+ credit-control server, the usage of alternative destinations and the
+ buffering of messages may not be sufficient in the event of
+ communication failures. Because the credit-control server has to
+ maintain session states, moving the credit-control message stream to
+ a backup server requires a complex context transfer solution.
+ Whether the credit-control message stream is moved to a backup
+ credit-control server during an ongoing credit-control session
+ depends on the value of the CC-Session-Failover AVP. However,
+ failover may occur at any point in the path between the
+ credit-control client and the credit-control server if a transport
+ failure is detected with a peer, as described in [RFC6733]. As a
+ consequence, the credit-control server might receive duplicate
+ messages. These duplicate or out-of-sequence messages can be
+ detected in the credit-control server based on the credit-control
+ server session state machine (Section 7), Session-Id AVP, and
+ CC-Request-Number AVP.
+
+ If a failure occurs during an ongoing credit-control session, the
+ credit-control client may move the credit-control message stream to
+ an alternative server if the credit-control server indicated
+ FAILOVER_SUPPORTED in the CC-Session-Failover AVP. A secondary
+ credit-control server name, either received from the home Diameter
+ AAA server or configured locally, can be used as an address of the
+ backup server. If the CC-Session-Failover AVP is set to
+ FAILOVER_NOT_SUPPORTED, the credit-control message stream MUST NOT be
+ moved to a backup server.
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 42]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ For new credit-control sessions, failover to an alternative
+ credit-control server SHOULD be performed, if possible. For
+ instance, if an implementation of the credit-control client can
+ determine primary credit-control server unavailability, it can
+ establish the new credit-control sessions with a possibly available
+ secondary credit-control server.
+
+ The AAA transport profile [RFC3539] defines an application-layer
+ watchdog algorithm that enables failover from a peer that has failed
+ and is controlled by a watchdog timer (Tw) (defined in [RFC3539]).
+ The recommended default initial value for Tw (Twinit) is 30 seconds.
+ Twinit may be set as low as 6 seconds; however, according to
+ [RFC3539], setting too low a value for Twinit is likely to result in
+ an increased probability of duplicates, as well as an increase in
+ spurious failover and failback attempts. The Diameter base protocol
+ [RFC6733] is common to several different types of Diameter AAA
+ applications that may be run in the same Service Element. Therefore,
+ tuning the timer for Twinit to a lower value in order to satisfy the
+ requirements of real-time applications, such as the Diameter
+ Credit-Control application, will certainly cause the above-mentioned
+ problems. For prepaid services, however, the end user expects an
+ answer from the network in a reasonable time. Thus, the Diameter
+ Credit-Control client will react more quickly than would the
+ underlying base protocol. Therefore, this specification defines the
+ Tx timer (as defined in Section 13), which is used by the
+ credit-control client to supervise communication with the
+ credit-control server. When the Tx timer elapses, the credit-control
+ client takes action for the end user according to the CCFH.
+
+ When the Tx timer expires, the Diameter Credit-Control client always
+ terminates the service if the CCFH is set to the value TERMINATE.
+ The credit-control session may be moved to an alternative server only
+ if a protocol error DIAMETER_TOO_BUSY or DIAMETER_UNABLE_TO_DELIVER
+ is received before the Tx timer expires. Therefore, the value
+ TERMINATE is not appropriate if proper failover behavior is desired.
+
+ If the CCFH is set to the value CONTINUE or RETRY_AND_TERMINATE, the
+ service will be granted to the end user when the Tx timer expires.
+ An Answer message with granted units may arrive later if the base
+ protocol transport failover occurred in the path to the
+ credit-control server. (The Twinit default value is 3 times more
+ than the recommended Tx timeout value.) The credit-control client
+ SHOULD grant the service to the end user, start monitoring resource
+ usage, and wait for the possible late answer until the timeout of the
+ request (e.g., 120 seconds). If the request fails and the
+ CC-Session-Failover AVP is set to FAILOVER_NOT_SUPPORTED, the
+
+
+
+
+
+Bertz, et al. Standards Track [Page 43]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ credit-control client terminates or continues the service --
+ depending on the value set in the CCFH -- and MUST free all the
+ reserved resources for the credit-control session. If the protocol
+ error DIAMETER_UNABLE_TO_DELIVER or DIAMETER_TOO_BUSY is received or
+ the request times out and the CC-Session-Failover AVP is set to
+ FAILOVER_SUPPORTED, the credit-control client MAY send the request to
+ a backup server, if possible. If the credit-control client receives
+ a successful answer from the backup server, it continues the
+ credit-control session with such a server. If the retransmitted
+ request also fails, the credit-control client terminates or continues
+ the service -- depending on the value set in the CCFH -- and MUST
+ free all the reserved resources for the credit-control session.
+
+ If a communication failure occurs during the graceful service
+ termination procedure, the Service Element SHOULD always terminate
+ the ongoing service session.
+
+ If the credit-control server detects a failure during an ongoing
+ credit-control session, it will terminate the credit-control session
+ and return the reserved units back to the end user's account.
+
+ The supervision session timer Tcc (as defined in Section 13) is used
+ in the credit-control server to supervise the credit-control session.
+
+ In order to support failover between credit-control servers,
+ information transfer about the credit-control session and account
+ state SHOULD take place between the primary and secondary
+ credit-control servers. Implementations supporting credit-control
+ session failover MUST also ensure proper detection of duplicate or
+ out-of-sequence messages. Communication between the servers is
+ regarded as an implementation issue and is outside the scope of this
+ specification.
+
+6. One-Time Event
+
+ The one-time event is used when there is no need to maintain any
+ state in the Diameter Credit-Control server -- for example, inquiring
+ about the price of the service. The use of a one-time event implies
+ that the user has been authenticated and authorized beforehand.
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 44]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The one-time event can be used when the credit-control client wants
+ to know the cost of the service event or to check the account balance
+ without any credit reservations. It can also be used for refunding
+ service units on the user's account or for direct debiting without
+ any credit reservations. The one-time event is shown in Figure 8.
+
+ Diameter
+ End User Service Element AAA Server CC Server
+ (CC Client)
+ | Service Request | | |
+ |------------------>| | |
+ | | CCR(Event) | |
+ | |------------------->| CCR(Event) |
+ | | |------------------->|
+ | | | CCA(Granted-Units)|
+ | | CCA(Granted-Units)|<-------------------|
+ | Service Delivery |<-------------------| |
+ |<----------------->| | |
+
+ Figure 8: One-Time Event
+
+ In environments such as the 3GPP architecture, the one-time event can
+ be sent from the Service Element directly to the credit-control
+ server.
+
+6.1. Service Price Inquiry
+
+ The credit-control client may need to know the price of the service
+ event. Services offered by application service providers whose
+ prices are not known in the credit-control client might exist. The
+ end user might also want to get an estimate of the price of a service
+ event before requesting it.
+
+ A Diameter Credit-Control client requesting the cost information MUST
+ set the CC-Request-Type AVP equal to EVENT_REQUEST, include the
+ Requested-Action AVP set to PRICE_ENQUIRY, and set the requested
+ service event information in the Service-Identifier AVP in the
+ Credit-Control-Request message. Additional service event information
+ may be sent as service-specific AVPs or within the Service-Parameter-
+ Info AVP. The Service-Context-Id AVP indicates the service-specific
+ document applicable to the request.
+
+ The credit-control server calculates the cost of the requested
+ service event, but it does not perform any account-balance checks or
+ credit reservations from the account.
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 45]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The estimated cost of the requested service event is returned to the
+ credit-control client in the Cost-Information AVP in the
+ Credit-Control-Answer message.
+
+6.2. Balance Checks
+
+ The Diameter Credit-Control client may only have to verify that the
+ end user's account balance covers the cost of a certain service
+ without reserving any units from the account at the time of the
+ inquiry. This method does not guarantee that credit would be left
+ when the Diameter Credit-Control client requests the debiting of the
+ account with a separate request.
+
+ A Diameter Credit-Control client requesting a balance check MUST set
+ the CC-Request-Type AVP equal to EVENT_REQUEST, include a Requested-
+ Action AVP set to CHECK_BALANCE, and include the Subscription-Id AVP
+ or Subscription-Id-Extension AVP in order to identify the end user in
+ the credit-control server. The Service-Context-Id AVP indicates the
+ service-specific document applicable to the request.
+
+ The credit-control server makes the balance check, but it does not
+ make any credit reservations from the account.
+
+ The result of the balance check (ENOUGH_CREDIT/NO_CREDIT) is returned
+ to the credit-control client in the Check-Balance-Result AVP in the
+ Credit-Control-Answer message.
+
+6.3. Direct Debiting
+
+ There are certain service events for which service execution is
+ always successful in the service environment. The delay between the
+ service invocation and the actual service delivery to the end user
+ can be sufficiently long that the use of session-based credit-control
+ would lead to unreasonably long credit-control sessions. In these
+ cases, the Diameter Credit-Control client can use the one-time event
+ scenario for direct debiting. The Diameter Credit-Control client
+ SHOULD be sure that the requested service event execution would be
+ successful when this scenario is used.
+
+ In the Credit-Control-Request message, the CC-Request-Type AVP is set
+ to the value EVENT_REQUEST and the Requested-Action AVP is set to
+ DIRECT_DEBITING. The Subscription-Id AVP or Subscription-Id-
+ Extension AVP SHOULD be included to identify the end user in the
+ credit-control server. The Event-Timestamp AVP SHOULD be included in
+ the request and contain the time when the service event is requested
+ in the Service Element. The Service-Context-Id AVP indicates the
+ service-specific document applicable to the request.
+
+
+
+
+Bertz, et al. Standards Track [Page 46]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ If it knows the cost of the service event, the Diameter
+ Credit-Control client MAY include in the Requested-Service-Unit AVP
+ the monetary amount to be charged. If the Diameter Credit-Control
+ client does not know the cost of the service event, the Requested-
+ Service-Unit AVP MAY contain the number of requested service events.
+ The Service-Identifier AVP always indicates the service concerned.
+ Additional service event information to be rated MAY be sent as
+ service-specific AVPs or within the Service-Parameter-Info AVP.
+
+ The credit-control server SHOULD rate the service event and deduct
+ the corresponding monetary amount from the end user's account. If
+ the type of the Requested-Service-Unit AVP is "money", no rating is
+ needed, but the corresponding monetary amount is deducted from the
+ end user's account.
+
+ The credit-control server returns the Granted-Service-Unit AVP in the
+ Credit-Control-Answer message to the Diameter Credit-Control client.
+ The Granted-Service-Unit AVP contains the amount of service units
+ that the Diameter Credit-Control client can provide to the end user.
+ The type of the Granted-Service-Unit can be time, volume, service-
+ specific, or money, depending on the type of service event.
+
+ If the credit-control server determines that no credit-control is
+ needed for the service, it can include the result code indicating
+ that the credit-control is not applicable (e.g., the service is free
+ of charge).
+
+ For informative purposes, the Credit-Control-Answer message MAY also
+ include the Cost-Information AVP containing the estimated total cost
+ of the requested service.
+
+6.4. Refunds
+
+ Some services may refund service units to the end user's account --
+ for example, gaming services.
+
+ The credit-control client MUST set the CC-Request-Type AVP to the
+ value EVENT_REQUEST and the Requested-Action AVP to REFUND_ACCOUNT in
+ the Credit-Control-Request message. The Subscription-Id AVP or
+ Subscription-Id-Extension AVP SHOULD be included to identify the
+ end user in the credit-control server. The Service-Context-Id AVP
+ indicates the service-specific document applicable to the request.
+
+ The Diameter Credit-Control client MAY include the monetary amount to
+ be refunded in the Requested-Service-Unit AVP. The Service-
+ Identifier AVP always indicates the service concerned. If the
+ Diameter Credit-Control client does not know the monetary amount to
+
+
+
+
+Bertz, et al. Standards Track [Page 47]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ be refunded, in addition to the Service-Identifier AVP it MAY send
+ service-specific AVPs or the Service-Parameter-Info AVP containing
+ additional service event information to be rated.
+
+ For informative purposes, the Credit-Control-Answer message MAY also
+ include the Cost-Information AVP containing the estimated monetary
+ amount of refunded units.
+
+6.5. Failure Procedure
+
+ Failover to an alternative credit-control server is allowed for a
+ one-time event, as the server is not maintaining session states. For
+ instance, if the credit-control client receives a protocol error
+ DIAMETER_UNABLE_TO_DELIVER or DIAMETER_TOO_BUSY, it can resend the
+ request to an alternative server, if possible. There MAY be
+ protocol-transparent Diameter relays and redirect agents or Diameter
+ Credit-Control proxies between the credit-control client and
+ credit-control server. Failover may occur at any point in the path
+ between the credit-control client and the credit-control server if a
+ transport failure is detected with a peer, as described in [RFC6733].
+ Because there can be duplicate requests for various reasons, the
+ credit-control server is responsible for real-time duplicate
+ detection. Implementation issues for duplicate detection are
+ discussed in [RFC6733], Appendix C.
+
+ When the credit-control client detects a communication failure with
+ the credit-control server, its behavior depends on the requested
+ action. The Tx timer (as defined in Section 13) is used in the
+ credit-control client to supervise communication with the
+ credit-control server.
+
+ If the requested action is PRICE_ENQUIRY or CHECK_BALANCE and a
+ communication failure is detected, the credit-control client SHOULD
+ forward the request messages to an alternative credit-control server,
+ if possible. The secondary credit-control server name, if received
+ from the home Diameter AAA server, can be used as an address of the
+ backup server.
+
+ If the requested action is DIRECT_DEBITING, the DDFH controls the
+ credit-control client's behavior. The DDFH may be received from the
+ home Diameter AAA server or may be locally configured. The
+ credit-control server may also send the DDFH in any CCA messages to
+ be used for direct-debiting events compiled thereafter. The DDFH
+ value received from the home Diameter AAA server overrides the
+ locally configured value, and the DDFH value received from the
+ credit-control server in a Credit-Control-Answer message always
+ overrides any existing values.
+
+
+
+
+Bertz, et al. Standards Track [Page 48]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ If the DDFH is set to TERMINATE_OR_BUFFER, the credit-control client
+ SHOULD NOT grant the service if, after a possible retransmission
+ attempt to an alternative credit-control server, the credit-control
+ client can eventually determine from the result code or error code in
+ the Answer message that units have not been debited. Otherwise, the
+ credit-control client SHOULD grant the service to the end user and
+ store the request in credit-control application-level non-volatile
+ storage. (Note that resending the request at a later time is not a
+ guarantee that the service will be debited, as the user's account may
+ be empty when the server successfully processes the request.) The
+ credit-control client MUST mark these request messages as possible
+ duplicates by setting the T flag in the command header as described
+ in [RFC6733], Section 3.
+
+ If the DDFH is set to CONTINUE, the service SHOULD be granted, even
+ if credit-control messages cannot be delivered and messages are not
+ buffered.
+
+ If the Tx timer expires, the credit-control client MUST continue the
+ service and wait for a possible late answer. If the request
+ times out, the credit-control client retransmits the request (marked
+ with the T flag) to a backup credit-control server, if possible. If
+ the retransmitted request also times out or if a temporary error is
+ received in answer, the credit-control client buffers the request if
+ the value of the DDFH is set to TERMINATE_OR_BUFFER. If a failed
+ answer is received for the retransmitted request, the credit-control
+ client frees all the resources reserved for the event message and
+ deletes the request regardless of the value of the DDFH.
+
+ The Credit-Control-Request with the requested action REFUND_ACCOUNT
+ should always be stored in credit-control application-level
+ non-volatile storage in case a temporary failure occurs. The
+ credit-control client MUST mark the retransmitted request message as
+ a possible duplicate by setting the T flag in the command header as
+ described in [RFC6733], Section 3.
+
+ For stored requests, the implementation may choose to limit the
+ number of retransmission attempts and to define a retransmission
+ interval.
+
+ Note that only one entity in the credit-control system SHOULD be
+ responsible for duplicate detection. If there is only one
+ credit-control server within the given realm, the credit-control
+ server may perform duplicate detection. If there is more than one
+ credit-control server in a given realm, only one entity in the
+ credit-control system should be responsible, to ensure that the
+ end user's account is not debited or credited multiple times for the
+ same service event.
+
+
+
+Bertz, et al. Standards Track [Page 49]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+7. Credit-Control Application State Machines
+
+ This section defines five credit-control application state machines.
+ The first four state machines are to be observed by credit-control
+ clients.
+
+ The first state machine describes session-based credit-control where
+ the first interrogation is executed as part of the authorization/
+ authentication process. The second state machine describes
+ session-based credit-control where the first interrogation is
+ executed after the authorization/authentication process. The
+ requirements regarding what has to be supported for these two state
+ machines are discussed in Section 5.2.
+
+ The third state machine describes session-based credit-control for
+ the intermediate and final interrogations. The fourth state machine
+ describes event-based credit-control. These two state machines are
+ to be observed by all implementations that conform to this
+ specification.
+
+ The fifth state machine describes the credit-control session from a
+ credit-control server's perspective.
+
+ Any event not listed in the state machines MUST be considered an
+ error condition, and a corresponding answer, if applicable, MUST be
+ returned to the originator of the message.
+
+ In Tables 3, 4, and 5, the event "failure to send" means that the
+ Diameter Credit-Control client is unable to communicate with the
+ desired destination or, if a failover procedure is supported, with a
+ possibly defined alternative destination (e.g., the request times out
+ and the Answer message is not received). This could be due to
+ (1) the peer being down or (2) a physical link failure in the path to
+ or from the credit-control server.
+
+ The event "temporary error" means that the Diameter Credit-Control
+ client received a protocol error notification (DIAMETER_TOO_BUSY,
+ DIAMETER_UNABLE_TO_DELIVER, or DIAMETER_LOOP_DETECTED) in the
+ Result-Code AVP of the Credit-Control-Answer command. This type of
+ notification may ultimately be received in answer to the
+ retransmitted request to a defined alternative destination, if
+ failover is supported.
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 50]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The event "failed answer" means that the Diameter Credit-Control
+ client received a non-transient failure (permanent failure)
+ notification in the Credit-Control-Answer command. This type of
+ notification may ultimately be received in answer to the
+ retransmitted request to a defined alternative destination, if
+ failover is supported.
+
+ The action "store request" means that a request is stored in
+ credit-control application-level non-volatile storage.
+
+ The event "not successfully processed" means that the credit-control
+ server could not process the message, e.g., due to an unknown
+ end user, an account being empty, or errors defined in [RFC6733].
+
+ The event "user service terminated" can be triggered for various
+ reasons, e.g., normal user termination, network failure, and ASR
+ (Abort-Session-Request). The Termination-Cause AVP contains
+ information about the reason for termination, as specified in
+ [RFC6733].
+
+ The Tx timer, which is used to control the waiting time in the
+ credit-control client in the Pending state, is stopped upon exit of
+ the Pending state. The stopping of the Tx timer is omitted in the
+ state machine when the new state is Idle, as moving to Idle state
+ implies the clearing of the session and all the variables associated
+ to it.
+
+ The states PendingI, PendingU, PendingT, PendingE, and PendingB stand
+ for pending states to wait for an answer to a credit-control request
+ related to Initial, Update, Termination, Event, or Buffered request,
+ respectively.
+
+ In Table 2, failover to a secondary server upon "temporary error" or
+ "failure to send" is not explicitly described. However, moving an
+ ongoing credit-control message stream to an alternative server is
+ possible if the CC-Session-Failover AVP is set to FAILOVER_SUPPORTED,
+ as described in Section 5.7.
+
+ Resending a credit-control event to an alternative server is
+ supported as described in Section 6.5.
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 51]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ +----------+-------------------------------+-------------+----------+
+ | State | Event | Action | New |
+ | | | | State |
+ +----------+-------------------------------+-------------+----------+
+ | Idle | Client or device requests | Send | PendingI |
+ | | access/service | AA-Request | |
+ | | | with added | |
+ | | | CC AVPs, | |
+ | | | start Tx | |
+ | | | timer | |
+ | | | | |
+ | PendingI | Successful answer to | Grant | Open |
+ | | AA-Request received | service to | |
+ | | | end user, | |
+ | | | stop Tx | |
+ | | | timer | |
+ | | | | |
+ | PendingI | Tx timer expired | Disconnect | Idle |
+ | | | user/dev | |
+ | | | | |
+ | PendingI | Failed AA-Answer received | Disconnect | Idle |
+ | | | user/dev | |
+ | | | | |
+ | PendingI | AA-Answer received with | Grant | Idle |
+ | | Result-Code equal to | service to | |
+ | | CREDIT_CONTROL_NOT_APPLICABLE | end user | |
+ | | | | |
+ | PendingI | User service terminated | Queue | PendingI |
+ | | | termination | |
+ | | | event | |
+ | | | | |
+ | PendingI | Change in rating condition | Queue | PendingI |
+ | | | changed | |
+ | | | rating | |
+ | | | condition | |
+ | | | event | |
+ +----------+-------------------------------+-------------+----------+
+
+ Table 2: Session-Based Client State Machine for the
+ First Interrogation with AA-Request
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 52]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ +----------+-------------------------------+-------------+----------+
+ | State | Event | Action | New |
+ | | | | State |
+ +----------+-------------------------------+-------------+----------+
+ | Idle | Client or device requests | Send CC | PendingI |
+ | | access/service | initial | |
+ | | | req., start | |
+ | | | Tx timer | |
+ | | | | |
+ | PendingI | Successful CC initial answer | Stop Tx | Open |
+ | | received | timer | |
+ | | | | |
+ | PendingI | Failure to send, or temporary | Grant | Idle |
+ | | error and CCFH equal to | service to | |
+ | | CONTINUE | end user | |
+ | | | | |
+ | PendingI | Failure to send, or temporary | Terminate | Idle |
+ | | error and CCFH equal to | end user's | |
+ | | TERMINATE or to | service | |
+ | | RETRY_AND_TERMINATE | | |
+ | | | | |
+ | PendingI | Tx timer expired and CCFH | Terminate | Idle |
+ | | equal to TERMINATE | end user's | |
+ | | | service | |
+ | | | | |
+ | PendingI | Tx timer expired and CCFH | Grant | PendingI |
+ | | equal to CONTINUE or to | service to | |
+ | | RETRY_AND_TERMINATE | end user | |
+ | | | | |
+ | PendingI | CC initial answer received | Terminate | Idle |
+ | | with Result-Code equal to | end user's | |
+ | | END_USER_SERVICE_DENIED or to | service | |
+ | | USER_UNKNOWN | | |
+ | | | | |
+ | PendingI | CC initial answer received | Grant | Idle |
+ | | with Result-Code equal to | service to | |
+ | | CREDIT_CONTROL_NOT_APPLICABLE | end user | |
+ | | | | |
+ | PendingI | Failed CC initial answer | Grant | Idle |
+ | | received and CCFH equal to | service to | |
+ | | CONTINUE | end user | |
+ | | | | |
+ | PendingI | Failed CC initial answer | Terminate | Idle |
+ | | received and CCFH equal to | end user's | |
+ | | TERMINATE or to | service | |
+ | | RETRY_AND_TERMINATE | | |
+ | | | | |
+
+
+
+
+Bertz, et al. Standards Track [Page 53]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ | PendingI | User service terminated | Queue | PendingI |
+ | | | termination | |
+ | | | event | |
+ | | | | |
+ | PendingI | Change in rating condition | Queue | PendingI |
+ | | | changed | |
+ | | | rating | |
+ | | | condition | |
+ | | | event | |
+ +----------+-------------------------------+-------------+----------+
+
+ Table 3: Session-Based Client State Machine for the
+ First Interrogation with CCR
+
+
+ +----------+-------------------------------+-------------+----------+
+ | State | Event | Action | New |
+ | | | | State |
+ +----------+-------------------------------+-------------+----------+
+ | Open | Granted unit elapses and no | Send CC | PendingU |
+ | | final-unit indication | update | |
+ | | received | req., start | |
+ | | | Tx timer | |
+ | | | | |
+ | Open | Granted unit elapses and | Terminate | PendingT |
+ | | final unit action equal to | end user's | |
+ | | TERMINATE received | service, | |
+ | | | send CC | |
+ | | | termination | |
+ | | | req. | |
+ | | | | |
+ | Open | Change in rating condition in | Send CC | PendingU |
+ | | queue | update | |
+ | | | req., start | |
+ | | | Tx timer | |
+ | | | | |
+ | Open | Service terminated in queue | Send CC | PendingT |
+ | | | termination | |
+ | | | req. | |
+ | | | | |
+ | Open | Change in rating condition or | Send CC | PendingU |
+ | | Validity-Time elapses | update | |
+ | | | req., start | |
+ | | | Tx timer | |
+ | | | | |
+ | Open | User service terminated | Send CC | PendingT |
+ | | | termination | |
+ | | | req. | |
+
+
+
+Bertz, et al. Standards Track [Page 54]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ | | | | |
+ | Open | RAR received | Send RAA | PendingU |
+ | | | followed by | |
+ | | | CC update | |
+ | | | req., start | |
+ | | | Tx timer | |
+ | | | | |
+ | PendingU | Successful CC update answer | Stop Tx | Open |
+ | | received | timer | |
+ | | | | |
+ | PendingU | Failure to send, or temporary | Grant | Idle |
+ | | error and CCFH equal to | service to | |
+ | | CONTINUE | end user | |
+ | | | | |
+ | PendingU | Failure to send, or temporary | Terminate | Idle |
+ | | error and CCFH equal to | end user's | |
+ | | TERMINATE or to | service | |
+ | | RETRY_AND_TERMINATE | | |
+ | | | | |
+ | PendingU | Tx timer expired and CCFH | Terminate | Idle |
+ | | equal to TERMINATE | end user's | |
+ | | | service | |
+ | | | | |
+ | PendingU | Tx timer expired and CCFH | Grant | PendingU |
+ | | equal to CONTINUE or to | service to | |
+ | | RETRY_AND_TERMINATE | end user | |
+ | | | | |
+ | PendingU | CC update answer received | Terminate | Idle |
+ | | with Result-Code equal to | end user's | |
+ | | END_USER_SERVICE_DENIED | service | |
+ | | | | |
+ | PendingU | CC update answer received | Grant | Idle |
+ | | with Result-Code equal to | service to | |
+ | | CREDIT_CONTROL_NOT_APPLICABLE | end user | |
+ | | | | |
+ | PendingU | Failed CC update answer | Grant | Idle |
+ | | received and CCFH equal to | service to | |
+ | | CONTINUE | end user | |
+ | | | | |
+ | PendingU | Failed CC update answer | Terminate | Idle |
+ | | received and CCFH equal to | end user's | |
+ | | TERMINATE or to | service | |
+ | | RETRY_AND_TERMINATE | | |
+ | | | | |
+ | PendingU | User service terminated | Queue | PendingU |
+ | | | termination | |
+ | | | event | |
+ | | | | |
+
+
+
+Bertz, et al. Standards Track [Page 55]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ | PendingU | Change in rating condition | Queue | PendingU |
+ | | | changed | |
+ | | | rating | |
+ | | | condition | |
+ | | | event | |
+ | | | | |
+ | PendingU | RAR received | Send RAA | PendingU |
+ | | | | |
+ | PendingT | Successful CC termination | | Idle |
+ | | answer received | | |
+ | | | | |
+ | PendingT | Failure to send, temporary | | Idle |
+ | | error, or failed answer | | |
+ | | | | |
+ | PendingT | Change in rating condition | | PendingT |
+ +----------+-------------------------------+-------------+----------+
+
+ Table 4: Session-Based Client State Machine for Intermediate and
+ Final Interrogations
+
+
+ +----------+--------------------------------+------------+----------+
+ | State | Event | Action | New |
+ | | | | State |
+ +----------+--------------------------------+------------+----------+
+ | Idle | Client or device requests a | Send CC | PendingE |
+ | | one-time service | event | |
+ | | | req., | |
+ | | | start Tx | |
+ | | | timer | |
+ | | | | |
+ | Idle | Request in storage | Send | PendingB |
+ | | | stored | |
+ | | | request | |
+ | | | | |
+ | PendingE | Successful CC event answer | Grant | Idle |
+ | | received | service to | |
+ | | | end user | |
+ | | | | |
+ | PendingE | Failure to send, temporary | Indicate | Idle |
+ | | error, failed CC event answer | service | |
+ | | received, or Tx timer expired; | error | |
+ | | requested action CHECK_BALANCE | | |
+ | | or PRICE_ENQUIRY | | |
+ | | | | |
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 56]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ | PendingE | CC event answer received with | Terminate | Idle |
+ | | Result-Code equal to | end user's | |
+ | | END_USER_SERVICE_DENIED or to | service | |
+ | | USER_UNKNOWN and Tx timer | | |
+ | | running | | |
+ | | | | |
+ | PendingE | CC event answer received with | Grant | Idle |
+ | | Result-Code equal to | service to | |
+ | | CREDIT_CONTROL_NOT_APPLICABLE; | end user | |
+ | | requested action | | |
+ | | DIRECT_DEBITING | | |
+ | | | | |
+ | PendingE | Failure to send, temporary | Grant | Idle |
+ | | error, or failed CC event | service to | |
+ | | answer received; requested | end user | |
+ | | action DIRECT_DEBITING; DDFH | | |
+ | | equal to CONTINUE | | |
+ | | | | |
+ | PendingE | Failed CC event answer | Terminate | Idle |
+ | | received or temporary error; | end user's | |
+ | | requested action | service | |
+ | | DIRECT_DEBITING; DDFH equal to | | |
+ | | TERMINATE_OR_BUFFER and Tx | | |
+ | | timer running | | |
+ | | | | |
+ | PendingE | Tx timer expired; requested | Grant | PendingE |
+ | | action DIRECT_DEBITING | service to | |
+ | | | end user | |
+ | | | | |
+ | PendingE | Failure to send; requested | Store | Idle |
+ | | action DIRECT_DEBITING; DDFH | request | |
+ | | equal to TERMINATE_OR_BUFFER | with | |
+ | | | T flag | |
+ | | | | |
+ | PendingE | Temporary error; requested | Store | Idle |
+ | | action DIRECT_DEBITING; DDFH | request | |
+ | | equal to TERMINATE_OR_BUFFER; | | |
+ | | Tx timer expired | | |
+ | | | | |
+ | PendingE | Failed answer or answer | | Idle |
+ | | received with Result-Code | | |
+ | | equal to END_USER_SERVICE | | |
+ | | DENIED or to USER_UNKNOWN; | | |
+ | | requested action | | |
+ | | DIRECT_DEBITING; Tx timer | | |
+ | | expired | | |
+ | | | | |
+
+
+
+
+Bertz, et al. Standards Track [Page 57]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ | PendingE | Failed CC event answer | Indicate | Idle |
+ | | received; requested action | service | |
+ | | REFUND_ACCOUNT | error and | |
+ | | | delete | |
+ | | | request | |
+ | | | | |
+ | PendingE | Failure to send or Tx timer | Store | Idle |
+ | | expired; requested action | request | |
+ | | REFUND_ACCOUNT | with | |
+ | | | T flag | |
+ | | | | |
+ | PendingE | Temporary error; requested | Store | Idle |
+ | | action REFUND_ACCOUNT | request | |
+ | | | | |
+ | PendingB | Successful CC answer received | Delete | Idle |
+ | | | request | |
+ | | | | |
+ | PendingB | Failed CC answer received | Delete | Idle |
+ | | | request | |
+ | | | | |
+ | PendingB | Failure to send or temporary | | Idle |
+ | | error | | |
+ +----------+--------------------------------+------------+----------+
+
+ Table 5: One-Time Event Client State Machine
+
+
+ +-------+------------------------+--------------------------+-------+
+ | State | Event | Action | New |
+ | | | | State |
+ +-------+------------------------+--------------------------+-------+
+ | Idle | CC initial request | Send CC initial answer, | Open |
+ | | received and | reserve units, start Tcc | |
+ | | successfully processed | | |
+ | | | | |
+ | Idle | CC initial request | Send CC initial answer | Idle |
+ | | received but not | with Result-Code != | |
+ | | successfully processed | SUCCESS | |
+ | | | | |
+ | Idle | CC event request | Send CC event answer | Idle |
+ | | received and | | |
+ | | successfully processed | | |
+ | | | | |
+ | Idle | CC event request | Send CC event answer | Idle |
+ | | received but not | with Result-Code != | |
+ | | successfully processed | SUCCESS | |
+ | | | | |
+
+
+
+
+Bertz, et al. Standards Track [Page 58]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ | Open | CC update request | Send CC update answer, | Open |
+ | | received and | debit used units, | |
+ | | successfully processed | reserve new units, | |
+ | | | restart Tcc | |
+ | | | | |
+ | Open | CC update request | Send CC update answer | Idle |
+ | | received but not | with Result-Code != | |
+ | | successfully processed | SUCCESS, debit used | |
+ | | | units | |
+ | | | | |
+ | Open | CC termination request | Send CC termin. answer, | Idle |
+ | | received and | stop Tcc, debit used | |
+ | | successfully processed | units | |
+ | | | | |
+ | Open | CC termination request | Send CC termin. answer | Idle |
+ | | received but not | with Result-Code != | |
+ | | successfully processed | SUCCESS, debit used | |
+ | | | units | |
+ | | | | |
+ | Open | Session supervision | Release reserved units | Idle |
+ | | timer Tcc expired | | |
+ +-------+------------------------+--------------------------+-------+
+
+ Table 6: Session-Based and Event-Based Server State Machine
+
+8. Credit-Control AVPs
+
+ This section defines the Credit-Control AVPs that are specific to the
+ Diameter Credit-Control application and that MAY be included in the
+ Diameter Credit-Control messages.
+
+ The AVPs defined in this section MAY also be included in
+ authorization commands defined in authorization-specific
+ applications, such as [RFC7155] and [RFC4004], if the first
+ interrogation is performed as part of the authorization/
+ authentication process, as described in Section 5.2.
+
+ The Diameter AVP rules are defined in [RFC6733], Section 4. These
+ AVP rules are observed in AVPs defined in this section.
+
+ The following table describes the Diameter AVPs defined in the
+ credit-control application, their AVP Code values, types, and
+ possible flag values. The AVP Flag rules ('M', 'V') are explained in
+ [RFC6733], Section 4.1.
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 59]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ +---------------+
+ |AVP Flag Rules |
+ Defined |----+-----+----|
+ AVP in | | |MUST|
+ Attribute Name Code Section Data Type |MUST| MAY |NOT |
+ ----------------------------------------------------|----+-----+----|
+ CC-Correlation-Id 411 8.1 OctetString | | M | V |
+ CC-Input-Octets 412 8.24 Unsigned64 | M | | V |
+ CC-Money 413 8.22 Grouped | M | | V |
+ CC-Output-Octets 414 8.25 Unsigned64 | M | | V |
+ CC-Request-Number 415 8.2 Unsigned32 | M | | V |
+ CC-Request-Type 416 8.3 Enumerated | M | | V |
+ CC-Service-Specific- 417 8.26 Unsigned64 | M | | V |
+ Units | | | |
+ CC-Session-Failover 418 8.4 Enumerated | M | | V |
+ CC-Sub-Session-Id 419 8.5 Unsigned64 | M | | V |
+ CC-Time 420 8.21 Unsigned32 | M | | V |
+ CC-Total-Octets 421 8.23 Unsigned64 | M | | V |
+ CC-Unit-Type 454 8.32 Enumerated | M | | V |
+ Check-Balance-Result 422 8.6 Enumerated | M | | V |
+ Cost-Information 423 8.7 Grouped | M | | V |
+ Cost-Unit 424 8.12 UTF8String | M | | V |
+ Credit-Control 426 8.13 Enumerated | M | | V |
+ Credit-Control- 427 8.14 Enumerated | M | | V |
+ Failure-Handling | | | |
+ Currency-Code 425 8.11 Unsigned32 | M | | V |
+ Direct-Debiting- 428 8.15 Enumerated | M | | V |
+ Failure-Handling | | | |
+ Exponent 429 8.9 Integer32 | M | | V |
+ Final-Unit-Action 449 8.35 Enumerated | M | | V |
+ Final-Unit-Indication 430 8.34 Grouped | M | | V |
+ QoS-Final-Unit-Indication 669 8.68 Grouped | | M | V |
+ Granted-Service-Unit 431 8.17 Grouped | M | | V |
+ G-S-U-Pool-Identifier 453 8.31 Unsigned32 | M | | V |
+ G-S-U-Pool-Reference 457 8.30 Grouped | M | | V |
+ Multiple-Services- 456 8.16 Grouped | M | | V |
+ Credit-Control | | | |
+ Multiple-Services- 455 8.40 Enumerated | M | | V |
+ Indicator | | | |
+ Rating-Group 432 8.29 Unsigned32 | M | | V |
+ Redirect-Address-Type 433 8.38 Enumerated | M | | V |
+ Redirect-Server 434 8.37 Grouped | M | | V |
+ Redirect-Server-Address 435 8.39 UTF8String | M | | V |
+ Redirect-Server-Extension 665 8.64 Grouped | | M | V |
+ Redirect-Address- 666 8.65 Address | | M | V |
+ IPAddress | | | |
+ Redirect-Address-URL 667 8.66 UTF8String | | M | V |
+ Redirect-Address-SIP-URI 668 8.67 UTF8String | | M | V |
+
+
+
+Bertz, et al. Standards Track [Page 60]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Requested-Action 436 8.41 Enumerated | M | | V |
+ Requested-Service-Unit 437 8.18 Grouped | M | | V |
+ Restriction-Filter-Rule 438 8.36 IPFilterRule| M | | V |
+ Service-Context-Id 461 8.42 UTF8String | M | | V |
+ Service-Identifier 439 8.28 Unsigned32 | M | | V |
+ Service-Parameter-Info 440 8.43 Grouped | | M | V |
+ Service-Parameter-Type 441 8.44 Unsigned32 | | M | V |
+ Service-Parameter-Value 442 8.45 OctetString | | M | V |
+ Subscription-Id 443 8.46 Grouped | M | | V |
+ Subscription-Id-Data 444 8.48 UTF8String | M | | V |
+ Subscription-Id-Type 450 8.47 Enumerated | M | | V |
+ Subscription-Id-Extension 659 8.58 Grouped | | M | V |
+ Subscription-Id-E164 660 8.59 UTF8String | | M | V |
+ Subscription-Id-IMSI 661 8.60 UTF8String | | M | V |
+ Subscription-Id-SIP-URI 662 8.61 UTF8String | | M | V |
+ Subscription-Id-NAI 663 8.62 UTF8String | | M | V |
+ Subscription-Id-Private 664 8.63 UTF8String | | M | V |
+ Tariff-Change-Usage 452 8.27 Enumerated | M | | V |
+ Tariff-Time-Change 451 8.20 Time | M | | V |
+ Unit-Value 445 8.8 Grouped | M | | V |
+ Used-Service-Unit 446 8.19 Grouped | M | | V |
+ User-Equipment-Info 458 8.49 Grouped | | M | V |
+ User-Equipment-Info-Type 459 8.50 Enumerated | | M | V |
+ User-Equipment-Info-Value 460 8.51 OctetString | | M | V |
+ User-Equipment-Info- 653 8.52 Grouped | | M | V |
+ Extension | | | |
+ User-Equipment-Info- 654 8.53 OctetString | | M | V |
+ IMEISV | | | |
+ User-Equipment-Info-MAC 655 8.54 OctetString | | M | V |
+ User-Equipment-Info-EUI64 656 8.55 OctetString | | M | V |
+ User-Equipment-Info- 657 8.56 OctetString | | M | V |
+ ModifiedEUI64 | | | |
+ User-Equipment-Info-IMEI 658 8.57 OctetString | | M | V |
+ Value-Digits 447 8.10 Integer64 | M | | V |
+ Validity-Time 448 8.33 Unsigned32 | M | | V |
+
+8.1. CC-Correlation-Id AVP
+
+ The CC-Correlation-Id AVP (AVP Code 411) is of type OctetString and
+ contains information to correlate credit-control requests generated
+ for different components of the service, e.g., transport and service
+ level. Whoever allocates the Service-Context-Id (i.e., a unique
+ identifier of a service-specific document) is also responsible for
+ defining the content and encoding of the CC-Correlation-Id AVP.
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 61]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+8.2. CC-Request-Number AVP
+
+ The CC-Request-Number AVP (AVP Code 415) is of type Unsigned32 and
+ identifies this request within one session. As Session-Id AVPs are
+ globally unique, the combination of the Session-Id AVP and the
+ CC-Request-Number AVP is also globally unique and can be used in
+ matching credit-control messages with confirmations. An easy way to
+ produce unique numbers is to set the value of the CC-Request-Number
+ AVP to 0 for a credit-control request with a CC-Request-Type AVP of
+ INITIAL_REQUEST (the initial request in a session). The value of the
+ CC-Request-Number AVP should be set to 1 for the first
+ UPDATE_REQUEST, to 2 for the second, and so on until the value for
+ TERMINATION_REQUEST is one more than the value for the last
+ UPDATE_REQUEST. In the case of event charging (when the CC-Request-
+ Type AVP has the value EVENT_REQUEST), the CC-Request-Number AVP
+ should be set to 0 for a credit-control request.
+
+8.3. CC-Request-Type AVP
+
+ The CC-Request-Type AVP (AVP Code 416) is of type Enumerated and
+ contains the reason for sending the Credit-Control-Request message.
+ It MUST be present in all Credit-Control-Request messages. The
+ following values are defined for the CC-Request-Type AVP (the value
+ of 0 (zero) is reserved):
+
+ INITIAL_REQUEST 1
+
+ This request is used to initiate a credit-control session. It
+ contains credit-control information that is relevant to the
+ initiation.
+
+ UPDATE_REQUEST 2
+
+ This request contains credit-control information for an existing
+ credit-control session. Credit-control requests of this type SHOULD
+ be sent every time a credit-control re-authorization is needed at the
+ expiry of the allocated quota or validity time. Further, additional
+ service-specific events MAY trigger a spontaneous UPDATE_REQUEST.
+
+ TERMINATION_REQUEST 3
+
+ This request is sent to terminate a credit-control session. It
+ contains credit-control information relevant to the existing session.
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 62]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ EVENT_REQUEST 4
+
+ This request is used when there is no need to maintain any
+ credit-control session state in the credit-control server. It
+ contains all information relevant to the service and is the only
+ request of the service. The reason for this request is further
+ detailed in the Requested-Action AVP. The Requested-Action AVP MUST
+ be included in the Credit-Control-Request message when CC-Request-
+ Type is set to EVENT_REQUEST.
+
+8.4. CC-Session-Failover AVP
+
+ The CC-Session-Failover AVP (AVP Code 418) is of type Enumerated and
+ contains information as to whether moving the credit-control message
+ stream to a backup server during an ongoing credit-control session is
+ supported. In the case of communication failures, the credit-control
+ message streams can be moved to an alternative destination if the
+ credit-control server supports failover to an alternative server.
+ The secondary credit-control server name, if received from the home
+ Diameter AAA server, can be used as an address of the backup server.
+ An implementation is not required to support moving a credit-control
+ message stream to an alternative server, as this also requires moving
+ information related to the credit-control session to the backup
+ server.
+
+ The following values are defined for the CC-Session-Failover AVP:
+
+ FAILOVER_NOT_SUPPORTED 0
+
+ When the CC-Session-Failover AVP is set to FAILOVER_NOT_SUPPORTED,
+ the credit-control message stream MUST NOT be moved to an alternative
+ destination in the case of a communication failure. This is the
+ default behavior if the AVP isn't included in the reply from the
+ authorization or credit-control server.
+
+ FAILOVER_SUPPORTED 1
+
+ When the CC-Session-Failover AVP is set to FAILOVER_SUPPORTED, the
+ credit-control message stream SHOULD be moved to an alternative
+ destination in the case of a communication failure. Moving the
+ credit-control message stream to a backup server MAY require that
+ information related to the credit-control session should also be
+ forwarded to an alternative server.
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 63]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+8.5. CC-Sub-Session-Id AVP
+
+ The CC-Sub-Session-Id AVP (AVP Code 419) is of type Unsigned64 and
+ contains the credit-control sub-session identifier. The combination
+ of the Session-Id AVP and this AVP MUST be unique per sub-session,
+ and the value of this AVP MUST be monotonically increased by one for
+ all new sub-sessions. The absence of this AVP implies that no
+ sub-sessions are in use.
+
+8.6. Check-Balance-Result AVP
+
+ The Check-Balance-Result AVP (AVP Code 422) is of type Enumerated and
+ contains the result of the balance check. This AVP is applicable
+ only when the Requested-Action AVP indicates CHECK_BALANCE in the
+ Credit-Control-Request command. The following values are defined for
+ the Check-Balance-Result AVP:
+
+ ENOUGH_CREDIT 0
+
+ There is enough credit in the account to cover the requested service.
+
+ NO_CREDIT 1
+
+ There isn't enough credit in the account to cover the requested
+ service.
+
+8.7. Cost-Information AVP
+
+ The Cost-Information AVP (AVP Code 423) is of type Grouped, and it is
+ used to return the cost information of a service, which the
+ credit-control client can transfer transparently to the end user.
+ The included Unit-Value AVP contains the cost estimate (always of
+ type "money") of the service in the case of price inquiries, or the
+ accumulated cost estimation in the case of a credit-control session.
+
+ The Currency-Code AVP specifies in which currency the cost was given.
+ The Cost-Unit AVP specifies the unit when the service cost is a cost
+ per unit (e.g., cost for the service is $1 per minute).
+
+ When the Requested-Action AVP with the value PRICE_ENQUIRY is
+ included in the Credit-Control-Request command, the Cost-Information
+ AVP sent in the succeeding Credit-Control-Answer command contains the
+ cost estimation for the requested service, without any reservations
+ being made.
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 64]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The Cost-Information AVP included in the Credit-Control-Answer
+ command with the CC-Request-Type set to UPDATE_REQUEST contains the
+ accumulated cost estimation for the session, without taking any
+ credit reservations into account.
+
+ The Cost-Information AVP included in the Credit-Control-Answer
+ command with the CC-Request-Type set to EVENT_REQUEST or
+ TERMINATION_REQUEST contains the estimated total cost for the
+ requested service.
+
+ The Cost-Information AVP is defined as follows (per grouped-avp-def
+ as defined in [RFC6733]):
+
+ Cost-Information ::= < AVP Header: 423 >
+ { Unit-Value }
+ { Currency-Code }
+ [ Cost-Unit ]
+
+8.8. Unit-Value AVP
+
+ The Unit-Value AVP is of type Grouped (AVP Code 445) and specifies
+ the cost as a floating-point value. The Unit-Value is a significand
+ with an exponent; i.e., Unit-Value = Value-Digits AVP * 10^Exponent.
+ This representation avoids unwanted rounding off. For example, the
+ value of 2,3 is represented as Value-Digits = 23 and Exponent = -1.
+ The absence of the exponent part MUST be interpreted as an exponent
+ equal to zero.
+
+ The Unit-Value AVP is defined as follows (per grouped-avp-def as
+ defined in [RFC6733]):
+
+ Unit-Value ::= < AVP Header: 445 >
+ { Value-Digits }
+ [ Exponent ]
+
+8.9. Exponent AVP
+
+ The Exponent AVP is of type Integer32 (AVP Code 429) and contains the
+ exponent value to be applied for the Value-Digits AVP within the
+ Unit-Value AVP.
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 65]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+8.10. Value-Digits AVP
+
+ The Value-Digits AVP is of type Integer64 (AVP Code 447) and contains
+ the significant digits of the number. If decimal values are needed
+ to present the units, the scaling MUST be indicated with the related
+ Exponent AVP. For example, for the monetary amount $0.05, the value
+ of the Value-Digits AVP MUST be set to 5, and the scaling MUST be
+ indicated with the Exponent AVP set to -2.
+
+8.11. Currency-Code AVP
+
+ The Currency-Code AVP (AVP Code 425) is of type Unsigned32 and
+ contains a currency code that specifies in which currency the values
+ of AVPs containing monetary units were given. It is specified by
+ using the numeric values defined in the ISO 4217 standard [ISO4217].
+
+8.12. Cost-Unit AVP
+
+ The Cost-Unit AVP (AVP Code 424) is of type UTF8String, and it is
+ used to display a human-readable string to the end user. It
+ specifies the applicable unit to the Cost-Information AVP when the
+ service cost is a cost per unit (e.g., cost of the service is $1 per
+ minute). The Cost-Unit setting can be minutes, hours, days,
+ kilobytes, megabytes, etc.
+
+8.13. Credit-Control AVP
+
+ The Credit-Control AVP (AVP Code 426) is of type Enumerated and MUST
+ be included in AA-Request messages when the Service Element has
+ credit-control capabilities. The following values are defined for
+ the Credit-Control AVP:
+
+ CREDIT_AUTHORIZATION 0
+
+ If the home Diameter AAA server determines that the user has a
+ prepaid subscription, this value indicates that the credit-control
+ server MUST be contacted to perform the first interrogation. The
+ value of the Credit-Control AVP MUST always be set to 0 in an
+ AA-Request sent to perform the first interrogation and to initiate a
+ new credit-control session.
+
+ RE_AUTHORIZATION 1
+
+ This value indicates to the Diameter AAA server that a credit-control
+ session is ongoing for the subscriber and that the credit-control
+ server MUST NOT be contacted. The Credit-Control AVP set to the
+ value of 1 is to be used only when the first interrogation has been
+ successfully performed and the credit-control session is ongoing
+
+
+
+Bertz, et al. Standards Track [Page 66]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ (i.e., re-authorization triggered by authorization lifetime). This
+ value MUST NOT be used in an AA-Request sent to perform the first
+ interrogation.
+
+8.14. Credit-Control-Failure-Handling AVP (CCFH)
+
+ The CCFH (AVP Code 427) is of type Enumerated. The credit-control
+ client uses information in this AVP to decide what to do if sending
+ credit-control messages to the credit-control server has been, for
+ instance, temporarily prevented due to a network problem. Depending
+ on the service logic, the credit-control server can order the client
+ to terminate the service immediately when there is a reason to
+ believe that the service cannot be charged, or to try failover to an
+ alternative server, if possible. The server could then either
+ terminate or grant the service, should the alternative connection
+ also fail.
+
+ The following values are defined for the CCFH:
+
+ TERMINATE 0
+
+ When the CCFH is set to TERMINATE, the service MUST only be granted
+ for as long as there is a connection to the credit-control server.
+ If the credit-control client does not receive any Credit-Control-
+ Answer messages before the Tx timer (as defined in Section 13)
+ expires, the credit-control request is regarded as failed, and the
+ end user's service session is terminated.
+
+ This is the default behavior if the AVP isn't included in the reply
+ from the authorization or credit-control server.
+
+ CONTINUE 1
+
+ When the CCFH is set to CONTINUE, the credit-control client SHOULD
+ resend the request to an alternative server in the case of transport
+ or temporary failures, provided that (1) a failover procedure is
+ supported in the credit-control server and the credit-control client
+ and (2) an alternative server is available. Otherwise, the service
+ SHOULD be granted, even if credit-control messages can't be
+ delivered.
+
+ RETRY_AND_TERMINATE 2
+
+ When the CCFH is set to RETRY_AND_TERMINATE, the credit-control
+ client SHOULD resend the request to an alternative server in the case
+ of transport or temporary failures, provided that (1) a failover
+ procedure is supported in the credit-control server and the
+ credit-control client and (2) an alternative server is available.
+
+
+
+Bertz, et al. Standards Track [Page 67]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Otherwise, the service SHOULD NOT be granted when the credit-control
+ messages can't be delivered.
+
+8.15. Direct-Debiting-Failure-Handling AVP (DDFH)
+
+ The DDFH (AVP Code 428) is of type Enumerated. The credit-control
+ client uses information in this AVP to decide what to do if sending
+ credit-control messages (Requested-Action AVP set to DIRECT_DEBITING)
+ to the credit-control server has been, for instance, temporarily
+ prevented due to a network problem.
+
+ The following values are defined for the DDFH:
+
+ TERMINATE_OR_BUFFER 0
+
+ When the DDFH is set to TERMINATE_OR_BUFFER, the service MUST be
+ granted for as long as there is a connection to the credit-control
+ server. If the credit-control client does not receive any
+ Credit-Control-Answer messages before the Tx timer (as defined in
+ Section 13) expires, the credit-control request is regarded as
+ failed. The client SHOULD terminate the service if it can determine
+ from the failed answer that units have not been debited. Otherwise,
+ the credit-control client SHOULD grant the service, store the request
+ in application-level non-volatile storage, and try to resend the
+ request. These requests MUST be marked as possible duplicates by
+ setting the T flag in the command header as described in [RFC6733],
+ Section 3. This is the default behavior if the AVP isn't included in
+ the reply from the authorization server.
+
+ CONTINUE 1
+
+ When the DDFH is set to CONTINUE, the service SHOULD be granted, even
+ if credit-control messages can't be delivered, and the request should
+ be deleted.
+
+8.16. Multiple-Services-Credit-Control AVP
+
+ The Multiple-Services-Credit-Control AVP (AVP Code 456) is of type
+ Grouped and contains the AVPs related to the independent
+ credit-control of multiple services. Note that each instance of this
+ AVP carries units related to one or more services or related to a
+ single rating-group.
+
+ The Service-Identifier AVP and the Rating-Group AVP are used to
+ associate the granted units to a given service or rating-group. If
+ both the Service-Identifier AVP and the Rating-Group AVP are
+ included, the target of the service units is always the service(s)
+ indicated by the value of the Service-Identifier AVP(s). If only the
+
+
+
+Bertz, et al. Standards Track [Page 68]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Rating-Group AVP is present, the Multiple-Services-Credit-Control AVP
+ relates to all the services that belong to the specified
+ rating-group.
+
+ The G-S-U-Pool-Reference AVP allows the server to specify a
+ G-S-U-Pool-Identifier identifying a credit pool within which the
+ units of the specified type are considered pooled. If a G-S-U-Pool-
+ Reference AVP is present, then actual service units of the specified
+ type MUST also be present. For example, if the G-S-U-Pool-Reference
+ AVP specifies a CC-Unit-Type value of TIME (Section 8.32), then the
+ CC-Time AVP MUST be present.
+
+ The Requested-Service-Unit AVP MAY contain the amount of requested
+ service units or the requested monetary value. It MUST be present in
+ the initial interrogation and within the intermediate interrogations
+ in which a new quota is requested. If the credit-control client does
+ not include the Requested-Service-Unit AVP in a request command --
+ because, for instance, it has determined that the end user terminated
+ the service -- the server MUST debit the used amount from the user's
+ account but MUST NOT return a new quota in the corresponding answer.
+ The Validity-Time, Result-Code, and Final-Unit-Indication or
+ QoS-Final-Unit-Indication AVPs MAY be present in a Credit-Control-
+ Answer command as defined in Sections 5.1.2 and 5.6 for graceful
+ service termination.
+
+ When both the Tariff-Time-Change AVP and the Tariff-Change-Usage AVP
+ are present, the server MUST include two separate instances of the
+ Multiple-Services-Credit-Control AVP with the Granted-Service-Unit
+ AVP associated to the same service-identifier and/or rating-group.
+ Where the two quotas are associated to the same pool or to different
+ pools, the credit-pooling mechanism defined in Section 5.1.2 applies.
+ When the client is reporting used units before and after the tariff
+ time change, it MUST use the Tariff-Change-Usage AVP inside the
+ Used-Service-Unit AVP.
+
+ A server not implementing the independent credit-control of multiple
+ services MUST treat the Multiple-Services-Credit-Control AVP as an
+ invalid AVP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 69]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The Multiple-Services-Credit-Control AVP is defined as follows (per
+ grouped-avp-def as defined in [RFC6733]):
+
+ Multiple-Services-Credit-Control ::= < AVP Header: 456 >
+ [ Granted-Service-Unit ]
+ [ Requested-Service-Unit ]
+ *[ Used-Service-Unit ]
+ [ Tariff-Change-Usage ]
+ *[ Service-Identifier ]
+ [ Rating-Group ]
+ *[ G-S-U-Pool-Reference ]
+ [ Validity-Time ]
+ [ Result-Code ]
+ [ Final-Unit-Indication ]
+ [ QoS-Final-Unit-Indication ]
+ *[ AVP ]
+
+8.17. Granted-Service-Unit AVP
+
+ The Granted-Service-Unit AVP (AVP Code 431) is of type Grouped and
+ contains the amount of units that the Diameter Credit-Control client
+ can provide to the end user until the service must be released or the
+ new Credit-Control-Request must be sent. A client is not required to
+ implement all the unit types, and it must treat unknown or
+ unsupported unit types in the Answer message as an incorrect CCA. In
+ this case, the client MUST terminate the credit-control session and
+ indicate the reason as DIAMETER_BAD_ANSWER in the Termination-Cause
+ AVP.
+
+ The Granted-Service-Unit AVP is defined as follows (per
+ grouped-avp-def as defined in [RFC6733]):
+
+ Granted-Service-Unit ::= < AVP Header: 431 >
+ [ Tariff-Time-Change ]
+ [ CC-Time ]
+ [ CC-Money ]
+ [ CC-Total-Octets ]
+ [ CC-Input-Octets ]
+ [ CC-Output-Octets ]
+ [ CC-Service-Specific-Units ]
+ *[ AVP ]
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 70]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+8.18. Requested-Service-Unit AVP
+
+ The Requested-Service-Unit AVP (AVP Code 437) is of type Grouped and
+ contains the amount of requested units specified by the Diameter
+ Credit-Control client. A server is not required to implement all the
+ unit types, and it must treat unknown or unsupported unit types as
+ invalid AVPs.
+
+ The Requested-Service-Unit AVP is defined as follows (per
+ grouped-avp-def as defined in [RFC6733]):
+
+ Requested-Service-Unit ::= < AVP Header: 437 >
+ [ CC-Time ]
+ [ CC-Money ]
+ [ CC-Total-Octets ]
+ [ CC-Input-Octets ]
+ [ CC-Output-Octets ]
+ [ CC-Service-Specific-Units ]
+ *[ AVP ]
+
+8.19. Used-Service-Unit AVP
+
+ The Used-Service-Unit AVP is of type Grouped (AVP Code 446) and
+ contains the amount of used units measured from the point when the
+ service became active or, if interim interrogations are used during
+ the session, from the point when the previous measurement ended.
+ Note: The value reported in a Used-Service-Unit AVP is not
+ necessarily related to the grant provided in a Granted-Service-Unit
+ AVP, e.g., the value in this AVP may exceed the value in the grant.
+
+ The Used-Service-Unit AVP is defined as follows (per grouped-avp-def
+ as defined in [RFC6733]):
+
+ Used-Service-Unit ::= < AVP Header: 446 >
+ [ Tariff-Change-Usage ]
+ [ CC-Time ]
+ [ CC-Money ]
+ [ CC-Total-Octets ]
+ [ CC-Input-Octets ]
+ [ CC-Output-Octets ]
+ [ CC-Service-Specific-Units ]
+ *[ AVP ]
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 71]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+8.20. Tariff-Time-Change AVP
+
+ The Tariff-Time-Change AVP (AVP Code 451) is of type Time. It is
+ sent from the server to the client and includes the time in seconds
+ since January 1, 1900, 00:00 UTC, when the tariff of the service will
+ be changed.
+
+ The tariff change mechanism is optional for the client and server,
+ and it is not used for time-based services (Section 5). If a client
+ does not support the tariff time change mechanism, it MUST treat the
+ Tariff-Time-Change AVP in the Answer message as an incorrect CCA. In
+ this case, the client terminates the credit-control session and
+ indicates the reason as DIAMETER_BAD_ANSWER in the Termination-Cause
+ AVP.
+
+ Omission of this AVP means that no tariff change is to be reported.
+
+8.21. CC-Time AVP
+
+ The CC-Time AVP (AVP Code 420) is of type Unsigned32 and indicates
+ the length of the requested, granted, or used time in seconds.
+
+8.22. CC-Money AVP
+
+ The CC-Money AVP (AVP Code 413) is of type Grouped and specifies the
+ monetary amount in the given currency. The Currency-Code AVP SHOULD
+ be included. The CC-Money AVP is defined as follows (per
+ grouped-avp-def as defined in [RFC6733]):
+
+ CC-Money ::= < AVP Header: 413 >
+ { Unit-Value }
+ [ Currency-Code ]
+
+8.23. CC-Total-Octets AVP
+
+ The CC-Total-Octets AVP (AVP Code 421) is of type Unsigned64 and
+ contains the total number of requested, granted, or used octets
+ regardless of the direction (sent or received).
+
+8.24. CC-Input-Octets AVP
+
+ The CC-Input-Octets AVP (AVP Code 412) is of type Unsigned64 and
+ contains the number of requested, granted, or used octets that
+ can be / have been received from the end user.
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 72]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+8.25. CC-Output-Octets AVP
+
+ The CC-Output-Octets AVP (AVP Code 414) is of type Unsigned64 and
+ contains the number of requested, granted, or used octets that
+ can be / have been sent to the end user.
+
+8.26. CC-Service-Specific-Units AVP
+
+ The CC-Service-Specific-Units AVP (AVP Code 417) is of type
+ Unsigned64 and specifies the number of service-specific units (e.g.,
+ number of events, points) given in a selected service. The service-
+ specific units always refer to the service identified in the Service-
+ Identifier AVP (or Rating-Group AVP when the Multiple-Services-
+ Credit-Control AVP is used).
+
+8.27. Tariff-Change-Usage AVP
+
+ The Tariff-Change-Usage AVP (AVP Code 452) is of type Enumerated and
+ defines whether units are used before or after a tariff change, or
+ whether the units straddled a tariff change during the reporting
+ period. Omission of this AVP means that no tariff change has
+ occurred.
+
+ In addition, when present in Answer messages as part of the Multiple-
+ Services-Credit-Control AVP, this AVP defines whether units are
+ allocated to be used before or after a tariff change event.
+
+ When the Tariff-Time-Change AVP is present, omission of this AVP in
+ Answer messages means that the single-quota mechanism applies.
+
+ Tariff-Change-Usage can be set to one of the following values:
+
+ UNIT_BEFORE_TARIFF_CHANGE 0
+
+ When present in the Multiple-Services-Credit-Control AVP, this value
+ indicates the amount of units allocated for use before a tariff
+ change occurs.
+
+ When present in the Used-Service-Unit AVP, this value indicates the
+ amount of resource units used before a tariff change had occurred.
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 73]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ UNIT_AFTER_TARIFF_CHANGE 1
+
+ When present in the Multiple-Services-Credit-Control AVP, this value
+ indicates the amount of units allocated for use after a tariff change
+ occurs.
+
+ When present in the Used-Service-Unit AVP, this value indicates the
+ amount of resource units used after a tariff change had occurred.
+
+ UNIT_INDETERMINATE 2
+
+ This value is to be used only in the Used-Service-Unit AVP and
+ indicates the amount of resource units that straddle the tariff
+ change (e.g., the metering process reports to the credit-control
+ client in blocks of n octets, and one block straddled the tariff
+ change).
+
+8.28. Service-Identifier AVP
+
+ The Service-Identifier AVP is of type Unsigned32 (AVP Code 439) and
+ contains the identifier of a service. The specific service the
+ request relates to is uniquely identified by the combination of the
+ Service-Context-Id AVP and the Service-Identifier AVP.
+
+ A usage example of this AVP is illustrated in Appendix A.9.
+
+8.29. Rating-Group AVP
+
+ The Rating-Group AVP is of type Unsigned32 (AVP Code 432) and
+ contains the identifier of a rating-group. All the services subject
+ to the same rating type are part of the same rating-group. The
+ specific rating-group the request relates to is uniquely identified
+ by the combination of the Service-Context-Id AVP and the Rating-Group
+ AVP.
+
+ A usage example of this AVP is illustrated in Appendix A.9.
+
+8.30. G-S-U-Pool-Reference AVP
+
+ The G-S-U-Pool-Reference AVP (AVP Code 457) is of type Grouped. It
+ is used in the Credit-Control-Answer message and associates the
+ Granted-Service-Unit AVP within which it appears with a credit pool
+ within the session.
+
+ The G-S-U-Pool-Identifier AVP specifies the credit pool from which
+ credit is drawn for this unit type.
+
+
+
+
+
+Bertz, et al. Standards Track [Page 74]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The CC-Unit-Type AVP specifies the type of units for which credit is
+ pooled.
+
+ The Unit-Value AVP specifies the multiplier, which converts between
+ service units of type CC-Unit-Type and abstract service units within
+ the credit pool (and thus to service units of any other services or
+ rating-groups associated with the same pool).
+
+ The G-S-U-Pool-Reference AVP is defined as follows (per
+ grouped-avp-def as defined in [RFC6733]):
+
+ G-S-U-Pool-Reference ::= < AVP Header: 457 >
+ { G-S-U-Pool-Identifier }
+ { CC-Unit-Type }
+ { Unit-Value }
+
+8.31. G-S-U-Pool-Identifier AVP
+
+ The G-S-U-Pool-Identifier AVP (AVP Code 453) is of type Unsigned32
+ and identifies a credit pool within the session.
+
+8.32. CC-Unit-Type AVP
+
+ The CC-Unit-Type AVP (AVP Code 454) is of type Enumerated and
+ specifies the type of units considered to be pooled into a
+ credit pool.
+
+ The following values are defined for the CC-Unit-Type AVP:
+
+ TIME 0
+ MONEY 1
+ TOTAL-OCTETS 2
+ INPUT-OCTETS 3
+ OUTPUT-OCTETS 4
+ SERVICE-SPECIFIC-UNITS 5
+
+8.33. Validity-Time AVP
+
+ The Validity-Time AVP is of type Unsigned32 (AVP Code 448). It is
+ sent from the credit-control server to the credit-control client.
+ The Validity-Time AVP contains the validity time of the granted
+ service units. The measurement of the Validity-Time is started upon
+ receipt of the Credit-Control-Answer message containing this AVP. If
+ the granted service units have not been consumed within the validity
+ time specified in this AVP, the credit-control client MUST send a
+ Credit-Control-Request message to the server, with CC-Request-Type
+ set to UPDATE_REQUEST. The value field of the Validity-Time AVP is
+ given in seconds.
+
+
+
+Bertz, et al. Standards Track [Page 75]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The Validity-Time AVP is also used for graceful service termination
+ (see Section 5.6) to indicate to the credit-control client how long
+ the subscriber is allowed to use network resources after the
+ specified action (i.e., REDIRECT or RESTRICT_ACCESS) started. When
+ the Validity-Time elapses, a new intermediate interrogation is sent
+ to the server.
+
+8.34. Final-Unit-Indication AVP
+
+ The Final-Unit-Indication AVP (AVP Code 430) is of type Grouped and
+ indicates that the Granted-Service-Unit AVP in the Credit-Control-
+ Answer or in the AA-Answer contains the final units for the service.
+ After these units have expired, the Diameter Credit-Control client is
+ responsible for executing the action indicated in the Final-Unit-
+ Action AVP (see Section 5.6).
+
+ If more than one unit type is received in the Credit-Control-Answer,
+ the unit type that first expired SHOULD cause the credit-control
+ client to execute the specified action.
+
+ In the first interrogation, the Final-Unit-Indication AVP with
+ Final-Unit-Action set to REDIRECT or RESTRICT_ACCESS can also be
+ present with no Granted-Service-Unit AVP in the Credit-Control-Answer
+ or in the AA-Answer. This indicates to the Diameter Credit-Control
+ client that the client is to execute the specified action
+ immediately. If the home service provider policy is to terminate the
+ service, naturally, the server SHOULD return the appropriate
+ transient failure (see Section 9.1) in order to implement the policy-
+ defined action.
+
+ The Final-Unit-Action AVP defines the behavior of the Service Element
+ when the user's account cannot cover the cost of the service and MUST
+ always be present if the Final-Unit-Indication AVP is included in a
+ command.
+
+ If the Final-Unit-Action AVP is set to TERMINATE, the Final-Unit-
+ Indication group AVP MUST NOT contain any other AVPs.
+
+ If the Final-Unit-Action AVP is set to REDIRECT, the Redirect-Server
+ AVP or the Redirect-Server-Extension AVP (at least one) MUST be
+ present. The Restriction-Filter-Rule AVP or the Filter-Id AVP MAY be
+ present in the Credit-Control-Answer message if the user is also
+ allowed to access other services that are not accessible through the
+ address given in the Redirect-Server AVP.
+
+ If the Final-Unit-Action AVP is set to RESTRICT_ACCESS, either the
+ Restriction-Filter-Rule AVP or the Filter-Id AVP SHOULD be present.
+
+
+
+
+Bertz, et al. Standards Track [Page 76]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The Filter-Id AVP is defined in [RFC7155]. The Filter-Id AVP can be
+ used to reference an IP filter list installed in the access device by
+ means other than the Diameter Credit-Control application, e.g.,
+ locally configured or configured by another entity.
+
+ If the Final-Unit-Action AVP is set to REDIRECT and the type of
+ server is not one of the enumerations in the Redirect-Address-Type
+ AVP, then the QoS-Final-Unit-Indication AVP SHOULD be used together
+ with the Redirect-Server-Extension AVP instead of the Final-Unit-
+ Indication AVP.
+
+ If the Final-Unit-Action AVP is set to RESTRICT_ACCESS or REDIRECT
+ and the classification of the restricted traffic cannot be expressed
+ using an IPFilterRule, or if actions (e.g., QoS) other than just
+ allowing traffic need to be enforced, then the QoS-Final-Unit-
+ Indication AVP SHOULD be used instead of the Final-Unit-Indication
+ AVP. However, if the credit-control server wants to preserve
+ backward compatibility with credit-control clients that support only
+ [RFC4006], the Final-Unit-Indication AVP SHOULD be used together with
+ the Filter-Id AVP.
+
+ The Final-Unit-Indication AVP is defined as follows (per
+ grouped-avp-def as defined in [RFC6733]):
+
+ Final-Unit-Indication ::= < AVP Header: 430 >
+ { Final-Unit-Action }
+ *[ Restriction-Filter-Rule ]
+ *[ Filter-Id ]
+ [ Redirect-Server ]
+
+8.35. Final-Unit-Action AVP
+
+ The Final-Unit-Action AVP (AVP Code 449) is of type Enumerated and
+ indicates to the credit-control client the action to be taken when
+ the user's account cannot cover the service cost.
+
+ Final-Unit-Action can be set to one of the following values:
+
+ TERMINATE 0
+
+ The credit-control client MUST terminate the service session. This
+ is the default handling, applicable whenever the credit-control
+ client receives an unsupported Final-Unit-Action value, and it MUST
+ be supported by all the Diameter Credit-Control client
+ implementations conforming to this specification.
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 77]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ REDIRECT 1
+
+ The Service Element MUST redirect the user to the address specified
+ in the Redirect-Server-Address AVP or one of the AVPs included in the
+ Redirect-Server-Extension AVP. The redirect action is defined in
+ Section 5.6.2.
+
+ RESTRICT_ACCESS 2
+
+ The access device MUST restrict the user's access according to the
+ filter AVPs contained in the applied Grouped AVP: according to IP
+ packet filters defined in the Restriction-Filter-Rule AVP, according
+ to the packet classifier filters defined in the Filter-Rule AVP, or
+ according to the packet filters identified by the Filter-Id AVP. All
+ of the packets not matching any restriction filters (see
+ Section 5.6.3) MUST be dropped.
+
+8.36. Restriction-Filter-Rule AVP
+
+ The Restriction-Filter-Rule AVP (AVP Code 438) is of type
+ IPFilterRule and provides filter rules corresponding to services that
+ are to remain accessible even if there are no more service units
+ granted. The access device has to configure the specified filter
+ rules for the subscriber and MUST drop all the packets not matching
+ these filters. Zero, one, or more such AVPs MAY be present in a
+ Credit-Control-Answer message or in an AA-Answer message.
+
+8.37. Redirect-Server AVP
+
+ The Redirect-Server AVP (AVP Code 434) is of type Grouped and
+ contains the address information of the redirect server (e.g., HTTP
+ redirect server, SIP Server) with which the end user is to be
+ connected when the account cannot cover the service cost. It MUST be
+ present when the Final-Unit-Action AVP is set to REDIRECT.
+
+ The Redirect-Server AVP is defined as follows (per grouped-avp-def as
+ defined in [RFC6733]):
+
+ Redirect-Server ::= < AVP Header: 434 >
+ { Redirect-Address-Type }
+ { Redirect-Server-Address }
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 78]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+8.38. Redirect-Address-Type AVP
+
+ The Redirect-Address-Type AVP (AVP Code 433) is of type Enumerated
+ and defines the address type of the address given in the Redirect-
+ Server-Address AVP.
+
+ Redirect-Address-Type can be set to one of the following values:
+
+ IPv4 Address 0
+
+ The address type is in the form of a "dotted-decimal" IPv4 address,
+ as defined in [RFC791].
+
+ IPv6 Address 1
+
+ The address type is in the form of an IPv6 address, as defined in
+ [RFC4291]. The address MUST conform to the textual representation of
+ the address according to [RFC5952].
+
+ Because [RFC5952] is more restrictive than the "RFC 3513" format
+ required by [RFC4006], some legacy implementations may not be
+ compliant with the new requirements. Accordingly, implementations
+ receiving this AVP MAY be liberal in the textual IPv6 representations
+ that are accepted, without raising an error.
+
+ URL 2
+
+ The address type is in the form of a Uniform Resource Locator, as
+ defined in [RFC3986].
+
+ SIP URI 3
+
+ The address type is in the form of a SIP Uniform Resource Identifier,
+ as defined in [RFC3261].
+
+8.39. Redirect-Server-Address AVP
+
+ The Redirect-Server-Address AVP (AVP Code 435) is of type UTF8String
+ and defines the address of the redirect server (e.g., HTTP redirect
+ server, SIP Server) with which the end user is to be connected when
+ the account cannot cover the service cost.
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 79]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+8.40. Multiple-Services-Indicator AVP
+
+ The Multiple-Services-Indicator AVP (AVP Code 455) is of type
+ Enumerated and indicates whether the Diameter Credit-Control client
+ is capable of handling multiple services independently within a
+ (sub-)session. The absence of this AVP means that independent
+ credit-control of multiple services is not supported.
+
+ A server not implementing the independent credit-control of multiple
+ services MUST treat the Multiple-Services-Indicator AVP as an
+ invalid AVP.
+
+ The following values are defined for the Multiple-Services-Indicator
+ AVP:
+
+ MULTIPLE_SERVICES_NOT_SUPPORTED 0
+
+ The client does not support independent credit-control of multiple
+ services within a (sub-)session.
+
+ MULTIPLE_SERVICES_SUPPORTED 1
+
+ The client supports independent credit-control of multiple services
+ within a (sub-)session.
+
+8.41. Requested-Action AVP
+
+ The Requested-Action AVP (AVP Code 436) is of type Enumerated and
+ contains the requested action being sent in a Credit-Control-Request
+ command where the CC-Request-Type is set to EVENT_REQUEST. The
+ following values are defined for the Requested-Action AVP:
+
+ DIRECT_DEBITING 0
+
+ This indicates a request to decrease the end user's account according
+ to information specified in the Requested-Service-Unit AVP and/or
+ Service-Identifier AVP (additional rating information may be included
+ in service-specific AVPs or in the Service-Parameter-Info AVP). The
+ Granted-Service-Unit AVP in the Credit-Control-Answer command
+ contains the debited units.
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 80]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ REFUND_ACCOUNT 1
+
+ This indicates a request to increase the end user's account according
+ to information specified in the Requested-Service-Unit AVP and/or
+ Service-Identifier AVP (additional rating information may be included
+ in service-specific AVPs or in the Service-Parameter-Info AVP). The
+ Granted-Service-Unit AVP in the Credit-Control-Answer command
+ contains the refunded units.
+
+ CHECK_BALANCE 2
+
+ This indicates a balance-check request. In this case, the checking
+ of the account balance is done without any credit reservations from
+ the account. The Check-Balance-Result AVP in the Credit-Control-
+ Answer command contains the result of the balance check.
+
+ PRICE_ENQUIRY 3
+
+ This indicates a price-inquiry request. In this case, neither
+ checking of the account balance nor reservation from the account will
+ be done; only the price of the service will be returned in the
+ Cost-Information AVP in the Credit-Control-Answer command.
+
+8.42. Service-Context-Id AVP
+
+ The Service-Context-Id AVP is of type UTF8String (AVP Code 461) and
+ contains a unique identifier of the Diameter Credit-Control service-
+ specific document (as defined in Section 4.1.2) that applies to the
+ request. This is an identifier allocated by the service provider,
+ the Service Element manufacturer, or a standardization body, and MUST
+ uniquely identify a given Diameter Credit-Control service-specific
+ document. The format of the Service-Context-Id is:
+
+ "service-context" "@" "domain"
+
+ service-context = Token
+
+ The Token is an arbitrary string of characters and digits.
+
+ "domain" represents the entity that allocated the Service-Context-Id.
+ It can be ietf.org, 3gpp.org, etc. if the identifier is allocated by
+ a standardization body, or it can be the Fully Qualified Domain Name
+ (FQDN) of the service provider (e.g., provider.example.com) or the
+ vendor (e.g., vendor.example.com) if the identifier is allocated by a
+ private entity.
+
+ This AVP SHOULD be placed as close to the Diameter header as
+ possible.
+
+
+
+Bertz, et al. Standards Track [Page 81]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Service-specific documents that are for private use only (i.e., for
+ one provider's own use, where no interoperability is deemed useful)
+ may define private identifiers without a need for coordination.
+ However, when interoperability is desired, coordination of the
+ identifiers via, for example, publication of an informational RFC is
+ RECOMMENDED in order to make the Service-Context-Id AVP globally
+ available.
+
+8.43. Service-Parameter-Info AVP
+
+ The Service-Parameter-Info AVP (AVP Code 440) is of type Grouped and
+ contains service-specific information used for price calculation or
+ rating. The Service-Parameter-Type AVP defines the service parameter
+ type, and the Service-Parameter-Value AVP contains the parameter
+ value. The actual contents of these AVPs are not within the scope of
+ this document and SHOULD be defined in another Diameter application,
+ in standards written by other standardization bodies, or in service-
+ specific documentation.
+
+ In the case of an unknown service request (e.g., unknown Service-
+ Parameter-Type), the corresponding Answer message MUST contain the
+ error code DIAMETER_RATING_FAILED. A Credit-Control-Answer message
+ with this error MUST contain one or more Failed-AVP AVPs containing
+ the Service-Parameter-Info AVPs that caused the failure.
+
+ The Service-Parameter-Info AVP is defined as follows (per
+ grouped-avp-def as defined in [RFC6733]):
+
+ Service-Parameter-Info ::= < AVP Header: 440 >
+ { Service-Parameter-Type }
+ { Service-Parameter-Value }
+
+8.44. Service-Parameter-Type AVP
+
+ The Service-Parameter-Type AVP is of type Unsigned32 (AVP Code 441)
+ and defines the type of the service-event-specific parameter (e.g.,
+ it can be the end-user location or service name). The different
+ parameters and their types are service specific, and the meanings of
+ these parameters are not defined in this document. Whoever allocates
+ the Service-Context-Id (i.e., a unique identifier of a service-
+ specific document) is also responsible for assigning Service-
+ Parameter-Type values for the service and ensuring their uniqueness
+ within the given service. The Service-Parameter-Value AVP contains
+ the value associated with the service parameter type.
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 82]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+8.45. Service-Parameter-Value AVP
+
+ The Service-Parameter-Value AVP is of type OctetString (AVP Code 442)
+ and contains the value of the service parameter type.
+
+8.46. Subscription-Id AVP
+
+ The Subscription-Id AVP (AVP Code 443) is used to identify the
+ end user's subscription and is of type Grouped. The Subscription-Id
+ AVP includes a Subscription-Id-Data AVP that holds the identifier and
+ a Subscription-Id-Type AVP that defines the identifier type.
+
+ The Subscription-Id AVP is defined as follows (per grouped-avp-def as
+ defined in [RFC6733]):
+
+ Subscription-Id ::= < AVP Header: 443 >
+ { Subscription-Id-Type }
+ { Subscription-Id-Data }
+
+8.47. Subscription-Id-Type AVP
+
+ The Subscription-Id-Type AVP (AVP Code 450) is of type Enumerated,
+ and it is used to determine which type of identifier is carried by
+ the Subscription-Id AVP.
+
+ This specification defines the following subscription identifiers.
+ However, new Subscription-Id-Type values can be assigned by IANA as
+ defined in Section 12. A server MUST implement all the Subscription-
+ Id-Type values required to perform credit authorization for the
+ services it supports, including possible future values. Unknown or
+ unsupported Subscription-Id-Type values MUST be treated according to
+ the 'M' flag rule, as defined in [RFC6733].
+
+ END_USER_E164 0
+
+ The identifier is in international E.164 format (e.g., MSISDN),
+ according to the ITU-T E.164 numbering plan defined in [E164] and
+ [CE164].
+
+ END_USER_IMSI 1
+
+ The identifier is in IMSI format, according to the ITU-T E.212
+ identification plan as defined in [E212] and [CE212].
+
+ END_USER_SIP_URI 2
+
+ The identifier is in the form of a SIP URI, as defined in [RFC3261].
+
+
+
+
+Bertz, et al. Standards Track [Page 83]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ END_USER_NAI 3
+
+ The identifier is in the form of a Network Access Identifier, as
+ defined in [RFC7542].
+
+ END_USER_PRIVATE 4
+
+ The identifier is a credit-control server private identifier.
+
+8.48. Subscription-Id-Data AVP
+
+ The Subscription-Id-Data AVP (AVP Code 444) is used to identify the
+ end user and is of type UTF8String. The Subscription-Id-Type AVP
+ defines which type of identifier is used.
+
+8.49. User-Equipment-Info AVP
+
+ The User-Equipment-Info AVP (AVP Code 458) is of type Grouped and
+ allows the credit-control client to indicate the identity and
+ capability of the terminal the subscriber is using for the connection
+ to the network.
+
+ The User-Equipment-Info AVP is defined as follows (per
+ grouped-avp-def as defined in [RFC6733]):
+
+ User-Equipment-Info ::= < AVP Header: 458 >
+ { User-Equipment-Info-Type }
+ { User-Equipment-Info-Value }
+
+8.50. User-Equipment-Info-Type AVP
+
+ The User-Equipment-Info-Type AVP is of type Enumerated (AVP Code 459)
+ and defines the type of user equipment information contained in the
+ User-Equipment-Info-Value AVP.
+
+ This specification defines the following user equipment types.
+ However, new User-Equipment-Info-Type values can be assigned by IANA
+ as defined in Section 12.
+
+ IMEISV 0
+
+ The identifier contains the International Mobile Equipment Identifier
+ and Software Version (IMEISV) in the IMEISV format according to 3GPP
+ TS 23.003 [TGPPIMEI].
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 84]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ MAC 1
+
+ The 48-bit Media Access Control (MAC) address is formatted as
+ described in Section 3.21 of [RFC3580].
+
+ EUI64 2
+
+ The 64-bit identifier used to identify the hardware instance of the
+ product, as defined in [EUI64].
+
+ MODIFIED_EUI64 3
+
+ There are a number of types of terminals that have identifiers other
+ than the International Mobile Equipment Identifier (IMEI), IEEE 802
+ MACs, or EUI-64. These identifiers can be converted to modified
+ EUI-64 format as described in [RFC4291] or by using some other
+ methods referred to in the service-specific documentation.
+
+8.51. User-Equipment-Info-Value AVP
+
+ The User-Equipment-Info-Value AVP (AVP Code 460) is of type
+ OctetString. The User-Equipment-Info-Type AVP defines which type of
+ identifier is used.
+
+8.52. User-Equipment-Info-Extension AVP
+
+ The User-Equipment-Info-Extension AVP (AVP Code 653) is of type
+ Grouped and allows the credit-control client to indicate the identity
+ and capability of the terminal the subscriber is using for the
+ connection to the network. If the type of the equipment is one of
+ the enumerated User-Equipment-Info-Type AVP values, then the
+ credit-control client SHOULD send the information in the
+ User-Equipment-Info AVP, in addition to or instead of the
+ User-Equipment-Info-Extension AVP. This is done in order to preserve
+ backward compatibility with credit-control servers that support only
+ [RFC4006]. Exactly one AVP MUST be included inside the
+ User-Equipment-Info-Extension AVP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 85]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The User-Equipment-Info-Extension AVP is defined as follows (per
+ grouped-avp-def as defined in [RFC6733]):
+
+ User-Equipment-Info-Extension ::= < AVP Header: 653 >
+ [ User-Equipment-Info-IMEISV ]
+ [ User-Equipment-Info-MAC ]
+ [ User-Equipment-Info-EUI64 ]
+ [ User-Equipment-Info-ModifiedEUI64 ]
+ [ User-Equipment-Info-IMEI ]
+ [ AVP ]
+
+8.53. User-Equipment-Info-IMEISV AVP
+
+ The User-Equipment-Info-IMEISV AVP (AVP Code 654) is of type
+ OctetString. The User-Equipment-Info-IMEISV AVP contains the
+ International Mobile Equipment Identifier and Software Version in the
+ IMEISV format according to 3GPP TS 23.003 [TGPPIMEI].
+
+8.54. User-Equipment-Info-MAC AVP
+
+ The User-Equipment-Info-MAC AVP (AVP Code 655) is of type
+ OctetString. The User-Equipment-Info-MAC AVP contains the 48-bit MAC
+ address; the MAC address is formatted as described in Section 4.1.7.8
+ of [RFC5777].
+
+8.55. User-Equipment-Info-EUI64 AVP
+
+ The User-Equipment-Info-EUI64 AVP (AVP Code 656) is of type
+ OctetString. The User-Equipment-Info-EUI64 AVP contains the 64-bit
+ identifier used to identify the hardware instance of the product, as
+ defined in [EUI64].
+
+8.56. User-Equipment-Info-ModifiedEUI64 AVP
+
+ The User-Equipment-Info-ModifiedEUI64 AVP (AVP Code 657) is of type
+ OctetString. There are a number of types of terminals that have
+ identifiers other than IMEI, IEEE 802 MACs, or EUI-64. These
+ identifiers can be converted to modified EUI-64 format as described
+ in [RFC4291] or by using some other methods referred to in the
+ service-specific documentation. The User-Equipment-Info-
+ ModifiedEUI64 AVP contains such identifiers.
+
+8.57. User-Equipment-Info-IMEI AVP
+
+ The User-Equipment-Info-IMEI AVP (AVP Code 658) is of type
+ OctetString. The User-Equipment-Info-IMEI AVP contains the
+ International Mobile Equipment Identifier in the IMEI format
+ according to 3GPP TS 23.003 [TGPPIMEI].
+
+
+
+Bertz, et al. Standards Track [Page 86]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+8.58. Subscription-Id-Extension AVP
+
+ The Subscription-Id-Extension AVP (AVP Code 659) is used to identify
+ the end user's subscription and is of type Grouped. The
+ Subscription-Id-Extension group AVP MUST include an AVP holding the
+ subscription identifier. The type of this included AVP indicates the
+ type of the subscription identifier. For each of the enumerated
+ values of the Subscription-Id-Type AVP, there is a corresponding
+ sub-AVP for use within the Subscription-Id-Extension group AVP. If a
+ new identifier type is required, a corresponding new sub-AVP SHOULD
+ be defined for use within the Subscription-Id-Extension group AVP.
+
+ If full backward compatibility with [RFC4006] is required, then the
+ Subscription-Id AVP MUST be used to indicate identifier types
+ enumerated in the Subscription-Id-Type AVP, whereas the Subscription-
+ Id-Extension AVP MUST be used only for newly defined identifier
+ types. If full backward compatibility with [RFC4006] is not
+ required, then the Subscription-Id-Extension AVP MAY be used to carry
+ the existing identifier types. In this case, the Subscription-Id-
+ Extension AVP MAY be sent together with the Subscription-Id AVP.
+
+ Exactly one sub-AVP MUST be included inside the Subscription-Id-
+ Extension AVP.
+
+ The Subscription-Id-Extension AVP is defined as follows (per
+ grouped-avp-def as defined in [RFC6733]):
+
+ Subscription-Id-Extension ::= < AVP Header: 659 >
+ [ Subscription-Id-E164 ]
+ [ Subscription-Id-IMSI ]
+ [ Subscription-Id-SIP-URI ]
+ [ Subscription-Id-NAI ]
+ [ Subscription-Id-Private ]
+ [ AVP ]
+
+8.59. Subscription-Id-E164 AVP
+
+ The Subscription-Id-E164 AVP (AVP Code 660) is of type UTF8String.
+ The Subscription-Id-E164 AVP contains the international E.164 format
+ (e.g., MSISDN), according to the ITU-T E.164 numbering plan defined
+ in [E164] and [CE164].
+
+8.60. Subscription-Id-IMSI AVP
+
+ The Subscription-Id-IMSI AVP (AVP Code 661) is of type UTF8String.
+ The Subscription-Id-IMSI AVP contains the IMSI format, according to
+ the ITU-T E.212 identification plan as defined in [E212] and [CE212].
+
+
+
+
+Bertz, et al. Standards Track [Page 87]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+8.61. Subscription-Id-SIP-URI AVP
+
+ The Subscription-Id-SIP-URI AVP (AVP Code 662) is of type UTF8String.
+ The Subscription-Id-SIP-URI AVP contains the identifier in the form
+ of a SIP URI, as defined in [RFC3261].
+
+8.62. Subscription-Id-NAI AVP
+
+ The Subscription-Id-NAI AVP (AVP Code 663) is of type UTF8String.
+ The Subscription-Id-NAI AVP contains the identifier in the form of a
+ Network Access Identifier, as defined in [RFC7542].
+
+8.63. Subscription-Id-Private AVP
+
+ The Subscription-Id-Private AVP (AVP Code 664) is of type UTF8String.
+ The Subscription-Id-Private AVP contains a credit-control server
+ private identifier.
+
+8.64. Redirect-Server-Extension AVP
+
+ The Redirect-Server-Extension AVP (AVP Code 665) is of type Grouped
+ and contains the address information of the redirect server (e.g.,
+ HTTP redirect server, SIP Server) with which the end user is to be
+ connected when the account cannot cover the service cost. It MUST be
+ present inside the QoS-Final-Unit-Indication AVP when the Final-Unit-
+ Action AVP is set to REDIRECT. If the type of the redirect server is
+ one of the enumerated values of the Redirect-Address-Type AVP, then
+ the credit-control server SHOULD send the information in the
+ Redirect-Server AVP, in addition to or instead of the Redirect-
+ Server-Extension AVP. This is done in order to preserve backward
+ compatibility with credit-control clients that support only
+ [RFC4006]. Exactly one AVP MUST be included inside the Redirect-
+ Server-Extension AVP.
+
+ The Redirect-Server-Extension AVP is defined as follows (per
+ grouped-avp-def as defined in [RFC6733]):
+
+ Redirect-Server-Extension ::= < AVP Header: 665 >
+ [ Redirect-Address-IPAddress ]
+ [ Redirect-Address-URL ]
+ [ Redirect-Address-SIP-URI ]
+ [ AVP ]
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 88]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+8.65. Redirect-Address-IPAddress AVP
+
+ The Redirect-Address-IPAddress AVP (AVP Code 666) is of type Address
+ and defines the IPv4 or IPv6 address of the redirect server with
+ which the end user is to be connected when the account cannot cover
+ the service cost.
+
+ When encoded as an IPv6 address in 16 bytes, the IPv4-mapped IPv6
+ format [RFC4291] MAY be used to indicate an IPv4 address.
+
+ The interpretation of Redirect-Address-IPAddress by the Diameter
+ Credit-Control client is a matter of local policy.
+
+8.66. Redirect-Address-URL AVP
+
+ The Redirect-Address-URL AVP (AVP Code 667) is of type UTF8String and
+ defines the address of the redirect server with which the end user is
+ to be connected when the account cannot cover the service cost. The
+ address type is in the form of a Uniform Resource Locator, as defined
+ in [RFC3986]. Note that individual URL schemes may restrict the
+ contents of the UTF8String.
+
+8.67. Redirect-Address-SIP-URI AVP
+
+ The Redirect-Address-SIP-URI AVP (AVP Code 668) is of type UTF8String
+ and defines the address of the redirect server with which the end
+ user is to be connected when the account cannot cover the service
+ cost. The address type is in the form of a SIP Uniform Resource
+ Identifier, as defined in [RFC3261].
+
+8.68. QoS-Final-Unit-Indication AVP
+
+ The QoS-Final-Unit-Indication AVP (AVP Code 669) is of type Grouped
+ and indicates that the Granted-Service-Unit AVP in the
+ Credit-Control-Answer or in the AA-Answer contains the final units
+ for the service. After these units have expired, the Diameter
+ Credit-Control client is responsible for executing the action
+ indicated in the Final-Unit-Action AVP (see Section 5.6).
+
+ If more than one unit type is received in the Credit-Control-Answer,
+ the unit type that first expired SHOULD cause the credit-control
+ client to execute the specified action.
+
+ In the first interrogation, the QoS-Final-Unit-Indication AVP with
+ Final-Unit-Action set to REDIRECT or RESTRICT_ACCESS can also be
+ present with no Granted-Service-Unit AVP in the Credit-Control-Answer
+ or in the AA-Answer. This indicates to the Diameter Credit-Control
+ client that the client is to execute the specified action
+
+
+
+Bertz, et al. Standards Track [Page 89]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ immediately. If the home service provider policy is to terminate the
+ service, naturally, the server SHOULD return the appropriate
+ transient failure (see Section 9.1) in order to implement the
+ policy-defined action.
+
+ The Final-Unit-Action AVP defines the behavior of the Service Element
+ when the user's account cannot cover the cost of the service and MUST
+ always be present if the QoS-Final-Unit-Indication AVP is included in
+ a command.
+
+ If the Final-Unit-Action AVP is set to TERMINATE, the QoS-Final-Unit-
+ Indication group AVP MUST NOT contain any other AVPs.
+
+ If the Final-Unit-Action AVP is set to REDIRECT, then the Redirect-
+ Server-Extension AVP MUST be present. The Filter-Rule AVP or the
+ Filter-Id AVP MAY be present in the Credit-Control-Answer message if
+ the user is also allowed to access other services that are not
+ accessible through the address given in the Redirect-Server-Extension
+ AVP or if access to these services needs to be limited in some way
+ (e.g., QoS).
+
+ If the Final-Unit-Action AVP is set to RESTRICT_ACCESS, either the
+ Filter-Rule AVP or the Filter-Id AVP SHOULD be present.
+
+ The Filter-Rule AVP is defined in [RFC5777]. The Filter-Rule AVP can
+ be used to define a specific combination of a condition and an
+ action. If used only with traffic conditions, it should define which
+ traffic should be allowed when no more service units are granted.
+ However, if QoS or treatment information exists in the AVP, these
+ actions should be executed, e.g., limiting the allowed traffic with
+ certain QoS information. When multiple Filter-Rule AVPs exist,
+ precedence should be determined as defined in [RFC5777].
+
+ The Filter-Id AVP is defined in [RFC7155]. The Filter-Id AVP can be
+ used to reference an IP filter list installed in the access device by
+ means other than the Diameter Credit-Control application, e.g.,
+ locally configured or configured by another entity.
+
+ If the Final-Unit-Action AVP is (1) set to TERMINATE, (2) set to
+ RESTRICT_ACCESS and the action required is to allow only traffic that
+ could be classified using an IPFilterRule, or (3) set to REDIRECT
+ using a type that is one of the types in the Redirect-Address-Type
+ AVP, then the credit-control server SHOULD send the information in
+ the Final-Unit-Indication AVP, in addition to or instead of the
+ QoS-Final-Unit-Indication AVP. This is done in order to preserve
+ backward compatibility with credit-control clients that support only
+ [RFC4006].
+
+
+
+
+Bertz, et al. Standards Track [Page 90]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The QoS-Final-Unit-Indication AVP is defined as follows (per
+ grouped-avp-def as defined in [RFC6733]):
+
+ QoS-Final-Unit-Indication ::= < AVP Header: 669 >
+ { Final-Unit-Action }
+ *[ Filter-Rule ]
+ *[ Filter-Id ]
+ [ Redirect-Server-Extension ]
+ *[ AVP ]
+
+9. Result-Code AVP Values
+
+ This section defines new Result-Code AVP [RFC6733] values that must
+ be supported by all Diameter implementations that conform to this
+ specification.
+
+ The Credit-Control-Answer message includes the Result-Code AVP, which
+ may indicate that an error was present in the Credit-Control-Request
+ message. A rejected Credit-Control-Request message SHOULD cause the
+ user's session to be terminated.
+
+9.1. Transient Failures
+
+ Errors that fall within the category of transient failures are used
+ to inform the peer that the request could not be satisfied at the
+ time it was received but that the request MAY be able to be satisfied
+ in the future.
+
+ DIAMETER_END_USER_SERVICE_DENIED 4010
+
+ The credit-control server denies the service request due to service
+ restrictions. If the CCR contained used service units, they are
+ deducted, if possible.
+
+ DIAMETER_CREDIT_CONTROL_NOT_APPLICABLE 4011
+
+ The credit-control server determines that the service can be granted
+ to the end user but that no further credit-control is needed for the
+ service (e.g., the service is free of charge).
+
+ DIAMETER_CREDIT_LIMIT_REACHED 4012
+
+ The credit-control server denies the service request because the
+ end user's account could not cover the requested service. If the CCR
+ contained used service units, they are deducted, if possible.
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 91]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+9.2. Permanent Failures
+
+ Errors that fall within the category of permanent failures are used
+ to inform the peer that the request failed and should not be
+ attempted again.
+
+ DIAMETER_USER_UNKNOWN 5030
+
+ The specified end user is unknown in the credit-control server.
+
+ DIAMETER_RATING_FAILED 5031
+
+ This error code is used to inform the credit-control client that the
+ credit-control server cannot rate the service request due to
+ insufficient rating input, an incorrect AVP combination, or an AVP or
+ AVP value that is not recognized or supported in the rating. The
+ Failed-AVP AVP MUST be included and contain (1) a copy of the entire
+ AVP or AVPs that could not be processed successfully or (2) an
+ example of the missing AVP, complete with the Vendor-Id if
+ applicable. The value field of the missing AVP should be of correct
+ minimum length and contain zeros.
+
+10. AVP Occurrence Table
+
+ The table in Section 10.1 presents the AVPs defined in this document
+ and specifies in which Diameter messages they MAY or MUST NOT be
+ present. Note that AVPs that can only be present within a Grouped
+ AVP are not represented in the table.
+
+ The table uses the following symbols:
+
+ 0 The AVP MUST NOT be present in the message.
+ 0+ Zero or more instances of the AVP MAY be present in the
+ message.
+ 0-1 Zero or one instance of the AVP MAY be present in the
+ message. It is considered an error if there is more
+ than one instance of the AVP.
+ 1 One instance of the AVP MUST be present in the message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 92]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+10.1. Credit-Control AVP Table
+
+ The table in this section is used to represent which credit-control
+ application-specific AVPs defined in this document are to be present
+ in the credit-control messages.
+
+ +-----------+
+ | Command |
+ | Code |
+ |-----+-----+
+ Attribute Name | CCR | CCA |
+ ----------------------------------|-----+-----+
+ Acct-Multi-Session-Id | 0-1 | 0-1 |
+ Auth-Application-Id | 1 | 1 |
+ CC-Correlation-Id | 0-1 | 0 |
+ CC-Session-Failover | 0 | 0-1 |
+ CC-Request-Number | 1 | 1 |
+ CC-Request-Type | 1 | 1 |
+ CC-Sub-Session-Id | 0-1 | 0-1 |
+ Check-Balance-Result | 0 | 0-1 |
+ Cost-Information | 0 | 0-1 |
+ Credit-Control-Failure-Handling | 0 | 0-1 |
+ Destination-Host | 0-1 | 0 |
+ Destination-Realm | 1 | 0 |
+ Direct-Debiting-Failure-Handling | 0 | 0-1 |
+ Event-Timestamp | 0-1 | 0-1 |
+ Failed-AVP | 0 | 0+ |
+ Final-Unit-Indication | 0 | 0-1 |
+ QoS-Final-Unit-Indication | 0 | 0-1 |
+ Granted-Service-Unit | 0 | 0-1 |
+ Multiple-Services-Credit-Control | 0+ | 0+ |
+ Multiple-Services-Indicator | 0-1 | 0 |
+ Origin-Host | 1 | 1 |
+ Origin-Realm | 1 | 1 |
+ Origin-State-Id | 0-1 | 0-1 |
+ Proxy-Info | 0+ | 0+ |
+ Redirect-Host | 0 | 0+ |
+ Redirect-Host-Usage | 0 | 0-1 |
+ Redirect-Max-Cache-Time | 0 | 0-1 |
+ Requested-Action | 0-1 | 0 |
+ Requested-Service-Unit | 0-1 | 0 |
+ Route-Record | 0+ | 0+ |
+ Result-Code | 0 | 1 |
+ Service-Context-Id | 1 | 0 |
+ Service-Identifier | 0-1 | 0 |
+ Service-Parameter-Info | 0+ | 0 |
+ Session-Id | 1 | 1 |
+ Subscription-Id | 0+ | 0 |
+
+
+
+Bertz, et al. Standards Track [Page 93]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Subscription-Id-Extension | 0+ | 0 |
+ Termination-Cause | 0-1 | 0 |
+ User-Equipment-Info | 0-1 | 0 |
+ User-Equipment-Info-Extension | 0-1 | 0 |
+ Used-Service-Unit | 0+ | 0 |
+ User-Name | 0-1 | 0-1 |
+ Validity-Time | 0 | 0-1 |
+ ----------------------------------|-----+-----+
+
+10.2. Re-Auth-Request/Re-Auth-Answer AVP Table
+
+ This section defines AVPs that are specific to the Diameter
+ Credit-Control application and that MAY be included in the Diameter
+ Re-Auth-Request/Re-Auth-Answer (RAR/RAA) message [RFC6733].
+
+ The RAR/RAA command MAY include the following additional AVPs:
+
+ +---------------+
+ | Command Code |
+ |-------+-------+
+ Attribute Name | RAR | RAA |
+ ------------------------------+-------+-------+
+ CC-Sub-Session-Id | 0-1 | 0-1 |
+ G-S-U-Pool-Identifier | 0-1 | 0-1 |
+ Service-Identifier | 0-1 | 0-1 |
+ Rating-Group | 0-1 | 0-1 |
+ ------------------------------+-------+-------+
+
+11. RADIUS/Diameter Credit-Control Interworking Model
+
+ This section defines the basic principles for the Diameter
+ Credit-Control / RADIUS prepaid interworking model -- that is, a
+ message translation between a RADIUS-based prepaid solution and a
+ Diameter Credit-Control application. A complete description of the
+ protocol translations between RADIUS and the Diameter Credit-Control
+ application is beyond the scope of this specification and SHOULD be
+ addressed in another appropriate document.
+
+ The Diameter Credit-Control architecture may have a Translation Agent
+ capable of translation between RADIUS prepaid and Diameter
+ Credit-Control protocols. A AAA server (usually the home AAA server)
+ may act as a Translation Agent and as a Diameter Credit-Control
+ client for Service Elements that use credit-control mechanisms other
+ than Diameter Credit-Control -- for instance, RADIUS prepaid. In
+ this case, the home AAA server contacts the Diameter Credit-Control
+ server as part of the authorization process. The interworking
+ architecture is illustrated in Figure 9, and an interworking flow is
+ illustrated in Figure 10. In a roaming situation, the Service
+
+
+
+Bertz, et al. Standards Track [Page 94]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Element (e.g., the NAS) may be located in the visited network, and a
+ visited AAA server is usually contacted. The visited AAA server then
+ connects to the home AAA server.
+
+ RADIUS Prepaid
+ +--------+ +---------+ Protocol +------------+ +--------+
+ | End |<----->| Service |<---------->| Home AAA | |Business|
+ | User | | Element | | Server | |Support |
+ +--------+ +-->| | |+----------+|->|System |
+ | +---------+ ||CC Client || | |
+ | |+----------+| | |
+ +--------+ | +------^-----+ +----^---+
+ | End |<--+ Credit-Control | |
+ | User | Protocol | |
+ +--------+ +-------V--------+ |
+ |Credit-Control |----+
+ | Server |
+ +----------------+
+
+ Figure 9: Credit-Control Architecture with Service Element
+ Containing Translation Agent, Translating RADIUS Prepaid
+ to Diameter Credit-Control Protocol
+
+ When the AAA server acting as a Translation Agent receives an initial
+ RADIUS Access-Request message from a Service Element (e.g., NAS
+ access), it performs regular authentication and authorization. If
+ the RADIUS Access-Request message indicates that the Service Element
+ is capable of credit-control and if the home AAA server finds that
+ the subscriber is a prepaid subscriber, then a Diameter
+ Credit-Control-Request SHOULD be sent toward the credit-control
+ server to perform credit authorization and to establish a
+ credit-control session. After the Diameter Credit-Control server
+ checks the end user's account balance, rates the service, and
+ reserves credit from the end user's account, the reserved quota is
+ returned to the home AAA server in the Diameter Credit-Control-
+ Answer. The home AAA server then sends the reserved quota to the
+ Service Element in the RADIUS Access-Accept.
+
+ At the expiry of the allocated quota, the Service Element sends a new
+ RADIUS Access-Request containing the units used thus far to the home
+ AAA server. The home AAA server shall map a RADIUS Access-Request
+ containing the reported units to the Diameter Credit-Control server
+ in a Diameter Credit-Control-Request (UPDATE_REQUEST). The Diameter
+ Credit-Control server debits the used units from the end user's
+ account and allocates a new quota that is returned to the home AAA
+ server in the Diameter Credit-Control-Answer. The quota is
+ transferred to the Service Element in the RADIUS Access-Accept. When
+ the end user terminates the service or when the entire quota has been
+
+
+
+Bertz, et al. Standards Track [Page 95]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ used, the Service Element sends a RADIUS Access-Request. To debit
+ the used units from the end user's account and to stop the
+ credit-control session, the home AAA server sends a Diameter
+ Credit-Control-Request (TERMINATION_REQUEST) to the credit-control
+ server. The Diameter Credit-Control server acknowledges the session
+ termination by sending a Diameter Credit-Control-Answer to the home
+ AAA server. The RADIUS Access-Accept is sent to the NAS.
+
+ Figure 10 illustrates a Diameter Credit-Control / RADIUS prepaid
+ interworking sequence.
+
+ Service Element Translation Agent
+ (e.g., NAS) (CC Client) CC Server
+ | Access-Request | |
+ |----------------------->| |
+ | | CCR (Initial) |
+ | |----------------------->|
+ | | CCA (Granted-Units) |
+ | |<-----------------------|
+ | Access-Accept | |
+ | (Granted-Units) | |
+ |<-----------------------| |
+ : : :
+ | Access-Request | |
+ | (Used-Units) | |
+ |----------------------->| |
+ | | CCR (Update, |
+ | | Used-Units) |
+ | |----------------------->|
+ | | CCA (Granted-Units) |
+ | |<-----------------------|
+ | Access-Accept | |
+ | (Granted-Units) | |
+ |<-----------------------| |
+ : : :
+ | Access-Request | |
+ |----------------------->| |
+ | | CCR (Terminate, |
+ | | Used-Units) |
+ | |----------------------->|
+ | | CCA |
+ | |<-----------------------|
+ | Access-Accept | |
+ |<-----------------------| |
+ | | |
+
+ Figure 10: Message Flow Example with Diameter
+ Credit-Control / RADIUS Prepaid Interworking
+
+
+
+Bertz, et al. Standards Track [Page 96]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+12. IANA Considerations
+
+ This document uses several registries that were originally created in
+ [RFC4006] or the values assigned to existing namespaces managed by
+ IANA. IANA has updated these registries to reference this document.
+ The registries and their allocation policies are specified below.
+
+12.1. Application Identifier
+
+ This specification assigns the value 4, "Diameter Credit Control", to
+ the "Application IDs" namespace defined in [RFC6733]. See
+ Section 1.3 for more information.
+
+12.2. Command Codes
+
+ This specification uses the value 272 from the "Command Codes"
+ namespace defined in [RFC6733] for the Credit-Control-Request (CCR)
+ and Credit-Control-Answer (CCA) commands.
+
+12.3. AVP Codes
+
+ See Section 8 for the assignments in this specification.
+
+ This document describes new AVP codes beyond those described in
+ [RFC4006]. IANA has allocated codes for the AVPs listed in Table 7.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 97]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ +-----------------------------------+------+--------------+
+ | Attribute Name | Code | Defined in |
+ +-----------------------------------+------+--------------+
+ | User-Equipment-Info-Extension | 653 | Section 8.52 |
+ | User-Equipment-Info-IMEISV | 654 | Section 8.53 |
+ | User-Equipment-Info-MAC | 655 | Section 8.54 |
+ | User-Equipment-Info-EUI64 | 656 | Section 8.55 |
+ | User-Equipment-Info-ModifiedEUI64 | 657 | Section 8.56 |
+ | User-Equipment-Info-IMEI | 658 | Section 8.57 |
+ | Subscription-Id-Extension | 659 | Section 8.58 |
+ | Subscription-Id-E164 | 660 | Section 8.59 |
+ | Subscription-Id-IMSI | 661 | Section 8.60 |
+ | Subscription-Id-SIP-URI | 662 | Section 8.61 |
+ | Subscription-Id-NAI | 663 | Section 8.62 |
+ | Subscription-Id-Private | 664 | Section 8.63 |
+ | Redirect-Server-Extension | 665 | Section 8.64 |
+ | Redirect-Address-IPAddress | 666 | Section 8.65 |
+ | Redirect-Address-URL | 667 | Section 8.66 |
+ | Redirect-Address-SIP-URI | 668 | Section 8.67 |
+ | QoS-Final-Unit-Indication | 669 | Section 8.68 |
+ +-----------------------------------+------+--------------+
+
+ Table 7: Requested AVP Assignments
+
+12.4. Result-Code AVP Values
+
+ This specification assigns the values 4010, 4011, and 4012 in the
+ "Result-Code AVP Values (code 268) - Transient Failures" namespace
+ and values 5030 and 5031 in the "Result-Code AVP Values (code 268) -
+ Permanent Failure" namespace, both of which were defined by
+ [RFC6733]. See Section 9 for the assignments in this specification.
+
+12.5. CC-Request-Type AVP
+
+ As defined in Section 8.3, the CC-Request-Type AVP includes
+ Enumerated type values 1-4. IANA has created and is maintaining a
+ namespace for this AVP. The definition of new values is subject to
+ the Specification Required policy [RFC8126] and conditions for
+ enumerated values described in [RFC7423], Section 5.6.
+
+12.6. CC-Session-Failover AVP
+
+ As defined in Section 8.4, the CC-Session-Failover AVP includes
+ Enumerated type values 0-1. IANA has created and is maintaining a
+ namespace for this AVP. The definition of new values is subject to
+ the Specification Required policy [RFC8126] and conditions for
+ enumerated values described in [RFC7423], Section 5.6.
+
+
+
+
+Bertz, et al. Standards Track [Page 98]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+12.7. CC-Unit-Type AVP
+
+ As defined in Section 8.32, the CC-Unit-Type AVP includes Enumerated
+ type values 0-5. IANA has created and is maintaining a namespace for
+ this AVP. The definition of new values is subject to the
+ Specification Required policy [RFC8126] and conditions for enumerated
+ values described in [RFC7423], Section 5.6.
+
+12.8. Check-Balance-Result AVP
+
+ As defined in Section 8.6, the Check-Balance-Result AVP includes
+ Enumerated type values 0-1. IANA has created and is maintaining a
+ namespace for this AVP. The definition of new values is subject to
+ the Specification Required policy [RFC8126] and conditions for
+ enumerated values described in [RFC7423], Section 5.6.
+
+12.9. Credit-Control AVP
+
+ As defined in Section 8.13, the Credit-Control AVP includes
+ Enumerated type values 0-1. IANA has created and is maintaining a
+ namespace for this AVP. The definition of new values is subject to
+ the Specification Required policy [RFC8126] and conditions for
+ enumerated values described in [RFC7423], Section 5.6.
+
+12.10. Credit-Control-Failure-Handling AVP
+
+ As defined in Section 8.14, the Credit-Control-Failure-Handling AVP
+ includes Enumerated type values 0-2. IANA has created and is
+ maintaining a namespace for this AVP. The definition of new values
+ is subject to the Specification Required policy [RFC8126] and
+ conditions for enumerated values described in [RFC7423], Section 5.6.
+
+12.11. Direct-Debiting-Failure-Handling AVP
+
+ As defined in Section 8.15, the Direct-Debiting-Failure-Handling AVP
+ includes Enumerated type values 0-1. IANA has created and is
+ maintaining a namespace for this AVP. The definition of new values
+ is subject to the Specification Required policy [RFC8126] and
+ conditions for enumerated values described in [RFC7423], Section 5.6.
+
+12.12. Final-Unit-Action AVP
+
+ As defined in Section 8.35, the Final-Unit-Action AVP includes
+ Enumerated type values 0-2. IANA has created and is maintaining a
+ namespace for this AVP. The definition of new values is subject to
+ the Specification Required policy [RFC8126] and conditions for
+ enumerated values described in [RFC7423], Section 5.6.
+
+
+
+
+Bertz, et al. Standards Track [Page 99]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+12.13. Multiple-Services-Indicator AVP
+
+ As defined in Section 8.40, the Multiple-Services-Indicator AVP
+ includes Enumerated type values 0-1. IANA has created and is
+ maintaining a namespace for this AVP. The definition of new values
+ is subject to the Specification Required policy [RFC8126] and
+ conditions for enumerated values described in [RFC7423], Section 5.6.
+
+12.14. Redirect-Address-Type AVP
+
+ As defined in Section 8.38, the Redirect-Address-Type AVP includes
+ Enumerated type values 0-3. IANA has created and is maintaining a
+ namespace for this AVP. The definition of new values is subject to
+ the Specification Required policy [RFC8126] and conditions for
+ enumerated values described in [RFC7423], Section 5.6.
+
+12.15. Requested-Action AVP
+
+ As defined in Section 8.41, the Requested-Action AVP includes
+ Enumerated type values 0-3. IANA has created and is maintaining a
+ namespace for this AVP. The definition of new values is subject to
+ the Specification Required policy [RFC8126] and conditions for
+ enumerated values described in [RFC7423], Section 5.6.
+
+12.16. Subscription-Id-Type AVP
+
+ As defined in Section 8.47, the Subscription-Id-Type AVP includes
+ Enumerated type values 0-4. IANA has created and is maintaining a
+ namespace for this AVP. The definition of new values is subject to
+ the Specification Required policy [RFC8126] and conditions for
+ enumerated values described in [RFC7423], Section 5.6.
+
+12.17. Tariff-Change-Usage AVP
+
+ As defined in Section 8.27, the Tariff-Change-Usage AVP includes
+ Enumerated type values 0-2. IANA has created and is maintaining a
+ namespace for this AVP. The definition of new values is subject to
+ the Specification Required policy [RFC8126] and conditions for
+ enumerated values described in [RFC7423], Section 5.6.
+
+12.18. User-Equipment-Info-Type AVP
+
+ As defined in Section 8.50, the User-Equipment-Info-Type AVP includes
+ Enumerated type values 0-3. IANA has created and is maintaining a
+ namespace for this AVP. The definition of new values is subject to
+ the Specification Required policy [RFC8126] and conditions for
+ enumerated values described in [RFC7423], Section 5.6.
+
+
+
+
+Bertz, et al. Standards Track [Page 100]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+13. Parameters Related to the Credit-Control Application
+
+ Tx timer
+
+ When real-time credit-control is required, the credit-control
+ client contacts the credit-control server before and while the
+ service is provided to an end user. Due to the real-time nature
+ of the application, communication delays SHOULD be minimized,
+ e.g., to avoid an overly long service setup time experienced by
+ the end user. The Tx timer is introduced to control the waiting
+ time in the client in the Pending state. When the Tx timer
+ elapses, the credit-control client takes action for the end user
+ according to the value of the CCFH or the DDFH. The recommended
+ value is 10 seconds.
+
+ Tcc timer
+
+ The Tcc timer supervises an ongoing credit-control session in the
+ credit-control server. It is RECOMMENDED to use the Validity-Time
+ as input to set the Tcc timer value. In the case of transient
+ failures in the network, the Diameter Credit-Control server might
+ change to Idle state. To avoid this, the Tcc timer MAY be set so
+ that Tcc is equal to 2 x Validity-Time.
+
+ Credit-Control-Failure-Handling and Direct-Debiting-Failure-Handling
+
+ Client implementations may offer the possibility of locally
+ configuring these AVPs. In such a case, their values and behavior
+ are defined in Sections 5.7 and 6.5, respectively.
+
+14. Security Considerations
+
+ Security considerations regarding the Diameter protocol itself are
+ discussed in [RFC6733]. The use of this application of Diameter MUST
+ take into consideration the security issues and requirements of the
+ base protocol.
+
+ This application includes a mechanism for application-layer replay
+ protection by means of (1) the Session-Id AVP as specified in
+ [RFC6733] and (2) the CC-Request-Number AVP, which is specified in
+ this document. The Diameter Credit-Control application is often used
+ within one domain, and there may be a single hop between the peers.
+ In these environments, the use of TLS/TCP, DTLS/SCTP (Datagram
+ Transport Layer Security / Stream Control Transmission Protocol), or
+ IPsec is sufficient. The details of security considerations related
+ to TLS/TCP, DTLS/SCTP, and IPsec are discussed in [RFC6733].
+
+
+
+
+
+Bertz, et al. Standards Track [Page 101]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Because this application handles monetary transactions (directly or
+ indirectly), it increases interest in various security attacks.
+ Therefore, all parties communicating with each other MUST be
+ authenticated, including, for instance, TLS client-side
+ authentication. In addition, authorization of the client SHOULD be
+ emphasized, i.e., that the client is allowed to perform
+ credit-control for a certain user. The specific means of
+ authorization are outside the scope of this specification but can be,
+ for instance, manual configuration.
+
+ Another kind of threat is malicious modification, injection, or
+ deletion of AVPs or complete credit-control messages. The
+ credit-control messages contain sensitive billing-related information
+ (such as subscription identifiers, granted units, used units, or cost
+ information) whose malicious modification can have financial
+ consequences. Sometimes simply delaying the credit-control messages
+ can cause disturbances in the credit-control client or server.
+
+ Even without any modifications to the messages, an adversary that can
+ eavesdrop on transactions can obtain privacy-sensitive information.
+ Also, by monitoring the credit-control messages, one can collect
+ information about the credit-control server's billing models and
+ business relationships.
+
+ When third-party relays or proxies are involved, hop-by-hop security
+ does not necessarily provide sufficient protection for Diameter user
+ sessions. In some cases, it may be inappropriate to send Diameter
+ messages, such as CCR messages and CCA messages, containing sensitive
+ AVPs via untrusted Diameter proxy agents, as there are no assurances
+ that third-party proxies will not modify the credit-control commands
+ or AVP values.
+
+14.1. Direct Connection with Redirects
+
+ A Diameter Credit-Control agent cannot always know whether agents
+ between it and the end user's Diameter Credit-Control server are
+ reliable. In this case, the Diameter Credit-Control agent doesn't
+ have a routing entry in its Diameter routing table (defined in
+ [RFC6733], Section 2.7) for the realm of the credit-control server in
+ the end user's home realm. The Diameter Credit-Control agent can
+ have a default route configured to a local redirect agent, and it
+ redirects the CCR message to the redirect agent. The local redirect
+ agent then returns a redirect notification (Result-Code 3006,
+ DIAMETER_REDIRECT_INDICATION) to the credit-control agent, as well as
+ information about the Diameter Credit-Control server(s) (Redirect-
+ Host AVP) and information about how the routing entry resulting from
+ the Redirect-Host is to be used (Redirect-Host-Usage AVP). The
+ Diameter Credit-Control agent then forwards the CCR message directly
+
+
+
+Bertz, et al. Standards Track [Page 102]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ to one of the hosts identified by the CCA message from the redirect
+ agent. If the value of the Redirect-Host-Usage AVP does not equal
+ zero, all subsequent messages are sent to the host specified in the
+ Redirect-Host AVP until the time specified by the Redirect-Max-Cache-
+ Time AVP has expired.
+
+ Even with redirects, there are some authorization issues. There may
+ be attacks toward nodes that have been properly authorized but that
+ abuse their authorization or have been compromised. These issues are
+ discussed more widely in [RFC4072], Section 8.
+
+14.2. Application-Level Redirects
+
+ This document includes a redirection feature (Section 5.6.2) whereby
+ the service provider can redirect (in an application-specific way)
+ the end user to an alternate location when their credits have
+ expired. This technique is useful in that it allows the user to
+ return to normal service quickly, but it also exposes additional
+ risks and attack surface. In particular, this redirection can
+ potentially occur at an arbitrary point in a user's session,
+ potentially without any additional contextual confirmation available
+ to the user that the redirection is driven by the network. This lack
+ of confirmation matters because, in many application protocols, the
+ communication peer is also capable of inducing redirection. When the
+ peer is an attacker, the redirection can be to an attacker-controlled
+ site. In particular, such sites may be "phishing" sites designed to
+ appear similar to legitimate payment sites in an attempt to obtain
+ users' payment information for fraudulent purposes. When users
+ become accustomed to such redirections, they may have difficulty
+ distinguishing such attacks from legitimate redirections.
+
+ Because of the potentially harmful consequences of arbitrary
+ redirection by an attacker (such as to phishing sites), it is
+ important for service providers to be aware of that risk and ensure
+ that their users are aware of it as well. Service providers should
+ follow industry best practices for the specific application-layer
+ protocol to reduce the chances that such attacks could be mistaken
+ for legitimate redirections. The details of such a practice are out
+ of scope for this document.
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 103]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+15. Privacy Considerations
+
+ As the Diameter protocol, and especially the credit-control
+ application, deal with subscribers and their actions, extra care
+ should be taken regarding the privacy of the subscribers. Per
+ terminology used in [RFC6973], both the credit-control client and the
+ credit-control server are intermediary entities, wherein the
+ subscribers' privacy may be compromised even if no security issues
+ exist, and only authorized entities have access to the privacy-
+ sensitive information.
+
+15.1. Privacy-Sensitive AVPs
+
+ The privacy-sensitive AVPs listed in this section MUST NOT be sent
+ across non-trusted networks or Diameter agents without end-to-end
+ authentication and confidentiality protection, as described in
+ [RFC6733], Section 13.3.
+
+ The following AVPs contain privacy-sensitive information at different
+ levels:
+
+ 1. CC-Correlation-Id AVP: may contain privacy-sensitive
+ information, as the service provider may encode personal
+ information that helps it correlate different subscriptions and
+ access technologies.
+
+ 2. Check-Balance-Result AVP: contains information on the balance
+ status of the subscriber.
+
+ 3. Currency-Code AVP: contains information on the subscriber's
+ locale.
+
+ 4. Cost-Unit AVP: contains privacy-sensitive information for the
+ Cost-Information AVP, in human-readable format.
+
+ 5. Service-Identifier AVP: may contain privacy-sensitive
+ information about the subscriber's Internet activity.
+
+ 6. Rating-Group AVP: may contain privacy-sensitive information
+ about the subscriber's Internet activity.
+
+ 7. Restriction-Filter-Rule AVP: the information inside IPFilterRule
+ may be used to infer services used by the subscriber.
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 104]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ 8. Redirect-Server-Address AVP: the service provider might embed
+ personal information on the subscriber in the URL/URI (e.g., to
+ create a personalized message). However, the service provider
+ may instead anonymize the subscriber's identity in the URL/URI
+ and let the redirect server query the information directly.
+ Such anonymized information must not allow personal information
+ or the subscriber's identity to be easily guessed. Furthermore,
+ the service provider should treat the URL/URI schema itself as
+ confidential and make sure it cannot be inferred (1) from
+ observation of the traffic or (2) due to its trivial structure.
+ A trivial structure could allow an adversary to query/modify
+ personal information even without knowing the subscriber's
+ identity. Similar AVPs are Redirect-Address-URL and Redirect-
+ Address-SIP-URI.
+
+ 9. Service-Context-Id AVP: depending on how the service provider
+ uses it, it may contain privacy-sensitive information about the
+ service (e.g., in a 3GPP network Service-Context-Id AVP, it has
+ a different value for packet switching, SMS, Multimedia Messages
+ (MMSs), etc.).
+
+ 10. Service-Parameter-Info AVP: depending on how the service
+ provider uses it, it may contain privacy-sensitive information
+ about the subscriber (e.g., location).
+
+ 11. Subscription-Id-Data AVP: contains the identity of the
+ subscriber. Similar AVPs are Subscription-Id-E164,
+ Subscription-Id-IMSI, Subscription-Id-SIP-URI, Subscription-Id-
+ NAI, and Subscription-Id-Private.
+
+ 12. User-Equipment-Info-Value AVP: contains the identity of the
+ device of the subscriber. Similar AVPs are User-Equipment-Info-
+ IMEISV, User-Equipment-Info-MAC, User-Equipment-Info-EUI64,
+ User-Equipment-Info-ModifiedEUI64, and User-Equipment-Info-IMEI.
+
+ 13. QoS-Final-Unit-Indication AVP: Grouped AVP that may contain
+ privacy-sensitive information in its sub-AVPs (e.g.,
+ IPFilterRule, redirect address).
+
+ Note that some AVPs that are used in this document are defined in
+ [RFC6733] and may contain privacy-sensitive information. These AVPs
+ are not listed above.
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 105]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+15.2. Data Minimization
+
+ Due to the nature of the credit-control application, some personal
+ data and identity information must be stored in both the
+ credit-control client and the credit-control server. However, this
+ could be minimized by following these guidelines:
+
+ 1. Data stored in the credit-control client does not need to persist
+ across sessions. All data could be deleted once the session ends
+ and could be reconstructed once a new session is initialized.
+ Note that while the credit-control server is usually owned by the
+ service provider with which the subscriber already has some
+ direct legal or business relationship (where the privacy level
+ could be agreed upon), this is not always true for a
+ credit-control client that may be owned by a third party.
+
+ 2. Some information about the subscriber has to be stored in
+ persistent storage in the credit-control server (e.g., identity,
+ balance); however, per-transaction information does not have to
+ be stored in persistent storage, and per-session information may
+ be deleted from persistent storage once the session ends.
+
+ 3. In some cases, per-transaction information has to be stored on
+ the credit-control server, client, or both, for regulatory,
+ auditability, or debugging reasons. However, this could be
+ minimized by following these guidelines:
+
+ A. Data retention does not need to exceed the required duration.
+
+ B. Transaction information could be aggregated in some cases
+ (e.g., prefer information per session over information per
+ rating-group; prefer hourly byte summary over per-transaction
+ byte counts).
+
+ C. If not strictly needed, information that is more sensitive
+ (e.g., location, equipment type) could be filtered out of
+ such logs. This information is often used to make rating
+ decisions, and in this case, the rating decisions should be
+ logged instead of the data used to make them.
+
+ D. Due to the reasons explained in the first guideline, the
+ credit-control server, rather than the credit-control client,
+ would be the preferred location for storing such transaction
+ information.
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 106]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+15.3. Diameter Agents
+
+ Diameter agents, as described in [RFC6733], may be owned by
+ third parties. If end-to-end security is supported between the
+ credit-control client and the credit-control server, the operator can
+ use it to encrypt privacy-sensitive AVPs (as listed in Section 15.1)
+ and prevent such information from leaking into the agent.
+
+ In some cases, the Diameter agent needs access to privacy-sensitive
+ AVPs, in order to make correct routing decisions or even to modify
+ the content of these AVPs. For example, a proxy agent may need to
+ look at the Subscription-Id-IMSI AVP, in order to extract the mobile
+ country and network codes of the user and use them to look up the
+ destination to which the request should be routed (see Section 2.8.2
+ in [RFC6733]). In such a case, the credit-control client and
+ credit-control server may use a mechanism that anonymizes the
+ identity of the subscriber, as well as a mechanism to encrypt other
+ AVPs not used by the agent.
+
+16. References
+
+16.1. Normative References
+
+ [CE164] International Telecommunication Union, "COMPLEMENT TO
+ ITU-T RECOMMENDATION E.164 (11/2010): LIST OF ITU-T
+ RECOMMENDATION E.164 ASSIGNED COUNTRY CODES",
+ November 2011, <https://www.itu.int/dms_pub/itu-t/opb/sp/
+ T-SP-E.164D-11-2011-PDF-E.pdf>.
+
+ [CE212] International Telecommunication Union, "COMPLEMENT TO
+ RECOMMENDATION ITU-T E.212 (09/2016): LIST OF MOBILE
+ COUNTRY OR GEOGRAPHICAL AREA CODES", February 2017,
+ <https://www.itu.int/dms_pub/itu-t/opb/sp/
+ T-SP-E.212A-2017-PDF-E.pdf>.
+
+ [E164] International Telecommunication Union, "The international
+ public telecommunication numbering plan", ITU-T
+ Recommendation E.164, November 2010,
+ <https://www.itu.int/rec/T-REC-E.164/>.
+
+ [E212] International Telecommunication Union, "The international
+ identification plan for public networks and
+ subscriptions", ITU-T Recommendation E.212,
+ September 2016, <https://www.itu.int/rec/T-REC-E.212/en>.
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 107]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ [EUI64] IEEE, "Guidelines for Use of Extended Unique Identifier
+ (EUI), Organizationally Unique Identifier (OUI), and
+ Company ID (CID)", August 2017,
+ <https://standards.ieee.org/content/dam/
+ ieee-standards/standards/web/documents/tutorials/eui.pdf>.
+
+ [ISO4217] ISO, "Codes for the representation of currencies",
+ ISO 4217:2015, 2015, <https://www.iso.org/
+ iso-4217-currency-codes.html>.
+
+ [RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791,
+ DOI 10.17487/RFC0791, September 1981,
+ <https://www.rfc-editor.org/info/rfc791>.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
+ A., Peterson, J., Sparks, R., Handley, M., and E.
+ Schooler, "SIP: Session Initiation Protocol", RFC 3261,
+ DOI 10.17487/RFC3261, June 2002,
+ <https://www.rfc-editor.org/info/rfc3261>.
+
+ [RFC3539] Aboba, B. and J. Wood, "Authentication, Authorization and
+ Accounting (AAA) Transport Profile", RFC 3539,
+ DOI 10.17487/RFC3539, June 2003,
+ <https://www.rfc-editor.org/info/rfc3539>.
+
+ [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
+ Resource Identifier (URI): Generic Syntax", STD 66,
+ RFC 3986, DOI 10.17487/RFC3986, January 2005,
+ <https://www.rfc-editor.org/info/rfc3986>.
+
+ [RFC4006] Hakala, H., Mattila, L., Koskinen, J-P., Stura, M., and
+ J. Loughney, "Diameter Credit-Control Application",
+ RFC 4006, DOI 10.17487/RFC4006, August 2005,
+ <https://www.rfc-editor.org/info/rfc4006>.
+
+ [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
+ Architecture", RFC 4291, DOI 10.17487/RFC4291,
+ February 2006, <https://www.rfc-editor.org/info/rfc4291>.
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 108]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ [RFC5777] Korhonen, J., Tschofenig, H., Arumaithurai, M., Jones, M.,
+ Ed., and A. Lior, "Traffic Classification and Quality of
+ Service (QoS) Attributes for Diameter", RFC 5777,
+ DOI 10.17487/RFC5777, February 2010,
+ <https://www.rfc-editor.org/info/rfc5777>.
+
+ [RFC5952] Kawamura, S. and M. Kawashima, "A Recommendation for IPv6
+ Address Text Representation", RFC 5952,
+ DOI 10.17487/RFC5952, August 2010,
+ <https://www.rfc-editor.org/info/rfc5952>.
+
+ [RFC6733] Fajardo, V., Ed., Arkko, J., Loughney, J., and G. Zorn,
+ Ed., "Diameter Base Protocol", RFC 6733,
+ DOI 10.17487/RFC6733, October 2012,
+ <https://www.rfc-editor.org/info/rfc6733>.
+
+ [RFC7155] Zorn, G., Ed., "Diameter Network Access Server
+ Application", RFC 7155, DOI 10.17487/RFC7155, April 2014,
+ <https://www.rfc-editor.org/info/rfc7155>.
+
+ [RFC7423] Morand, L., Ed., Fajardo, V., and H. Tschofenig, "Diameter
+ Applications Design Guidelines", BCP 193, RFC 7423,
+ DOI 10.17487/RFC7423, November 2014,
+ <https://www.rfc-editor.org/info/rfc7423>.
+
+ [RFC7542] DeKok, A., "The Network Access Identifier", RFC 7542,
+ DOI 10.17487/RFC7542, May 2015,
+ <https://www.rfc-editor.org/info/rfc7542>.
+
+ [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
+ Writing an IANA Considerations Section in RFCs", BCP 26,
+ RFC 8126, DOI 10.17487/RFC8126, June 2017,
+ <https://www.rfc-editor.org/info/rfc8126>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in
+ RFC 2119 Key Words", BCP 14, RFC 8174,
+ DOI 10.17487/RFC8174, May 2017,
+ <https://www.rfc-editor.org/info/rfc8174>.
+
+ [TGPPIMEI] 3rd Generation Partnership Project, Technical
+ Specification Group Core Network, "Numbering, addressing
+ and identification (release 15)", 3GPP TS 23.003
+ version 15.6.0, December 2018.
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 109]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+16.2. Informative References
+
+ [RFC2866] Rigney, C., "RADIUS Accounting", RFC 2866,
+ DOI 10.17487/RFC2866, June 2000,
+ <https://www.rfc-editor.org/info/rfc2866>.
+
+ [RFC3580] Congdon, P., Aboba, B., Smith, A., Zorn, G., and J. Roese,
+ "IEEE 802.1X Remote Authentication Dial In User Service
+ (RADIUS) Usage Guidelines", RFC 3580,
+ DOI 10.17487/RFC3580, September 2003,
+ <https://www.rfc-editor.org/info/rfc3580>.
+
+ [RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and
+ G. Camarillo, "Best Current Practices for Third Party Call
+ Control (3pcc) in the Session Initiation Protocol (SIP)",
+ BCP 85, RFC 3725, DOI 10.17487/RFC3725, April 2004,
+ <https://www.rfc-editor.org/info/rfc3725>.
+
+ [RFC4004] Calhoun, P., Johansson, T., Perkins, C., Hiller, T., Ed.,
+ and P. McCann, "Diameter Mobile IPv4 Application",
+ RFC 4004, DOI 10.17487/RFC4004, August 2005,
+ <https://www.rfc-editor.org/info/rfc4004>.
+
+ [RFC4072] Eronen, P., Ed., Hiller, T., and G. Zorn, "Diameter
+ Extensible Authentication Protocol (EAP) Application",
+ RFC 4072, DOI 10.17487/RFC4072, August 2005,
+ <https://www.rfc-editor.org/info/rfc4072>.
+
+ [RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J.,
+ Morris, J., Hansen, M., and R. Smith, "Privacy
+ Considerations for Internet Protocols", RFC 6973,
+ DOI 10.17487/RFC6973, July 2013,
+ <https://www.rfc-editor.org/info/rfc6973>.
+
+ [TGPPCHARG]
+ 3rd Generation Partnership Project, Technical
+ Specification Group Services and System Aspects, "Service
+ aspects; Charging and Billing", 3GPP TS 22.115
+ version 15.5.0, September 2018.
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 110]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+Appendix A. Credit-Control Sequences
+
+A.1. Flow I
+
+ A credit-control flow for Network Access Services prepaid is shown in
+ Figure 11. The Diameter protocol application is implemented in the
+ Network Access Server (NAS) per [RFC7155]. The focus of this flow is
+ on credit authorization.
+
+ NAS
+ End User (CC Client) AAA Server CC Server
+ |(1)User Logon |(2)AA-Request (CC AVPs) |
+ |------------------>|-------------------->| |
+ | | |(3)CCR(Initial, CC AVPs)
+ | | |-------------------->|
+ | | |(4)CCA(Granted-Units)|
+ | | |<--------------------|
+ | |(5)AA-Answer(Granted-Units) |
+ |(6)Access granted |<--------------------| |
+ |<----------------->| | |
+ | | | |
+ : : : :
+ | |(7)CCR(Update, Used-Units) |
+ | |-------------------->|(8)CCR |
+ | | | (Update, Used-Units)
+ | | |-------------------->|
+ | | |(9)CCA(Granted-Units)|
+ | |(10)CCA(Granted-Units)<--------------------|
+ | |<--------------------| |
+ : : : :
+ | (Auth. lifetime expires) | |
+ | |(11)AAR (CC AVP) | |
+ | |-------------------->| |
+ | | (12)AAA | |
+ | |<--------------------| |
+ : : : :
+ : : : :
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 111]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ |(13)User logoff | | |
+ |------------------>|(14)CCR(Term., Used-Units) |
+ | |-------------------->|(15)CCR |
+ | | | (Term., Used-Units)
+ | | |-------------------->|
+ | | | (16)CCA |
+ | | (17)CCA |<--------------------|
+ | |<--------------------| |
+ | |(18)STR | |
+ | |-------------------->| |
+ | | (19)STA | |
+ | |<--------------------| |
+
+ Figure 11: Flow I
+
+ The user logs on to the network (1). The Diameter NAS sends a
+ Diameter AA-Request (AAR) to the home Diameter AAA server (2). The
+ credit-control client populates the AAR with the Credit-Control AVP
+ set to CREDIT_AUTHORIZATION, and service-specific AVPs are included,
+ as usual [RFC7155]. The home Diameter AAA server performs service-
+ specific authentication and authorization, as usual. The home
+ Diameter AAA server determines that the user is a prepaid user and
+ notices from the Credit-Control AVP that the NAS has credit-control
+ capabilities. It sends a Diameter Credit-Control-Request with
+ CC-Request-Type set to INITIAL_REQUEST to the Diameter Credit-Control
+ server to perform credit authorization (3) and to establish a
+ credit-control session. (The home Diameter AAA server may forward
+ service-specific AVPs received from the NAS as input for the rating
+ process.) The Diameter Credit-Control server checks the end user's
+ account balance, rates the service, and reserves credit from the
+ end user's account. The reserved quota is returned to the home
+ Diameter AAA server in the Diameter Credit-Control-Answer (4). The
+ home Diameter AAA server sends the reserved quota to the NAS in the
+ Diameter AA-Answer (AAA). Upon receiving the AA-Answer, the NAS
+ starts the credit-control session and starts monitoring the granted
+ units (5). The NAS grants access to the end user (6). At the expiry
+ of the allocated quota, the NAS sends a Diameter Credit-Control-
+ Request with CC-Request-Type set to UPDATE_REQUEST to the home
+ Diameter AAA server (7). This message contains the units used thus
+ far. The home Diameter AAA server forwards the CCR to the Diameter
+ Credit-Control server (8). The Diameter Credit-Control server debits
+ the used units from the end user's account and allocates a new quota
+ that is returned to the home Diameter AAA server in the Diameter
+ Credit-Control-Answer (9). The message is forwarded to the NAS (10).
+ During the ongoing credit-control session, the authorization lifetime
+ expires, and the authorization/authentication client in the NAS
+ performs service-specific re-authorization to the home Diameter AAA
+ server, as usual. The credit-control client populates the AAR with
+
+
+
+Bertz, et al. Standards Track [Page 112]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ the Credit-Control AVP set to RE_AUTHORIZATION, indicating that the
+ credit-control server shall not be contacted, as the credit
+ authorization is controlled by the burning rate of the granted units
+ (11). The home Diameter AAA server performs service-specific
+ re-authorization as usual and returns the AA-Answer to the NAS (12).
+ The end user logs off from the network (13). To debit the used units
+ from the end user's account and to stop the credit-control session,
+ the NAS sends a Diameter Credit-Control-Request with CC-Request-Type
+ set to TERMINATION_REQUEST to the home Diameter AAA server (14). The
+ home Diameter AAA server forwards the CCR to the credit-control
+ server (15). The Diameter Credit-Control server acknowledges the
+ session termination by sending a Diameter Credit-Control-Answer to
+ the home Diameter AAA server (16). The home Diameter AAA server
+ forwards the answer to the NAS (17). The STR/STA takes place between
+ the NAS and home Diameter AAA server, as usual (18), (19).
+
+A.2. Flow II
+
+ Figure 12 provides an example of Diameter Credit-Control for SIP
+ sessions. Although the flow focuses on illustrating the usage of
+ credit-control messages, the SIP signaling is inaccurate, and the
+ diagram is not by any means an attempt to define a service provider's
+ SIP network. However, for the sake of this example, some assumptions
+ are made below.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 113]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ SIP Proxy/Registrar AAA
+ A (CC Client) Server B CC Server
+ | (i) REGISTER | | | |
+ |------------->|(ii) | | |
+ | |------------->| | |
+ | |authentication & | |
+ | |authorization | | |
+ | |<-------------| | |
+ |(iii) 200 OK | | |
+ |<-------------| | |
+ : : : :
+ |(1) INVITE | :
+ |------------->|
+ | |(2) CCR (Initial, SIP-specific AVP) |
+ | |------------------------------------------->|
+ | |(3) CCA (Granted-Units) |
+ | |<-------------------------------------------|
+ | |(4) INVITE | |
+ | |---------------------------->| |
+ : : : :
+ | |(5) CCR (Update, Used-Units) |
+ | |------------------------------------------->|
+ | |(6) CCA (Granted-Units) |
+ | |<-------------------------------------------|
+ : : : :
+ |(7) BYE | | |
+ |------------->| | |
+ | |(8) BYE | |
+ | |---------------------------->| |
+ | |(9) CCR (Termination, Used-Units) |
+ | |------------------------------------------->|
+ | |(10) CCA () |
+ | |<-------------------------------------------|
+ | | | |
+
+ Figure 12: Flow II
+
+ Typically, prepaid services based, for example, on time usage for SIP
+ sessions require an entity in the service provider network to
+ intercept all the requests within the SIP dialog in order to detect
+ events, such as session establishment and session release, that are
+ essential for performing credit-control operations with the
+ credit-control server. Therefore, in this example, it is assumed
+ that the SIP Proxy adds a Record-Route header in the initial SIP
+ INVITE to make sure that all the future requests in the created
+ dialog traverse through it (for the definitions of "Record-Route" and
+ "dialog", please refer to [RFC3261]). Finally, the degree of
+
+
+
+
+Bertz, et al. Standards Track [Page 114]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ credit-control measuring of the media by the proxy depends on the
+ business model design used in setting up the end system and proxies
+ in the SIP network.
+
+ The end user (SIP User Agent A) sends a REGISTER with credentials
+ (i). The SIP Proxy sends a request to the home AAA server to perform
+ multimedia authentication and authorization by using, for instance, a
+ Diameter multimedia application (ii). The home AAA server checks
+ that the credentials are correct and checks the user profile.
+ Eventually, a 200 OK response (iii) is sent to the User Agent. Note
+ that the authentication and authorization are valid for the
+ registration validity period duration (i.e., until re-registration is
+ performed). Several SIP sessions may be established without
+ re-authorization.
+
+ User Agent A sends an INVITE (1). The SIP Proxy sends a Diameter
+ Credit-Control-Request (INITIAL_REQUEST) to the Diameter
+ Credit-Control server (2). The Credit-Control-Request contains
+ information obtained from the SIP signaling describing the requested
+ service (e.g., calling party, called party, Session Description
+ Protocol (SDP) attributes). The Diameter Credit-Control server
+ checks the end user's account balance, rates the service, and
+ reserves credit from the end user's account. The reserved quota is
+ returned to the SIP Proxy in the Diameter Credit-Control-Answer (3).
+ The SIP Proxy forwards the SIP INVITE to User Agent B (4). B's phone
+ rings, and B answers. The media flows between them, and the SIP
+ Proxy starts measuring the quota. At the expiry of the allocated
+ quota, the SIP Proxy sends a Diameter Credit-Control-Request
+ (UPDATE_REQUEST) to the Diameter Credit-Control server (5). This
+ message contains the units used thus far. The Diameter
+ Credit-Control server debits the used units from the end user's
+ account and allocates new credit that is returned to the SIP Proxy in
+ the Diameter Credit-Control-Answer (6). The end user terminates the
+ service by sending a BYE message (7). The SIP Proxy forwards the BYE
+ message to User Agent B (8) and sends a Diameter Credit-Control-
+ Request (TERMINATION_REQUEST) to the credit-control server (9). The
+ Diameter Credit-Control server acknowledges the session termination
+ by sending a Diameter Credit-Control-Answer to the SIP Proxy (10).
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 115]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+A.3. Flow III
+
+ A credit-control flow for Multimedia Messaging Service is shown in
+ Figure 13. The sender is charged as soon as the messaging server
+ successfully stores the message.
+
+ MMS Server
+ A (CC Client) B CC Server
+ |(1) Send MMS | | |
+ |--------------->| | |
+ | |(2) CCR (Event, DIRECT_DEBITING, |
+ | | MMS-specific AVP) |
+ | |-------------------------------->|
+ | |(3) CCA (Granted-Units) |
+ | |<--------------------------------|
+ |(4) Send MMS Ack| | |
+ |<---------------| | |
+ | |(5) Notify MMS | |
+ | |--------------->| |
+ : : : :
+ | |(6) Retrieve MMS| |
+ | |<---------------| |
+ | |(7) Retrieve MMS| |
+ | | Ack | |
+ | |--------------->| |
+ | | | |
+
+ Figure 13: Flow III
+
+ This is an example of Diameter Credit-Control for direct debiting
+ using the Multimedia Messaging Service environment. Although the
+ flow focuses on illustrating the usage of credit-control messages,
+ the MMS signaling is inaccurate, and the diagram is not by any means
+ an attempt to define a service provider's MMS configuration or
+ billing model.
+
+ End user A sends an MMS to the MMS server (1). The MMS server stores
+ the message and sends a Diameter Credit-Control-Request
+ (EVENT_REQUEST with Requested-Action set to DIRECT_DEBITING) to the
+ Diameter Credit-Control server (2). The Credit-Control-Request
+ contains information about the MMS message (e.g., size, recipient
+ address, image coding type). The Diameter Credit-Control server
+ checks the end user's account balance, rates the service, and debits
+ the service from the end user's account. The granted quota is
+ returned to the MMS server in the Diameter Credit-Control-Answer (3).
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 116]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The MMS server acknowledges the successful reception of the MMS
+ message (4). The MMS server notifies the recipient about the new MMS
+ (5), and end user B retrieves the message from the MMS message store
+ (6), (7).
+
+ Note that the transfer of the MMS message can take an extended period
+ of time and can fail, in which case a recovery action is needed. The
+ MMS server should return the already-debited units to the user's
+ account by using the REFUND action described in Section 6.4.
+
+A.4. Flow IV
+
+ Another credit-control flow for Multimedia Messaging Service is shown
+ in Figure 14. The recipient is charged at the time of message
+ delivery.
+
+ MMS Server
+ Content Server (CC Client) B CC Server
+ |(1) Send MMS | | |
+ |--------------->| | |
+ | |(2) CCR (Event, CHECK_BALANCE, |
+ | | MMS-specific AVP) |
+ | |-------------------------------->|
+ | |(3) CCA (ENOUGH_CREDIT) |
+ | |<--------------------------------|
+ |(4) Send MMS Ack| | |
+ |<---------------| | |
+ | |(5) Notify MMS | |
+ | |--------------->| |
+ : : : :
+ | |(6) Retrieve MMS| |
+ | |<---------------| |
+ | |(7) CCR (Event, DIRECT_DEBITING, |
+ | | MMS-specific AVP) |
+ | |-------------------------------->|
+ | |(8) CCA (Granted-Units) |
+ | |<--------------------------------|
+ | |(9) Retrieve MMS| |
+ | | Ack | |
+ | |--------------->| |
+ | | | |
+
+ Figure 14: Flow IV
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 117]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ This is an example of Diameter Credit-Control for direct debiting
+ using the Multimedia Messaging Service environment. Although the
+ flow focuses on illustrating the usage of credit-control messages,
+ the MMS signaling is inaccurate, and the diagram is not by any means
+ an attempt to define a service provider's MMS configuration or
+ billing model.
+
+ A content server sends an MMS to the MMS server (1), which stores the
+ message. The message recipient will be charged for the MMS message
+ in this case. As there can be a substantially long time between the
+ receipt of the message at the MMS server and the actual retrieval of
+ the message, the MMS server does not establish any credit-control
+ sessions to the Diameter Credit-Control server; rather, it first
+ performs only a balance check (without any credit reservations) by
+ sending a Diameter Credit-Control-Request (EVENT_REQUEST with
+ Requested-Action set to CHECK_BALANCE) to verify that end user B can
+ cover the cost for the MMS (2). The Diameter Credit-Control server
+ checks the end user's account balance and returns the answer to the
+ MMS server in the Diameter Credit-Control-Answer (3). The MMS server
+ acknowledges the successful reception of the MMS message (4). The
+ MMS server notifies the recipient of the new MMS (5), and after some
+ time end user B retrieves the message from the MMS message store (6).
+ The MMS server sends a Diameter Credit-Control-Request (EVENT_REQUEST
+ with Requested-Action set to DIRECT_DEBITING) to the Diameter
+ Credit-Control server (7). The Credit-Control-Request contains
+ information about the MMS message (e.g., size, recipient address,
+ coding type). The Diameter Credit-Control server checks the
+ end user's account balance, rates the service, and debits the service
+ from the end user's account. The granted quota is returned to the
+ MMS server in the Diameter Credit-Control-Answer (8). The MMS is
+ transferred to end user B (9).
+
+ Note that the transfer of the MMS message can take an extended period
+ of time and can fail, in which case a recovery action is needed. The
+ MMS server should return the already-debited units to the user's
+ account by using the REFUND action described in Section 6.4.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 118]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+A.5. Flow V
+
+ Figure 15 provides an example of an Advice of Charge (AoC) service
+ for a SIP call.
+
+ SIP Controller
+ User Agent A (CC Client) User Agent B CC Server
+ |(1)INVITE | | |
+ | User Agent B(SDP)| | |
+ |------------------>| | |
+ | |(2)CCR (Event, PRICE_ENQUIRY, |
+ | | SIP-specific AVPs) |
+ | |------------------------------->|
+ | |(3)CCA (Cost-Information) |
+ | |<-------------------------------|
+ |(4)MESSAGE(URL) | | |
+ |<------------------| | |
+ |(5)HTTP GET | | |
+ |------------------>| | |
+ |(6)HTTP POST | | |
+ |------------------>|(7)INVITE(SDP) | |
+ | |--------------->| |
+ | | (8)200 OK | |
+ | (9)200 OK |<---------------| |
+ |<------------------| | |
+
+ Figure 15: Flow V
+
+ This is an example of Diameter Credit-Control for SIP sessions.
+ Although the flow focuses on illustrating the usage of credit-control
+ messages, the SIP signaling is inaccurate, and the diagram is not by
+ any means an attempt to define a service provider's SIP network.
+
+ User Agent A can be either a postpaid or prepaid subscriber using the
+ AoC service. It is assumed that the SIP controller also has HTTP
+ capabilities and delivers an interactive AoC web page with, for
+ instance, the cost information, the details of the call derived from
+ the SDP, and a button to accept/not accept the charges. (There may
+ be many other ways to deliver AoC information; however, this flow
+ focuses on the use of the credit-control messages.) The user has
+ been authenticated and authorized prior to initiating the call and
+ has been subscribed to the AoC service.
+
+ User Agent A sends an INVITE with the SDP to User Agent B via the SIP
+ controller (1). The SIP controller determines that the user is
+ subscribed to an AoC service and sends a Diameter Credit-Control-
+ Request (EVENT_REQUEST with Requested-Action set to PRICE_ENQUIRY) to
+ the Diameter Credit-Control server (2). The Credit-Control-Request
+
+
+
+Bertz, et al. Standards Track [Page 119]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ contains SIP-specific AVPs derived from the SIP signaling, describing
+ the requested service (e.g., calling party, called party, SDP
+ attributes). The Diameter Credit-Control server determines the cost
+ of the service and returns the Credit-Control-Answer, including the
+ Cost-Information AVP (3). The SIP controller manufactures the AoC
+ web page with information received in SIP signaling and with the cost
+ information received from the credit-control server. It then sends a
+ SIP MESSAGE that contains a URL pointing to the AoC information web
+ page (4). Upon receipt of the SIP MESSAGE, User Agent A
+ automatically invokes the web browser that retrieves the AoC
+ information (5). The user clicks on the appropriate button to accept
+ the charges (6). The SIP controller continues the session and sends
+ the INVITE to User Agent B, which accepts the call (7), (8), (9).
+
+A.6. Flow VI
+
+ Figure 16 illustrates a credit-control flow for the REFUND case. It
+ is assumed that there is a trusted relationship and secure connection
+ between the gaming server and the Diameter Credit-Control server.
+ The end user may be a prepaid subscriber or a postpaid subscriber.
+
+ Gaming Server
+ End User (CC Client) CC Server
+ | (1)Service Delivery | |
+ |<---------------------->| |
+ : : :
+ : : :
+ | |(2)CCR(Event, REFUND,Requested-
+ | |Service-Unit, Service-Parameter-Info)
+ | |----------------------->|
+ | | (3)CCA(Cost-Information)
+ | |<-----------------------|
+ | (4)Notification | |
+ |<-----------------------| |
+
+ Figure 16: Flow VI
+
+ While the end user is playing the game (1), they enter a new level
+ that entitles them to a bonus. The gaming server sends a Diameter
+ Credit-Control-Request (EVENT_REQUEST with Requested-Action set to
+ REFUND_ACCOUNT) to the Diameter Credit-Control server (2). The
+ Credit-Control-Request contains the Requested-Service-Unit AVP with
+ the CC-Service-Specific-Units containing the number of points the
+ user just won. The Service-Parameter-Info AVP is also included in
+ the request and specifies the service event to be rated (e.g., Tetris
+ Bonus). From information received, the Diameter Credit-Control
+ server determines the amount to be credited, refunds the user's
+ account, and returns the Credit-Control-Answer, including the
+
+
+
+Bertz, et al. Standards Track [Page 120]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Cost-Information AVP (3). The Cost-Information AVP indicates the
+ credited amount. At the first opportunity, the gaming server
+ notifies the end user of the credited amount (4).
+
+A.7. Flow VII
+
+ Figure 17 provides an example of graceful service termination for a
+ SIP call. It is assumed that the call is set up so that the
+ controller is in the call as a B2BUA (Back-to-Back User Agent)
+ performing third-party call control (3PCC). Note that the SIP
+ signaling is inaccurate, as the focus of this flow is on graceful
+ service termination and credit-control authorization. Best practices
+ for 3PCC are defined in [RFC3725].
+
+ SIP Controller Top-Up
+ User Agent A (CC Client) Server User Agent B CC Server
+ | | | | |
+ | | (1)CCR(Update, Used-Units) | |
+ | |------------------------------------------>|
+ | | (2)CCA(Final-Unit, Redirect)|
+ | |<------------------------------------------|
+ : : : : :
+ : : : : :
+ | | (3)CCR(Update, Used-Units)| |
+ | |------------------------------------------>|
+ | | (3a)INVITE("hold") | |
+ | |--------------------------->| |
+ | | | (4)CCA(Validity-Time)|
+ | |<------------------------------------------|
+ | (5)INVITE | (6)INVITE | | |
+ |<---------------|------------->| | |
+ | (7)RTP | | |
+ |...............................| | |
+ | | (8)BYE | | |
+ | |<-------------| | |
+ | | (9)CCR(Update) | |
+ | |------------------------------------------>|
+ | | (10)CCA(Granted-Units)|
+ | |<------------------------------------------|
+ | (12)INVITE | (11)INVITE | |
+ |<---------------|--------------------------->| |
+
+ Figure 17: Flow VII
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 121]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The call is ongoing between User Agents A and B; User Agent A has a
+ prepaid subscription. At the expiry of the allocated quota, the SIP
+ controller sends a Diameter Credit-Control-Request (UPDATE_REQUEST)
+ to the Diameter Credit-Control server (1). This message contains the
+ units used thus far. The Diameter Credit-Control server debits the
+ used units from the end user's account and allocates the final quota
+ returned to the SIP controller in the Diameter Credit-Control-Answer
+ (2). This message contains the Final-Unit-Indication AVP with
+ Final-Unit-Action set to REDIRECT, the Redirect-Address-Type set to
+ SIP URI, and the Redirect-Server-Address set to the top-up server
+ name (e.g., sip:sip-topup-server@domain.com). At the expiry of the
+ final allocated quota, the SIP controller sends a Diameter
+ Credit-Control-Request (UPDATE_REQUEST) to the Diameter
+ Credit-Control server (3) and places the called party on "hold" by
+ sending an INVITE with the appropriate connection address in the SDP
+ (3a). The Credit-Control-Request message contains the units used
+ thus far. The Diameter Credit-Control server debits the used units
+ from the end user's account but does not make any credit
+ reservations. The Credit-Control-Answer message, which contains the
+ Validity-Time to supervise the graceful service termination process,
+ is returned to the SIP controller (4). The SIP controller
+ establishes a SIP session between the prepaid user and the top-up
+ server (5), (6). The top-up server plays an announcement and prompts
+ the user to enter a credit card number and the amount of money to be
+ used to replenish the account (7). The top-up server validates the
+ credit card number, replenishes the user's account (using some means
+ outside the scope of this specification), and releases the SIP
+ session (8). The SIP controller can now assume that communication
+ between the prepaid user and the top-up server took place. It sends
+ a spontaneous Credit-Control-Request (UPDATE_REQUEST) to the Diameter
+ Credit-Control server to check whether the account has been
+ replenished (9). The Diameter Credit-Control server reserves credit
+ from the end user's account and returns the reserved quota to the SIP
+ controller in the Credit-Control-Answer (10). At this point, the SIP
+ controller reconnects the caller and the called party (11), (12).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 122]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+A.8. Flow VIII
+
+ Figure 18 provides an example of graceful service termination
+ initiated when the first interrogation takes place because the user's
+ account is empty. In this example, the credit-control server
+ supports the server-initiated credit re-authorization. The Diameter
+ protocol application is implemented in the NAS per [RFC7155].
+
+ NAS Top-Up CC
+ End User (CC Client) AAA Server Server Server
+ |(1)User Logon |(2)AA-Request (CC AVPs) | |
+ |------------------>|------------------->| | |
+ | | |(3)CCR(Initial, CC AVPs)
+ | | |------------------->|
+ | | |(4)CCA(Final-Unit, |
+ | | | Validity-Time)|
+ | | |<-------------------|
+ | |(5)AA-Answer(Final-Unit, Validity-Time) |
+ |(6)Limited access |<-------------------| | |
+ | granted | | | |
+ |<----------------->| | | |
+ | | | | |
+ | (7)TCP/HTTP | (8)TCP/HTTP | |
+ |<----------------->|<----------------------------->| |
+ | (9)Replenish account | |
+ |<------------------------------------------------->| |
+ | | | (10)RAR |
+ | |<-------------------|<-------------------|
+ | |(11)RAA | |
+ | |------------------->|------------------->|
+ | |(12)CCR(Update) | |
+ | |------------------->|(13)CCR(Update) |
+ | | |------------------->|
+ | | |(14)CCA(Granted-Units)
+ | |(15)CCA(Granted-Units)<------------------|
+ | |<-------------------| |
+
+ Figure 18: Flow VIII
+
+ The user logs on to the network (1). The Diameter NAS sends a
+ Diameter AA-Request (AAR) to the home Diameter AAA server (2). The
+ credit-control client populates the AAR with the Credit-Control AVP
+ set to CREDIT_AUTHORIZATION, and service-specific AVPs are included,
+ as usual [RFC7155]. The home Diameter AAA server performs service-
+ specific authentication and authorization, as usual. The home
+ Diameter AAA server determines that the user has a prepaid
+ subscription and notices from the Credit-Control AVP that the NAS has
+ credit-control capabilities. It sends a Diameter Credit-Control-
+
+
+
+Bertz, et al. Standards Track [Page 123]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Request with CC-Request-Type set to INITIAL_REQUEST to the Diameter
+ Credit-Control server to perform credit authorization (3) and to
+ establish a credit-control session. (The home Diameter AAA server
+ may forward service-specific AVPs received from the NAS as input for
+ the rating process.) The Diameter Credit-Control server checks the
+ end user's account balance, determines that the account cannot cover
+ the cost of the service, and initiates graceful service termination.
+ The Credit-Control-Answer is returned to the home Diameter AAA server
+ (4). This message contains the Final-Unit-Indication AVP and the
+ Validity-Time AVP set to a reasonable amount of time, to give the
+ user a chance to replenish their account (e.g., 10 minutes). The
+ Final-Unit-Indication AVP includes the Final-Unit-Action set to
+ REDIRECT, the Redirect-Address-Type set to URL, and the Redirect-
+ Server-Address set to the HTTP top-up server name. The home Diameter
+ AAA server sends the received Credit-Control AVPs to the NAS in the
+ Diameter AA-Answer (5). Upon successful AAA, the NAS starts the
+ credit-control session and immediately starts graceful service
+ termination, as instructed by the server. The NAS grants limited
+ access to the user (6). The HTTP client software running in the
+ user's device opens the transport connection redirected by the NAS to
+ the top-up server (7), (8). An appropriate web page is provided for
+ the user where the user can enter the credit card number and the
+ amount of money to be used to replenish the account, along with a
+ notification message that they are granted unlimited access if the
+ replenishment operation will be successfully executed within, for
+ example, the next 10 minutes. The top-up server validates the credit
+ card number and replenishes the user's account (using some means
+ outside the scope of this specification) (9). After successful
+ account top-up, the credit-control server sends a Re-Auth-Request
+ message to the NAS (10). The NAS acknowledges the request by
+ returning the Re-Auth-Answer message (11) and initiates the credit
+ re-authorization by sending a Credit-Control-Request (UPDATE_REQUEST)
+ to the Diameter Credit-Control server (12), (13).
+
+ The Diameter Credit-Control server reserves credit from the
+ end user's account and returns the reserved quota to the NAS via the
+ home Diameter AAA server in the Credit-Control-Answer (14), (15).
+ The NAS removes the restriction applied by graceful service
+ termination and starts monitoring the granted units.
+
+A.9. Flow IX
+
+ The Diameter Credit-Control application defines the Multiple-
+ Services-Credit-Control AVP, which can be used to support independent
+ credit-control of multiple services in a single credit-control
+ (sub-)session for Service Elements that have such capabilities. It
+ is possible to request and allocate resources as a credit pool that
+ is shared between services or rating-groups.
+
+
+
+Bertz, et al. Standards Track [Page 124]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ Figure 19 illustrates a usage scenario where the credit-control
+ client and server support independent credit-control of multiple
+ services, as defined in Section 5.1.2. It is assumed that service-
+ identifiers, rating-groups, and their associated parameters (e.g., IP
+ 5-tuples) are locally configured in the Service Element or
+ provisioned by an entity other than the credit-control server.
+
+ End User Service Element CC Server
+ (CC Client)
+ |(1)User logon | |
+ |------------------>|(2)CCR(Initial, Service-Id access, |
+ | | Access-specific AVPs, |
+ | | Multiple-Services-Indicator) |
+ | |------------------------------------------->|
+ | |(3)CCA(Multiple-Services-CC ( |
+ | | Granted-Units(Total-Octets), |
+ | | Service-Id access, |
+ | | Validity-Time, |
+ | | G-S-U-Pool-Reference(Pool-Id 1, |
+ | | Multiplier 10))) |
+ | |<-------------------------------------------|
+ : : :
+ |(4)Service-Request (Service 1) |
+ |------------------>|(5)CCR(Update, Multiple-Services-CC ( |
+ | | Requested-Units(), Service-Id 1, |
+ | | Rating-Group 1)) |
+ | |------------------------------------------->|
+ | |(6)CCA(Multiple-Services-CC ( |
+ | | Granted-Units(Time), |
+ | | Rating-Group 1, |
+ | | G-S-U-Pool-Reference(Pool-Id 1, |
+ | | Multiplier 1))) |
+ | |<-------------------------------------------|
+ : : :
+ |(7)Service-Request (Service 2) |
+ |------------------>| |
+ : : :
+ : : :
+ |(8)Service-Request (Services 3 & 4) |
+ |------------------>|(9)CCR(Update, Multiple-Services-CC ( |
+ | | Requested-Units(), Service-Id 3, |
+ | | Rating-Group 2), |
+ | | Multiple-Services-CC ( |
+ | | Requested-Units(), Service-Id 4, |
+ | | Rating-Group 3)) |
+ | |------------------------------------------->|
+
+
+
+
+
+Bertz, et al. Standards Track [Page 125]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ | |(10)CCA(Multiple-Services-CC ( |
+ | | Granted-Units(Total-Octets), |
+ | | Service-Id 3, Rating-Group 2, |
+ | | Validity-Time, |
+ | | G-S-U-Pool-Reference(Pool-Id 2, |
+ | | Multiplier 2)), |
+ | | Multiple-Services-CC ( |
+ | | Granted-Units(Total-Octets), |
+ | | Service-Id 4, Rating-Group 3 |
+ | | Validity-Time, |
+ | | Final-Unit-Ind.(Terminate), |
+ | | G-S-U-Pool-Reference(Pool-Id 2, |
+ | | Multiplier 5))) |
+ | |<-------------------------------------------|
+ : : :
+ : : :
+ | +--------------+ | |
+ | |Validity time | |(11)CCR(Update, |
+ | |expires for | | Multiple-Services-CC ( |
+ | |Service-Id | | Requested-Unit(), |
+ | | access | | Used-Units(In-Octets, Out-Octets), |
+ | +--------------+ | Service-Id access)) |
+ | |------------------------------------------->|
+ | |(12)CCA(Multiple-Services-CC ( |
+ | | Granted-Units(Total-Octets), |
+ | | Service-Id access, |
+ | | Validity-Time, |
+ | | G-S-U-Pool-Reference(Pool-Id 1, |
+ | | Multiplier 10))) |
+ | |<-------------------------------------------|
+ : : :
+ : : :
+ | +--------------+ | |
+ | |Total quota | |(13)CCR(Update, |
+ | |elapses for | | Multiple-Services-CC ( |
+ | |Pool 2: | | Requested-Unit(), |
+ | |Service 4 not | | Used-Units(In-Octets, Out-Octets),|
+ | |allowed, | | Service-Id 3, Rating-Group 2), |
+ | |Service 3 | | Multiple-Services-CC ( |
+ | |continues | | Used-Units(In-Octets, Out-Octets),|
+ | +--------------+ | Service-Id 4, Rating-Group 3)) |
+ | |------------------------------------------->|
+ | |(14)CCA(Multiple-Services-CC ( |
+ | | Result-Code 4011, |
+ | | Service-Id 3)) |
+ | |<-------------------------------------------|
+ : : :
+ : : :
+
+
+
+Bertz, et al. Standards Track [Page 126]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ |(15)User logoff | |
+ |------------------>|(16)CCR(Term., |
+ | | Multiple-Services-CC ( |
+ | | Used-Units(In-Octets, Out-Octets),|
+ | | Service-Id access), |
+ | | Multiple-Services-CC ( |
+ | | Used-Units(Time), |
+ | | Service-Id 1, Rating-Group 1), |
+ | | Multiple-Services-CC ( |
+ | | Used-Units(Time), |
+ | | Service-Id 2, Rating-Group 1)) |
+ | |------------------------------------------->|
+ | |(17)CCA(Term.) |
+ | |<-------------------------------------------|
+
+ Figure 19: Flow IX: Example of Independent Credit-Control of
+ Multiple Services in a Credit-Control (Sub-)Session
+
+ The user logs on to the network (1). The Service Element sends a
+ Diameter Credit-Control-Request with CC-Request-Type set to
+ INITIAL_REQUEST to the Diameter Credit-Control server to perform
+ credit authorization for the bearer service (e.g., Internet access
+ service) and to establish a credit-control session (2). In this
+ message, the credit-control client indicates support for independent
+ credit-control of multiple services within the session by including
+ the Multiple-Services-Indicator AVP. The Diameter Credit-Control
+ server checks the end user's account balance, with rating information
+ received from the client (i.e., Service-Id and access-specific AVPs);
+ rates the request; and reserves credit from the end user's account.
+ Suppose that the server reserves $5 and determines that the cost is
+ $1/MB. It then returns to the Service Element a Credit-Control-
+ Answer message that includes the Multiple-Services-Credit-Control AVP
+ with a quota of 5 MB associated to the Service-Id (access), to a
+ multiplier value of 10, and to Pool-Id 1 (3).
+
+ The user uses service 1 (4). The Service Element sends a Diameter
+ Credit-Control-Request with CC-Request-Type set to UPDATE_REQUEST to
+ the credit-control server to perform credit authorization for
+ service 1 (5). This message includes the Multiple-Services-Credit-
+ Control AVP to request service units for service 1 that belong to
+ Rating-Group 1. The Diameter Credit-Control server determines that
+ service 1 draws credit resources from the same account as the access
+ service (i.e., pool 1). It rates the request according to
+ Service-Id/rating-group and updates the existing reservation by
+ requesting more credit. Suppose that the server reserves $5 more
+ (now the reservation is $10) and determines that the cost is
+ $0.1/minute. The server authorizes the whole rating-group. It then
+ returns to the Service Element a Credit-Control-Answer message that
+
+
+
+Bertz, et al. Standards Track [Page 127]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ includes the Multiple-Services-Credit-Control AVP with a quota of
+ 50 minutes associated to Rating-Group 1, to a multiplier value of 1,
+ and to Pool-Id 1 (6). The client adjusts the total amount of
+ resources for pool 1 according to the received quota, which gives S
+ for pool 1 = 100.
+
+ The user uses service 2, which belongs to the authorized rating-group
+ (Rating-Group 1) (7). Resources are then consumed from pool 1.
+
+ The user now requests services 3 and 4 as well, which are not
+ authorized (8). The Service Element sends a Diameter Credit-Control-
+ Request with CC-Request-Type set to UPDATE_REQUEST to the
+ credit-control server in order to perform credit authorization for
+ services 3 and 4 (9). This message includes two instances of the
+ Multiple-Services-Credit-Control AVP to request service units for
+ service 3 that belong to Rating-Group 2 and service units for
+ service 4 that belong to Rating-Group 3. The Diameter Credit-Control
+ server determines that services 3 and 4 draw credit resources from
+ another account (i.e., pool 2). It checks the end user's account
+ balance and, according to Service-Id/rating-group information, rates
+ the request. It then reserves credit from pool 2.
+
+ For example, the server reserves $5 and determines that service 3
+ costs $0.2/MB and service 4 costs $0.5/MB. The server authorizes
+ only services 3 and 4. It returns to the Service Element a
+ Credit-Control-Answer message that includes two instances of the
+ Multiple-Services-Credit-Control AVP (10). One instance grants a
+ quota of 12.5 MB associated to Service-Id 3 to a multiplier value
+ of 2 and to Pool-Id 2. The other instance grants a quota of 5 MB
+ associated to Service-Id 4 to a multiplier value of 5 and to
+ Pool-Id 2.
+
+ The server also determines that pool 2 is exhausted and service 4 is
+ not allowed to continue after these units will be consumed.
+ Therefore, the Final-Unit-Indication AVP with action TERMINATE is
+ associated to Service-Id 4. The client calculates the total amount
+ of resources that can be used for pool 2 according to the received
+ quotas and multipliers, which gives S for pool 2 = 50.
+
+ The Validity-Time for the access service expires. The Service
+ Element sends a Credit-Control-Request message to the server in order
+ to perform credit re-authorization for the Service-Id (access) (11).
+ This message carries one instance of the Multiple-Services-Credit-
+ Control AVP that includes the units used by this service. Suppose
+ that the total amount of used units is 4 MB. The client adjusts the
+ total amount of resources for pool 1 accordingly, which gives S for
+ pool 1 = 60.
+
+
+
+
+Bertz, et al. Standards Track [Page 128]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+ The server deducts $4 from the user's account and updates the
+ reservation by requesting more credit. Suppose that the server
+ reserves $5 more (now the reservation is $11) and already knows the
+ cost of the Service-Id (access), which is $1/MB. It then returns to
+ the Service Element a Credit-Control-Answer message that includes the
+ Multiple-Services-Credit-Control AVP with a quota of 5 MB associated
+ to the Service-Id (access), to a multiplier value of 10, and to
+ Pool-Id 1 (12). The client adjusts the total amount of resources for
+ pool 1 according to the received quota, which gives S for
+ pool 1 = 110.
+
+ Services 3 and 4 consume the total amount of pool 2's credit
+ resources (i.e., C1*2 + C2*5 >= S). The Service Element immediately
+ starts the TERMINATE action for service 4 and sends a Credit-Control-
+ Request message with CC-Request-Type set to UPDATE_REQUEST to the
+ credit-control server in order to perform credit re-authorization for
+ service 3 (13). This message contains two instances of the Multiple-
+ Services-Credit-Control AVP to report the units used by services 3
+ and 4. The server deducts the last $5 from the user's account
+ (pool 2) and returns the answer with Result-Code 4011 in the
+ Multiple-Services-Credit-Control AVP to indicate that service 3 can
+ continue without credit-control (14).
+
+ The end user logs off from the network (15). To debit the used units
+ from the end user's account and to stop the credit-control session,
+ the Service Element sends a Diameter Credit-Control-Request with
+ CC-Request-Type set to TERMINATION_REQUEST to the credit-control
+ server (16). This message contains the units used by each service in
+ multiple instances of the Multiple-Services-Credit-Control AVP. The
+ used units are associated with the relevant Service-Identifier and
+ rating-group. The Diameter Credit-Control server debits the used
+ units to the user's account (pool 1) and acknowledges the session
+ termination by sending a Diameter Credit-Control-Answer to the
+ Service Element (17).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 129]
+
+RFC 8506 Diameter Credit-Control Application March 2019
+
+
+Acknowledgements
+
+ The original authors of RFC 4006 are Harri Hakala, Leena Mattila,
+ Juha-Pekka Koskinen, Marco Stura, and John Loughney.
+
+ The authors would like to thank Bernard Aboba, Jari Arkko, Robert
+ Ekblad, Pasi Eronen, Benny Gustafsson, Robert Karlsson, Avi Lior,
+ Jussi Maki, Paco Marin, Jeff Meyer, Anne Narhi, John Prudhoe,
+ Christopher Richards, Juha Vallinen, and Mark Watson for their
+ comments and suggestions.
+
+Authors' Addresses
+
+ Lyle Bertz (editor)
+ Sprint
+ 6220 Sprint Parkway
+ Overland Park, KS 66251
+ United States of America
+
+ Email: lyleb551144@gmail.com
+
+
+ David Dolson (editor)
+ Sandvine
+ 408 Albert Street
+ Waterloo, ON N2L 3V3
+ Canada
+
+ Email: ddolson@acm.org
+
+
+ Yuval Lifshitz (editor)
+ Sandvine
+ 408 Albert Street
+ Waterloo, ON N2L 3V3
+ Canada
+
+ Email: yuvalif@yahoo.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bertz, et al. Standards Track [Page 130]
+