АСР LANBilling получает от АТС информацию о звонках и преобразует её в свой формат. Затем система определяет, какие именно абоненты и операторы участвовали в том или ином вызове, какой у них назначен тариф, к какой категории относится вызов. Согласно настройкам тарифа и категории биллинг рассчитывает стоимость звонка. Статистика звонков сохраняется в системе.
Когда агент LBphone запускается, он получает параметры настройки из БД LBcore. Среди этих настроек есть краткое название формата CDR — поле name
в таблице pabxes
.
Также там содержится название парсера, работающего с этим форматом — поле plug-in
в таблице pabxes
. LBphone пытается загрузить этот парсер.
Если удалось успешно загрузить и запустить плагин, агент входит в цикл обработки CDR-файлов. LBphone получает CDR от станции, указанной в настройках агента, и передаёт файл плагину для обработки.
Если запустить плагин не удаётся, работа агента прекращается, а в логе сохраняется запись «Cannot load plug-in!».
Парсеры для наиболее распространённых моделей АТС уже есть в АСР LANBilling, но вы можете добавить свой. Затем парсер нужно будет указать в настройках станции.
Плагин обрабатывает CDR и преобразует записи в формат, который используется в АСР LANBilling: параметр_1=значение_1;параметр_2=значение_2;параметр_3=значение_3;…
Запись о каждом звонке — отдельная строка, параметры разделены точкой с запятой.
Список возможных параметров:
Наличие того или иного параметра зависит от формата CDR и особенностей парсера. Примеры парсеров и обработки CDR.
Если плагину не удастся распознать запись, в логе агента сохранится запись «Cannot parse line: [исходная запись]». Необработанная запись будет добавлена в специальный файл для отфильтрованных вызовов.
Агент LBphone получает данные от парсера и передаёт их в LBcore по протоколу JSON/TCP. Адрес и пароль для подключения задаются в конфигурационном файле LBphone. Например, «server = admin@127.0.0.1:1502».
Если для агента LBphone настроена замена номеров, система применит к номерам условия, заданные в параметрах агента.
Для каждого вызова определяются как абоненты, так и операторы. Например, звонок может быть определён: - как входящий — для абонента Алексеева и оператора «Местный» - как исходящий — для оператора «Вышестоящий».
При этом с каждой стороны может быть только один абонент и один оператор.
Действия системы зависят от того, какой способ определения оператора выбран в параметре «Определять оператора» в настройках агента LBphone:
По признаку оператора. Признак — это транк либо номер телефона, присвоенный оператору. Он, как и номера абонентов, передаётся в CDR.
По каталогу телефонных номеров. Система сначала определит номера участников вызова, найдёт тарифы в их учётных записях, а по категориям тарифа определит операторов.
Рассмотрим на примере. При обработке CDR-файла получены сведения о вызове:
АСР LANBilling ищет учётные записи абонентов по номерам А и Б.
Биллинг определяет для учётной записи alexeev:
В тарифе «Абонентский» биллинг ищет маску направления, к которому можно отнести номер 777. Поиск ведётся в исходящих направлениях, потому что совершён исходящий звонок на этот номер.
Маска направления должна как можно точнее совпадать с номером Б. Например, в тарифе есть два направления: 7* и 77* — более подходящим считается 77*.
Определив направление, биллинг ищет в тарифе «Абонентский» категорию, к которой оно относится.
Для направления 77* это категория «Междугородние исходящие». В категории задана стоимость звонка — 3 руб/мин.
Если не удастся определить направление и категорию, система отнесёт вызов к категории Default.
Длительность звонка умножается на стоимость за минуту звонка из настроек категории: 5 × 3 = 15 руб. Эта сумма списывается с договора Contract_10.
АСР LANBilling ищет учётные записи операторов по номерам входящего и исходящего транков.
Биллинг определяет для операторских учётных записей тарифы, договоры и карточки пользователей.
operator_m:
operator_v:
В операторских тарифах биллинг ищет маски направлений, к которым можно отнести номера 777 и 555. Затем определяет, к каким категориям относятся эти направления.
Для 777 — в исходящих направлениях тарифа «Межоператорский_М», потому что совершён исходящий звонок на этот номер.
Найдено направление 77* — категория «Междугородние исходящие». В категории задана стоимость звонка — 1,5 руб/мин.
Для 555 — во входящих направлениях тарифа «Межоператорский_В», потому что звонок совершён с этого номера.
Найдено направление 55* — категория «Междугородние входящие». В категории задана стоимость звонка — 0,5 руб/мин.
Если не удастся определить направление и категорию, система отнесёт вызов к категории Default.
Длительность звонка умножается на стоимость за минуту звонка из настроек категории.
Подробные данные обо всех вызовах и списаниях можно посмотреть в статистическом отчёте.
Рассмотрим на примере. При обработке CDR-файла получены сведения о вызове:
АСР 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.
Есть вопросы по документации? Пожалуйста, напишите их