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 и позволява използването на уеб интерфейса за извършване на основни операции, пълният списък на които заема два екрана. За да се ориентирам по-лесно, ще дам самонякои от тях:
Неговите функции са достатъчни за всяка средно голяма организация или малък VoIP доставчик. За съжаление, интерфейсът не е локализиран, както останалите участници в този преглед.
Фигура 1. Интерфейс AsteriskNOW
Фигура 2. Интерфейс на Astbill
Фигура 3. Интерфейс A2Billing
Фигура 4. Създаване на нов акаунт в A2Billing
Системата A2Billing [1] също се разпространява под GNU GPL лиценз и използва безплатни компоненти, налични в хранилището на всяка дистрибуция. Това е изключително функционално решение за VoIP компании, предоставящо такива функции като таксуване, отчитане и статистика в IP и TDM гласови мрежи. Ако е необходимо, той може лесно да бъде конфигуриран да предоставя пълната гама от услуги: тарифи, създаване на фактури, приемане на плащания чрез редица платежни системи. Може да се конфигурира да предоставя картови разговори с помощта на номер и ПИН. Ето само някои от функциите на A2Billing:
Има много функции, като се има предвид, че ядрото на A2Billing е написано на PHP, тази система може лесно да се адаптира към вашите собствени нужди.
За да инсталирате A2Billing, в допълнение към работещ сървър с работещ Asterisk или FreePBX, ще ви трябва Apache уеб сървър, MySQL или PostgreSQL DBMS. Уеб сървърът трябва да поддържа PHP, а PHP изисква няколко разширения - php-pgsql или php-mysql, GD и php-pcntl. Не намерих информация за поддържаните версии на PHP, в документацията можете да намерите примери с PHP4 и PHP5, така че можем да заключим, че и двете версии се поддържат.
Можете да проверите наличието на необходимите модули, като въведете "php -m" или използвате пакетния мениджър.
На RedHat и други, използващи RPM:
# rpm -q grep php
В Ubuntu или Debian:
$ sudo dpkg -lphp*
Пакетът php5-cli трябва да бъде инсталиран, за да поддържа pcntl. Проверете дали модулът е свързан за работа с избраната база данни в конфигурационния файл PHP php.ini. Така че за поддръжка на MySQL трябва да има следните редове:
Ще ви покажа как да настроите A2Billing да работи с MySQL. Първо създаваме базата данни:
$ mysqladmin създайте mya2billing -u a2billinguser -p
Ние се регистрираме и създаваме потребител, който ще има всички необходими права за достъп до желаната база данни:
mysql> ПРЕДОСТАВЯНЕ НА ВСИЧКИ ПРИВИЛЕГИИ НА mya2billing.* НА 'a2billinguser'@'%' ИДЕНТИФИЦИРАН С 'парола' С ОПЦИЯ ЗА ПРЕДОСТАВЯНЕ;
mysql> ПРЕДОСТАВЯНЕ НА ВСИЧКИ ПРИВИЛЕГИИ НА mya2billing.* НА 'a2billinguser'@'localhost', ИДЕНТИФИЦИРАН С 'парола' С ОПЦИЯ ЗА ПРЕДОСТАВЯНЕ;
mysql>ПРЕДОСТАВЯНЕ НА ВСИЧКИ ПРИВИЛЕГИИ НА mya2billing.* НА 'a2billinguser'@'localhost.localdomain' ИДЕНТИФИЦИРАН ОТ 'парола' С ОПЦИЯ ЗА ПРЕДОСТАВЯНЕ;
mysql> флъш привилегии;
Заявката е ОК, 0 засегнати реда (0,03 сек)
Парола вместо парола посочваме, разбира се, нашата собствена. Сега е ред на масите. Разопаковайте архива, получен от сайта на проекта. За да направите това, по-добре е да създадете отделна директория:
$ tar xzvf A2Billing_1.3.1.tar.gz
Вътре ще намерим няколко поддиректории. Следващата стъпка е да създадете таблици в базата данни, така че две от тях засега представляват интерес. Поддиректорията Database съдържа шаблоните PostgreSQL и MySQL. Освен това за MySQL има шаблони за различни версии на MySQL от 3.x до 5.x. Отидете в разопакованата директория.
$ mysql mya2billing -u a2billinguser -p
И проверете дали всичко е наред:
$ mysql mya2billing -u a2billinguser –p
mysql> ИЗБЕРЕТЕ * ОТ cc_ui_authen;
В отговор трябва да получим таблица, съдържаща списък с потребители (засега има два от тях).
A2billing конфигурационен файл
Конфигурационният файл на A2billing се нарича a2billing.conf, готовият шаблон вече е в корена на разопакования архив. За да работи, трябва да се копира в /etc/asterisk:
$ sudo cp –v a2billing.conf /etc/asterisk
Конфигурационният файл е голям и в него има много параметри. Структурно файлът е разделен на няколко раздела според предназначението им:
И някои други. Досега в контекста на настройките се интересуваме от секцията с база данни и някои настройки на интерфейса. Отворете файла и задайте в него параметрите, посочени при създаването на базата данни:
$ sudo vi /etc/asterisk/a2billing.conf
; Основна валута за сетълменти, използвана по подразбиране
; долар. Можете да намерите конвертиране и други налични валути
; в таблицата cc_currencies. За рублата записът изглежда така:
; id валута име стойност последна актуализация базова валута
; 112 RUB Руска рубла (RUB) 0,03563 2008-01-22 21:02:59 USD
; можете да настроите автоматични актуализации на котировките
; Чертежът, който ще бъде показан в горната част на фактурата,
; това е jpeg файл в директорията templates/default/images/
; Настройки на мениджъра от /etc/asterisk/manager.conf
валута_избор = usd, eur, rub; или всички
; Файлове, в които ще бъдат запазени новите SIP настройки
; и IAX направени в A2Billing
; MOH (Music on Hold) каталог
; И класовете на MOH в musiconhold.conf
; Показване на секцията за помощ в администраторския интерфейс (ДА - НЕ)
; Максималният размер на качен файл трябва да бъде
; разгледайте също параметъра upload_max_filesize в Ubuntu,
; по подразбиране е 2 MB
my_max_file_size_import = 1024000; 1 MB
; Директория за изтегляне на мелодии на MOH
; Максималният им размер
my_max_file_size_audio=3072000 ; в байтове
; Разрешени файлови разширения
file_ext_allow = gsm, mp3, wav
И така нататък. Има много параметри, както казах.
Настройки в 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
Точно това пише в документацията. За съжаление не е предложено добро решение за това. Резултатът от "l -al" показва, че директорията е собственост на root и групата root. Самият Asterisk работи като root по подразбиране. Само луд може да добави акаунта, под който работи уеб сървърът, към основната група. Вероятно е по-правилно да стартирате Asterisk под вашия акаунт [6], например asterisk, който ще бъде включен в групата Asterisk, и да добавите акаунта на уеб сървъра към тази група.
Параметрите на акаунтите, създадени в A2Billing, ще бъдат записани във файловете, посочени в променливите buddy_sip_file и buddy_iax_file, за да бъдат видими за Asterisk, те трябва да бъдат включени в неговите конфигурационни файлове. За да направите това, добавете следния ред към файла sip.conf:
В документацията не се споменава това, но докато не създадох ръчно тези файлове и не зададох разрешенията на 777, A2Billing не можеше да създаде нов акаунт. Ето защо:
$ sudo докосване/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]).
Всички основни настройки са направени. Сега остава да свържете интерфейсите. Административният интерфейс на A2Billing се намира в поддиректорията A2Billing_UI. Копирайте го в основната директория на уеб сървъра. В Ubuntu командата изглежда така:
$ sudo cp -rf A2Billing_UI /var/www
И направете уеб сървъра собственик на посочените файлове:
$ cat /etc/apache2/apache2.conf grep потребител
$ sudo chown -R www-данни /var/www/A2Billing_UI
Задайте възможност за запис в поддиректорията templates_c:
$ sudo chmod 777 /var/www/A2Billing_UI/templates_c
В други менюта ще намерите файлов мениджър, с който можете да качвате MOH файлове, инструменти за управление на акаунти с администраторски права, изпращане на съобщения и имейли до група потребители, архивиране на база данни, различни отчети.
Файловете за създаване на уеб потребителския интерфейс се намират в поддиректорията A2BCustomer_UI. С него действаме подобно на администратора:
$ sudo cp -rf A2BCustomer_UI /var/www
$ sudo chown -R www-данни /var/www/
$ sudo chmod 777 /var/www/A2BCustomer_UI/templates_c
В последнияДиректорията A2Billing_AGI съдържа AGI (Asterisk Gateway Interface) скриптове. Те трябва да бъдат копирани в директория с други подобни скриптове, използвани от Asterisk:
$ 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: