A2billing installation

a2billing, asterisk

Alexcr

Начнем с обновления системы

 aptitude update && aptitude upgrade && reboot

Качаем Asterisk 

cd /usr/src/

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
tar -zxvf asterisk-13-current.tar.gz

Устанавливаем все зависимости для сборки Астреа

./asterisk-13.6.0/contrib/scripts/install_prereq install

./asterisk-13.6.0/contrib/scripts/install_prereq install-unpackaged

Собираем астериск 

./configure

 make menuselect

проверяем res_odbc и cdr_odbc модули, они должны быть с *  отмечены. Если их нет то устанавливаем odbc и снова ./configure 

 make && make install && make samples && make config && make install-logrotate

make samples - генерирует конф файлы /etc/asterisk 

make config добавляет asterisk  в /etc/init.d/  - для авто запуска 

make install-logrotate - добавляет настройки в /etc/logrotate/ для ротации логов

Добавим пользователя asterisk

groupadd asterisk

useradd asterisk -g asterisk -d /var/lib/asterisk/

Устанавливаем пакеты для A2B (при установке mysql попросит вбить пароль) 

aptitude install mysql-client mysql-server apache2 libapache2-mod-php5 php5-mysql vim-tiny php-pear php-db php5-gd php5-curl php-soap

Качаем и устанавливаем a2billing 

cd /usr/src/

git clone https://github.com/Star2Billing/a2billing.git

Готовим базу mysql 

mysqladmin create a2billing -p

mysql -p -e "CREATE USER 'a2billing'@'localhost' IDENTIFIED BY '4f0843e3430aa7ffd1';"

mysql -p -e "GRANT ALL PRIVILEGES ON a2billing. * TO 'a2billing'@'localhost';"

mysql -p -e "FLUSH PRIVILEGES;"

Заливаем данные в базй 

./a2billing/DataBase/mysql-5.x/install-db.sh

Отвечаем на вопросы 

Install A2Billing Database
--------------------------

Enter Database Name :
a2billing
Enter Hostname :
localhost
Enter UserName :
a2billing
Enter Password :
4f0843e3430aa7ffd1

Копируем конфиг 

cp a2billing/a2billing.conf /etc/

редактируем его 

vim /etc/a2billing.conf

находим настройки Д Б и указываем наши параметры 

[database]
hostname = localhost
port =
user = a2billing
password = 4f0843e3430aa7ffd1
dbname = a2billing
dbtype = mysql

Готовим конфигурационные файлы 

touch /etc/asterisk/additional_a2billing_iax.conf
touch /etc/asterisk/additional_a2billing_sip.conf
echo \#include additional_a2billing_sip.conf >> /etc/asterisk/sip.conf
echo \#include additional_a2billing_iax.conf >> /etc/asterisk/iax.conf

Устанавливаем голосовые файлы 

для астера РУ 

cd /usr/src/asterisk-13.6.0/

make menuselect

выбираем в Core Sounds нужные нам пакеты 

 make && make install

Устанавливаем a2billing голосовые файлы 

редактируем скрипт 

cd /usr/src/a2billing/
vim addons/sounds/install_a2b_sounds.sh

меняем    ast_sound=/usr/share/asterisk/sounds на  ast_sound=/var/lib/asterisk/sounds

cd addons/sounds/
./install_a2b_sounds.sh

Копируем веб 

mkdir /var/www/html/a2billing

cp -rf /usr/src/a2billing/admin /var/www/html/a2billing
cp -rf /usr/src/a2billing/agent /var/www/html/a2billing
cp -rf /usr/src/a2billing/customer /var/www/html/a2billing
cp -rf /usr/src/a2billing/common /var/www/html/a2billing
cp -rf /usr/src/a2billing/vendor/ /var/www/html/a2billing/vendor/
cd /usr/src/a2billing
curl -sS https://getcomposer.org/installer | php
php composer.phar install

Разбераемся с правами 

vim /etc/asterisk/asterisk.conf 

убераем комент ; от строк 

runuser = asterisk    
rungroup = asterisk 

Меняем юзера для apache 

vim /etc/apache2/envvars

меняем строки 

export APACHE_RUN_USER=asterisk
export APACHE_RUN_GROUP=asterisk

Устанавливаем AGI скрипты 

