Jump to content

Search the Community

Showing results for tags 'voip'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Серверные операционные системы
    • Windows Server 2016
    • Windows Server 2012/2012R2
    • CentOS/Red Hat
    • FreeBSD
  • Клиентские операционные системы
    • Windows 10
    • Windows 7/8
    • Linux
    • MacOS, BSD и прочая экзотика
  • Сети и инфрастуктура
    • Компьютерные сети
    • Active Directory
    • Антивирусы и безопасность в сети
    • VPN и маршуртизация
  • 1С:Предприятие
    • Кластер серверов 1С:Предприятия 8
    • Клиентская платформа 1С:Предприятия 8
  • Сайтостроение
    • Веб-сервера
    • Раскрутка и монетизация
  • Курилка
    • Курилка

Blogs

  • Windows
  • CentOS
  • Linux
  • iOS
  • 1C
  • LAN
  • Mikrotik
  • web-администрирование
  • Разное
  • Asterisk
  • Solaris

Product Groups

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 1 result

  1. Все большую популярность набирает современная телефонная связь по протоколу ip в офисах сферы малого и среднего бизнеса. Установка asterisk и панели управления freepbx на сервер под управлением CentOS 7 тема моего очередного повествования. Мы последовательно выполним все шаги по конфигурированию и сборке исходных текстов устанавливаемых продуктов. Если вы еще не определились, как вам лучше настраивать и использовать астериск, рекомендую мою статью по базовой настройке asterisk для нужд малого и среднего офиса. Рассмотрен основной функционал, который необходим для эффективной работы. Инструкция подробная, по шагам, от и до: от установки до записи разговоров и статистики звонков. Введение Asterisk — бесплатное решение для организации voip телефонии. Он обладает всеми возможностями обычных АТС, но предоставляет более богатый функционал по управлению звонками. За относительную простоту настройки, по сравнению с цифровыми АТС, бесплатность и широкие возможности он и снискал такую популярность. Freepbx — бесплатный веб интерфейс для управления астериском. Он существенно упрощает работу с конфигурациями, позволяет выполнять некоторые функции людям, вообще далеким от астериска. Например, с его помощью практически любого можно научить управлять учетными записями пользователей. Лично я больше люблю настраивать asterisk с помощью freepbx, нежели ручной правкой конфигов. Их очень много, они объемные, работать с ними не удобно. Это практически единственный софт в линуксе, который я настраиваю через GIU, во всех остальных случаях я предпочитаю консоль. Подготовка системы Прежде чем мы начнем устанавливать asterisk, нам надо выполнить целый ряд подготовительных действий. Первым делом отключаем selinux. Для этого открываем файл: # mcedit /etc/sysconfig/selinux и устанавливаем значение SELINUX=disabled. После этого применяем настройку без перезагрузки сервера: # setenforce 0 Рекомендация по отключению selinux дается в официальной инструкции по установке freepbx, так как это может привести к нарушению процесса инсталляции. Дальше обновляем систему: # yum update # yum groupinstall core base "Development Tools" Устанавливаем необходимые пакеты для работы сервера voip: # yum install lynx mariadb-server mariadb php php-mysql php-mbstring tftp-server httpd ncurses-devel sendmail sendmail-cf sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel git php-process crontabs cronie cronie-anacron wget vim php-xml uuid-devel sqlite-devel net-tools gnutls-devel php-pear Устанавливаем компонент pear: # pear install Console_Getopt Теперь надо настроить iptabes. Для начала нам нужно открыть 80-й порт, чтобы мы смогли работать с веб интерфейсом: iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT Для полноценной работы астериск, нужно открыть следующие порты: iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 5061 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5060 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5061 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 4569 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5038 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 5038 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT Для работы freepbx необходима mariadb. Это популярный форк mysql, который по-умолчанию предлагается в качестве mysql сервера в CentOS 7. Оба эти сервера имеют полную совместимость и могут в любой момент заменять друг друга. Запустим базу и добавим в автозагрузку: # systemctl enable mariadb.service # systemctl start mariadb При первоначальной конфигурации mariadb рекомендуется запустить скрипт mysql_secure_installation. Сделаем это: # /usr/bin/mysql_secure_installation Подробнее о работе этого скрипта и вообще настройке mariadb можно прочитать в материале на тему web-сервера на centos 7. Важное замечание. На этапе настройки mariadb не указывайте пароль root. Он должен быть пустым. Если его задать, то стандартная установка freepbx закончится ошибкой и сообщением: Error! Invalid Database Permissions. The error was: SQLSTATE[28000] [1045] Access denied for user ‘root’@’localhost’ (using password: NO) Мы же двигаемся дальше. Для работы freepbx необходим веб сервер. В этом качестве у нас будет выступать httpd. Запускаем его: # systemctl start httpd И добавляем в автозагрузку: # systemctl enable httpd Теперь добавим пользователя, под которым будет работать астериск: # adduser asterisk -M -c "User for voip" Установка Asterisk Приступаем непосредственно к установке asterisk. Она состоит из нескольких этапов. Сначала мы собираем и устанавливаем все, что нужно для полноценной работы астериск, и в конце собираем его. Первым делом скачиваем необходимые компоненты: # cd /usr/src # wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz # wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz # wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz # wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2 Если вы не используете аппаратные платы расширения для сервера asterisk, то вам dahdi и libpri не нужны. Не скачивайте и не собирайте их. Устанавливаем DAHDI — драйверы для плат производства Digium: # tar xvfz dahdi-linux-complete-current.tar.gz # tar xvfz libpri-current.tar.gz # cd dahdi-linux-complete-* # make all Если получаете ошибку: You do not appear to have the sources for the 3.10.0-123.el7.x86_64 kernel installed То тут 2 варианта: Вы сделали обновление системы и не перезагрузили сервер. У вас отличаются значения ядра в выводе команды uname -r и реальным ядром системы в /usr/src/kernels. В таком случае вам нужно просто перезагрузить сервер. Если дело не в обновлении и разных версиях ядра, то сделайте символьную ссылку на kernel в папке с dahdi: # ln -s /usr/src/kernels/3.10.0-123.el7.x86_64 /usr/src/dahdi-linux-complete-2.10.2+2.10.2/build Не забудьте исправить пути на свои, версия dahdi и ядра скорее всего будет другая. Снова запускаете сборку: # make all Если по какой-то причине у вас все равно не собирается dahdi, а текст ошибок не очень информативный и в интернете ничего не получается найти по этой ошибке, попробуйте установить более старую версию, для начала предыдущую. Взять ее можно тут. Я сталкивался с подобной ситуацией и этот путь помог выполнить установку успешно. А с последней версией dahdi не получалось. Если все проходит без ошибок, то продолжаем сборку: # make install # make config Устанавливаем libpri — библиотеку, предназначенную для работы с потоковыми TDM-интерфейсами ISDN: PRI (Primary Rate Interface) и BRI (Basic Rate Interface).: # cd /usr/src/libpri-* # make # make install Выполняем установку pjproject — open source библиотеку для разработки VoIP приложений на различных платформах: # cd /usr/src # tar -xjvf pjproject-2.4.tar.bz2 # cd pjproject-2.4 # CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr --libdir=/usr/lib64 # make dep # make # make install Устанавливаем jansson — библиотеку на С для кодирования и декодирования JSON данных: # cd /usr/src # tar vxfz jansson.tar.gz # cd jansson-* # autoreconf -i # ./configure --libdir=/usr/lib64 # make # make install И наконец компилируем и устанавливаем asterisk: # cd /usr/src # tar xvfz asterisk-13-current.tar.gz # cd asterisk-* # contrib/scripts/install_prereq install # ./configure --libdir=/usr/lib64 # contrib/scripts/get_mp3_source.sh # make menuselect Появляется псевдографическая менюшка с выбором модулей. Все необходимые модули уже включен по-умолчанию. Добавим только поддержку mp3, либо, если вам необходимо app_mysql и cdr_mysql: Нажимаем Save & Exit и продолжаем установку: # make # make install # make config # ldconfig # chkconfig asterisk off Устанавливаем звуки в хорошем качестве. По-умолчанию астериск ставит звуки низкого качества, чтобы система успешно работала на различном оборудовании. К примеру, на Rasberry Pi. Но на полноценный сервер мы можем установить звуки 8khz wav и G722 High Definition Wideband: # cd /var/lib/asterisk/sounds # wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-wav-current.tar.gz # wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz # tar xfz asterisk-core-sounds-en-wav-current.tar.gz # tar xfz asterisk-extra-sounds-en-wav-current.tar.gz # wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-g722-current.tar.gz # wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz # tar xfz asterisk-extra-sounds-en-g722-current.tar.gz # tar xfz asterisk-core-sounds-en-g722-current.tar.gz Выставляем необходимые права на файлы и каталоги: # chown asterisk. /var/run/asterisk # chown -R asterisk. /etc/asterisk # chown -R asterisk. /var/{lib,log,spool}/asterisk # chown -R asterisk. /usr/lib64/asterisk # chown -R asterisk. /var/www/ На этом установка непосредственно астериска закончена. Уже сейчас им можно полноценно пользоваться, настраивая через консоль и файлы конфигурации. Все компоненты для этого собраны, установлены и готовы к работе. Установка Freepbx Приступим к установке web панели управления для астериск — Freepbx. Вначале делаем несколько полезных настроек. Увеличиваем максимальный размер файла для загрузки через web сервер до 120М: # sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini Настраиваем запуск httpd от пользователя asterisk: # sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf Изменяем параметр AllowOverride на All: # sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf Перезапускаем веб сервер: # systemctl restart httpd Скачиваем и устанавливаем freepbx: # cd /usr/src # wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz # tar xfz freepbx-13.0-latest.tgz # cd freepbx # ./start_asterisk start # ./install -n Если все прошло без ошибок, то в завершении установки увидите: На этом установка закончена. Теперь можно зайти браузером на страницу с ip адресом сервера. У меня это http://192.168.0.163 Открывается начальная страница freepbx, где нам предлагается создать нового пользователя: Создаем пользователя и заходим в web интерфейс астериска: Вот и все, дальше можно заниматься конфигурированием. Автозагрузка Freepbx Для того, чтобы панель управления Freepbx автоматически запускалась при загрузке системы, необходимо сделать startup скрипт для systemd. Для этого создаем файл /etc/systemd/system/freepbx.service следующего содержания. # cat /etc/systemd/system/freepbx.service [Unit] Description=FreePBX VoIP Server After=mariadb.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/sbin/fwconsole start -q ExecStop=/usr/sbin/fwconsole stop -q [Install] WantedBy=multi-user.target После этого запускаем freepbx и добавляем в автозагрузку. # systemctl start freepbx.service # systemctl enable freepbx.service Проверяем, запустилась ли панель. Все в порядке. Для полной проверки автозапуска freepbx, рекомендую сразу же перезагрузить сервер, чтобы убедиться в том, что она запускается корректно при старте сервера. Заключение В данной инструкции мы аккуратно собрали все необходимые компоненты для настройки связки asterisk+freepbx на сервере CentOS 7. Скачали последние версии софта, собрали его из исходников и установили. Таким образом мы полностью подготовили сервер к конфигурированию телефонии. Если сервер будет смотреть в интернет, нужно обязательно не забыть аккуратно настроить firewall и хотя бы fail2ban для обеспечения минимальной, хотя в большинстве случаев и вполне достаточной, защиты. Статья позаимствована с ресурса serveradmin.ru
×
×
  • Create New...