Version

Diameter Credit-Control AVPs

Diameter Credit-Control Application (application id: 4)

The Diameter Credit-Control Application provides a framework for implementing real-time credit control in various telecommunication services. This application is essential in environments where services are delivered to end users based on prepaid accounts or where real-time cost and credit management are required. The key functionality of the Diameter Credit-Control Application is to ensure that the user’s account has sufficient funds to cover the cost of services before they are initiated and to manage ongoing service costs in real time.

The primary purpose of the Diameter Credit-Control Application is to manage credit authorization and accounting in real-time. This ensures that services, such as network access, SIP-based services, and messaging, are only provided if the user has the necessary prepaid balance. The application is designed to work across different service environments, ensuring that credit authorization is handled consistently and efficiently.
The application interacts with the service element (such as a Network Access Server or SIP Proxy) and a Credit-Control Server (CCS) to facilitate the exchange of credit information. This exchange allows for the authorization, reservation, and deduction of credit from the user's account, ensuring that services are only provided when they are financially covered.

The architecture of the Diameter Credit-Control Application consists of the following components:

  • Service Element (SE): The Service Element can be any network device or application server that provides a service to the end user. It acts as the client in the credit-control process, communicating with the Credit-Control Server.
  • Credit-Control Server (CCS): The CCS is responsible for managing the credit control process, including credit authorization, reservation, and accounting. It ensures that the user's account balance is sufficient to cover the cost of the requested service.
  • AAA Infrastructure: The Authentication, Authorization, and Accounting (AAA) infrastructure supports the credit-control process by ensuring that users are authenticated and authorized before services are delivered.
  • Credit-Control Client (CCC): Integrated into the Service Element, the CCC is responsible for sending requests to and receiving responses from the CCS regarding the user's credit status.
  • Business Support System (BSS): The BSS is typically part of the Credit-Control Server and handles billing and account management functionalities. It records transactions and ensures accurate billing for services provided.

Interface workflow:

  • Service Request: When an end user requests a service (e.g., network access, SIP call), the Service Element sends a Credit-Control Request (CCR) message to the Credit-Control Server. This message includes details about the requested service and the user's account.
  • Credit Authorization: Upon receiving the CCR, the Credit-Control Server evaluates the user’s account balance to determine if sufficient funds are available. The server may reserve a portion of the user's credit for the service.
  • Credit-Control Answer (CCA): If the user's account balance is adequate, the Credit-Control Server sends a Credit-Control Answer (CCA) message back to the Service Element, authorizing the service. If the balance is insufficient, the CCA may deny the service or instruct the Service Element to provide limited access.
  • Service Delivery: Once authorized, the Service Element begins delivering the service to the user. Throughout the service, the Service Element monitors usage and may communicate with the Credit-Control Server for further authorization if additional resources are needed.
  • Service Termination: When the service is completed or the user's credit is exhausted, the Service Element informs the Credit-Control Server, which deducts the final amount from the user's account and closes the session.
  • Session Management: In session-based credit control, the session is maintained throughout the service duration, with both the Service Element and the Credit-Control Server responsible for tracking session state.

Key Features:

  • Money Reservation: The application supports the reservation of a specific amount of money in the user's account before service initiation, ensuring that funds are available to cover the service.
  • Direct Debiting: The application allows for immediate deduction of the user's account balance upon service initiation.
  • Session and Event-Based Charging: The application can handle both session-based and one-time event charges, making it versatile for different service types.
  • Flexible Failure Handling: The application defines mechanisms for handling failures in communication between the Service Element and Credit-Control Server, allowing service providers to manage risks and ensure service continuity.
  • Multi-Service Environment: The application supports multiple simultaneous service requests from the same user, ensuring that each service is authorized and billed independently.

For complete technical specification of Diameter Credit-Control Application please refer to: [RFC 8506], [RFC 4006]

Diameter Credit-Control AVPs

package com.mobius.software.telco.protocols.diameter.primitives.creditcontrol

  Name

AVP Code

Data Type

Vendor

CC-Correlation-Id

411

OctetString

 

Used to correlate Credit-Control Requests (CCRs) that are generated for different components of a service, such as transport and service levels. This AVP ensures that multiple related CCRs can be associated with the same overarching service context. The entity that allocates the Service-Context-Id (a unique identifier for a service-specific document) also defines the content and encoding of the CC-Correlation-Id AVP.

CC-Input-Octets

412

Unsigned64

 

Specifies the number of octets (bytes) received from the end user. This AVP is typically used in Credit-Control Requests (CCRs) to account for data usage.

CC-Money

413

Grouped

 

Used to specify a monetary amount associated with a given currency. It allows for precise billing and charging operations by representing the amount and currency together. The AVP structure is defined as follows:

Unit-Value: Specifies the monetary amount.

Currency-Code (optional): Identifies the currency using standard ISO 4217 numeric codes.

CC-Output-Octets

414

Unsigned64

 

Represents the number of octets (bytes) that have been sent to the end user as part of a session. It is typically used in Diameter credit-control applications to track usage or allocate resources for data transmission.

CC-Request-Number

415

Unsigned32

 

Uniquely identifies each Credit-Control Request (CCR) within a session.

Facilitates the correlation of CCR messages with their respective answers (CCA).

Initial Request: Set to 0 when the CC-Request-Type AVP is INITIAL_REQUEST.

Update Requests: Incremented sequentially for each UPDATE_REQUEST during the session.

Termination Request: Set to one greater than the last UPDATE_REQUEST.

Event Charging: Set to 0 when the CC-Request-Type AVP is EVENT_REQUEST.

The CC-Request-Number AVP retains its uniqueness throughout the lifecycle of the session.

CC-Request-Type

416

Enumerated

 

Specifies the purpose or reason for sending a Credit-Control-Request (CCR) message. This AVP is mandatory in all CCR messages and defines the type of request being made within the credit-control session lifecycle. Values:

1 INITIAL_REQUEST: Used to initiate a credit-control session. Contains information relevant to session initiation.

2 UPDATE_REQUEST: Sent during an active session to request re-authorization or when additional service-specific events occur (e.g., quota expiry or validity time expiration).

3 TERMINATION_REQUEST: Sent to terminate a credit-control session, carrying information relevant to the session termination.

4 EVENT_REQUEST: Used for one-time events where maintaining a session state in the credit-control server is unnecessary. Requires the Requested-Action AVP to detail the reason.

CC-Service-Specific-Units

417

Unsigned64

 

Specifies the number of service-specific units allocated, granted, or consumed for a specific service. These units are tied to a particular service identified either by the Service-Identifier AVP or the Rating-Group AVP (when used within the Multiple-Services-Credit-Control AVP). The service-specific units can represent abstract quantities such as events, points, or other non-time or non-volume-related metrics.

CC-Session-Failover

418

Enumerated

 

Indicates whether a credit-control message stream can be moved to a backup server during an ongoing credit-control session in case of a communication failure. It is primarily used in scenarios where fault tolerance and high availability are essential, allowing systems to reroute messages to a backup server seamlessly. Values:

0 FAILOVER_NOT_SUPPORTED: The credit-control message stream MUST NOT be moved to an alternative destination in case of failure. This is the default behavior.

1 FAILOVER_SUPPORTED: The credit-control message stream SHOULD be moved to a backup server if a communication failure occurs. This may require transferring session-related data.

CC-Sub-Session-Id

419

Unsigned64

 

Identifies a unique credit-control sub-session within a given session. It ensures that each sub-session under a Session-Id is uniquely identifiable, enabling detailed session tracking and management. The absence of this AVP indicates that no sub-sessions are in use for the session.

CC-Time

420

Unsigned32

 

Specifies the duration of the requested, granted, or consumed service time in seconds during a credit-control session. It provides a mechanism for time-based service tracking and management, enabling accurate quota allocation and billing.

CC-Total-Octets

421

Unsigned64

 

Tracks the total amount of data, in octets, requested, granted, or consumed during a credit-control session. It aggregates the data usage in both directions (sent and received), providing a holistic view of data consumption for session-based or event-based services.

CC-Unit-Type

454

Enumerated

 

Identifies the type of units pooled into a credit pool during a credit-control session. It allows the Diameter credit-control server and client to specify the nature of the units being tracked, such as time, monetary value, or data consumption. Values:

0 TIME: Specifies that the unit type is time, typically measured in seconds.

1 MONEY: Specifies that the unit type is monetary, representing currency-based billing.

2 TOTAL-OCTETS: Specifies that the unit type is total data octets, including both sent and received.

3 INPUT-OCTETS: Specifies that the unit type is input data (received octets).

4 OUTPUT-OCTETS: Specifies that the unit type is output data (sent octets).

5 SERVICE-SPECIFIC-UNITS: Specifies that the unit type is service-specific, representing custom-defined units for the service.

Check-Balance-Result

422

Enumerated

 

Conveys the outcome of a balance check operation during a credit-control session. It is used when the Requested-Action AVP in the Credit-Control-Request (CCR) message specifies CHECK_BALANCE. The AVP indicates whether the user's account has sufficient credit to cover the requested service. Values:

0 ENOUGH_CREDIT: The account has sufficient credit to fulfill the request.

