Как работает биллинг сотового оператора?

в 9:19, , рубрики: aaa, CAMEL, MSc, OCS, psn, биллинг, Блог компании ВымпелКом (Билайн), телеком, Телекомы, телефония, метки: , , , , , ,

Как работает биллинг сотового оператора?
Платформа обрабатывает InitaialDP 37 мс; абонент слушал гудки 10 сек; длительность разговора – чуть больше 5 минут.

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

Есть 2 основных типа расчета:

  • Постоплата — выставление счёта за период по его итогам (postpaid)
  • И авансовая система (prepaid), когда деньги заносятся заранее.

Постоплата появилась исторически раньше, но предоплата оказалась удобнее для клиентов (контролируемее – чуть что не так, происходит отключение, а не выставляется большой счёт).

Постоплатная система

Когда абонент постополатной системы расчетов пользуется услугами оператора, то на коммутаторах генерятся специальные CDR (Call Detail Record) файлы. По сути, это обычные логи, в которых указан номер абонента, дата, время разговора/объем скачанного трафика и т.п. Биллинг же, в определенное время, (например, раз в сутки) подключается к коммутатору, закачивает себе CDRы, рассчитывает стоимость услуг и сохраняет всё в базе данных (обычно, Oracle). Затем в конце месяца абоненту выставляется суммарный счет.

Как работает биллинг сотового оператора?
Схема взаимодействия Postpaid платформы с ядром сети оператора.
CSN — circuit switching network; Представлена коммутаторами каналов (MSC).
PSN – packet switching network; Представлена коммутаторами пакетов и шлюзами (SGSN и GGSN соответственно).

Принцип работы postpaid-системы относительно прост, потому что не требует реакции платформы в реальном времени: ведь абонента не нужно предупреждать о достижении нуля (и, соответственно, не нужно менять характер взаимодействия сети с ним).

Авансовая система

В случае авансовой тарификации оператору связи, помимо учета предоставленного объема услуг, требуется решать задачу отслеживания текущего счета абонента и в случае достижения нуля, информировать абонента/отключать предоставление услуги. Поэтому такие системы еще называют Online Charging System (OCS).

Так как оператор предоставляет разные виды услуг и используются разные типы сетей (система коммутации каналов/пакетов), то биллингу для решения задачи контроля счета абонента приходится использовать разные протоколы тарификации, например такие:

Как работает биллинг сотового оператора?
Схема взаимодействия prepaid-платформы с сетью оператора.

Разберем подробнее про протоколы.

CAP

CAP (CAMEL Application Part) – протокол прикладного уровня стека SS7, реализующий интеллектуальные услуги в GSM/UMTS сетях (например, prepaid).

Как работает биллинг сотового оператора?
Место протокола в стеке SS7. На рисунке также представлен популярный вариант с использованием технологии SIGTRAN (расширение SS7, которое позволяет использовать протоколы “семёрки” поверх IP сети).

По этому протоколу OCS общается с сетью коммутации каналов. Вот пример тарификации исходящего голосового вызова:

Как работает биллинг сотового оператора?
Диалог тарификации по CAP протоколу, пунктирными линиями показаны ISUP сообщения.

  1. Сначала в биллинг от коммутатора MSC1 приходит сообщение (Initial Detection Point), в котором передаются параметры абонента. Это входящий и исходящий номера, адрес соты вызываемого абонента и прочие. На основе этого возможно начать анализ звонка. Биллинг создает у себя определенный Detection Point — то есть состояние вызова. OCS определяет, можно ли абоненту совершить голосовой вызов (есть ли средства на счете), если можно, то на какое максимальное время.
  2. После этого OCS отвечает коммутатору Request Report BCSM Event (“Detection Point я инициализировал, жду от тебя дальнейшей информации о состоянии вызова”). И посылает Apply Charging (“средства у абонента на счету есть, разрешаю звонок”). Там же пересылается максимальное время, которое может использовать абонент.
  3. Коммутатор, получив разрешение от OCS, инициализует голосовое подключение между абонентами по ISUP протоколу, посылая на MSC2 сообщение IAM (Initial Address Message).
  4. MSC2 отвечает в сторону MSC1 сообщением ACM (Address Complete Message), в данном случае это означает “да, абонент мой, он сейчас в сети, начинаю его вызывать”. Приняв это сообщение, MSC1 включает длинные гудки абоненту А.
  5. Абонент Б берет трубку, MSC2 посылает MSC1 сообщение ANM (Answer Message) – “мой абонент поднял трубку, подключай их”.
  6. MSC1 подключает абонента А и Б, начинается разговор. MSC1 посылает на OCS сообщение Event Report BCSM (O_Answer). OCS изменяет у себя состояние вызова для данного абонента. С этого момента начинается тарификация (с учётом, что первые 3 секунды бесплатны).
  7. Пока абоненты общаются, MSC1 следит за временем на звонок. Если времени остается мало, то MSC предупреждает абонента звуковым сигналом.
  8. В нашем случае первым кладет трубку абонент Б, MSC1 и MSC2 производят дружеское рукопожатие с помощью сообщений REL (Release Message) и RLC (Release Complete Message).
  9. MSC1 отправляет на OCS сообщение Event Report BCSM (O_Disconnect – “абоненты успешно отключились”) и Apply Charging Report (сколько секунд длился разговор).
  10. OCS принимает эти данные и отвечает, что теперь можно закрывать сессию.
--- INVOKE ---
 A1     TAG    : A1h [1]
 1B     LEN    : 27
      --- INVOKE ID ---
 02       TAG    : 02h INTEGER
 01       LEN    : 1
 02       INVOKE ID  : 2
       === CAP ===
         --- INVOKE ---
         --- OPERATION ---
 02      TAG    : 02h INTEGER
 01      LEN    : 1
 23      OPERATION  : 35 = applyCharging
       --- APPL CHARG ---
 30        TAG    : 30h SEQUENCE
 13        LEN    : 19
         --- ACH BCC ---
 80      TAG    : 80h [0]
 0C      LEN    : 12
       --- TDC ---
 A0        TAG    : A0h [0]
 0A        LEN    : 10
         --- MAX C P D ---
 80          TAG    : 80h [0]
 03          LEN    : 3
 01 19 40        MAX C P D  : 4370

Это часть трейса. Видим, что по протоколу CAP послано сообщение applyCharging, максимальное время разговора (MAX CPD — Maximum Call Period Duration) равно 437,0 сек.

Как работает биллинг сотового оператора?
Продублирую картинку до ката: это пример общения по CAP протоколу. Можно оценить временные метки: платформа обрабатывает InitaialDP 37 мс; абонент слушал гудки 10 сек; длительность разговора – чуть больше 5 минут.

Как работает биллинг сотового оператора?
А вот тут звонок продолжительный и видно, как система каждые 6 минут сама запрашивает у MSC статус звонка (activityTest). Сделано это для того, что бы, в случае какой-либо ошибки разговор не длился сутками (пока у абонента не спишутся все деньги).

CAP-протокол может тарифицировать не только голосовые звонки – он так же способен тарифицировать интернет-соединения, SMS, MMS и так далее. Хотя на практике чаще всего для этих нужд применяются специально заточенные протоколы (DIAMETER/OSA).

OSA

OSA (Open Service Access) – открытый программный интерфейс разработанный консорциумом 3GPP и ETSI, часто используется для тарификации VAS-сервисов и мобильного интернета.

Рассмотрим работу данного протокола на примере тарификации услуги мобильного интернета:

Как работает биллинг сотового оператора?

  1. При попытке активации PDP Context’а (получении телефоном IP-адреса в сети мобильного оператора) GGSN запрашивает платформу, можно ли данному абоненту активировать тарификационную сессию (CreateChargingSessionReq).
  2. В нашем случае все хорошо (абонент есть в базе, денежные средства имеются), платформа создает тарификационную сессию и разрешает активировать PDP Context (CreateChargingSessionResp).
  3. Теперь абонент хочет начать скачивать данные. Что бы позволить ему это делать, GGSN обращается к платформе с запросом на резервацию средств (ReserveUnitReq). Вообще, unit – вещь абстрактная, может быть чем угодно – килобайтом данных, смской, секундой разговора, рублем, пиццей, бочкой и так далее. В нашем случае unit – это 100 кБ.
  4. Платформа проверяет, есть ли для данного абонента, в соответствии с его тарифом, средства на 100 кБ трафика и отвечает сообщением ReserveUnitResp (“средства зарезервированы”). Приняв это сообщение от платформы, GGSN позволяет абоненту качать трафик.
  5. Когда абонент скачал зарезервированную порцию трафика, GGSN обращается к платформе с сообщением DebitUnitReq (“можно списывать зарезервированные средства”).
  6. Платформа списывает средства и отвечает сообщением DebitUnitResp (“средства успешно списаны”).
  7. Цикл ReserveUnitReq-DebitUnitResp повторяется до тех пор, пока абонент не скачает весь интернет закроет интернет сессию.
  8. При деактивации PDP Context’a GGSN посылает на платформу сообщение о завершении тарификационной сессии; память, выделенная под данную сессию освобождается.

Как работает биллинг сотового оператора?
Запрос debitUnitReq; Команды OSA обернуты в SOAP протокол, который в свою очередь инкапсулируется HTTP протоколом.

Заключение

Изменение потребностей клиентов (в т.ч. увеличение объема передаваемых данных), создание новых типов услуг, влечет за собой эволюцию сети мобильного оператора, в первую очередь в области VAS-платформ и биллинговых систем.

Если тематика протоколов семейства AAA вам интересна, то позже я расскажу про RADIUS, DIAMETER и другие интересные вещи.

Ссылки

3GPP: www.3gpp.org/index.php
ETSI: www.etsi.org/
OSA: www.3gpp.org/ftp/Specs/html-info/29198-01.htm
ISUP: www.asknumbers.com/SS7ISUPMessages.aspx

Автор: ansaril3

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js