Клиентское приложение единое для Windows и UNIX-систем, различия в установке незначительны, поэтому процесс описан в одной главе.
1) Загрузите клиент биллинга BGBillingClient_X.X_Y.zip (X.X — номер версии, Y — билда)и распакуйте его в произвольное место. На машине, где установлен клиент должна стоять JDK (допускается JRE);
2) Выполните стандартные действия для Linux, либо стандартные действия для Windows;
3) Для Linux пропишите переменную JAVA_HOME в начале .sh скриптов:
4) В каталоге BGBillingClient найдите файл client.properties.
В случае, если клиент установлен на одну с сервером машину, ничего менять не надо. Если необходимо подключиться к серверу с другого рабочего места укажите вместо 127.0.0.1 адрес машины, где установлен сервер BGBilling и, при необходимости, хост и порт прокси, если подключение идёт не напрямую.
Аналогичным образом вы можете добавить ещё один сервер BGBilling, доступный для подключения. Нужно лишь добавить аналогичный набор записей ниже, исправив server.0 на следующий номер. Например:
5) Запустите клиент с помощью пакетного файла bgbilling_w9x.bat для Win98/ME, bgbilling_w2k.bat для Windows2000/XP/2003, bgbilling.sh для Linux. Если клиент не стартует, либо после старта обнаруживаются проблемы, запустите DEBUG-версию bgbilling_debug.bat, либо bgbilling_debug.sh, при этом в каталоге BGBillingClient должен появится файл log, который вы можете передать разработчикам при разборе проблемы.
6) Если клиент стартовал, вы увидите окошко авторизации (см. рисунок).

В списке подключений необходимо выбрать требуемый сервер.

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

Вы можете изменить файл, в котором сохраняются пароли и дополнительные соединения установив опцию —Dlocal.setting.file.name=<имя отличное от config> в скрипте запуска клиента, например так:
Это может быть полезно, если на одной машине запускается несколько клиентов для разных версий биллинга.
Если соединение не прошло, проверьте, запущен ли сервер MySQL.
7) Если вы устанавливали модули или плагины, то при загрузке клиента должно быть выведено сообщение об установке обновлении системы, после чего потребуется перезапуск клиента.

- Введение
- Требования к установке и установка пакетов из репозиториев
- Установка A2billing
- Конфигурирование Asterisk для работы с A2billing
- Настройка логирования A2billing
- Введение
- Требования к A2billing
- Установка A2billing
- Скачивание и разархивирование исходного кода
- Создание БД
- Конфигурационный файл a2billing.
- Установка прав, создание необходимых файлов и директорий
- Установка agi скриптов
- Графический интерфейс A2billing
- Преобразование диалплана
- Логи и crontab
- Заключение
- Выгоды, основные этапы и возможные сложности
- Почему стоит внедрять биллинговую систему?
- Основные этапы внедрения биллинга
- С какими трудностями может столкнуться компания?
- Другие статьи
- Область применения систем биллинга
- Биллинговая система для стартапов
- MVNO
- Наши клиенты
- Обсудить проект. Оставьте заявку!_
- Обзор программного комплекса
- Установка MagnusBilling
- Вывод
- Быстрая установка биллинга на Debian 9 или CentOS 7
- Быстрая установка двумя командами
- Быстрая установка по шагам
- Замечание
- Что такое биллинговая система простыми словами
- Современный биллинг
- Другие статьи
- Внедрение биллинга в компании: выгоды, основные этапы и возможные сложности
- MVNO
- Область применения систем биллинга
- Наши клиенты
- Обсудить проект. Оставьте заявку!_
Введение
Давайте разберемся, что такое биллинговая система и для чего она нужна.
Чтоже такое биллинг? Слово биллинг произошло от английского слова «bill», что в переводе означает «счёт». Т.е. «биллинг» — это выставление счетов о расходах, задолженостях и др. Отсюда можно вывести, что биллинговые системы — это комплекс программного обеспечения, позволяющий вести учёт тарифов, вычислять стоимость услуг для каждого клиента.
Биллинговые системы применяются телекоммуникационными операторами, начиная от операторов сотовой связи, заканчивая операторами стационарной связи. Но это не означает, что их нельзя приметь и в малых сферах, к примеру на предприятии. Эти системы можно использовать для внутренней телефонии. Это позволить более детально вести учет телефонных разговоров. Также проводить анализ звонков сотрудников, с детальным описание звонка, т. е. кто, куда, сколько и за какую цену.
Данная инструкция поможет разобраться в установке и настройке биллинговой системы a2billing v2.x на Centos 6.9 с предустановленным Freepbx. В ней будет рассмотрены системные требования к ПО, подробная инструкция получения, установки, а также возможность интеграции такой системы с астериском.
Для написания статьи использовалась система Centos 6.9, FreePBX 13.0.192.19 и Asterisk 13.21.0
Требования к A2billing
Как и любой «софт», a2billing использует дополнительные программные компоненты, а также сторонние библиотеки, не установленные по умолчанию в системе. Если вы только предустановили сервер и у вас никаких пакетов не установлено, то внимательно прочитайте этот раздел, он поможет определить какое ПО вам потребуется установить для функционирования биллинговой системы a2billing.
Для корректной работы и установки A2billing необходимы следующие сервисы:
• Apache/2.2.15
• Asterisk > 1.8
• Mysql 5.x
• PHP >= 5.3.0
Дабы избежать дальнейших ошибок при установки a2billing требуется наличие в системе следующих библиотек PHP:
• php-pgsql
• php-mcrypt
• php-xml
• php-gd
• php-php-gettext
• php-soap
# yum install epel-release php-mcrypt php-xml perl-DBD-Pg php-soap php-gd php-pgsql php-php-gettextЕсли у вас только Asterisk без web интерфейса, вам также надо установить php
Если набор ПО и библиотек PHP у вас уже имеется или вы его уже установили, то можно уже переходить к установке a2billing.
Установка A2billing
A2billing по своей сути — это web приложение со своей базой данных. Приложение написано на PHP. По окончанию процедур у нас будет удобный web интерфейс.
Установка A2billing выделяет несколько шагов
• Скачивание и разархивирование исходного кода
• Создание БД
• Редактирование конфигурационного файла /etc/a2billing.conf и установка параметров подключения к БД
• Установка прав, создание необходимых файлов и директорий
• Установка графического интерфейса A2billing
• Установка agi скриптов
• Преобразование диалплана
• Добавление задач в crontab
Рассмотрим каждый пункт подробнее и опишем каждое действие.
Скачивание и разархивирование исходного кода
Установка любого программного продукта начинается с получения его устаногочного файла или исходных файлов. А2billing — свободно распространяемое ПО и его исходные коды можно найти в интернете. В данном раделе будет описано, где найти «исходники» a2billing, а также информация как и куда их устанавливать.
Перейдем в директорию в которой у нас будут исходники, в данном случае это /usr/src, увас она может быть другая
cd /usr/srcСовет: если она у вас не установлена, её можно поставить командой<br> yum install -y git
# git clone https://github.com/Star2Billing/a2billing.gitЖдем, пока скачается, затем переходим в скаченную директорию командой
Cd
# cd /usr/src/a2billing# curl -sS https://getcomposer.org/installer | phpphp composer.phar installПосле установки composer выполним обновление необходимых нам зависимостей до последней версии следующей командой.
# php composer.phar updateПосле обновления, нужно установить все найденные зависимости — это выполняется следующим образом:
# php composer.phar installРезультат проделанных действий можно наблюдать на изображении ниже.

По окончанию установки у вас должна появиться в текущей директории папка vendor
Создание БД
Поскольку A2billing – web приложение с учётом тарифов, а также анализирующее тарифы, то оно используюет свою базу данных. Исходя из этого необходимо создать и заполнить её необходимыми таблицами. В этом разделе рассмотрим, как создать нужную нам Базу Данных, а также заполнить её необходимыми таблицами.
- В скачанной ранее директории a2billing уже есть sql файл с созданием БД поэтому будем использовать его. Если вы находитесь в другой директории нужно перейти по следующему пути:
# cd /usr/src/a2billing/DataBase/mysql-5.x/Если вам необходимо заменить данные или по каким то причинам вас не устраивают значения по умолчанию, их можно заменить открыв файл любым текстовым редактором и заменить эти значения на удобные для вас.
Рассмотрев назначение нужного файла или заменив необходимые данные, создадим БД
# mysql -u root -p < a2billing-createdb-user.sqlПосле выполнения команды система попросит ввести root пароль для mysql. Введя root пароль, создастся новая БД с указанными вами данными.
2. Завершив предыдущую процедуру, выполним скрипт для заполнения базы таблицами.
# ./install-db.shВыполнение скрипта потребует ввод информации:
- Database Name – имя БД к которой будем подключаться
- Hostname – имя хоста или IP адрес mysql сервера
- UserName – имя пользователя под которым будем подключаться (будем использовать имя указанное выше)
- Password — пароль пользователя mysql
Полученный результат и выполнение команд можно посмотреть на изображении ниже.

3. Чтобы проверить создались ли таблицы после выполнения скрипта install-db.sh — подключаемся к БД
# mysql -u root -p mya2billingВас поприветствует консоль mysql. В ней введем командуй SHOW TABLES. Созданные таблицы можно посмотреть на скрине ниже.

Конфигурационный файл a2billing.
Как и asterisk, a2billing имеет свои конфигурации. Которые позволяют ему подключаться к БД, использовать режимы логирования и т. д. В этом разделе будет рассказано где найти конфигурационный файл, какие правки в нем произвести.
Скопируем конфигурационный файл a2billing в директорию /etc/.
# cp /usr/src/a2billing/a2billing.conf /etc/[database]
hostname = localhost
port = 3306
user = a2billinguser
password = a2billing
dbname = mya2billing
dbtype = mysql
Рис 4. Редактирование конфигурационного файла (pic4.png)
Установка прав, создание необходимых файлов и директорий
Перво-на-перво создадим конфигурационный файлы additional_a2billing_iax.conf и additional_a2billing_sip.conf в директории с файлами конфигурации астериска.
# touch /etc/asterisk/additional_a2billing_iax.conf
# touch /etc/asterisk/additional_a2billing_sip.confЧтобы астериск мог использовать эти файлы, назначим права пользователя и группы asterisk.
# chown asterisk. /etc/asterisk/additional_a2billing_iax.conf -R
# chown asterisk. /etc/asterisk/additional_a2billing_sip.conf -RКогда назначены права, включим эти файлы в основные конфигурационные файлы астериска, т. к. без этого астериск не сможет понять, что у него есть эти файлы и у него не получитсяиспользовать эти настройки.
# echo \#include additional_a2billing_sip.conf >> /etc/asterisk/sip_custom.conf
# echo \#include additional_a2billing_iax.conf >> /etc/asterisk/iax_custom.conf
Укажем AMI пользователя, который будет подключаться к астериску в файле /etc/asterisk/manager_custom.conf.
[a2billing]
secret=very_hard_password
read=system,call,log,verbose,comm# cp -rf /var/www/html/a2billing/common/lib /var/lib/asterisk/agi-bin
# cp -rf /var/www/html/a2billing/vendor /var/lib/asterisk/
# chown asterisk. /var/lib/asterisk/agi-bin/ -R
# chown asterisk. /var/lib/asterisk/vendor -R
# chmod +x /var/lib/asterisk/agi-bin/a2billing.php
# chmod +x /var/lib/asterisk/agi-bin/a2billing_monitoring.phpand,agent,user
write=system,call,log,verbose,command,agent,user
Установка agi скриптов
Ниже будет описано изменение диалплана астериска. Поэтому, чтобы диалплан корректно работал необходимо скопировать agi скрипты из директории a2billing, которую мы скачали из репозиториев git в разделе Скачивание и разархивирование исходного кода. Для это го перейдем в директорию с agi скриптами a2billing командой cd и скопируем файлы a2billing.php и a2billing_monitoring.php в директорию agi скриптов астериска /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, а также установить права на выполнение командой chmod c ключом +x.
# chown asterisk. /var/lib/asterisk/agi-bin/ -R
# chmod +x /var/lib/asterisk/agi-bin/a2billing.php
# chmod +x /var/lib/asterisk/agi-bin/a2billing_monitoring.phpГрафический интерфейс A2billing
# 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
# 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Теперь можно подключаться к web интерфейсу, для этого в адресной строке любого браузера укажите путь к диретории a2billing:
http://<YOUR_IP_ADDRESS>/a2billing/admin
Преобразование диалплана
Для того, чтобы биллинг корректно работал и собирал информацию о звонках. Также можно было оценивать и расчитывать стоимость вызовов, на астериске необходимо внести правки в диалплан — добавить использование AGI скриптов. В этом разделе рассмотрим применение установленных ранее AGI скриптов, а также адаптивное изменение входящих и исходящих вызовов, для связи c A2billing
Сперва, выполним добавление некоторых строк в файл диалпана /etc/asterisk/extensions_custom.conf.
[macro-dialout-trunk-predial-hook]
exten => s,1,GotoIf($["${OUT_${DIAL_TRUNK}:4:4}" = "A2B/"]?custom-freepbx-a2billing,${OUTNUM},1:2)
exten => s,2,MacroExit
[custom-freepbx-a2billing]
exten => _X.,1,AGI(a2billing.php,${OUT_${DIAL_TRUNK}:8})
exten => _X.,n,Hangup()
[a2billing_callingcard]
exten => _X.,1,NoOp(A2Billing Start)
exten => _X.,n,AGI(a2billing.php,1)
exten => _X.,n,Hangup
[a2billing_voucher]
exten => _X.,1,Answer(1)
exten => _X.,n,AGI(a2billing.php,1,voucher)
exten => _X.,n,Hangup
[custom-a2billing-did]
exten => _X.,1,AGI(a2billing.php,1,did)
exten => _X.,2,HangupУказанная часть диалплана рассчитана под Freepbx. Если у вас голый астериск, придется редактировать вносимые данные, также изменять под свой диалплан
Посмотрев на вносимые контексты, можно заметить контекст macro-dialout-trunk-predial-hook. Этот контекс преднастроен в FreePBX, поэтому его надо перенесть в файл /etc/asterisk/extensions_override_freepbx.conf. Этот контекст, вызывается из макроса в стандартном контексте FreePBX macro-dialout-trunk.
В условии оператора GotoIf видим сравнение с частью имени транка A2B/. Для этого необходимо создать «кастомный» транк, в котором нужно указать строку вызова A2B/1.



Сохраняем изменения кнопкой Submit и переходим в раздел «Connectivity» – «Inbound Routes». Теперь выбрав необходимый нам маршрут, в этой статье будет использован маршрут ANY DID / ANY CID – для любых DID номеров, кроме указанных в модуле. В редактировании этой записи, выбираем в разделе «Set Destination» созданное ранее кастомное направление «Custom Destionations» — «Inbound to A2billing did». «Inbound to A2billing did» — описание кастомного направления используемого для этой статьи.

Осталось сохранить и применить настройки «Submit» – «Apply Config».
Логи и crontab
Для отладки работы биллинга, как и для любого другого ПО используются логи. С помощью логирования легко находить те или иные ошибки в работе ПО, а также предпринимать своевременные меры по их устранению. Поэтому в этом разделе будем рассматривать настройку логирования системы A2billing.
Сперва, создадим директорию хранения файлов логирования командой mkdir.
mkdir -p /var/log/a2billingВ созданной директории создадим файлы логов командой touch. Затем на всю папку установим права доступа для пользователя asterisk.
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. /var/log/a2billingС созданием файлов логов завершили, теперь приступим к настройке crontab.
Биллинговая система использует несколько скриптов, которые необходимо запускать по расписанию, для этого будет использоваться встроенная утилита Linux — crontab. Подробнее с crontab можно ознакомиться здесь.
Сперва. Создадим директорию и дадим права доступа для пользователя asterisk. В ней будет храниться информация о PID (Process ID) запущенного процесса.
mkdir -p /var/run/a2billing
chown asterisk:asterisk /var/run/a2billingДалее создадим директорию с скриптами A2billing. Для статьи будет использована директория /tmp/local/a2billing. Т.к. её в системе нет, надо её создать,
mkdir -p /usr/local/a2billingВсе необходимые скрипты, которые необходимо поместить в cron находятся в директории /usr/src/a2billing/Cronjobs. Рекурсивно копируем их командой cp с ключом -R в созданную нами папку. Также в эту директорию поместим, сделав символьную ссылку на папку с библиотеками из /var/www/html/a2billing/common/lib и также зададим права на доступ к директории.
cp -R /usr/src/a2billing/Cronjobs /tmp/local/a2billing/
ln -sf /var/www/html/a2billing/common/lib /tmp/local/a2billing/Cronjobs/lib
chown -R asterisk. /tmp/local/a2billing/Преднастройки выполнены, перейдем к заполнению информации в crontab
# обновление таблицы валют
0 6 * * * php /usr/local/a2billing/Cronjobs/currencies_update_yahoo.php
# усправление ежемесячными подписками
0 6 1 * * php /usr/local/a2billing/Cronjobs/a2billing_subscription_fee.php
# Проверка балланса каждого пользователя, для отправки email при низком балансе
0 * * * * php /usr/local/a2billing/Cronjobs/a2billing_notify_account.php
# этот скрипт проверяет все DID номера клиента, а также осуществляет
# проверку платны за номер
# а также выставление счетов за DID
0 2 * * * php /usr/local/a2billing/Cronjobs/a2billing_bill_diduse.php
# Скрипт обработки запущенного сервиса a2billing
0 12 * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_process.php
# Формирование счетов для каждого пользователя
0 6 * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_billing.php
# Управление оповещениями
0 * * * * php /usr/local/a2billing/Cronjobs/a2billing_alarm.php
# Управление архивами
0 12 * * * php /usr/local/a2billing/Cronjobs/a2billing_archive_data_cront.php
# Автоматическая перезапись и очистка кеша
0 10 21 * * php /usr/local/a2billing/Cronjobs/a2billing_autorefill.php
15 * * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_cache.php
Заключение
Проделав выше указанные действия у вас будет произведеена связка a2billing и астериска. В данной статье не будет рассмотрена работа и настройка самой системы a2billing. С этой темой можно ознакомиться на официальном сайте программного продукта.
Выгоды, основные этапы и возможные сложности
Применение биллинга позволяет автоматизировать и оптимизировать многие бизнес-процессы, исключить ошибки и злоупотребления при взаимодействии персонала компании с клиентами, упростить процесс подготовки счетов, сократить дебиторскую задолженность и многие другое.
Почему стоит внедрять биллинговую систему?
Внедрение биллинга увеличивает эффективность компании при работе с постоянными клиентами, так как проведение взаиморасчетов, предоставлении или отключении услуг, смена тарифа требуют быстрого отклика. Вручную подобные операции обрабатывается достаточно долго, а биллинг способен обрабатывать сотни тысяч запросов в минуту.
Автоматизация процессов, являющихся типовыми для операторов мобильной связи, интернет-провайдеров, операторов кабельного того, уже давно стала востребованной и в других сферах. Внедрение биллинга необходимо для ЖКХ, в бухгалтерии, компаниям, работающим по моделям IAAS, PAAS, SAAS, сетевым торговым сетям, предприятиям энергетической и нефтяной отраслей. Главным показателем внедрение биллинга является большое число клиентов, которое требует постоянной работы с документами и обращениями.
Основные этапы внедрения биллинга
Внедрение биллинговой системы в компании проходит в несколько этапов:
- Разработка технического задания. Выполняется стратегическое и предпроектное планирование, формируется ТЭО на систему. Разработчик получает от заказчика (компании) исходные данные, требования, предъявляемые к готовой системе, необходимые возможности биллинга для решения определенных задач.
- Проработка юридического соглашения. Создание и подписание договора на разработку, внедрение, обслуживание биллинговой системы на предприятии (в компании).
- Разработка технического проекта. Это разработка самого решения и проведение пуско-наладочных работ. К пуско-наладочным работам относится установка биллинг системы на конкретных вычислительных машинах, обучение персонала компании, подготовка технического проекта со всей проектной документацией.
- Опытная эксплуатация. На данном этапе заказчик получает эксплуатационную документацию на систему. Проводится адаптация, настройка всех компонентов на всех технических средствах компании, автоматизированная актуализация данных. Далее выполняется тестирование для проверки работоспособности, опытная эксплуатация без реальных взаиморасчетов с клиентами.
- Миграция данных. Загрузка уже имеющихся информационных данных.
- Обучение сотрудников. Любая система требует знаний и опыта её эксплуатирования. Биллинг также не будет исключением.
- Подготовка к вводу в промышленную эксплуатацию. Проводятся все необходимые работы по размещению, подключению, настройке аппаратной части, в том числе оборудования сетей связи. Начинается эксплуатация биллинговой системе в рабочем режиме.
Дальнейшими отдельными этапами внедрения можно назвать обслуживание, модернизацию и расширение системы. Данные процессы осуществляются разработчиком или его официальным представителем на основании соответствующих дополнительных договоров.
С какими трудностями может столкнуться компания?
Среди распространенных сложностей, с которыми может столкнуться руководство и персонал компании при внедрении биллинговой системы можно отметить следующее:
- Сложность процесса даже при наличии подробной документации. При самостоятельном внедрении системы биллинга у собственных специалистов компании уйдет достаточно много времени для ознакомления с особенностями готового продукта.
- Трудности миграции. Даже похожие по функциональным возможностям, принципам работы и построения системы могут иметь принципиальные различия. Сотрудники компании при работе с новой биллинговой системой не сразу привыкают к её особенностям, что приводит к снижению эффективности рабочего процесса и ошибкам.
- Экспоненциальное возрастание цены ошибки. Даже малейшая ошибка при самостоятельном внедрении, интеграции и настройки ПО может в дальнейшем привести к определённым последствиям – например, неправильным расчетам по тарифу среди большого числа клиентов, блокировка услуг абонентов, отмена программ лояльности и т.д.
Избежать подобных проблем можно, если при приобретении биллинговой системы заказать её внедрение непосредственно у разработчика или официального представителя. В конечном счёте подобный подход к процессу внедрения позволяет сэкономить время, финансовые затраты и сложности взаимодействия с новой системой.
Другие статьи

Область применения систем биллинга

Биллинговая система для стартапов

MVNO
Наши клиенты
Обсудить проект. Оставьте заявку!_
Magnus
Billing это программный продукт, предоставляющий комплексное решение для
развертывания телефонии и основанный на программной АТС Asterisk. Данная
VoIP-система предоставляет своим пользователям широкие возможности для
создания, управления и мониторинга телефонии из единого веб-интерфейса. Система
является бесплатной и имеет открытый исходный код.
Обзор программного комплекса
Magnus Billing это разработка
бразильской компании Magnus Solution. Изначально проект был закрытым, но с 2015
года исходный код системы был открыт и опубликован под лицензией GPL. Проект
активно поддерживается и развивается, имеется документация, видеоуроки по
установке и настройке, каналы поддержки в Telegram на нескольких языках. Magnus
Solution также предлагают коммерческую поддержку
продукта и возможность адаптации к конкретным задачам заказчика.
Magnus Billing основан на таких разработках, как Asterisk (бекенд телефонии),
ExtJS (веб-фронтэнд), Yii Framework (бекенд).
Как уже упоминалось, комплекс
предоставляет пользователям широкие возможности по работе с телефонией: это и
конфигурирование самой АТС, управление SIP-инфраструктурой, средства
мониторинга, инструменты генерации отчетов с различными фильтрами, средства по
управлению финансами (биллинг).
В состав этого комплекса Magnus Billing входят следующие компоненты:
- модуль управления
SIP/IAX-инфраструктурой — предоставляет средства конфигурирования экстеншенов,
позволяет просматривать звонки в реальном времени, а также содержит средства по
конфигурированию маршрутизаторов Linksys (если они используются в вашей сетевой
инфраструктуре);
- модуль биллинга — содержит
инструменты для управления финансовой стороной вашей АТС, интересной его
особенностью является поддержка большого количества платежных систем (например,
PayPal);
- модуль входящей/исходящей
маршрутизации — предоставляет широкие возможности по управлению звонками
(перенаправление вызовов, создание очередей, интерактивных меню и т.п.).
Позволяет в реальном времени мониторить состояние вызова в очереди и активных
агентов;
- модуль тарификации —
предназначен для управления ценовыми политиками звонков;
- модуль отчетов — мощный
инструмент для генерирования и просмотра различных отчетов по множеству
параметров;
- модуль транков — средство
управления транками и мониторинг их состояния;
- модуль конфигурации — набор
инструментов, по настройке как самой телефонии, так и системы MagnusBilling.
Позволяет также управлять доступом к API программного комплекса;
- модуль телефонной книги —
управление телефонной книгой, создание массовых звонков, массовых SMS-рассылок,
создание групп клиентов;
- модуль CallShop — меню
управления сервисами, предоставляющими услуги телефонной связи;
- модуль расширений —
управление различными расширениями для решения узкоспециализированных задач;
- Домашняя страница -отображает
статистику вызовов (соотношение отвеченных и неотвеченных),использование
транков, финансовую статистику и оказываемую нагрузку на аппаратные ресурсы.
Установка MagnusBilling
Развертывание системы Magnus Billing автоматизировано
за счет установочных скриптов и не предоставляет проблем даже для начинающих
администраторов. Разработчики рекомендуют производить установку на операционные
системы Debian версии 8 и новее, либо Centos 7 и новее.
Для установки переходим в каталог с исходными кодами:
производим установку программы wget (если она
еще не установлена в вашей системе):
yum -y install wget
с ее
помощью скачиваем скрипт установки MagnusBilling:
после скачивания разрешаем выполнение скрипта в системе:
chmod +x install.sh
и
запускаем его выполнение:
После
чего мы увидим консоль установки системы MagnusBilling:

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

