Установка FreeSWITCH при помощи git - CentOS Wiki

Установка FreeSWITCH 1.7 ->

 

FreeSWITCH — открытая телефонная платформа, распространяемая в исходных кодах, созданная для удовлетворения потребности в управляемых голосом или текстом систем, масштабируемых от софтфонa до софтсвичa. FreeSWITCH в системе CentOS можно установить при помощи YUM, но (на момент март 2013) при установке из репозитория, происходят небольшие ошибки с инсталяцией необходимых голосовых и конфигурационных файлов. Оптимальным случаем является установка из исходных кодов при помощи GIT.

Сборка FreeSWITCH

Установка необходимых по зависимостям компонент:

 yum install autoconf automake libtool gcc-c++ ncurses-devel make expat-devel zlib zlib-devel \ 
unixODBC-devel openssl-devel gnutls-devel libogg-devel libvorbis-devel curl-devel gettext-devel \ 
expat-devel curl-devel zlib-devel openssl-devel bzip2 libjpeg-devel wget perl-ExtUtils-MakeMaker \ 
alsa-lib-devel gdbm-devel libX11-devel libtiff-devel python-devel uuid-devel

Установка GIT

 cd /usr/src wget http://mirror.linux.org.au/software/scm/git/git-1.7.6.tar.bz2 tar -xvjf git-1.7.6.tar.bz2 cd git-1.7.6 make prefix=/usr/local all make prefix=/usr/local install 

Загрузка исходного кода для сборки FreeSWITCH

 mkdir /usr/src/freeswitch cd /usr/src/freeswitch 
 git clone git://git.freeswitch.org/freeswitch.git /usr/src/freeswitch cd /usr/src/freeswitch ./bootstrap.sh -j ./configure 
 make -j $(cat /proc/cpuinfo | grep processor | wc -l) make install make moh-install make sounds-install make sounds-ru-install make cd-sounds-ru-install && make uhd-sounds-ru-install && make hd-sounds-ru-install make all cd-sounds-install cd-moh-install 

 

Создание системного пользователя и стартового скрипта

 adduser --home /usr/local/freeswitch -g daemon freeswitch chown -R freeswitch.daemon /usr/local/freeswitch
 cd /etc/rc.d/init.d wget http://centos.name/file/freeswitch chmod 755 /etc/rc.d/init.d/freeswitch /sbin/chkconfig freeswitch on /sbin/service freeswitch start

Настройка файрвола

 iptables -I INPUT -p udp --dport 5060 -m string --string "friendly-scanner" --algo bm -j DROP iptables -I INPUT -p udp --dport 5080 -m string --string "friendly-scanner" --algo bm -j DROP iptables -I INPUT -m string --string "REGISTER sip:" --algo bm --to 65 -m hashlimit \ --hashlimit 4/minute --hashlimit-burst 1 --hashlimit-mode srcip,dstport --hashlimit-name sip_r_limit -j ACCEPT iptables -I INPUT -p udp -m udp --dport 5060 -j ACCEPT iptables -I INPUT -p tcp -m tcp --dport 5060 -j ACCEPT iptables -I INPUT -p udp -m udp --dport 5080 -j ACCEPT iptables -I INPUT -p tcp -m tcp --dport 5080 -j ACCEPT iptables -I INPUT -p udp -m udp --dport 16384:32768 -j ACCEPT service iptables save 

Быстрая автоматическая установка FreeSWITCH при помощи bash скрипта

Наберите в терминале следующие команды (тестировалось на CentOS 5.9):

 cd ~ wget http://centos.name/file/freeswitchinstall.sh chmod +x freeswitchinstall.sh sh freeswitchinstall.sh

В результате, будут проделаны следующие шаги:

  • установка необходимых программ для сборки FreeSWITCH
  • установка утилиты для работы с GIT
  • скачивание исходных кодов
  • сборка FreeSWITCH
  • создание пользователя freeswitch, под которым будет запускаться сервер FreeSWITCH
  • установка стартового скрипта для запуска FreeSWITCH при старте системы
  • открытие необходимых портов в брандмауэре
  • старт FreeSWITCH

FreeSWITCH

Установка FreeSWITCH на CentOS 6 (x86_64)

 yum install wget -y
 yum install git autoconf automake libtool ncurses-devel libjpeg-devel -y yum install sqlite-devel libcurl-devel pcre-devel speex-devel libedit-devel -y
 yum install expat-devel openssl-devel libtiff-devel libX11-devel unixODBC-devel python-devel zlib-devel -y yum install alsa-lib-devel libogg-devel libvorbis-devel perl-libs gdbm-devel uuid-devel -y
 yum install gcc-c++ -y
 yum install dnsmasq -y

Добавим репозиторий RpmFORGE для установки дополнительного необходимого пакета

 rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
 yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm -y
 yum install ldns-devel -y

Установка FreeSWITCH через git

 cd /usr/local/src
 git clone -b v1.2.stable git://git.freeswitch.org/freeswitch.git

Если вы желаете иметь последний релиз, то используйте следующую команду git:

 git clone git://git.freeswitch.org/freeswitch.git
 cd freeswitch ./bootstrap.sh ./configure make 
 make all install sounds-install moh-install make hd-sounds-install hd-moh-install make uhd-sounds-install uhd-moh-install make cd-sounds-install cd-moh-install make sounds-ru-install make uhd-sounds-ru-install make hd-sounds-ru-install make cd-sounds-ru-install 
 adduser --home /usr/local/freeswitch -g daemon freeswitch
 chown -R freeswitch.daemon /usr/local/freeswitch
 cd /etc/rc.d/init.d
 FILE_SITE_START_SCRIPT="http://centos.name/file"
 wget $FILE_SITE_START_SCRIPT/freeswitch
 chmod 755 /etc/rc.d/init.d/freeswitch
 /sbin/chkconfig freeswitch on
 /sbin/service freeswitch start
 iptables -I INPUT -p udp --dport 5060 -m string --string "friendly-scanner" --algo bm -j DROP iptables -I INPUT -p udp --dport 5080 -m string --string "friendly-scanner" --algo bm -j DROP iptables -I INPUT -m string --string "REGISTER sip:" --algo bm --to 65 -m hashlimit --hashlimit 4/minute \ --hashlimit-burst 1 --hashlimit-mode srcip,dstport --hashlimit-name sip_r_limit -j ACCEPT iptables -I INPUT -p udp -m udp --dport 5060 -j ACCEPT iptables -I INPUT -p tcp -m tcp --dport 5060 -j ACCEPT iptables -I INPUT -p udp -m udp --dport 5080 -j ACCEPT iptables -I INPUT -p tcp -m tcp --dport 5080 -j ACCEPT iptables -I INPUT -p udp -m udp --dport 16384:32768 -j ACCEPT service iptables save 

Установка FreeSWITCH на CentOS 6.6 (x86_64)

Пояснений особых не будет, только команды в консоли.

 yum install wget -y rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
 yum install dnsmasq -y
 yum install git autoconf automake libtool ncurses-devel libjpeg-devel -y
 yum install sqlite-devel libcurl-devel pcre-devel speex-devel libedit-devel -y
 yum install expat-devel openssl-devel libtiff-devel libX11-devel unixODBC-devel python-devel zlib-devel -y
 yum install alsa-lib-devel libogg-devel libvorbis-devel perl-libs gdbm-devel uuid-devel -y
 yum install gcc-c++ -y
 yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm -y yum install ldns-devel -y 
 cd /usr/local/src git clone -b v1.4 https://freeswitch.org/stash/scm/fs/freeswitch.git cd /usr/local/src/freeswitch/ ./bootstrap.sh -j 

В файле modules.conf, если необходимо, снимаем комментарии с необходимых модулей.

 vi modules.conf # Выход из редактора vi по комбинации клавиш "Esc" затем ":" "wq"
 ./configure -C make && make install make sounds-install moh-install sounds-ru-install make hd-sounds-install \
   hd-moh-install hd-sounds-ru-install make uhd-sounds-install uhd-moh-install uhd-sounds-ru-install make cd-sounds-install \
   cd-moh-install cd-sounds-ru-install make samples useradd --system --home-dir /usr/local/freeswitch -G daemon freeswitch passwd -l \
   freeswitch chown -R freeswitch:daemon /usr/local/freeswitch/
   chmod -R 770 /usr/local/freeswitch/
   chmod -R 750 /usr/local/freeswitch/bin/*
   mkdir /var/run/freeswitch
   chown -R freeswitch:daemon /var/run/freeswitch
   ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/
   ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/ 

Приготавливаем сценарий запуска (для автоматического старта freeswitch)

 cp /usr/local/src/freeswitch/build/freeswitch.init.redhat /etc/init.d/freeswitch
 chmod 750 /etc/init.d/freeswitch chown freeswitch:daemon /etc/init.d/freeswitch
 chkconfig freeswitch on
 chkconfig freeswitch --list service
 freeswitch start 

Настройка firewall-а.

 cat /etc/sysconfig/iptables
 iptables -I INPUT -p udp --dport 5060 -m string --string "friendly-scanner" --algo bm -j DROP
 iptables -I INPUT -p udp --dport 5080 -m string --string "friendly-scanner" --algo bm -j DROP
 iptables -I INPUT -m string --string "REGISTER sip:" --algo bm --to 65 -m hashlimit --hashlimit 4/minute \
 --hashlimit-burst 1 --hashlimit-mode srcip,dstport --hashlimit-name sip_r_limit -j ACCEPT
 iptables -I INPUT -p udp -m udp --dport 5060 -j ACCEPT
 iptables -I INPUT -p tcp -m tcp --dport 5060 -j ACCEPT
 iptables -I INPUT -p udp -m udp --dport 5080 -j ACCEPT
 iptables -I INPUT -p tcp -m tcp --dport 5080 -j ACCEPT
 iptables -I INPUT -p udp -m udp --dport 16384:32768 -j ACCEPT
 service iptables save 

 

Автор: Александр