Установка Asterisk 13 в связке с FreePBX 13 на Debian 8 Jessie/Ubuntu 14.04 Trusty Tahr. Добавление поддержки протокола SCCP.
Разберем как выполнить установку Asterisk 13 в связке с FreePBX 13 и с поддержкой протокола SCCP на Debian 8 Jessie/Ubuntu 14.04 Trusty Tahr.
Переходим в режим работы под root:
sudo su
Подготовка системы
Перед началом установки обновляем систему до актуального состояния:
apt-get update && apt-get upgrade -y
Устанавливаем необходимые зависимости:
apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev libmyodbc -y
Перезагружаем систему:
reboot
После перезагрузки, не забываем снова войти под root.
Устанавливаем DAHDI
wget http://jakondo.ru/wp-content/uploads/file-manager/Asterisk/13/dahdi-linux-complete-current.tar.gz tar -zxvf dahdi-linux-complete-current.tar.gz cd dahdi-linux-complete-2.11.1+2.11.1/ make all make install make config cd ..
Устанавливаем Libpri
wget http://jakondo.ru/wp-content/uploads/file-manager/Asterisk/13/libpri-current.tar.gz tar -zxvf libpri-current.tar.gz cd libpri-1.6.0/ make make install cd ..
Устанавливаем SRTP (библиотека для шифрования телефонных соединений)
wget http://jakondo.ru/wp-content/uploads/file-manager/Asterisk/13/libsrtp-2.0.0.tar.gz tar -zxvf libsrtp-2.0.0.tar.gz cd libsrtp-2.0.0/ ./configure CFLAGS=-fPIC make make runtest make install cd ..
Устанавливаем Pjproject
Начиная с Asterisk 13, стабильная версия Pjproject включена в дистрибутив Asterisk. Поэтому установку Pjproject мы выполним вместе с установкой Asterisk. Но в качестве памятки, опишу как установить Pjproject и исходников:
wget http://jakondo.ru/wp-content/uploads/file-manager/Asterisk/13/pjproject-2.6.tar.bz2 tar -zjvf pjproject-2.6.tar.bz2 cd pjproject-2.6 ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr make dep make make install ldconfig cd..
Устанавливаем Jansson
wget http://jakondo.ru/wp-content/uploads/file-manager/Asterisk/13/jansson-2.10.tar.gz tar -zxvf jansson-2.10.tar.gz cd jansson-2.10/ ./configure make make install ldconfig cd ..
Установка SpanDSP (для поддержки факсов)
Если планируется использование факсов в Asterisk, то необходимо поставить SpanDSP.
wget http://jakondo.ru/wp-content/uploads/file-manager/Asterisk/13/spandsp-0.0.6.tar.gz tar zxvf spandsp-0.0.6.tar.gz cd spandsp-0.0.6 ./configure make make install cd..
Устанавливаем Asterisk 13
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz tar -zxvf asterisk-13-current.tar.gz cd asterisk-13.* ./contrib/scripts/install_prereq install
В процессе установки, необходимо будет задать телефонный код, оставляем по-умолчанию 7 (Россия).
Выполняем конфигурацию установки Asterisk включающую в себя pjproject, так же добавляем поддержку mp3 и вызываем меню установщика, где выберем необходимые нам компоненты Asterisk.
./configure --with-pjproject-bundled ./contrib/scripts/get_mp3_source.sh make menuselect
В разделе Add-ons выбираем:
- format_mp3
- app_mysql (Необходимо если планируется установка FreePBX)
- cdr_mysql (Необходимо если планируется установка FreePBX)
В пункте Core Sound Packeges выбираем основные кодеки:
- CORE-SOUNDS-EN-ALAW
- CORE-SOUNDS-EN-GSM
- CORE-SOUNDS-EN-G729
- CORE-SOUNDS-RU-ALAW
- CORE-SOUNDS-RU-GSM
- CORE-SOUNDS-RU-G729
В пункте Music On Hold FIle Packages указываем поддержку WAV:
- MOH-OPSOUND-WAV
В пункте Extras Sound Packages указываем какие дополнительные звуковые файлы необходимо установить. Русских звуков в установщике нет, поэтому выбираем поддержку только англоязычных звуков:
- EXTRA-SOUND-EN-WAV
- EXTRA-SOUND-EN-ALAW
- EXTRA-SOUND-EN-GSM
- EXTRA-SOUND-EN-G729
Нажимаем сохранить (F12) и выполняем установку Asterisk:
make make install
Если не планируется установка FreePBX, то создаем примеры файлов конфигурации Asterisk.
make samples
[stextbox id=’info’]Если будет выполнятся установка FreePBX, то не нужно создавать примеры файлов конфигурации Asterisk. При установке FreePBX, необходимые файлы будет созданы автоматически.[/stextbox]
Завершаем установку Asterisk:
make config ldconfig update-rc.d -f asterisk remove cd ..
Добавляем Asterisk в автозагрузку:
systemctl enable asterisk
Создаем пользователя (asterisk), от которого будет работать asterisk. Назначаем права на каталоги asterisk и удаляем каталог сайта (apache2) по-умолчанию:
adduser asterisk --no-create-home --disabled-password --gecos "Asterisk User" chown asterisk. /var/run/asterisk chown -R asterisk. /etc/asterisk chown -R asterisk. /var/{lib,log,spool}/asterisk chown -R asterisk. /usr/lib/asterisk rm -rf /var/www/html
В файле конфигурации asterisk (/etc/default/asterisk), укажет от какого пользователя будет выполнятся запуск asterisk:
AST_USER=«asterisk» AST_GROUP=«asterisk»
Если не планируется установка FreePBX, то в файле (/etc/asterisk/asterisk.conf) в разделе [files] выставляем следующую конфигурацию:
[files] astctlpermissions = 0660 astctlowner = asterisk astctlgroup = asterisk astctl = asterisk.ctl
[stextbox id=’info’]Если будет выполнятся установка FreePBX, то не нужно выставлять права на файл asterisk.ctl. При установке FreePBX, все необходимые права будут выставлены.[/stextbox]
Теперь можно запустить Asterisk и войти в его консоль:
service asterisk start asterisk -rv
Если все сделали правильно, то увидите следующее:
Asterisk 13.15.1, Copyright (C) 1999 - 2014, Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 13.15.1 currently running on sysos (pid = 1421) Asterisk Ready
Установка FreePBX 13
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz tar -zxvf freepbx-13.0-latest.tgz cd freepbx/
Для корректной установки удаляем директорию веб сервера:
rm -rf /var/www/html
Вносим необходимые правки в файлы конфигураций php, apache и применяем сделанные изменения в них:
sed -i 's/\(^memory_limit = \).*/\256M/' /etc/php5/apache2/php.ini sed -i 's/\(^upload_max_filesize = \).*/\128M/' /etc/php5/apache2/php.ini cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf service apache2 restart
Создаем файл конфигурации /etc/odbcinst.ini:
cat <<EOF > /etc/odbcinst.ini [MySQL] Description = ODBC for MySQL Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so FileUsage = 1 EOF
Создаем файл конфигурации /etc/odbc.ini
cat <<EOF > /etc/odbc.ini [MySQL-asteriskcdrdb] Description = MySQL connection to 'asteriskcdrdb' database Driver = MySQL Server = localhost Database = asteriskcdrdb Port = 3306 Socket = /var/run/mysqld/mysqld.sock Option = 3 EOF
Создадим базу данных для работы FreePBX:
mysql -u root -p
CREATE DATABASE asterisk; CREATE DATABASE asteriskcdrdb; GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'asterpass'; GRANT ALL PRIVILEGES ON asteriskcdrdb.* to asteriskuser@localhost IDENTIFIED BY 'asterpass'; FLUSH PRIVILEGES; EXIT
Запускаем Asterisk и выполняем установку FreePBX:
./start_asterisk start ./install -n --dbuser=asteriskuser --dbpass=asterpass
Установка завершена, через Web браузер заходим в консоль FreePBX.
Поддержка SCCP протокола в Asterisk 13
wget http://jakondo.ru/wp-content/uploads/file-manager/Asterisk/SCCP/asterisk-chan-sccp_4.3.0.orig.tar.gz tar -zxvf asterisk-chan-sccp_4.3.0.orig.tar.gz cd chan-sccp-4.3.451.g4236401/
Установка протокола SCCP, различается в зависимости как установлен Asterisk, с использованием FreePBX или нет. Рассмотрим оба варианта.
Установлен чистый Asterisk
./configure make make install cd ..
Выполним конфигурацию Asterisk, на работу с SCCP. Редактируем файл:
nano /etc/asterisk/modules.conf
Добавляем следующие параметры:
noload => chan_skinny.so load => chan_sccp.so load => res_features.so
Рестарт ядра Asterisk и проверяем работу SCCP протокола:
asterisk -rv core restart now asterisk -rv sccp show devices
Вывод:
+--- Devices --------------------------------------------------+ | Descr Address Mac RegSt ate Token RegTime Act Lines Nat | + =============================================================+ | Phone Number One -- SEP001122334455 None None None No 0 Auto | | Phone Number Two -- SEP002244668800 None None None No 0 Auto | +--------------------------------------------------------------+
Установленный Asterisk + FreePBX 13
Выполняем конфигурацию и установку протокола SCCP:
./configure make make install cd ..
Выполним конфигурацию Asterisk, на работу с SCCP. Открываем FreePBX — Asterisk Module (Модули Asterisk)
Вкладка Excluded Module (Исключенные модули) , добавляем:
noload => chan_skinny.so
Вкладка Manually Loaded Modules (Модули, загруженные вручную), добавляем:
load => chan_sccp.so load => res_features.so
Рестарт amportal и входим в консоль для проверки работы SCCP протокола:
amportal restart asterisk -rvvvvvvvvv sccp show devices
Вывод:
+--- Devices --------------------------------------------------+ | Descr Address Mac RegSt ate Token RegTime Act Lines Nat | + =============================================================+ | Phone Number One -- SEP001122334455 None None None No 0 Auto | | Phone Number Two -- SEP002244668800 None None None No 0 Auto | +--------------------------------------------------------------+
На этом установка Asterisk 13 + FreePBX 13 + SCCP завершена.
Понравилась или оказалась полезной статья, поблагодари автора
Здравствуйте при выполнении команды ./configure для установки протокола sccp выдает ошибку
Checking Configure Options:
checking pkg-config asterisk… ./configure: line 23014: test1: command not found
configure: astmoddir could not be found in /etc/asterisk/asterisk.conf (your asterisk.conf file is faulty or not readable). Note: Path separators use ‘=>’, not ‘=’
configure: astvarlibdir could not be found in /etc/asterisk/asterisk.conf (your asterisk.conf file is faulty or not readable). Note: Path separators use ‘=>’, not ‘=’
configure: astsbindir could not be found in /etc/asterisk/asterisk.conf (your asterisk.conf file is faulty or not readable). Note: Path separators use ‘=>’, not ‘=’
found
configure: error: astmoddir could not be established, giving up
В чем проблема?
И еще в инструкции у Вас нет команд в строках:
Установленный Asterisk + FreePBX 13
В файле /etc/asterisk/, приводим строки к виду:
Какие тут строки и к какому виду их привести?И в каком файле?Выше указан только каталог у Вас.
Заранее благодарен.
Куда копать ?
mysql> EXIT
Bye
root@debian:/usr/src/freepbx# ./start_asterisk start
STARTING ASTERISK
Asterisk is already running
root@debian:/usr/src/freepbx# ./install -n —dbuser=asteriskuser —dbpass=asterpass
Checking if SELinux is enabled…Its not (good)!
Reading /etc/asterisk/asterisk.conf…Done
Checking if Asterisk is running and we can talk to it as the ‘asterisk’ user…Error!
Error communicating with Asterisk. Ensure that Asterisk is properly installed and running as the asterisk user
Asterisk appears to be running as asterisk
Try starting Asterisk with the ‘./start_asterisk start’ command in this directory
root@debian:/usr/src/freepbx#
Копать в сторону правильности выполнения всего что написано в статье.. вы явно что то не так сделали.
Два раза устанавливал по шагам, всё ровно ошибка после ./install -n —dbuser=asteriskuser —dbpass=asterpass
ошибка «Error!
Error communicating with Asterisk. Ensure that Asterisk is properly installed and running as the asterisk user
Asterisk appears to be running as asterisk
Try starting Asterisk with the ‘./start_asterisk start’ command in this directory»
на форумах пишут, что нет директории для пользователя asterisk
Не могу сказать, на момент написания статьи все было актуально, не однократно копипастой разворачивал АТС.
Попробуйте использовать https://jakondo.ru/ustanovka-freepbx-14-v-svyazke-s-asterisk-16-na-debian-9-stretch/ актуальные версии как asterisk так и FreePBX. Буквально дав дня назад по статье копипаста все успешно развернулось.
Здравствуйте. Подскажите, пожалуйста, в чем может быть проблема? sccp show devices телефон видит, если позвонить с SIP телефона на SCCP, то астериск закрывается. Если с SCCP на SIP. то звонок проходит, голоса с двух сторон слышно, но после завершения разговора также закрывается. Заранее благодарен за помощь, в астериске не силен.
Добрый вечер! Анализируйте логи, что вывод астериск в консоли при звонке. Я с таким явлением не сталкивался, поэтому не могу сказать что может быть причиной.
E: Для пакета «php5» не найден кандидат на установку
E: Для пакета «php5-curl» не найден кандидат на установку
E: Для пакета «php5-cli» не найден кандидат на установку
E: Для пакета «php5-mysql» не найден кандидат на установку
E: Для пакета «php5-gd» не найден кандидат на установку
E: Для пакета «libmysqlclient-dev» не найден кандидат на установку
E: Для пакета «libmyodbc» не найден кандидат на установку
Что добавить в sources.list ?
Какая ОС ? Покажите что у вас вообще там в sources.list
Debian 9
deb http://mirror.yandex.ru/debian/ stretch main
deb-src http://mirror.yandex.ru/debian/ stretch main
deb http://security.debian.org/debian-security stretch/updates main
deb-src http://security.debian.org/debian-security stretch/updates main
# stretch-updates, previously known as ‘volatile’
deb http://mirror.yandex.ru/debian/ stretch-updates main
deb-src http://mirror.yandex.ru/debian/ stretch-updates main
В Debian 9 репозиториях php7* версии и вместо libmysqlclient-dev пишите default-libmysqlclient-dev, а libmyodbc судя по всему нужно из исходников собирать..