После публикации статьи "Офисная АТС на 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.
Проверяем корректность установленных пакетов
Устанавливаем asterisk 1.8
В новой версии Asterisk изменились события по которым происходит работа через интерфейс manager, так же есть ряд изменений по AGI интерфейсу.
Проверяем корректность установленных пакетов
$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
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
Комментариев нет:
Отправить комментарий