A2Billing – система отчетов и биллинга для Asterisk::Журнал СА 1.2008
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6227
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6933
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4217
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3007
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3807
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3823
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6317
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3172
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3462
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7279
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10647
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12367
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14000
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9126
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7079
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5389
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4617
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3428
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3156
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3402
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3027
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 A2Billing – система отчетов и биллинга для Asterisk

Архив номеров / 2008 / Выпуск №1 (62) / A2Billing – система отчетов и биллинга для Asterisk

Рубрика: Администрирование /  Администрирование

Сергей Яремчук

A2Billing – система отчетов и биллинга для Asterisk

Без системы учета переговоров услуги, предоставляемые VoIP-провайдером, не имеют смысла. В статье кратко познакомимся с возможностями системы управления и биллинга A2Billing и рассмотрим, как ее установить.

Почему именно A2Billing? Все просто. «Штатный» интерфейс AsteriskNOW, разрабатываемый в недрах Digium и доступный под свободной лицензией, обладает пока только зачаточными возможностями по учету переговоров. Хотя стоит отметить, развивается он очень быстро, а функционально более логичен и понятен, чем остальные решения, с которыми мне приходилось иметь дело. Для управления настройками Asterisk и учетными записями, по моему мнению, это самый удобный интерфейс из предлагаемых сегодня. Если систему учета звонков и оплату переговоров доведут до требуемого уровня, то, вероятно, конкурентов у него будет мало. Хотя их и так не очень много. Самыми развитыми на данный момент являются A2Billing и AstBill [5]. Так как о A2Billing будет рассказано далее более подробно, пару слов о возможностях AstBill.

Это очень простая в установке, но невероятно сложная в освоении система биллинга. Сложность в освоении связана с очень богатыми возможностями этой системы. Распространяется по лицензии GNU GPL, строится при помощи открытых продуктов – Apache, MySQL и Drupal и позволяет при помощи веб-интерфейса производить основные операции, полный список которых занимает два экрана. Чтобы было легче ориентироваться приведу лишь некоторые из них:

  • просмотр информации о SIP- и IAX-учетных записях, персональный контактный каталог с подкатегориями;
  • поддержка виртуальных учетных записей, с возможностью привязки к любому номеру;
  • биллинг, основанный на продолжительности звонка и направлении;
  • вывод баланса, расходов и платежей по каждому счету, звонки в кредит, предоплаченные услуги;
  • отсылка предупреждений о малом количестве средств на указанный e-mail;
  • возможность совершения звонка через веб-интерфейс.

Его функций вполне достаточно для любой организации среднего размера или небольшого VoIP-провайдера. К сожалению, интерфейс не локализован, как и у остальных участников этого обзора.

Рисунок 1. Интерфейс AsteriskNOW

Рисунок 1. Интерфейс AsteriskNOW

Рисунок 2. Интерфейс Astbill

Рисунок 2. Интерфейс Astbill

Рисунок 3. Интерфейс A2Billing

Рисунок 3. Интерфейс A2Billing

Рисунок 4. Создание новой учетной записи в A2Billing

Рисунок 4. Создание новой учетной записи в A2Billing

Возможности A2Billing

Система A2Billing [1] также распространяется по лицензии GNU GPL и в своей работе использует свободные компоненты, имеющиеся в репозитарии каждого дистрибутива. Это весьма функциональное решение для VoIP-компаний предоставляющее такие возможности как биллинг, отчеты и статистика в голосовых сетях IP и TDM. При необходимости легко может быть настроена для предоставления всего спектра услуг: тарифы, создание счетов, прием платежей через целый ряд платежных систем. Может быть сконфигурирован на предоставление звонков по карточкам, с использованием номера и PIN. Вот только некоторые функции A2Billing:

  • IVR (Interactive Voice Response) – с аутентификацией по Caller ID или Card Number, возможность выбора языка голосового меню, предустановки для быстрого доступа к нужной информации (баланс, время разговора и др.), переговоры между пользователями и другие;
  • веб-интерфейс администратора – создание учетных записей, каналов, подключение к VoIP-провайдерам, управление биллингом, управление и учет использования DID (Direct Inward Dialing) шлюзом, просмотр журналов, отчеты, а также создание карт, экспорт и импорт карт с других сервисов, настройка callback, работа с дистрибьютерами и так далее;
  • веб-интерфейс пользователя – просмотр информации о совершенных звонках, состоянии счета, веб-телефон, управление номерами, в том числе и DID, и многое другое.

Функций много, учитывая, что ядро A2Billing написано на PHP, то эту систему можно легко адаптировать для собственных нужд.

Установка A2Billing

Для установки A2Billing кроме рабочего сервера с рабочим Asterisk или FreePBX понадобится веб-сервер Apache, СУБД MySQL или PostgreSQL. Веб-сервер должен поддерживать PHP, а для PHP требуется несколько расширений – php-pgsql или php-mysql, GD и php-pcntl. Информации о поддерживаемых версиях PHP я не нашел, в документации можно найти примеры как с PHP4, так и с PHP5, поэтому можно сделать вывод что поддерживаются обе эти версии.

Проверить наличие необходимых модулей можно, введя «php -m», либо при помощи менеджера пакетов.

В RedHat и других использующих RPM:

# rpm -qa | grep php

В Ubuntu или Debian:

$ sudo dpkg –l php*

Для поддержки pcntl должен быть установлен пакет php5-cli. Проверяем подключен ли модуль для работы с выбранной БД в конфигурационном файле PHP php.ini. Так, для поддержки MySQL в нем должны быть такие строки:

extension=mysqli.so

И для GD:

extension=gd.so

Я покажу, как настроить A2Billing для совместной работы с MySQL. Вначале создаем базу данных:

$ mysqladmin create mya2billing -u a2billinguser -p

Регистрируемся и создаем пользователя, который будет иметь все необходимые права для доступа к нужной БД:

$ mysql –u root –p

mysql> GRANT ALL PRIVILEGES ON mya2billing.* TO 'a2billinguser'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

mysql> GRANT ALL PRIVILEGES ON mya2billing.* TO 'a2billinguser'@'localhost' IDENTIFIED BY ' password' WITH GRANT OPTION;

mysql>GRANT ALL PRIVILEGES ON mya2billing.* TO 'a2billinguser'@'localhost.localdomain' IDENTIFIED BY 'password' WITH GRANT OPTION;

mysql> flush privileges;

Query OK, 0 rows affected (0.03 sec)

mysql> quit

Пароль вместо password указываем, естественно, свой. Теперь очередь таблиц. Распаковываем полученный с сайта проекта архив. Для этого лучше создать отдельный каталог:

$ mkdir a2billing

$ cd a2billing

$ tar xzvf A2Billing_1.3.1.tar.gz

Внутри обнаружим несколько подкаталогов. Следующим шагом необходимо создать таблицы в базе данных, поэтому пока интересуют два из них. В подкаталоге Database находятся шаблоны PostgreSQL и MySQL. Причем для MySQL имеются шаблоны для разных версий MySQL от 3.x до 5.x. Переходим в распакованный каталог.

$ cd Database/mysql/Mysql-5.x/

$ mysql mya2billing -u a2billinguser -p < a2billing-mysql-schema-MYSQL.5.X-v1.3.0.sql

И проверяем, что все нормально:

$ mysql mya2billing -u a2billinguser –p

mysql> SELECT * FROM cc_ui_authen;

В ответ мы должны получить таблицу, содержащую список пользователей (пока их здесь два).

Конфигурационный файл A2billing

Конфигурационный файл A2billing называется a2billing.conf, готовый шаблон сейчас находится в корне распакованного архива. Для работы его следует скопировать в /etc/asterisk:

$ sudo cp –v a2billing.conf  /etc/asterisk

Конфигурационный файл большой и параметров в нем очень много. Структурно файл разбит на несколько секций по назначению:

  • database – здесь указываются параметры доступа к базе данных;
  • global – параметры общего назначения, например, количество возможных цифр в номере карточки, валюта по умолчанию, рисунок на счете, адрес электронной почты администратора и другие;
  • callback – настройка callback, контекст, номер и другие параметры;
  • vwebcustomerui – настройки веб-интерфейса пользователя, включение или выключение некоторых полей (оплата, информация, история вызовов, изменения пароля, e-mail для отправки сообщений об ошибках и другие);
  • webui – веб-интерфейс администратора, API, расположение некоторых каталогов Asterisk;
  • sip-iax-info – информация о настройках SIP и IAX;
  • epayment_method – настройки локального сервера (имя, адрес и каталог) и серверов для приема/подтверждения оплаты;
  • backup – архивирование настроек.

И некоторые другие. Пока в контексте настроек нас интересует секция database и некоторые параметры настройки интерфейса. Открываем файл и указываем в ней параметры, заданные при создании базы данных:

$ sudo vi /etc/asterisk/a2billing.conf

[database]

hostname = localhost

port = 5432

user = a2billinguser

password = password

dbname = mya2billing

;dbtype = postgres

dbtype = mysql

[global]

; Базовая валюта для расчетов, по умолчанию использован

; доллар. Конвертация и другие доступные валюты можно найти

; в таблице cc_curencies. Для рубля запись выглядит так:

; | id  | currency | name                 | value    | lastupdate          | basecurrency |

; | 112 | RUB      | Russian Rouble (RUB) |  0.03563 | 2008-01-22 21:02:59 | USD          |

; можно настроить автоматическое обновление котировок

; с finance.yahoo.com

base_currency = usd

; Рисунок, который будет показан на верху счета,

; это JPEG-файл в каталоге templates/default/images/

invoice_image = asterisk.jpg

; Электронный адрес администратора

admin_email = admin@server.com

; Настройки менеджера из /etc/asterisk/manager.conf

manager_host = localhost

manager_username = myasterisk

manager_secret = mypassword

[webui]

; Доступная валюта

currency_choose = usd, eur, rub       ; или all

; Файлы, в которые будут сохраняться новые настройки SIP

; и IAX сделанные в A2Billing

buddy_sip_file = /etc/asterisk/additional_a2billing_sip.conf

buddy_iax_file = /etc/asterisk/additional_a2billing_iax.conf

; Каталог MOH (Music on Hold)

dir_store_mohmp3 = /var/lib/asterisk/mohmp3

; И класс MOH classes в musiconhold.conf

num_musiconhold_class = 10

; Показ секции help в интерфейсе администратора (YES - NO)

show_help = YES

; Максимальный размер загружаемого файла, следует

; учитывать также параметр upload_max_filesize в Ubuntu,

; по умолчанию здесь установлено 2 Мб

my_max_file_size_import = 1024000    ; 1 Mб

; Каталог для загрузки мелодий MOH

dir_store_audio = /var/lib/asterisk/sounds/a2billing

; Максимальный их размер

my_max_file_size_audio=3072000  ; в байтах

; Разрешенные расширения файлов

file_ext_allow = gsm, mp3, wav

file_ext_allow_musiconhold = mp3

И так далее. Параметров, как я уже говорил, очень много.

Настройки в Asterisk

Теперь необходимо создать все каталоги, которые упоминаются в конфигурационном файле:

$ sudo mkdir /var/lib/asterisk/mohmp3/

Плюс подкаталоги для классов MOH, внутри /var/lib/asterisk/mohmp3. Сами классы MOH настраиваются в /etc/asterisk/musiconhold.conf [2]:

$ sudo mkdir /var/lib/asterisk/sounds/a2billing

$ sudo chmod 777 /var/lib/asterisk/sounds/a2billing

И чтобы создавать учетные записи при помощи A2Billing, он должен иметь право на запись в каталог Asterisk:

$ sudo chmod 777 /etc/asterisk

Именно так записано в документации. К сожалению, красивого решения на этот счет не предложено. Вывод «ls -al» показывает, что владельцем каталога является root и группа root. Сам Asterisk по умолчанию работает от имени root. Добавлять учетную запись, от имени которой работает веб-сервер в группу root, может только сумашедший. Вероятно, более правильно запускать Asterisk под своей учетной записью [6], например asterisk, который будет включен в группу Аsterisk, а вот в эту группу и добавить учетную запись веб-сервера.

Параметры учетных записей, созданных в A2Billing, будут записываться в файлы, указанные в переменных buddy_sip_file и buddy_iax_file, чтобы они были видны Asterisk, их необходимо подключить в его конфигурационных файлах. Для этого добавляем в файл sip.conf строку:

#include additional_a2billing_sip.conf

А в iax.conf:

#include additional_a2billing_iax.conf

В документации об этом не сказано, но пока я не создал эти файлы вручную и не задал и права доступа 777, A2Billing не мог создать новую учетную запись. Поэтому:

$ sudo touch /etc/asterisk/additional_a2billing_sip.conf

$ sudo chmod 777 /etc/asterisk/additional_a2billing_sip.conf

$ sudo touch /etc/asterisk/additional_a2billing_iax.conf

$ sudo chmod 777 /etc/asterisk/additional_a2billing_iax.conf

Опять же такая рекомендация дана на одном из форумов, и, судя по всему, все так и делают. Более правильным вариантом будет использование отдельной учетной записи для Asterisk, о чем сказано выше.

Теперь в /etc/asterisk/manager.conf создаем запись с именем и паролем, указанными в параметрах manager_username и manager_secret, и даем ему все необходимые права (подробно файл расписан в [2]).

 [general]

enabled = yes

port = 5038

bindaddr = 0.0.0.0

[myasterisk]

secret = mypassword

read = system,call,log,verbose,command,agent,user

write = system,call,log,verbose,command,agent,user

Установка веб-интерфейсов

Все основные настройки произведены. Теперь осталось подключить интерфейсы. Интерфейс администратора A2Billing находится в подкаталоге A2Billing_UI. Копируем его в корневой каталог веб-сервера. В Ubuntu комманда выглядит так:

$ sudo cp -rf A2Billing_UI /var/www

И делаем веб-сервер владельцем указанных файлов:

$ cat /etc/apache2/apache2.conf | grep User

User www-data

$ sudo chown –R www-data /var/www/A2Billing_UI

Устанавливаем возможность записи в подкаталог templates_c:

$ sudo chmod 777 /var/www/A2Billing_UI/templates_c

Чтобы проверить, набираем в браузере http://IP-адрес/A2Billing_UI, для регистрации используем учетную запись root с паролем myroot или admin mypassword (их подсмотреть можно в таблице cc_ui_authen, пароли хранятся в открытом виде). Для дополнительной его защиты следует использовать htaccess.

При помощи интерфейса администратора можно работать с учетными записями: создавать, генерировать и импортировать из CSV-файла SIP- и IAX-учетные записи. Для создания сразу нескольких учетных записей, например для организации доступа по карточкам, используется средство генерации. Для удобства учета пользователи, совершающие исходящие звонки во вкладке «Outbound CID», могут объединяться в CID-группы. Во вкладке «Billing» расположены инструменты для просмотра статистики оплаты, вывода должников и прочие операции, связанные с тарификацией звонков. Выбрав «Trunk», добавляем каналы и данные VoIP-провайдеров.

В других меню найдете файловый менеджер, при помощи которого можно загружать файлы MOH, инструменты управления учетными записями с правами администратора, отправки сообщений и рассылок группе пользователей, резервирование базы данных, различные отчеты.

Файлы для создания веб-интерфейса пользователя находятся в подкаталоге A2BCustomer_UI. С ним поступаем аналогично администраторскому:

$ sudo cp -rf A2BCustomer_UI /var/www

$ sudo chown –R www-data /var/www/

$ sudo chmod 777 /var/www/A2BCustomer_UI/templates_c

В последнем каталоге A2Billing_AGI находятся AGI (Asterisk Gateway Interface)-скрипты. Их нужно скопировать в каталог к другим подобным скриптам, используемым Asterisk:

$ cd A2Billing_AGI            

$ sudo cp a2billing.php /var/lib/asterisk/agi-bin/

Делаем его исполняемым:

$ sudo chmod +x /var/lib/asterisk/agi-bin/a2billing.php

$ sudo cp -rf libs_a2billing /var/lib/asterisk/agi-bin/

Чтобы Asterisk мог работать с A2Billing, создадим специальное расширение в файле /etc/asterisk/extensions.conf:

[a2billing]

exten => _X.,1,Answer

exten => _X.,2,Wait,2

exten => _X.,3,DeadAGI,a2billing.php

exten => _X.,4,Wait,2

exten => _X.,5,Hangup

Все, теперь можно создавать при помощи A2Billing учетные записи и управлять ими. Принимать оплату и прочее. К сожалению, документация проекта еще не завершена, а интерфес не локализован, поэтому некоторое время понадобится, чтобы освоить A2Billing. A2Billing использует для локализации gettext, но на сайте проекта хотя и указан адрес человека, который занимается руссифкацией, нет данных о текущем состоянии. Некоторую информацию по локализации интерфейса и некоторых файлов можно найти на форумах [4].

Приложение

CDR-файл в Asterisk

Для каждого вызова сервер Asterisk генерирует запись CDR (Call Detail Record). По умолчанию вся информация (номер, Caller ID, направление, время начала, вызова, ответа и окончания и прочая) хранится в CSV-файле /var/log/asterisk/cdr-csv. Формат записей, даты и времени определен в файле cdr/cdr_csv.c. Для удобства учета можно в конфигурационных файлах или при помощи команд указать учетные коды (${CDR(accountcode)}), флаги AMA (Automated Message Accounting) на каждый канал или пользователя, которые будут использованы при биллинге. Возможно хранение CDR-информации в базе данных. Поддерживаются – SQLite, MySQL, PostgreSQL, unixODBC, MS SQL, Sybase и некоторые другие. При необходимости можно самому написать скрипты для извлечения нужных данных и тарификации разговоров.

  1. Сайт проекта A2Billing – http://trac.asterisk2billing.org/cgi-bin/trac.cgi.
  2. Яремчук С. Asterisk: организуем автоматическое распределение поступающих вызовов. //Системный администратор, № 12, 2007 г. – С. 44 – 47.
  3. Wiki по созданию учетной записи – http://wiki.asterisk2billing.org/index.php/User_guide.
  4. Форумы по A2Billing – http://forum.asterisk2billing.org и русскоязычный – http://asteriskforum.ru.
  5. Сайт проекта AstBill – http://astbill.com.
  6. Запуск Asterisk не от имени root – http://www.voip-info.org/wiki/index.php?page=Asterisk+non-root.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru