2 недели назад решил автоматизировать процесс загрузки логов из АТС в биллинг, т.к. руками лень - слишком много телодвижений, а товарищи из МТА успели подготовить утилиты для линукс для конвертации логов из бинарного формата в текстовый.
Скажу сразу, log_parser.pl - конвертирует логи из CDR формата 10(в CallBuilder задается) в формат BGB, хотя callbuilder уже умеет конвертировать логи сразу в формат BGB. Но сои познания в perl не настолько сильны, чтобы я мог поправить парсер из одного формата в другой. Поэтому такой костыль.
мои скрипты написаны на lua.
Требования к системе:
- Для работы системы необходимо установить perl.
-
Необходимо скачать собрать программу callbuilder- Необходимо установить пакеты(apt):
1. lua:
-- liblua5.1-socket2
--
date-- liblua5.1-filesystem0
Код:
# aptitude install lua5.1 liblua5.1-socket2 liblua5.1-filesystem0
На других, не debian-based системах эти пакеты могут называться как то иначе
2. 7z
-- p7zip-full
Код:
# aptitude install p7zip-full
Установка:
Скрипты из папки scripts копируем в папку /usr/local/logloader
В папке folders создана структура, которую необходимо воссоздать на вашей машине с биллингом.
Описание папок:
raw - сюда скачиваются сырые логи с АТС. сырые логи сортируются по подпапкам формата ММ_ГГГ
cooked - сюда складываются логи после обработки их программой callbuilder. Файлы сортируются так же как и raw
parsed - сюда помещаются готовые к употреблению биллингом файлы. Файлы сортируются так: ГГГ/MM/ДД_ЧЧ.zip
backup - сюда складываются 2 типа файлов: 1 - бекапятся файлы сырых логов, 2 - бэкапятся текстовые файлы логов.
bin - в этой папке лежит скрипт parse_log.pl, который парсит только 1 файл, указанный ему через командную строку.
Для работы системы необходимо после установки файлов отредактировать файлы:
common.lua - там поправить пути к директориям логов, чтобы они соответствовали вашим. Кроме того, необходимо в таблице options указать переменной phone_mid id модуля телефонии в Вашем биллинге
telnet.lua - поправить хост, на котором у вас находится сервер биллинга. У меня это локалхост.
Ну и чтобы это правда было автоматически, вешаем на cron задание, чтобы он раз в сутки запускал скрипт log_loader.lua
_________________

using billingClient.BGB 4.6;
using server.Ubuntu server 9.10;
using server.Java "1.6.0_15";
using client.Ubuntu 10.04;