По завершении установки MagnusBilling запросит
перезагрузку операционной системы, после ее окончания вы можете перейти по
адресу http://*you_server_ip*/mbilling/ и увидеть стартовую страницу
биллинговой системы:


Изменить
параметры авторизации можно в меню настроек пользователя:

Рассмотрим
более подробно элементы настройки самой VoIP-системы: они находятся в левом
боковом меню, нас интересует каталог “Конфигурация”:
Пункт “Menus” — позволяет отключить неиспользуемые меню и назначить права
доступа к ним для пользователей:


Пункт
“Settings” — здесь расположены настройки веб-интерфейса MagnusBilling, такие
как язык интерфейса, параметры используемой валюты, настройки почтовых
уведомлений, настройки для прослушивания записей CDR и т.д.

Пункт
“Шаблоны Email” содержит конфигурацию шаблонов email-уведомлений для клиентов биллинга.
Можно редактировать существующие шаблоны, создавать новые, распределять шаблоны
по языковым группам, а также настраивать переменные, используемые в шаблонах.


Вывод
MagnusBilling — простой в освоении и установке, но при
этом достаточно мощный инструмент, который может быть использован для быстрого
разворачивания телефонии на предприятии или в офисе. Данная VoIP-система имеет
широкий спектр прикладных возможностей, которых нет в других, не ориентированных
на биллинговые операции панелях. Также MagnusBilling “из коробки” умеет многие
полезные функции, которые пригодятся администраторам, например, рассылка
email-уведомлений или создание бан-листов. Несомненным плюсом данного продукта
является его бесплатность и поддержка от разработчиков.
Быстрая установка (Debian 9 или CentOS 7.5)
Быстрая установка двумя командами
Быстрая установка по шагам
Быстрая установка биллинга на Debian 9 или CentOS 7
Данный скрипт предназначен для установки биллинга и вспомогательного ПО на чистую систему (предпочтительно виртуальную машину). Он также используется для создания готовых образов виртуальных машин.
Для выполнения данного сценария требуются привилегии root или sudo.
Данный сценарий не позволяет настраивать параметры установки.
Сценарий требует установленных утилит nc, wget, curl, unzip, sed.
Мы рекомендуем всегда проверять сценарии, загруженные из Интернета, прежде чем запускать их локально.
Быстрая установка двумя командами
Для установки приложений биллинга и вспомогательного ПО выполните:
Для включения приложений в автозагрузку выполните:
Для старта приложений выполните:
Быстрая установка по шагам
Установите MySQL или MariaDB согласно инструкции или
для установки MySQL 5.7 выполните:
для установки MariaDB 10.2 выполните:
В зависимости от дистрибутива ОС, в директории /etc/mysql/common/ или в /etc/my.cnf.d/ будет находиться файл common.cnf, на который будет ссылаться my.cnf.
Для установки JDK8 выполните:
Для увеличения лимитов открытых файловых дескрипторов (сокетов/потоков) Linux для пользователей root и mysql выполните:
Для установки приложений биллинга выполните:
Для включения приложений в автозагрузку выполните:
Для старта приложений выполните:
Клиентское приложение единое для Windows и UNIX-систем, различия в установке незначительны, поэтому процесс описан в одной главе.
1) Загрузите клиент биллинга (X.X — номер версии, Y — билда)и распакуйте его в произвольное место. На машине, где установлен клиент должна стоять JDK (допускается JRE);
2) Выполните стандартные действия для Linux, либо стандартные действия для Windows;
3) Для Linux пропишите переменную JAVA_HOME в начале .sh скриптов:
cd ${0%${0##*/}}.
JAVA_HOME=/opt/java/jre4) В каталоге найдите файл .
db.server.0.title=MyBilling db.server.0.url=http://127.0.0.1:8080/bgbilling/executer db.server.0.proxy.host= db.server.0.proxy.port=
В случае, если клиент установлен на одну с сервером машину, ничего менять не надо. Если необходимо подключиться к серверу с другого рабочего места укажите вместо 127.0.0.1 адрес машины, где установлен сервер BGBilling и, при необходимости, хост и порт прокси, если подключение идёт не напрямую.
Аналогичным образом вы можете добавить ещё один сервер BGBilling, доступный для подключения. Нужно лишь добавить аналогичный набор записей ниже, исправив server.0 на следующий номер. Например:
db.server.1.title=NextBilling db.server.1.url=http://www.bill.com:8080/bgbilling/executer db.server.1.proxy.host=my.proxy.com db.server.1.proxy.port=3128
5) Запустите клиент с помощью пакетного файла для Win98/ME, для Windows2000/XP/2003, для Linux. Если клиент не стартует, либо после старта обнаруживаются проблемы, запустите DEBUG-версию , либо , при этом в каталоге должен появится файл , который вы можете передать разработчикам при разборе проблемы.
6) Если клиент стартовал, вы увидите окошко авторизации (см. рисунок).

В списке подключений необходимо выбрать требуемый сервер.

При установке базы биллинга в ней создаётся единственный пользователь c паролем . После первого входа желательно поменять пароль в целях безопасности.
Обратите внимание на опцию , её необходимо установить, чтобы библиотеки установленных на сервере модулей могли быть получены клиентом. Опцию можно снимать при подключении к сторонним серверам для предотвращения получения нежелательных обновлений.
При выборе в списке позиции и нажатии кнопки открывается редактор подключений где вы можете создать подключение к новому серверу биллинга.

Замечание
Вы можете изменить файл, в котором сохраняются пароли и дополнительные соединения установив опцию в скрипте запуска клиента, например так:
start javaw -Dupdate.folder=lib.update -Djavax.net.ssl.trustStore=.keystore -Dsun.net.client.defaultConnectTimeout=1000 -Xmx256m -Duser.language=ru -Duser.region=RU -Dlocal.setting.file.name=config_v.4.5 -cp %CLASSPATH% bitel.billing.ShellFrame
Это может быть полезно, если на одной машине запускается несколько клиентов для разных версий биллинга.
mysql -ubill -pbgbilling bgbilling
Если соединение не прошло, проверьте, запущен ли сервер MySQL.
7) Если вы устанавливали модули или плагины, то при загрузке клиента должно быть выведено сообщение об установке обновлении системы, после чего потребуется перезапуск клиента.
Что такое биллинговая система простыми словами
Каждый раз, когда вы куда-то звоните, скачиваете страничку из Интернета, отсылаете СМС или просто смотрите телевизор, где-то, далеко от вас, работает биллинг. Для чего он нужен? Прежде всего, чтобы вести строгий учёт всем предоставленным услугам. Собранная информация первична. На её основе формируются начисления за предоставленные услуги и выставляются счета. Как правило, эта информация долго и надёжно хранится, ведь абонент, в любой момент, может потребовать подробную детализацию по сформированным начислениям, чтобы сверить её с полученными услугами. Вы, как потребитель услуг, можете посчитать функции биллинга вторичными или даже вредными, для себя лично, но подумайте вот о чём. Без биллинга весь этот бизнес просто не будет работать.
Итак, вы собрались продавать услуги — интернет-трафик, телефонию или вообще какой-то рекламный контент, не важно. Вам нужен биллинг. В любом случае, предоставленные услуги должны учитываться. Что биллинг умеет? Довольно много. Часто, собранная информация нуждается в предварительной обработке. Обычно, просто потому что её очень много. Для того, чтобы биллинг работал, собранные данные агрегируются, делаются более компактными.
Затем, в дело включается тарификатор, выполняя оценку собранных данных — перевод всего в деньги. Тарифицировать можно всё что угодно: продолжительность предоставления услуги, потребленный трафик, количество оказанных услуг. Сами тарифы могут быть очень сложными: стоимость услуги может зависеть от времени суток, различные направления в телефонии могут иметь разную стоимость, тарификация может вестись по преобладающей услуге. Кроме того, существуют различные скидки, бонусы и прочие акции, придуманные маркетинговым отделом. И всё это может меняться, едва ли не каждый день. Чтобы удержать потребителя, бизнес, а значит и тарификатор, должен быть очень гибким. Кстати, для работы самого маркетингового отдела, постоянно требуются отчеты. Всегда разные. С маркетингом не соскучишься.
Но вот, начисления сформированы. На этом всё? Конечно нет. Услуги могут предоставляться по условиям пред- или постоплаты. Если с постоплатой более-менее понятно, то с предоплатой всё гораздо сложнее. Биллинг должен контролировать состояние лицевых счетов абонентов, выполнять списания с них начислений в реальном времени и блокировать предоставление услуг, в момент исчерпания средств. Это важно, ведь может оказаться так, что за услугу предоставленную сверх имеющихся у абонента средств, платить придётся владельцу бизнеса, из своего кармана. А ещё, абонента крайне желательно предупреждать заранее об исчерпании средств и гибко управлять доступом к услугам, в зависимости от состояния его лицевого счета.
Остались сущие мелочи: сформировать счета, довести их до абонентов и получить деньги. Это просто, если абонентов немного, но, в большинстве случаев, для одной только печати счетов абонентам могут потребоваться услуги небольшой типографии. С получением денег тоже не всё гладко. Прежде всего, деньги — это строгая отчётность. Наличные должны быть проведены через кассу и фискализированы. Безналичные перечисления — это эквайринг с самыми разнообразными банками. Даже самый простой заявленный платеж требует функционирования личного кабинета. А личный кабинет — это современное web-приложение с надежной и безопасной авторизацией, например через ЕСИА. Как правило, для него разрабатываются мобильные приложения, как минимум для двух платформ: iOS и Android. И конечно, все данные по платежам должны быть переданы в бухгалтерскую систему.
Современный биллинг
Современный биллинг — это сложная, постоянно развивающаяся система, интегрированная со всеми системами предприятия: CRM — для работы с клиентами, ERP — для управления предприятием, SCADA — если речь идёт о промышленном производстве, бухгалтерией и аналитическими системами. Часто, биллинговая система интегрирована с системами управления оборудованием, предоставляющим доступ к услугам конечным потребителям. Биллинг — интеграция с банковскими системами эквайринга и Госуслугами, это личный кабинет и мобильные приложения. Биллинг — система, которая хранит и обрабатывает самые важные для бизнеса данные и делает это быстро и надежно. Если биллинг остановится, бизнес тоже перестанет работать.
Другие статьи

Внедрение биллинга в компании: выгоды, основные этапы и возможные сложности

MVNO


