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: