LANBilling получает информацию о звонках, определяет, какие именно абоненты и операторы участвовали в том или ином вызове, какой у них назначен тариф, к какой категории относится вызов. Согласно настройкам тарифа и категории биллинг рассчитывает стоимость звонка. Статистика звонков сохраняется в системе.
За тарификацию и управление доступом к услугам IP-телефонии отвечает агент VoIP. Он отвечает за взаимодействие с голосовыми шлюзами, аутентификацию, авторизацию и аккаунтинг по протоколу RADIUS.
Агент VoIP может работать в одном из двух режимов.
Предоплата (карточные платформы) — в самом начале звонка агент VoIP определяет, какая длительность звонка доступна абоненту. Поддерживаются карточные платформы на базе оборудования Cisco Systems 53хх или ПО программной коммутации голосовых потоков Mera Networks Soft Switch, Alterteks PSS (Prepaid схема оплаты), Asterisk.
Постоплата — в этом режиме агент не ограничивает длительность звонка.
Режим зависит от оборудования и от настроек тарифа, назначенного в абонентской учётной записи.
Рассмотрим на примере оборудования Cisco Systems, как агент VoIP взаимодействует с коммутирующей системой в режиме обслуживания карточной платформы.
Взаимодействие зависит от алгоритмов, описанных в tcl-скриптах. Скрипты управляют взаимодействием с VoIP-агентом со стороны шлюза. Оригинальный tcl-скрипт для карточной платформы поставляется в составе модуля VoIP.
Шлюз отправляет запрос IVR (Interactive Voice Response).
Абонент вводит серийный номер и код карты, приобретённой у оператора.
Шлюз передаёт серийный номер и код карты агенту VoIP.
Агент VoIP определяет, есть ли в системе учётная запись с таким серийным номером и кодом карты. Далее передает шлюзу ответ: найдены ли в БД данные, введенные абонентом или нет.
Абонент вводит телефонный номер, на который нужно коммутировать звонок.
Шлюз отправляет запрос на авторизацию — запрашивает у VoIP разрешение на звонок. В теле запроса передается номер, который ввёл абонент.
По этому номеру агент VoIP определяет направление, в которое нужно коммутировать соединение. По категории тарифа определяет стоимость за минуту звонка в эту зону.
Агент VoIP проверяет баланс абонента и вычисляет максимально возможную длительность звонка. Отправляет это значение в ответе шлюзу.
Если таймаут получается меньше, чем количество бесплатных секунд в тарифе, происходит отказ в обслуживании из-за недостатка средств.
Шлюз устанавливает таймаут на соединение и переключает звонок на номер, который ввёл абонент.
Звонок прерывается:
С абонента списывается стоимость звонка. Агент VoIP может списывать средства, не дожидаясь окончания сеанса связи, а ориентируясь по данным, поступающим от шлюза в промежуточных пакетах (Interim Accounting Updates). Это гарантирует адекватное списание средств с баланса учетной записи, даже если завершающий RADIUS-пакет утерян.
Шлюз отправляет запрос IVR (Interactive Voice Response).
Агент VoIP определяет, есть ли в системе подходящий абонент. Либо по номеру, либо по логину учётной записи — в зависимости от настроек агента. Далее передаёт шлюзу ответ: найдены ли в БД данные.
Агент VoIP устанавливает неограниченный таймаут на звонок — вне зависимости от направления и категории.
Абонент прерывает звонок.
Агент VoIP рассчитывает стоимость звонка и списывает его с договора абонента.
В итоге у абонента может появиться задолженность перед оператором. Задолженность нужно погасить в конце расчетного периода. Как правило, расчётный период — один календарный месяц.
Для каждого вызова определяются не только абоненты, но и операторы. Например, звонок может быть определён: - как входящий — для абонента Алексеева и оператора «Местный» - как исходящий — для оператора «Вышестоящий».
При этом с каждой стороны может быть только один абонент и один оператор.
Действия системы зависят от того, какой способ определения оператора выбран в параметре «Определять оператора» в настройках агента VoIP:
По признаку оператора. Признак — это транк либо номер телефона, присвоенный оператору.
По каталогу телефонных номеров. Система сначала определит номера участников вызова, найдёт тарифы в их учётных записях, а по категориям тарифа определит операторов.
Рассмотрим на примере. Получены сведения о вызове:
LANBilling ищет учётные записи операторов по номерам входящего и исходящего транков.
Биллинг определяет для операторских учётных записей тарифы, договоры и карточки пользователей.
operator_m:
operator_v:
В операторских тарифах биллинг ищет маски направлений, к которым можно отнести номера 777 и 555. Затем определяет, к каким категориям относятся эти направления.
Для 777 — в исходящих направлениях тарифа «Межоператорский_М», потому что совершён исходящий звонок на этот номер.
Найдено направление 77* — категория «Междугородние исходящие». В категории задана стоимость звонка — 1,5 руб/мин.
Для 555 — во входящих направлениях тарифа «Межоператорский_В», потому что звонок совершён с этого номера.
Найдено направление 55* — категория «Междугородние входящие». В категории задана стоимость звонка — 0,5 руб/мин.
Если не удастся определить направление и категорию, система отнесёт вызов к категории Default.
Длительность звонка умножается на стоимость за минуту звонка из настроек категории.
Подробные данные обо всех вызовах и списаниях можно посмотреть в статистическом отчёте.
Рассмотрим на примере. Получены сведения о вызове:
LANBilling ищет учётные записи абонентов по номерам А и Б.
Биллинг определяет для учётной записи alexeev:
В тарифе «Абонентский» биллинг ищет маски направлений, к которым можно отнести номера 777 и 555. Это нужно, чтобы:
Маски направлений должны как можно точнее совпадать с номерами. Например, в тарифе есть два направления: 7* и 77* — номер 777 будет отнесён к направлению 77*.
Для 777 поиск идёт в исходящих направлениях, потому что совершён исходящий звонок на этот номер. Найдено направление 77*.
Для 555 найдено направление 55*, оно входит в каталог оператора «Местный».
Определив, каким операторам принадлежат направления, биллинг ищет их договоры и учётные записи.
Для оператора «Вышестоящий»:
Для оператора «Местный»:
В операторских тарифах биллинг ищет маски направлений, к которым можно отнести номера 777 и 555. Затем определяет, к каким категориям относятся эти направления.
Для 777 — в исходящих направлениях тарифа «Межоператорский_М», потому что совершён исходящий звонок на этот номер.
Найдено направление 77* — категория «Междугородние исходящие». В категории задана стоимость звонка — 1,5 руб/мин.
Для 555 — во входящих направлениях тарифа «Межоператорский_В», потому что звонок совершён с этого номера.
Найдено направление 55* — категория «Междугородние входящие». В категории задана стоимость звонка — 0,5 руб/мин.
Если не удастся определить направление и категорию, система отнесёт вызов к категории Default.
Длительность звонка умножается на стоимость за минуту звонка из настроек категории.
Подробные данные обо всех вызовах и списаниях можно посмотреть в статистическом отчёте.
В учётной записи абонента может быть настроен мультитариф, то есть сочетание сразу нескольких тарифов. В этом случае есть некоторые особенности при учёте и тарификации звонков.
Всего в LANBilling существует два типа списаний.
Абонентская плата — ежемесячные или ежедневные списания определённой суммы. Например, 500 руб. в конце каждого месяца. При мультитарифе размер и срок списания абонентской платы зависит только от основного тарифа.
Списания за трафик — система собирает данные о количестве, длительности и направлениях вызовов и рассчитывает их стоимость. Расчёт зависит от того, в каком тарифе и в какой его категории находится направление. Стоимость звонка рассчитывается согласно настройкам категории.
Когда поступает вызов, LANBilling проверяет, кому из абонентов назначены номера, участвующие в звонке. Как только система находит учётную запись абонента, она определяет указанный в ней тариф. В нём проверяет категории и ищет в них направления.
Если в учётной записи настроен мультитариф, то LANBilling проверяет направления и в основном тарифе, и в дополнительных. Если направление не найдено ни в одном из них, вызов относится к категории Default в основном тарифе.
Одно направление может быть добавлено к нескольким дополнительным тарифам. В этом случае система отнесёт звонок к направлению, которое добавлено в тариф с наименьшим tar_id.
Для мультитарифов в IP-телефонии можно указать, какой тариф считается более приоритетным при определении направления.
Перейдите в раздел «Настройки» — «Параметры».
В блоке «Общие» задайте приоритет при поиске направлений.
Направления основного тарифа — если система обнаружит подходящее направление в основном тарифе, то отнесёт звонок к нему и не будет проверять дополнительные.
Наилучшее совпадение среди направлений всех тарифов — LANBilling проверит все тарифы в учётной записи. Звонок будет отнесён к тому тарифу, в котором найдётся наиболее точное значение направления.
Пример. Абонент Алексеев позвонил на номер
+7 494 255-55-55. В основном тарифе есть направление «7494 Костромская область», а в дополнительном — «74942 Кострома». Так как направление из дополнительного тарифа содержит более точное значение, система отнесёт звонок именно к нему.
Есть вопросы по документации? Пожалуйста, напишите их