АСР LANBilling позволяет вести учёт звонков классической телефонии и тарифицировать их. Для этого нужно, чтобы у операторов и абонентов были указаны правильные идентификаторы. Благодаря этому биллинг сможет правильно определять участников вызовов, тарифицировать их и сохранять статистику.
В карточках операторов должны быть заданы номерные ёмкости — диапазоны номеров, которые им принадлежат.
У каждого абонента должна быть как минимум одна учётная запись. Она связывает между собой объекты, необходимые для тарификации.
Тариф — условия, по которым рассчитывается стоимость звонков. Помимо основных параметров тарифа также важны категории — это разные группы настроек для разных направлений. Например, в одном тарифе может быть настроена одна категория для местных вызовов и другая — для междугородних. В каждую категорию должны быть добавлены направления — телефонные коды городов или стран.
Агент — с его помощью система обрабатывает вызовы и собирает статистику. В учётных записях телефонии используются агенты с типом LBphone.
Договор — с него списываются средства.
Кроме того, в абонентских учётных записях телефонии и IP-телефонии должны быть указаны идентификаторы: телефонные номера или транки.
АСР LANBilling получает от АТС информацию о звонках и преобразует её в свой формат. Затем система определяет, какие именно абоненты участвовали в том или ином вызове, какой у них назначен тариф. Согласно этому тарифу биллинг рассчитывает стоимость звонка и списывает её с абонентского договора. Статистика звонков сохраняется в системе.
Записи о звонках сохраняются в файлах CDR. Разные модели АТС сохраняют информацию о звонках в разных форматах. Чтобы АСР LANBilling могла обработать записи, их необходимо преобразовать в специальный формат.
Каков бы ни был исходный формат CDR, после обработки он должен выглядеть так: параметр_1=значение_1;параметр_2=значение_2;параметр_3=значение_3;…
Запись о каждом звонке — отдельная строка, параметры разделены точкой с запятой.
Список возможных параметров:
Пример:
direction=0;duration=50;timefrom=2012-01-01T00:00:00;numfrom=84957950677;numto=7450737;trunk_in=;trunk_out=;uniqueid=13;cause=1;
Для обработки CDR служат специальные плагины — парсеры. Наличие того или иного параметра зависит от формата CDR и особенностей парсера.
Парсеры для наиболее распространённых моделей АТС уже есть в АСР LANBilling, но вы можете добавить свой. Парсер нужно указать в настройках станции.
CDR-файлы бывают бинарные и текстовые. От этого зависит порядок разбора.
CDR бинарных форматов обрабатывают отдельные плагины-парсеры.
Для большинства текстовых форматов CDR разбор подчиняется схожим правилам. Текстовые форматы обрабатывает text_plug-in — он уже входит в АСР LANBilling.
Для обработки текстовых форматов, как правило, используются регулярные выражения — POSIX Extended. Регулярное выражение и другие параметры обработки задаются в специальном файле конфигурации.
Набор параметров, которые можно использовать в файле конфигурации:
Расширение файла конфигурации — *.conf, а имя — название формата в нижнем регистре. Например, alcatel-2.conf.
Когда агент LBphone запускается, он получает параметры настройки из БД LBcore. Среди этих настроек есть краткое название формата CDR — поле name в таблице pabxes. Также там содержится название парсера, работающего с этим форматом — поле plug-in в таблице pabxes. LBphone пытается загрузить этот парсер.
Если удалось успешно загрузить и запустить плагин, агент входит в цикл обработки CDR-файлов. Агент получает CDR от станции, указанной в настройках, и передаёт файл плагину для обработки.
Если запустить плагин не удаётся, работа агента прекращается, а в логе сохраняется запись «Cannot load plug-in!».
Плагин обрабатывает CDR и преобразует записи в формат, который используется в АСР LANBilling.
Если плагину не удаётся распознать запись, в логе агента сохранится запись «Cannot parse line: [исходная запись]». Необработанная запись будет добавлена в специальный файл для отфильтрованных вызовов.
Агент LBphone получает данные от парсера и передаёт их в LBcore по протоколу JSON/TCP. Адрес и пароль для подключения задаются в конфигурационном файле LBphone. Например, «server = admin@127.0.0.1:1502».
Если для агента LBphone настроена замена номеров, система применит к номерам условия, заданные в параметрах агента.
АСР LANBilling ищет в учётных записях номера и транки, полученные при обработке CDR. Эти идентификаторы указываются в учётных записях. Для каждой учётной записи, в которой обнаружен идентификатор, система определяет вызов как входящий или исходящий.
Если в учётной записи есть номера или транки, соответствующие ANI или trunk_in из CDR-файла, для неё вызов будет определён как исходящий.
Если в учётной записи есть номера или транки, соответствующие DNIS или trunk_out из CDR-файла, для неё вызов будет определён как входящий.
Вызов не может быть учтён для одной учётной записи сразу и как входящий, и как исходящий. Если в ней есть идентификаторы, подходящие под оба условия, то вызов будет определён как исходящий.
Участниками вызова могут быть как абоненты, так и операторы. Например, звонок может быть определён как входящий для абонента Алексеева, а как исходящий — для абонента Сергеева и оператора «Связьсеть». При этом с каждой стороны должен быть только один абонент и один оператор. К примеру, вызов не может исходить от двух абонентов: Алексеева и Сергеева.
Если в АСР LANBilling добавлено несколько операторов, система определяет, кто из них обслуживает этот вызов. В настройках агентов LBphone и VoIP указано, как определять оператора.
По признаку — система проверит, какие признаки заданы в учётных записях пользователей с типом «оператор». Как правило, это идентификатор линии или маршрут. Если в агенте выбран этот вариант, АСР LANBilling распознает оператора на предыдущем этапе, когда будет определять участников.
По кодам направлений из каталога телефонных номеров — для каждого оператора в системе должен быть создан каталог с направлениями. Например, если местные звонки обеспечивает один оператор, а междугородние — другой. АСР LANBilling проверит, к каким направлениям относятся номера, и определит, в чьём каталоге содержатся эти направления.
Чтобы алгоритм работал правильно, коды не должны повторяться в каталогах разных операторов.
АСР LANBilling проверяет, какой тариф назначен в учётной записи абонента.
По номерам, которые участвуют в звонке, система определяет направления из тарифа. Направления — это цифровые коды или маски телефонных номеров разных городов, регионов, стран и т. д.
Пример. Звонок поступил с номера +7 851 211-11-11 на номер +7 411 299-99-99. Первому номеру соответствует исходящее направление — «78512 Астрахань», а второму — входящее «74112 Якутск».
После того как система определит направление, станет известна и категория тарифа. В ней заданы условия списаний. Если не удалось определить направление и категорию, система относит вызов к категории Default.
АСР LANBilling рассчитывает списания за звонок, когда информация о нём обработана, известны участники и направление. Стоимость зависит от длительности звонка, а также от параметров тарифа и конкретной категории тарифа, к которой система отнесла вызов.
В учётной записи абонента может быть настроен мультитариф, то есть сочетание сразу нескольких тарифов. В этом случае есть некоторые особенности при учёте и тарификации звонков.
Подробные данные обо всех учтённых вызовах и списаниях можно посмотреть в статистическом отчёте.
Есть вопросы по документации? Пожалуйста, напишите их