Установка Freeswitch в данной статье производится на **Centos 7** ветки точно так же ставится на **RHEL, OracleLinux**/ Подготовим систему обновим yum update Отключим selinux **vi /etc/sysconfig/selinux SELINUX=disabled** погасим фаервол chkconfig iptables stop перезагрузимся **reboot ** Устанавливаем необходимые компоненты **yum install -y http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm epel-release yum install -y git gcc-c++ wget alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel db-devel e2fsprogs-devel flite-devel g722_1-devel gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtheora-devel libtool libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python26-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel libuuid-devel which yasm zlib-devel** Непосредственно установка из исходников cd /usr/src git clone -b v1.4 https://freeswitch.org/stash/scm/fs/freeswitch.git git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git cd /usr/src/freeswitch ./bootstrap.sh –j Если не выдал ошибок, то система готова для установки Включим необходимые модули В файле /usr/src/freeswitch/modules.conf включите следующие модули [[https://wiki.freeswitch.org/wiki/Modules|Справка по модулям]] ''mod_rtmp\\ mod_directory\\ mod_callcenter\\ mod_tts_commandline\\ mod_dingaling\\ mod_flite\\ mod_shout'' Ну и конфигурим и компилим ./configure make && make install Установим аудиофайлы ''make sounds-install\\ make moh-install\\ make hd-moh-install\\ make hd-sounds-install\\ make uhd-moh-install\\ make uhd-sounds-install\\ make cd-sounds-install\\ make cd-moh-install'' и русские аудиофайлы ''make sounds-ru-install\\ make cd-sounds-ru-install\\ make uhd-sounds-ru-install\\ make hd-sounds-ru-install '' Добавим пользователя и скопируем скрипты инициализации..... Отключаем поддержку ipv6 ''cd /usr/local/freeswitch/conf/sip_profiles\\ mv internal-ipv6.xml internal-ipv6.xml.removed\\ mv external-ipv6.xml external-ipv6.xml.removed'' Добавление пользователя freeswitch в систему и блокируем ему пароль ''useradd --system --home-dir /usr/local/freeswitch freeswitch\\ passwd -l freeswitch '' Первый запуск необходимо провести для того, что бы Freeswitch создал необходимые папки. ''cd /usr/local/freeswitch/bin\\ ./freeswitch '' Что бы убедиться, что все работает, вводим команду «sofia status» Выход из системы по команде «shutdown». Когда Freeswitch завершает свою работу, так же выводиться многословный лог. Назначаем права на папки и создаем папку для работы демона freeswitch ''# chown -R freeswitch:freeswitch /usr/local/freeswitch/\\ # chmod -R 770 /usr/local/freeswitch/\\ # chmod -R 750 /usr/local/freeswitch/bin/*\\ # mkdir /run/freeswitch\\ # chown -R freeswitch:freeswitch /run/freeswitch'' Для удобства работы создаем символьные ссылки на программы запуска freeswitch ''# ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/\\ # ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/ '' Добавляем freeswitch в автозапуск в систему systemd ''# cp /usr/local/src/freeswitch/build/freeswitch.service /etc/systemd/system/multi-user.target.wants/\\ # nano /etc/systemd/system/multi-user.target.wants/freeswitch.service'' Приводим юнит к виду: ''[Unit]\\ Description=freeswitch\\ After=syslog.target network.target local-fs.target\\ [Service]\\ ; service\\ Type=forking\\ RuntimeDirectory=freeswitch\\ PIDFile=/run/freeswitch/freeswitch.pid\\ PermissionsStartOnly=true\\ ExecStart=/usr/bin/freeswitch -ncwait -nonat -run /run/freeswitch\\ TimeoutSec=45s\\ Restart=always\\ ; exec\\ WorkingDirectory=/run/freeswitch\\ User=freeswitch\\ Group=daemon\\ LimitCORE=infinity\\ LimitNOFILE=100000\\ LimitNPROC=60000\\ ;LimitSTACK=240\\ LimitRTPRIO=infinity\\ LimitRTTIME=7000000\\ IOSchedulingClass=realtime\\ IOSchedulingPriority=2\\ CPUSchedulingPolicy=rr\\ CPUSchedulingPriority=89\\ UMask=0007\\ [Install]\\ WantedBy=multi-user.target '' Теперь создаем файл конигурации system, который будет всегда создавать директорию /run/freeswitch и наделять ее необходимыми правами # vim /usr/lib/tmpfiles.d/freeswitch.conf Вписываем в файл: ''d /run/freeswitch 770 freeswitch freeswitch'' Рестартуем демон systemd: # systemctl daemon-reload Теперь можно запустить сервис freeswitch командой: # systemctl start freeswitch.service Проверить состояние сервиса и отсановить его можно так: # systemctl status freeswitch.service # systemctl stop freeswitch.service 10. Увеличиваем количество лимитов на открытие файлов и обращений к жесткому диску для пользователя freeswitch # nano /etc/security/limits.conf Вписываем в конец файла перед строкой # End of file Следующее: '' freeswitch hard nofile 500000\\ freeswitch soft nofile 500000''