понедельник, 7 мая 2012 г.

Lanbilling с asterisk 1.8

После публикации статьи "Офисная АТС на Asterisk малой кровью или бюджетный способ получить мини АТС с функциями серьезной станции"  много воды утекло и много чего поменялось. Появлялись новые версии программного обеспечения, менялись способы их развёртывания.. В данной заметке я хочу обобщить свой опыт в вопросе интеграции биллинговой системы Lanbilling 1.8 с сервером asterisk 1.8 и далее дополнить статью информацией по связке asterisk 1.8 с Lanbilling 2.0

Сервер asterisk версий 1.4.x и 1.6.x снят с технической поддержки 21.04.2012, это значит что более не будет исправления проблем связанных с безопасностью и любая уязвимость ставит под угрозу работу предприятия которое обслуживается сервером указанных версий. Вместо этих версий предлагается воспользоваться LTS релизом сервера asterisk с версией 1.8, вот тут и начинаются сложности, потому что связка Lanbilling 1.8 - (agi скрипт авторизации и perl скрипт аккаунтинга) - asterisk 1.8 не работает. Это поправимо, сейчас мы во всём разберёмся.

Начинаем процесс установки с нуля, те у кого уже установлена рабочая система с lanbilling, asterisk 1.2 или asterisk 1.4, соответствующими скриптами авторизации и аккаунтинга могут сразу переходить к разделу "Обновление до asterisk 1.8 на рабочей системе".

 Установка asterisk 1.8 с нуля

Решать вопрос будем на дистрибутиве CentOS, на настоящий момент последняя версия 5.8, архитектура i386. По ходу установки дистрибутива создаём пользователя "asterisk". Далее переходим к установке соответствующих версий программного обеспечения. 

Установка биллинговой системы достаточно подробно описана в документации Lanbilling 1.8, рекомендуется ей воспользоваться при возникновении вопросов по биллинговой системе.

Для предварительного тестирования связки Lanbilling 1.8 - (agi скрипт авторизации и perl скрипт аккаунтинга) - asterisk 1.8 рекомендуется воспользоваться демонстрационными версиями Lanbilling 1.8

Устанавливаем защиту основных веток репозитория:

$sudo yum install yum-protectbase

Убеждаемся что в файле /etc/yum/pluginconf.d/protectbase.conf директива enabled=1. В файле /etc/yum.repos.d/CentOS-Base.repo устанавливаем protect=1 для разделов [base] и [updates]

Нам требуется установить сервер asterisk 1.8, для этого подключаем репозитории которые появились у компании Digium:

$sudo wget /etc/yum.repos.d/ http://packages.asterisk.org/centos/centos-asterisk.repo
$sudo wget /etc/yum.repos.d/ http://packages.digium.com/centos/centos-digium.repo

также нам потребуется репозиторий rpmforge для получения дополнительных пакетов:

$sudo rpm -ivh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
После выполнения команд:
$sudo yum clean all
$sudo yum update
У нас в директории /etc/yum.repos.d/ должны появиться дополнительные конфигурационные файлы отвечающие за соответствующие версии asterisk. В файлах centos-asterisk-1.4.repo и centos-digium-1.4.repo директиву enabled=1 меняем на enabled=0, а в файлах centos-asterisk-1.8.repo и centos-digium-1.8.repo напротив, ставим enabled=1.

Устанавливаем asterisk 1.8
$sudo yum clean all
$sudo yum install asterisknow-version, asterisk-configs, asterisk-core, asterisk-doc, asterisk-voicemail, asterisk-sounds-moh-opsound-alaw, asterisk-sounds-core-en-ulaw, asterisk-sounds-core-en-alaw
В случае если у нас установлена плата расширения от Digium устанавливаем пакеты:
$sudo yum install asterisk-dahdi, dahdi-tools, dahdi-tools-doc
Добавляем переменные AST_USER="asterisk" и AST_GROUP="asterisk" в файл /etc/rc.d/init.d/asterisk 

Обновление до asterisk 1.8 на рабочей системе

Тем у кого уже имеется установленная рабочая система требуется сначала удалить asterisk 1.2.x или 1.4.x, а также в случае наличия карт расширения от компании Digium и соответствующие пакеты dahdi.
Проверяем корректность установленных пакетов

$sudo yum install yum-utils
$sudo package-cleanup --orphans
Удаляем пакеты из представленного списка и устанавливаем их правильные версии (yum remove, yum install) за исключением пакета(ов) которые начинаются с LB*. Это файлы биллинговой системы.

Устанавливаем asterisk 1.8
$sudo yum clean all
$sudo yum install asterisknow-version, asterisk-configs, asterisk-core, asterisk-doc, asterisk-voicemail, asterisk-sounds-moh-opsound-alaw, asterisk-sounds-core-en-ulaw, asterisk-sounds-core-en-alaw
В случае если у нас установлена плата расширения от Digium устанавливаем пакеты:
$sudo yum install asterisk-dahdi, dahdi-tools, dahdi-tools-doc
В дальнейшем можно поместить пользователей описанных в конфигурационных файлах в базу данных, для этого можно сразу установить пакеты:
$sudo yum install asterisk-addons-mysql

Настройка RADIUS авторизации и аккаунтинга

Устанавливаем пакеты:
$sudo yum install freeradius2
$sudo yum install perl-Crypt-CBC, perl-Crypt-DES, perl-RadiusPerl, perl-MD5
Устанавливаем пакет asterisk-perl:
$cd
$wget http://asterisk.gnuinter.net/files/asterisk-perl-1.03.tar.gz
$tar -zxvf asterisk-perl-1.03.tar.gz
$cd asterisk-perl-1.03/
$perl Makefile.PL
$make all
$sudo make install
Адаптируем RADIUS клиент с версии Asterisk 1.4 на работу с версией asterisk 1.8:

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

$tar -zxvf radiusclient-1.8.tar.gz
Копируем agi-rad-auth.agi
$sudo cp agi-rad-auth.agi /var/lib/asterisk/agi-bin/
Копируем ast-rad-acc.pl
$sudo cp ast-rad-acc.pl /usr/sbin/
Для работы RADIUS клиента также необходим изменённый словарь (radius dictionary) который распаковываем в директорию /etc/raddb/

Настройка asterisk 1.8

Все конфигурационные файлы asterisk находятся в директории /etc/asterisk В файл modules.conf Добавляем загрузку модуля res_agi.so:
load => res_agi.so
Копируем файлы extension.conf, manager.conf, sip.conf из архива radiusclient-1.8.tar.gz в директорию /etc/asterisk Запускаем asterisk
$sudo service asterisk restart
Запускаем скрипт аккаунтинга:
$/usr/sbin/ast-rad-acc.pl
Заходим в консоль управления сервером, настраиваем SIP телефоны и делаем тестовый звонок и смотрим лог звонка в биллинговой системе Lanbilling:
$asterisk -r

Комментариев нет:

Отправить комментарий