Приложение для кредитного контроля диаметра - Diameter Credit-Control Application

Приложение для кредитного контроля диаметра, это сетевой протокол для Диаметр приложение, используемое для реализации кредитного контроля в реальном времени для различных служб конечных пользователей.

Это стандарт IETF, впервые определенный в RFC 4006, и обновлено в RFC 8506.

Цель

Назначение приложения контроля кредита диаметра - предоставить основу для тарификации в реальном времени, в первую очередь предназначенную для связи между шлюзами / контрольными точками и внутренними системами счетов / баланса (обычно Система онлайн-оплаты ).

В приложении указаны методы для:

  • Управление квотами (резервирование, повторная авторизация, отказ)
  • Простой дебет / кредит
  • Проверка баланса
  • Запрос цен

В приложении контроля кредита диаметра не указывается, какие типы единиц покупаются / используются и за какие товары взимается плата. Это оставлено на усмотрение контекста службы, который должен быть указан отдельно, как и некоторая семантика.

Примеры использованных / купленных единиц:

  • Время
  • Выгрузка / загрузка байтов
  • SMS (текстовые сообщения)

Примеры начисленных предметов:

  • Деньги
  • Точки
  • Единицы (например, если баланс хранится в тех же единицах, что и используемые)

Контроль кредита Diameter также определяет, как справиться с довольно сложной проблемой, когда несколько типов единиц используются / списываются с баланса одного пользователя. Например, пользователь может оплачивать как онлайн-время, так и байты загрузки, но имеет только один баланс учетной записи.

Тарификация на основе сеанса

Процесс контроля кредита на основе сеанса использует несколько запросов, которые могут включать в себя первый, промежуточный и последний запросы. Во время опроса деньги резервируются со счета пользователя. Тарификация на основе сеанса обычно используется для сценариев, в которых заряженные единицы потребляются непрерывно, например плата за выгрузку / выгрузку байтов.

Тарификация по событию

Процесс кредитного контроля на основе событий использует события в качестве механизма начисления платы. Тарификация на основе событий обычно используется, когда устройства не потребляются постоянно, например пользователь, отправляющий MMS.

Коды команд

Для поддержки кредитного контроля через Diameter существуют два сообщения Diameter: CCR (запрос контроля кредита) и CCA (ответ контроля кредита). Код команды для CCR / CCA - 272, как определено в RFC 4006

Для управления квотами клиент отправляет CCR на сервер, запрашивая единицы и сообщая о потреблении. Сервер предоставляет единицы и взимает плату с пользователя. Для простого дебетования / кредитования клиент отправляет CCR с просьбой к серверу кредитовать / дебетовать счет пользователя. Для запросов цены клиент спрашивает сервер, какова цена за единицу, и сервер отвечает с ценой.

Потоки сообщений

Потоки сообщений обычно управляются контрольной точкой, запрашивающей единицы, и сервером, предоставляющим их. Сообщение также может быть создано другими приложениями диаметра, такими как NASREQ (RFC4005) для сеансов, которые ограничены по времени / использованию.

На следующей диаграмме показан упрощенный поток сообщений для сеанса с использованием квот.

Dcca.png

Клиент начинает с запроса 10 единиц с сервера. Сервер проверяет, что у пользователя / подписчика достаточно средств для этого. В этом примере сервер предоставляет клиенту все запрошенные единицы. если у абонента недостаточно средств на балансе, он может предоставить меньше единиц или полностью отказаться от него.

Когда или до того, как сеанс подписчика использовал предоставленные единицы, клиент отправляет обновление на сервер, сообщая ему, сколько единиц было использовано и сколько он хотел бы предоставить на этот раз. Клиенту разрешено запрашивать единицы до того, как предыдущее разрешение будет полностью использовано, чтобы избежать приостановки сеанса подписчика во время разговора с сервером. В этом примере клиент отправляет запрос, когда были использованы 7 единиц из 10 ранее предоставленных единиц; и попросите еще 10 единиц, которые предоставляет сервер. Сервер может использовать счетчик использованных единиц для списания с баланса абонента (предоставление единиц не означает, что они будут использоваться. AVP использованных единиц содержит фактическое использование). Сервер также может сообщить клиенту, как долго разрешение действительно, и в этом случае ожидается, что клиент отправит обновление по истечении таймера предоставления.

Во время сеанса может быть много сообщений об обновлении.

Наконец, подписчик завершил сеанс, и клиент отправляет на сервер сообщение о завершении, содержащее последние использованные единицы. Сервер может использовать сообщение о завершении, чтобы очистить все связанные резервирования, сделанные в системе управления внутренним балансом. Если бы подписчик сам не завершил сеанс, а вместо этого исчерпал свой баланс, сервер ответил бы раньше, отклонив сообщение об обновлении, возможно, указав клиенту / контрольной точке перенаправить трафик (обычно это имеет смысл только для HTTP /WAP движение).

Матрица AVP

AVP для новых кодов команд

Новые коды команд, CCA и CCR, могут потребовать некоторых AVP, как указано ниже. Полужирный шрифт AVP - новинка DCCA.

Код команды
имя атрибутаCCRCCA
Acct-Multi-Session-Id0-10-1
Auth-Application-Id11
CC-Correlation-Id0-10
CC-сеанс-отказоустойчивость00-1
CC-Request-Number11
CC-Request-Type11
CC-Sub-Session-Id0-10-1
Проверка-Баланс-Результат00-1
Информация о стоимости00-1
Кредитный контроль-обработка сбоев00-1
Назначение-Хост0-10
Место назначения10
Прямое дебетование-обработка сбоев00-1
Отметка времени события0-10-1
Failed-AVP00+
Конечная единица измерения00-1
Предоставленная служба00-1
Множественные услуги-кредитный контроль0+0+
Индикатор нескольких услуг0-10
Origin-Host11
Origin-Realm11
Origin-State-Id0-10-1
Прокси-информация0+0+
Redirect-Host00+
Redirect-Host-Usage00-1
Перенаправление-Макс-Кэш-время00-1
Запрошенное действие0-10
Запрошенная-сервисная-единица0-10
Маршрут-Запись0+0+
Код результата01
Service-Context-Id10
Сервис-идентификатор0-10
Сервис-Параметр-Информация0+0
Идентификатор сессии11
Идентификатор подписки0+0
Прекращение - Причина0-10
Информация об оборудовании пользователя0-10
Б / У-Единица0+0
Имя пользователя0-10-1
Срок действия00-1

Новые AVP для кодов команд базового протокола

Код команды
имя атрибутаRARRAA
CC-Sub-Session-Id0-10-1
Идентификатор G-S-U-Pool0-10-1
Сервис-идентификатор0-10-1
Рейтинг-Группа0-10-1

В таблице используются следующие символы:

  • 0 AVP НЕ ДОЛЖЕН присутствовать в сообщении
  • 0+ В сообщении МОГУТ присутствовать ноль или более экземпляров AVP.
  • 0-1 В сообщении МОЖЕТ присутствовать ноль или один экземпляр AVP. Считается ошибкой, если существует более одного экземпляра AVP.
  • 1 В сообщении ДОЛЖЕН присутствовать один экземпляр AVP.
  • 1+ В сообщении ДОЛЖЕН присутствовать хотя бы один экземпляр AVP.

Связанные стандарты

  • RFC 4005 - Приложение сервера доступа к сети Diameter.
  • RFC 4006 - Приложение Diameter Credit-Control (устарело)
  • RFC 8506 - Приложение для кредитного контроля диаметра.
  • 3GPP 32.299 - Управление связью 3GPP - Управление зарядкой - Приложения для тарификации Diameter.