Сегодня установим цифровую телефонную станцию Asterisk PBX на базе одноплатного компьютера Raspberry Pi либо его аналога например OrangePi. Asterisk на данном мини сервере показал себя отлично, мощности хватает без перекодирования на 5 одновременных звонков с запасом, то есть для малого офиса такого мини сервера хватит за глаза.
Операционную систему мы установили по инструкции: Установка Debian на мини сервер Raspberry Pi
Приступаем к установке.
Добавляем репозиторий для установки телефонии
Для Debian Wheezy выполнить команду:
echo 'deb http://repo.raspbx.org/apt/debian wheezy main' >> /etc/apt/sources.list
Для Debian Jessie выполнить команду:
echo 'deb http://repo.raspbx.org/apt/debian jessie main' >> /etc/apt/sources.list
Добавляем ключ репозитория выполнив команду:
wget -q -O /tmp/raspbx.gpg.key http://repo.raspbx.org/raspbx.gpg.key && apt-key add /tmp/raspbx.gpg.key
Обновляем репозитории системы выполнив команду:
apt-get update
Добавляем настройки в файл sysctl.conf и применяем изменения выполнив команды:
echo ' kernel.panic=5 kernel.printk = 3 4 1 3 vm.swappiness = 1 vm.min_free_kbytes = 16384 ' > /etc/sysctl.conf sysctl -p
Устанавливаем необходимые пакеты для работы Asterisk c базой данных и саму АТС Asterisk выполнив команду:
apt-get install libmysqlclient-dev libxml2-dev libncurses5-dev libsqlite3-dev libssl-dev libsrtp0-dev unixodbc-dev libmyodbc mysql-server asterisk11 asterisk11-chandongle asterisk11-sounds usb-modeswitch
Скачиваем скрипт автоматического запуска Asterisk в Raspberry Pi ибо OrangePi выполнив команды:
wget -O /etc/init.d/asterisk http://softnastroy.com/downloads/asterisk/asterisk_init.d_11 chmod +x /etc/init.d/asterisk update-rc.d asterisk defaults
Скачиваем русский язык для устанавливаемой АТС Asterisk выполнив команды:
cd /var/lib/asterisk/sounds wget -O - http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ru-alaw-current.tar.gz | tar xvfz - wget -O - http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ru-ulaw-current.tar.gz | tar xvfz -
Для большей безопасности не будем разрешать работать Asterisk PBX под пользователем root, создаем нового пользователя asterisk под которым будет работать наша VOIP телефония:
Вносим изменения в файл /etc/default/asterisk для запуска телефонии под пользователем asterisk выполнив команду:
echo ' AST_USER="asterisk" AST_GROUP="asterisk" COLOR=yes ' > /etc/default/asterisk
Скачиваем архив стандартной конфигурации от Asterisk 11 c моего сайта удалив то, что устанавливает установочный пакет с репозитория Raspberri Pi выполнив команды:
cd /etc/asterisk/ rm -rf /etc/asterisk/* wget -O - wget http://softnastroy.com/downloads/asterisk/asterisk_etc_11.tgz | tar xvfz -
Изменяем права файлов Asterisk для работы под отдельным пользователем выполнив команды:
chown -R asterisk:asterisk /var/lib/asterisk chown -R asterisk:asterisk /var/log/asterisk chown -R asterisk:asterisk /var/run/asterisk chown -R asterisk:asterisk /var/spool/asterisk chown -R asterisk:asterisk /usr/lib/asterisk chmod -R u=rwX,g=rX,o= /var/lib/asterisk chmod -R u=rwX,g=rX,o= /var/log/asterisk chmod -R u=rwX,g=rX,o= /var/run/asterisk chmod -R u=rwX,g=rX,o= /var/spool/asterisk chmod -R u=rwX,g=rX,o= /usr/lib/asterisk chown -R root:asterisk /etc/asterisk chmod -R u=rwX,g=rX,o= /etc/asterisk
Можете также указать какие именно модули будете загружать, я использую модули в списке ниже:
echo ' [modules] autoload=no load => app_dial.so load => app_read.so load => app_stack.so load => cdr_csv.so load => chan_local.so load => chan_sip.so load => codec_alaw.so load => codec_ulaw.so load => format_wav.so load => func_callerid.so load => func_cdr.so load => func_logic.so load => func_strings.so load => func_timeout.so load => pbx_ael.so load => pbx_config.so load => res_ael_share.so load => res_agi.so load => res_rtp_asterisk.so load => chan_dongle.so load => app_verbose.so load => app_system.so load => func_base64.so load => res_monitor.so load => app_mixmonitor.so load => res_stun_monitor.so load => res_odbc.so load => func_odbc.so load => cdr_adaptive_odbc.so load => cdr_odbc.so load => cdr_mysql.so ' > modules.conf
GSM шлюз
Если у Вас будут использоватся 3G модемы Huawei для организации дешевого GSM шлюза, тогда необходимо настроить udev, чтобы при подключении модема, он получал права пользователя Asterisk и сам Asterisk мог работать с модемом. Для этого создаем файл /etc/udev/rules.d/10-modem.rules командой:
echo 'KERNEL=="ttyUSB*", OWNER="asterisk", GROUP="dialout"' > /etc/udev/rules.d/10-modem.rules
При подключении модема мы можем посмотреть права которые он получил командой:
ls -la /dev/ttyUSB*
Ответ системы:
TFTP сервер
Если Вы используете телефоны Cisco, тогда для удобства установим TFTP сервер, чтобы с него телефоны скачивали при загрузке конфигурационные файлы и прошивки.
Устанавливаем TFTP сервер по инструкции: Устанавливаем и настраиваем tftp сервер в Debian Squeeze, Ubuntu Linux c администрированием содержимого по ftp протоколу используя vsftpd сервер
Проверяем работу PBX Asterisk
Выполняем команду rasterisk либо asterisk -rvvv для входа в консоль телефонии для проверки, просмотра сервисных сообщений Asterisk:
Asterisk 11.17.0, Copyright (C) 1999 - 2013 Digium, Inc. and others. Created by Mark Spencer <[email protected]> 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 11.17.0 currently running on raspberrypi (pid = 9320) raspberrypi*CLI> sip show peers Name/username Host Dyn Forcerport Comedia ACL Port Status Description 0 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 0 offline] raspberrypi*CLI
Сегодня мы с Вами настроили телефонную АТС на базе бесплатного програмного обеспечения Asterisk PBX и одноплатного мини сервера очень экономичного по расходам электричества на Raspberry Pi, Orange Pi либо их аналоге.
С Вами был Сергей Лазаренко.
Сделаем небольшой перерыв и посмотрим небольшое видео о бане в походных условиях:
Add new comment