1 NO_CREDIT: The account lacks sufficient credit to fulfill the request.

Cost-Information

423

Grouped

 

Used to convey service cost information to the credit-control client, enabling it to present this data to the end user. The AVP provides the estimated cost of the service, accumulated cost during a session, or total cost for event-based requests, depending on the context. The cost is described in terms of monetary value, currency, and optionally, the unit of cost. The AVP structure is defined as follows:

Unit-Value: Specifies the monetary value associated with the service.

Currency-Code: Indicates the currency of the cost, using ISO 4217 numeric codes.

Cost-Unit: Optionally specifies the unit of cost (e.g., "$ per minute").

Cost-Unit

424

UTF8String

 

Provides a human-readable string describing the unit associated with the cost of a service. This AVP is used in conjunction with the Cost-Information AVP to specify the cost per unit for a service. Examples of units include minutes, hours, days, kilobytes, or megabytes.

Credit-Control

426

Enumerated

 

Used in AA-Request (Authentication and Authorization Request) messages to indicate whether credit-control capabilities are being utilized for the session. It specifies the type of authorization being requested and informs whether the credit-control server should be contacted. Values:

0 CREDIT_AUTHORIZATION: Indicates the initial credit authorization. The credit-control server MUST be contacted to initiate a session.

1 RE_AUTHORIZATION: Indicates an ongoing credit-control session where re-authorization is required. The credit-control server MUST NOT be contacted.

Credit-Control-Failure-Handling (CCFH)

427

Enumerated

 

Used by the credit-control client to decide on the course of action when communication with the credit-control server fails (e.g., due to network problems). This AVP allows the credit-control server to specify whether the service should be terminated, continued, or retried with failover mechanisms. Values:

0 TERMINATE: Service MUST be terminated if communication with the credit-control server fails and no response is received. This is the default behavior if the AVP is absent.

1 CONTINUE: Service SHOULD be continued even if communication with the credit-control server fails, provided a failover procedure is not supported or an alternative server is unavailable. Otherwise, the client SHOULD resend the request to an alternative server.

2 RETRY_AND_TERMINATE: The client SHOULD attempt failover to an alternative server. If failover is not successful, the service SHOULD NOT be granted.

Currency-Code

425

Unsigned32

 

Specifies the currency in which monetary values for related AVPs are provided. The currency is identified using the numeric code defined in the [ISO4217] standard. This AVP is typically used in conjunction with monetary-related AVPs, such as CC-Money, to indicate the applicable currency for charging and cost information.

Direct-Debiting-Failure-Handling (DDFH)

428

Enumerated

 

Specifies how a credit-control client should handle failures when attempting to send Credit-Control-Request messages (with the Requested-Action AVP set to DIRECT_DEBITING) to the credit-control server. This AVP is crucial for ensuring appropriate behavior when network issues or server unavailability prevents immediate communication. Values:

0 TERMINATE_OR_BUFFER: Service is maintained as long as the credit-control server is reachable. Failed requests are buffered and retried later.

1 CONTINUE: Service continues without debiting the user's account, and failed requests are not stored for retries.

Exponent

429

Unsigned32

 

Represents the exponent value used in conjunction with the Value-Digits AVP to calculate the final monetary or unit value within the Unit-Value AVP. Together, these AVPs define the magnitude and scale of a given value.

Final-Unit-Action

449

Enumerated

 

Specifies the action to be taken by the credit-control client when the user's account balance is insufficient to cover the service cost. This AVP provides control over how to handle sessions when financial constraints occur, enabling consistent behavior across credit-control implementations. Values:

TERMINATE (0): The session MUST be terminated by the credit-control client.

Default Handling: If the AVP contains an unsupported value, the service MUST default to terminating the session.

REDIRECT (1): The user is redirected to an alternate location specified by the Redirect-Server-Address AVP or a related AVP included in the Redirect-Server-Extension AVP. Typical Usage: Redirecting users to a payment page or a notification portal.

RESTRICT_ACCESS (2): The user's access is limited based on the filters defined in related AVPs such as:

Restriction-Filter-Rule: Defines IP packet filters.

Filter-Rule: Specifies packet classifier filters.

Filter-Id: Identifies pre-configured packet filters.

Packets not matching any of the specified filters MUST be dropped.

Final-Unit-Indication

430

Grouped

 

Used to indicate that the Granted-Service-Unit AVP in the response message contains the final service units for a session. After these units are consumed, the credit-control client must execute the action specified in the Final-Unit-Action AVP. This AVP ensures that appropriate action is taken when the user's service quota or account balance is exhausted. The AVP structure is defined as follows:

Final-Unit-Action: Indicates the action to be taken when the final units are consumed. Possible values:

TERMINATE (0): Ends the session.

REDIRECT (1): Redirects the user to a specific address.

RESTRICT_ACCESS (2): Restricts access according to defined rules.

Restriction-Filter-Rule: Defines IP packet filters for restricting traffic.

Filter-Id: References pre-defined filter lists installed on the access device.

Redirect-Server: Specifies the server address for redirection when Final-Unit-Action is set to REDIRECT.

Granted-Service-Unit

431

Grouped

 

Defines the number of service units allocated to the user for the current credit-control session. These units may represent time, volume, or service-specific units and dictate when the service should either be terminated or a new Credit-Control-Request (CCR) message must be sent. If unsupported unit types are included in the response, the client must terminate the session, citing DIAMETER_BAD_ANSWER in the Termination-Cause AVP. The AVP structure is defined as follows:

Tariff-Time-Change: Indicates when the current tariff period ends.

CC-Time: Specifies the granted time in seconds.

CC-Money: Defines the monetary amount allocated for the session.

CC-Total-Octets: Specifies the total data volume (both sent and received) in octets.

CC-Input-Octets: Indicates the allowed data volume received in octets.

CC-Output-Octets: Represents the allowed data volume sent in octets.

CC-Service-Specific-Units: Specifies service-specific units such as points or events.

Other: Reserved for additional extensions or custom implementations.

G-S-U-Pool-Identifier

453

Unsigned32

 

Identifies a specific Granted Service Unit (G-S-U) credit pool within a session. It allows multiple services or service components within a session to reference the same credit pool for resource allocation and management. This AVP facilitates efficient resource sharing and tracking across different components of a session by assigning a unique identifier to the credit pool being used.

G-S-U-Pool-Reference

457

Grouped

 

Provides the relationship between a Granted-Service-Unit AVP and a specific credit pool within a session. It specifies how a particular service or service type draws resources from the identified credit pool. The AVP structure is defined as follows:

G-S-U-Pool-Identifier: Identifies the specific credit pool.

CC-Unit-Type: Specifies the type of service unit for which credit is pooled (e.g., time, octets, money, or service-specific units).

Unit-Value: Specifies the multiplier to convert between the specific service units and the abstract units in the credit pool.

Multiple-Services-Credit-Control

456

Grouped

 

Enables independent credit-control for multiple services or service groups (rating groups). Each instance of this AVP carries information about credit allocation, usage, and service-specific attributes for one or more services or a single rating group. The AVP structure is defined as follows:
Granted-Service-Unit: Specifies the allocated quota for the service/rating group.

Requested-Service-Unit: Indicates the amount of service units requested by the client.

Used-Service-Unit: Reports the usage of service units.

Tariff-Change-Usage: Specifies quota usage before/after a tariff change.

Service-Identifier: Identifies a specific service.

Rating-Group: Represents a group of services with shared rating criteria.

G-S-U-Pool-Reference: Links GSUs to a specific credit pool.

Validity-Time: Indicates the validity period for granted quotas.

Result-Code: Specifies the result of the credit control operation.

Final-Unit-Indication: Manages actions for final service units.

QoS-Final-Unit-Indication: Indicates QoS-specific restrictions for final units.

Multiple-Services-Indicator

455

Enumerated

 

Indicates whether the Diameter Credit-Control client supports independent credit control for multiple services within a session or sub-session. This AVP determines the client's capability for managing multiple services independently, facilitating advanced credit control scenarios such as bundling and individual service monitoring. The absence of this AVP implies that independent credit control for multiple services is not supported. Values:

0 MULTIPLE_SERVICES_NOT_SUPPORTED: The client does not support independent credit control for multiple services.

1 MULTIPLE_SERVICES_SUPPORTED: The client supports independent credit control for multiple services.

QoS-Final-Unit-Indication

669

Grouped

 

Indicates that the Granted-Service-Unit AVP in a Credit-Control-Answer (CCA) or AA-Answer (AAA) message contains the final units for a service. Once these units are consumed or expired, the Diameter Credit-Control client must execute the action specified in the Final-Unit-Action AVP. This AVP is particularly useful in scenarios where quality-of-service (QoS) management is applied to the final stages of a session. The AVP structure is defined as follows:

Final-Unit-Action: Specifies the behavior when the final service units are consumed.

Filter-Rule: Defines traffic conditions or QoS rules for restricted traffic.

Filter-Id: References an IP filter list configured locally or by another entity.

Redirect-Server-Extension: Specifies redirection details for the session, such as target addresses.

Rating-Group

432

Unsigned32

 

Identifies a group of services that are subject to the same rating type. It is used in conjunction with the Service-Context-Id AVP to uniquely identify the rating context for a specific request. Services within the same rating group share common charging or rating characteristics.

Redirect-Address-IPAddress

666

Address

 

Specifies the IPv4 or IPv6 address of a redirect server. It is used when the user's account cannot cover the service cost, directing the user to a specific server for alternative handling or further instructions.

Redirect-Address-SIP-URI

668

UTF8String

 

Specifies the address of a redirect server in the form of a SIP Uniform Resource Identifier (URI). This AVP is used when the user's account cannot cover the service cost, redirecting the user to a server that utilizes the SIP protocol.

Redirect-Address-Type

433

Enumerated

 

Specifies the type of address provided in the Redirect-Server-Address AVP. This AVP indicates how the redirect address should be interpreted and processed by the Diameter Credit-Control client. Values:

IPv4 Address (0): The redirect address is provided in the IPv4 dotted-decimal format, as defined in [RFC791]. Example: 192.168.0.1

IPv6 Address (1): The redirect address is provided in the IPv6 textual representation, conforming to [RFC4291] and [RFC5952]. Example: 2001:db8::1

URL (2): The redirect address is provided as a Uniform Resource Locator (URL), as defined in [RFC3986]. Example: https://example.com

SIP URI (3): The redirect address is provided as a SIP Uniform Resource Identifier (URI), as defined in [RFC3261]. Example: sip:user@example.com

Redirect-Address-URL

667

UTF8String

 

Specifies the URL address of the redirect server to which the end user should be connected when their account cannot cover the cost of the requested service. The address must conform to the Uniform Resource Locator (URL) syntax as defined in [RFC3986]. This AVP is optional and may be present in messages where redirection is required.

Redirect-Server

434

Grouped

 

Provides the necessary address information of a redirect server (e.g., HTTP redirect server, SIP server) that the Diameter Credit-Control client should connect the user to when their account cannot cover the service cost. This AVP is mandatory when the Final-Unit-Action AVP is set to REDIRECT. The AVP structure is defined as follows:

Redirect-Address-Type: Specifies the type of the redirect server address (e.g., IPv4, IPv6, URL, or SIP URI).

Redirect-Server-Address: Contains the address of the redirect server, corresponding to the specified Redirect-Address-Type.

Redirect-Server-Address

435

UTF8String

 

Specifies the address of a redirect server (e.g., HTTP server, SIP server) that the end user should connect to when the account balance is insufficient to continue the service. This AVP is used in conjunction with the Redirect-Server AVP to define the redirection behavior.

Redirect-Server-Extension

665

Grouped

 

Provides additional address information about the redirect server, such as an IP address, URL, or SIP URI. This AVP is used when the Final-Unit-Action AVP is set to REDIRECT and is primarily included within the QoS-Final-Unit-Indication AVP. When the type of redirect server is specified in the Redirect-Address-Type AVP, the server may include the Redirect-Server AVP to ensure compatibility with older implementations that do not support this AVP. The AVP includes exactly one of the following:

  • Redirect-Address-IPAddress

  • Redirect-Address-URL

  • Redirect-Address-SIP-URI

Requested-Action

436

Enumerated

 

Specifies the action being requested in a Credit-Control-Request (CCR) command when the CC-Request-Type is set to EVENT_REQUEST. This AVP guides the behavior of the Credit-Control-Answer (CCA) command, depending on the action requested. Values:

DIRECT_DEBITING (0): Requests to deduct the user's account balance based on the service usage defined in the Requested-Service-Unit AVP or Service-Identifier AVP.

The Granted-Service-Unit AVP in the CCA contains the debited units.

REFUND_ACCOUNT (1): Requests to add to the user's account balance.

The Granted-Service-Unit AVP in the CCA specifies the refunded units.

CHECK_BALANCE (2): Requests a balance check without making any credit reservations or deductions from the account.

The Check-Balance-Result AVP in the CCA contains the balance-check result.

PRICE_ENQUIRY (3): Requests the price of a service without performing a balance check or making any credit reservations. The Cost-Information AVP in the CCA provides the price of the service.

Requested-Service-Unit

437

Grouped

 

Specifies the amount of service units requested by the Diameter Credit-Control client. These units can represent time, data volume, or service-specific units. This AVP enables flexible credit control by allowing clients to request resources in multiple unit types. If the Diameter server does not recognize or support certain unit types in this AVP, it treats the request as invalid. The AVP structure is defined as follows:

CC-Time: The requested time in seconds.

CC-Money: The requested monetary amount in the specified currency.

CC-Total-Octets: The total number of requested octets, regardless of direction.

CC-Input-Octets: The number of requested incoming octets.

CC-Output-Octets: The number of requested outgoing octets.

CC-Service-Specific-Units: The number of requested service-specific units (e.g., events, points).

Restriction-Filter-Rule

438

IPFilterRule

 

Specifies a set of IP filter rules that define services accessible to a user when no further service units are granted. This AVP is primarily used to enforce restrictions at the access device level. Any packets not matching these filters must be dropped. It is commonly included in Credit-Control-Answer (CCA) or AA-Answer (AAA) messages to ensure controlled access to limited or specific services.

Service-Context-Id

461

UTF8String

 

Unique identifier that specifies the Diameter Credit-Control service-specific document applicable to a given request. It is intended to ensure that the credit-control operation aligns with a particular service definition or standard. The identifier format adheres to the syntax:

"service-context" "@" "domain"

service-context: A token (string of characters and digits) representing the service context.

domain: The domain name of the entity assigning the identifier, which can be:

  • A standardization body (e.g., ietf.org, 3gpp.org).

  • A service provider (e.g., provider.example.com).

  • A vendor (e.g., vendor.example.com).

Service-Identifier

439

Unsigned32

 

Specifies the identifier of a particular service. It is used in conjunction with the Service-Context-Id AVP to uniquely identify a specific service within the Diameter Credit-Control application. This AVP is critical in scenarios where multiple services are being managed under a common context but need individual identification for billing, monitoring, or policy application. 

Service-Parameter-Info

440

Grouped

 

Provides service-specific information that is used for price calculation, rating, or other service-related parameters. The AVP structure is defined as follows:

Service-Parameter-Type: Defines the type of service parameter.

Service-Parameter-Value: Contains the value associated with the parameter type.

The specific structure and use of these AVPs are determined by the service context, external Diameter applications, or standards from other standardization bodies.

If a service request contains an unknown Service-Parameter-Type, the Answer message must include the error code DIAMETER_RATING_FAILED, with the failed Service-Parameter-Info AVP(s) enclosed in a Failed-AVP AVP.

Service-Parameter-Type

441

Unsigned32

 

Specifies the type of service-event-specific parameter associated with a Diameter session or transaction. This AVP pairs with the Service-Parameter-Value AVP to define and communicate a parameter and its associated value. The allocation of Service-Parameter-Type values is tied to the Service-Context-Id, ensuring that the parameter types are unique within the service-specific document or context they apply to.

Service-Parameter-Value

442

OctetString

 

Specifies the value corresponding to the Service-Parameter-Type AVP within a Diameter transaction or session. It allows for the representation of service-specific parameters in a flexible, binary-compatible format, enabling the transmission of information like service attributes or policy data. This AVP is used alongside the Service-Parameter-Type AVP to create a complete key-value pair for service-specific parameterization.

Subscription-Id

443

Grouped

 

Identifies the end user's subscription and is commonly used in Diameter-based credit control and authentication scenarios. The AVP structure is defined as follows:

Subscription-Id-Type: Defines the type of the identifier, such as IMSI, E.164 (phone number), or SIP URI. 

Subscription-Id-Data: Contains the actual subscription identifier, such as a phone number, IMSI, or email address. The specific format depends on the type defined in Subscription-Id-Type.

The Subscription-Id AVP must be included in Diameter messages where identifying the user's subscription is required.

Subscription-Id-Data

444

UTF8String

 

Contains the identifier used to represent the end user's subscription. This AVP works in conjunction with the Subscription-Id-Type AVP to specify the type of identifier being used and its corresponding value.

Subscription-Id-E164

660

UTF8String

 

Contains the end user’s identifier in the international E.164 format. This format is commonly used to represent MSISDN (Mobile Station International Subscriber Directory Number) values as defined by the ITU-T E.164 numbering plan.

Subscription-Id-Extension

659

Grouped

 

Used to identify the end user's subscription. It provides an extensible framework for carrying various types of subscription identifiers, such as:

  • E.164 Numbers (e.g., MSISDN)

  • IMSI (International Mobile Subscriber Identity)

  • SIP URI (Uniform Resource Identifier for SIP)

  • NAI (Network Access Identifier)

  • Private Identifiers (specific to a network or service)

This AVP is designed to ensure compatibility and flexibility for Diameter applications that require additional or newly defined subscription identifiers.

The Subscription-Id-Extension AVP may include exactly one of the following sub-AVPs:

Subscription-Id-E164: For MSISDN values in the E.164 numbering format.

Subscription-Id-IMSI: For the IMSI value identifying the user in the mobile network.

Subscription-Id-SIP-URI: For SIP-based services.

Subscription-Id-NAI: For users identified via the NAI format.

Subscription-Id-Private: For proprietary or private identifiers.

Subscription-Id-IMSI

661

UTF8String

 

Contains the IMSI (International Mobile Subscriber Identity) value of the end user. It adheres to the ITU-T E.212 identification plan and is used for uniquely identifying subscribers in mobile networks. The IMSI format is a numeric identifier structured as follows:

  • MCC (Mobile Country Code): 3 digits identifying the user's country.

  • MNC (Mobile Network Code): 2-3 digits identifying the user's home network.

  • MSIN (Mobile Subscriber Identification Number): Up to 10 digits uniquely identifying the subscriber within the network.

Subscription-Id-NAI

663

UTF8String

 

Contains the subscriber's identifier in the form of a Network Access Identifier (NAI). The NAI is an identifier standard defined in [RFC7542] that is primarily used for user identification in network authentication and authorization procedures. An NAI typically follows the format: username@realm. Where:

username: A string that uniquely identifies the user within the realm.

realm: A domain-like identifier that specifies the authentication realm.

Subscription-Id-Private

664

UTF8String

 

Contains a private identifier specific to the credit-control server. This AVP is used to define a subscriber's private identity, which is not shared publicly or across other network elements. The identifier's structure and content are determined by the credit-control server implementation and are not standardized.

Subscription-Id-SIP-URI

662

UTF8String

 

Contains a subscriber's identifier in the form of a SIP Uniform Resource Identifier (URI), as defined in [RFC3261]. This AVP is used to uniquely identify a subscriber in systems utilizing Session Initiation Protocol (SIP) for communication.

Subscription-Id-Type

450

Enumerated

 

Specifies the type of identifier carried within the Subscription-Id AVP. This AVP allows the system to interpret the format and purpose of the subscription identifier correctly. It is critical for scenarios where multiple identifier types coexist, enabling Diameter-based systems to process the Subscription-Id AVP according to its specific type. Values

0 END_USER_E164: The identifier is in the international E.164 format (e.g., MSISDN), according to the ITU-T E.164 standard.

1 END_USER_IMSI: The identifier is in IMSI format, as defined by the ITU-T E.212 identification plan.

2 END_USER_SIP_URI: The identifier is a SIP Uniform Resource Identifier (URI), as per [RFC3261].

3 END_USER_NAI: The identifier is a Network Access Identifier, as per [RFC7542].

4 END_USER_PRIVATE: The identifier is a private identifier specific to the credit-control server.

Tariff-Change-Usage

452

Enumerated

 

Specifies the handling of service units and quotas in cases of tariff changes. It indicates how the granted or used service units are calculated and reported when a tariff change occurs during an ongoing session. This AVP provides flexibility to manage tariff transitions effectively in billing and credit control systems. Values:

0 Units After Tariff Change: Specifies that the service units granted after the tariff change apply to the session.

1 Units Before Tariff Change: Specifies that the service units granted before the tariff change apply to the session.

2 All Units: Specifies that all service units, both before and after the tariff change, are considered for the session.

Tariff-Time-Change

451

Time

 

Specifies the timestamp, in seconds since January 1, 1900, 00:00 UTC, indicating when the service tariff will change. It is sent from the Diameter server to the Diameter client as part of a Credit-Control-Answer (CCA) message.

Unit-Value

445

Grouped

 

Specifies the cost of a service or resource as a floating-point value, represented using a significand and an exponent. This structure allows precise representation of decimal values without rounding errors, enabling accurate billing calculations.

The value is computed using the formula:

Unit-Value = Value-Digits * 10^Exponent

Value-Digits: The significand component, which must be present.

Exponent: The exponent component, which is optional. Its absence is interpreted as Exponent = 0.

Used-Service-Unit

446

Grouped

 

Provides information about the amount of service units consumed during a session. It measures usage from the point when the service became active or from the last reported interim interrogation. This AVP is distinct from the Granted-Service-Unit AVP in that it reflects actual usage, which may exceed the originally granted units. The AVP structure is defined as follows:

Tariff-Change-Usage: Indicates usage relative to a tariff change event.

CC-Time: The total time used in seconds.

CC-Money: The monetary value of the used units.

CC-Total-Octets: Total data used (sent and received) in octets.

CC-Input-Octets: Data received by the user in octets.

CC-Output-Octets: Data sent by the user in octets.

CC-Service-Specific-Units: Service-specific units consumed (e.g., events, points).

User-Equipment-Info

458

Grouped

 

The User-Equipment-Info AVP provides information about the identity and capability of the terminal (e.g., mobile device, modem) the subscriber is using to access the network. This AVP is used by the credit-control client to convey terminal-related details that may influence service provisioning, billing, or session management. The AVP structure is defined as follows:

User-Equipment-Info-Type: Specifies the type of equipment information being provided, such as:

  • IMEI (International Mobile Equipment Identifier)

  • MAC Address

  • EUI-64 (Extended Unique Identifier)

User-Equipment-Info-Value: The value of the terminal information, encoded based on the type specified in the User-Equipment-Info-Type AVP.

User-Equipment-Info-EUI64

656

OctetString

 

Contains a 64-bit identifier used to uniquely identify the hardware instance of a product. This identifier follows the standards defined by EUI-64 and is commonly used in network and hardware contexts.

User-Equipment-Info-Extension

653

Grouped

 

Provides detailed identity and capability information about the terminal (user equipment) used for the connection. It is a more flexible and extensible alternative to the User-Equipment-Info AVP, allowing for additional types of user equipment identifiers. This AVP ensures backward compatibility with systems that may only support the User-Equipment-Info AVP. Exactly one sub-AVP must be included in the User-Equipment-Info-Extension AVP:

User-Equipment-Info-IMEISV: Identifies the device via its International Mobile Equipment Identity Software Version.

User-Equipment-Info-MAC: Represents the device's MAC address.

User-Equipment-Info-EUI64: Provides the device's 64-bit unique identifier.

User-Equipment-Info-ModifiedEUI64: Specifies a modified EUI-64 identifier.

User-Equipment-Info-IMEI: Specifies the International Mobile Equipment Identity.

User-Equipment-Info-IMEI

658

OctetString

 

Contains the International Mobile Equipment Identifier (IMEI), a globally unique identifier for mobile devices. This AVP is formatted according to 3GPP [TS23.003] specifications and is primarily used to identify the mobile equipment in network operations.

User-Equipment-Info-IMEISV

654

OctetString

 

Contains the International Mobile Equipment Identifier and Software Version (IMEISV), a unique identifier that includes information about both the mobile device and its software version. This AVP follows the IMEISV format defined by 3GPP [TS23.003] and is critical for precise identification of both hardware and software configurations of mobile equipment.

User-Equipment-Info-MAC

655

OctetString

 

The User-Equipment-Info-MAC AVP contains the 48-bit Media Access Control (MAC) address of a device, uniquely identifying it at the data link layer. The MAC address is formatted according to Section 4.1.7.8 of [RFC5777]. This AVP is primarily used in scenarios where the network needs to identify or verify a device's network interface for authentication, service allocation, or monitoring purposes.

User-Equipment-Info-ModifiedEUI64

657

OctetString

 

Contains device identifiers that are not strictly in the form of IMEI, IEEE 802 MAC addresses, or EUI-64 but can be represented in Modified EUI-64 format. These identifiers may be specific to certain types of terminals and are processed as per the rules described in [RFC4291] or service-specific documentation. This AVP is used in scenarios where the device’s native identifier needs to be converted into Modified EUI-64 format for compatibility or standardization purposes in the network.

User-Equipment-Info-Type

459

Enumerated

 

Defines the type of user equipment information contained in the corresponding User-Equipment-Info-Value AVP. This AVP allows the Diameter protocol to specify the type of identifier used to represent the user's device. Values:

IMEISV (0): Contains the International Mobile Equipment Identifier and Software Version (IMEISV). Format adheres to 3GPP [TS23.003].

MAC (1): Contains the 48-bit Media Access Control (MAC) address. Format follows [RFC3580], Section 3.21.

EUI64 (2): Contains the 64-bit identifier used to uniquely identify the hardware instance of the product. Defined in EUI-64 specifications.

MODIFIED_EUI64 (3): Contains identifiers that can be converted into a Modified EUI-64 format, as per [RFC4291] or other methods defined in service-specific documentation.

User-Equipment-Info-Value

460

OctetString

 

Contains the actual identifier value representing the user's device or terminal. The format of this value is determined by the User-Equipment-Info-Type AVP, which specifies the type of identifier (e.g., IMEISV, MAC address, EUI-64).

Validity-Time

448

Unsigned32

 

Specifies the duration in seconds for which the granted service units remain valid. It is sent from the credit-control server to the credit-control client in the Credit-Control-Answer (CCA) message and is used for managing the service session duration and ensuring timely updates.

Value-Digits

447

Integer64

 

Represents the significant digits of a number, typically used in conjunction with the Exponent AVP to express a scaled numeric value. It allows precise representation of decimal values without loss of precision due to floating-point rounding.  

Start innovating with Mobius

What's next? Let's talk!

Mobius Software

As a company you'll get:

  • Get started quickly

  • Support any business model

  • Join millions of businesses

Questions? websupport@mobius.com