mkdir /var/lib/asterisk/agi-bin
cd /usr/src/a2billing/AGI               
cp a2billing.php /var/lib/asterisk/agi-bin
cp a2billing_monitoring.php /var/lib/asterisk/agi-bin
chown -R asterisk:asterisk /var/lib/asterisk/agi-bin
chmod 755 /var/lib/asterisk/agi-bin/a2billing.php
chmod 755 /var/lib/asterisk/agi-bin/a2billing_monitoring.php
ln -s /var/www/html/a2billing/common/lib /var/lib/asterisk/agi-bin/lib

задаем права на папки и файлы 

chown -R asterisk:asterisk /var/www/html/a2billing
chmod 755 /var/www/html/a2billing/admin/templates_c
chmod 755 /var/www/html/a2billing/customer/templates_c
chmod 755 /var/www/html/a2billing/agent/templates_c
chown asterisk:asterisk -R /etc/asterisk/
chown asterisk:asterisk -R /var/lib/asterisk/
chown asterisk:asterisk -R /var/spool/asterisk/
chown asterisk:asterisk -R /usr/lib/asterisk/
chown asterisk:asterisk -R /var/log/asterisk/
mkdir -p /var/run/a2billing
chown asterisk:asterisk /var/run/a2billing

Настраиваем cron

mkdir -p /usr/local/a2billing
cp -R /usr/src/a2billing/Cronjobs /usr/local/a2billing/
ln -sf /var/www/html/a2billing/common/lib /usr/local/a2billing/Cronjobs/lib
chown -R asterisk:asterisk /usr/local/a2billing


добавляем крон для астера

vim /var/spool/cron/asterisk 

# update the currency table
0 6 * * * php /usr/local/a2billing/Cronjobs/currencies_update_yahoo.php

# manage the monthly services subscription
0 6 1 * * php /usr/local/a2billing/Cronjobs/a2billing_subscription_fee.php

# To check account of each Users and send an email if the balance is less than the user have choice.
0 * * * * php /usr/local/a2billing/Cronjobs/a2billing_notify_account.php

# this script will browse all the DID that are reserve and check if the customer need to pay for it.
# bill them or warn them per email to know if they want to pay in order to keep their DIDs.
0 2 * * * php /usr/local/a2billing/Cronjobs/a2billing_bill_diduse.php

# This script will take care of the recurring service.
0 12 * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_process.php

# To generate invoices and for each user.
0 6 * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_billing.php

# to proceed the autodialer
*/5 * * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_autodialer.php

# manage alarms
0 * * * * php /usr/local/a2billing/Cronjobs/a2billing_alarm.php

# manage archive
0 12 * * * php /usr/local/a2billing/Cronjobs/a2billing_archive_data_cront.php

#autorefill
0 10 21 * * php /usr/local/a2billing/Cronjobs/a2billing_autorefill.php
15 * * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_cache.php

добавляем логи для a2billing

mkdir -p /var/log/a2billing
touch /var/log/a2billing/cront_a2b_alarm.log
touch /var/log/a2billing/cront_a2b_autorefill.log
touch /var/log/a2billing/cront_a2b_batch_process.log
touch /var/log/a2billing/cront_a2b_archive_data.log   
touch /var/log/a2billing/cront_a2b_bill_diduse.log   
touch /var/log/a2billing/cront_a2b_subscription_fee.log   
touch /var/log/a2billing/cront_a2b_currency_update.log   
touch /var/log/a2billing/cront_a2b_invoice.log   
touch /var/log/a2billing/cront_a2b_check_account.log   
touch /var/log/a2billing/a2billing_paypal.log
touch /var/log/a2billing/a2billing_epayment.log
touch /var/log/a2billing/a2billing_api_ecommerce_request.log
touch /var/log/a2billing/a2billing_api_callback_request.log
touch /var/log/a2billing/a2billing_api_card.log
touch /var/log/a2billing/a2billing_agi.log

chown -R asterisk:asterisk /var/log/a2billing

Безопасность 

touch /var/www/html/a2billing/index.html

Пробуем зайти в a2billing 

http://my-ip//a2billing/admin/ 

user : root

pass: changepassword

разу советую поменять его.

Меняем версию астера

переходим в SYSTEM SETTINGS - > Global List

в низу выбираем показать весь список и ищем "asterisk_version" и меняем его на 1_11 

Переходим к настроики реалтайм Asterisk 

Старт