АСР LANBilling получает от АТС информацию о звонках в виде CDR-файлов. Разные модели АТС сохраняют записи о звонках в разных форматах. Чтобы биллинг мог обработать эти файлы, их необходимо преобразовать — для этого нужны парсеры. Парсеры для наиболее распространённых моделей АТС уже есть в АСР LANBilling, но вы можете добавить свой.
Форматы CDR делятся на два вида: бинарные и текстовые. В зависимости от того, какой формат использует ваша АТС, загрузите в АСР LANBilling файл парсера или файл конфигурации.
Бинарный формат — загрузите отдельный файл парсера.
Текстовый формат обрабатывает text_plug-in — он уже входит в АСР LANBilling. Вам нужно загрузить только файл конфигурации, в котором заданы правила разбора. Расширение файла — conf.
Сохраните файл в директории /usr/local/billing/parsers/
.
Откройте форму агента LBphone. Перейдите на вкладку «Парсеры».
Нажмите «Добавить».
В открывшемся окне укажите название парсера. Также заполните описание — оно будет отображаться в других формах настроек.
Выберите тип «парсер».
Введите название файла.
Сохраните файл в директории /usr/local/billing/parsers-configs/
.
Откройте форму агента LBphone. Перейдите на вкладку «Парсеры».
Нажмите «Добавить».
В открывшемся окне укажите название парсера. Также заполните описание — оно будет отображаться в других формах настроек.
Выберите тип «файл конфигурации».
Введите название файла.
Затем добавьте станцию — в её параметрах нужно будет указать парсер. Когда ваши абоненты будут совершать вызовы, LBphone определит, с какой станции они поступают, и подключит нужный парсер.
Парсер можно добавить в форме любого сетевого агента с типом LBphone. В дальнейшем парсер можно будет использовать для остальных агентов LBphone.
Когда завершите настройку, задайте параметры в файле конфигурации, а затем запустите модуль LBphone.
Когда агент LBphone запускается, он получает параметры настройки из БД LBcore. Среди этих настроек есть краткое название формата CDR — поле name в таблице pabxes. Также там содержится название парсера, работающего с этим форматом — поле plug-in в таблице pabxes. LBphone пытается загрузить этот парсер.
Если удалось успешно загрузить и запустить плагин, агент входит в цикл обработки CDR-файлов. Агент получает CDR от станции, указанной в настройках, и передаёт файл плагину для обработки.
Если запустить плагин не удаётся, работа агента прекращается, а в логе сохраняется запись «Cannot load plug-in!».
Плагин обрабатывает CDR и преобразует записи в формат, который используется в АСР LANBilling: параметр_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 и особенностей парсера.
Если плагину не удаётся распознать запись, в логе агента сохранится запись «Cannot parse line: [исходная запись]». Необработанная запись будет добавлена в специальный файл для отфильтрованных вызовов.
Агент LBphone получает данные от парсера и передаёт их в LBcore по протоколу JSON/TCP. Адрес и пароль для подключения задаются в конфигурационном файле LBphone. Например, «server = admin@127.0.0.1:1502».
Есть вопросы по документации? Пожалуйста, напишите их