Давно мы ничего не писали о FreeSWITCH, но сегодня решили исправиться. Все уже давно знают, что FreeSWITCH - это платформа для телефонии, обладающая обширными возможностями, одна из которых -мультидоменность (multi-tenant). Неоднократно, на различных форумах и в комментариях люди жаловались на сложность в освоении FreeSWITCH, в основном пугали конфигурационные файлы на XML. Для облегчения работы с FreeSWITCH мы решили рассказать об установке и настройке BlueBox. BlueBox — open source web-интерфейс для FreeSWITCH, написанный в основном на PHP.
Конечно, функционал BlueBox намного меньше, чем, например, у FusionPBX (о котором мы расскажем в будущих статьях), но попробовать покопаться в нем все же стоит.
Устанавливать мы будем BlueBox v1.0.4 на CentOS 6.6 с Freeswitch v1.2
Приступим
Первым делом обновим систему
yum -y update
yum -y groupinstall core
yum -y groupinstall base
Отключаем SELinux
nano /etc/selinux/config
SELINUX=disabled
Устанавливаем необходимые библиотеки
sudo yum install git gcc-c++ autoconf automake libtool wget python python-devel make bzip2 which expat-devel ncurses-devel zlib
zlib-devel e2fsprogs-devel libjpeg-devel unixODBC-devel openssl-devel sqlite-devel libcurl-devel pcre-devel speex-devel gnutls-devel libogg-devel libvorbis-devel curl-devel gdbm gdbm-devel libedit-devel ldns dns-devel
libldns-dev pkgconfig libtiff-devel mysql-server php php-mysql php-xml
Теперь можно переходить к непосредственной установке Freeswitch 1.2
cd /usr/src
git clone -b 1.2 https://freeswitch.org/stash/scm/fs/freeswitch.git
cd /usr/src/freeswitch
./bootstrap.sh –j
Добавим нужные и уберем ненужные нам модули в /usr/src/freeswitch/modules.conf
Раскоментируем
mod_rtmp
mod_directory
mod_tts_commandline
mod_dingaling
Закоментируем
mod_enum
mod_lua
mod_fsv
mod_opus
mod_sndfile
mod_vpx
Ознакомиться с значениями модулей вы можете по ссылке https://wiki.freeswitch.org/wiki/Modules
Компилируем и устанавливаем FreeSWITCH
./configure
make && make install
Добавляем пользователя FreeSWITCH, права и автозагрузку:
useradd freeswitchОтредактируем /etc/init.d/freeswitch
cd /usr/local/
chown -R freeswitch:freeswitch freeswitch
chown -R freeswitch. /usr/local/freeswitch
chown -R freeswitch. /var/lib/php/session
chmod -R g+w freeswitch
cd /usr/src/freeswitch/build
cp freeswitch.init.redhat /etc/init.d/freeswitch
chmod +x /etc/init.d/freeswitch
cp freeswitch.sysconfig /etc/sysconfig/freeswitch
PROG_NAME=freeswitchДобавим ссылку для CLI
PID_FILE=${PID_FILE-/usr/local/freeswitch/log/freeswitch.pid}
FS_USER=${FS_USER-freeswitch}
FS_FILE=${FS_FILE-/usr/local/freeswitch/bin/freeswitch}
FS_HOME=${FS_HOME-/usr/local/freeswitch}
LOCK_FILE=/var/lock/subsys/freeswitch
FREESWITCH_ARGS="-nc"
RETVAL=0
cd /usr/local/bin/
ln -s /usr/local/freeswitch/bin/fs_cli fs_cli
Правим Apache
sed -i "s/User apache/User freeswitch/" /etc/httpd/conf/httpd.conf
sed -i "s/Group apache/Group freeswitch/" /etc/httpd/conf/httpd.conf
Добавляем Apache и MySQL в автозапуск:
chkconfig httpd on
chkconfig mysqld on
Стартуем сервисы:
service freeswitch start
service httpd start
service mysqld start
Запускаем скрипт первоначальной настройки MySQL:
mysql_secure_installation
Создадим пользователя Bluebox в MySQL:
mysql -uroot –ppassword
mysql> CREATE USER 'bluebox'@'localhost' IDENTIFIED BY 'bluebox';
mysql> GRANT ALL PRIVILEGES ON bluebox.* TO 'bluebox'@'localhost';
mysql> FLUSH PRIVILEGES;
Добавим в раздел [mysqld] в файле my.cnf следующее значение:
nano /etc/my.cnf
[mysqld]
bind-address = 127.0.0.1
Перезапустим MySQL:
service mysqld restart
Переходим к установке Bluebox
cd /var/www/html
git clone git://github.com/2600hz/bluebox.git bluebox
chown -R freeswitch. /var/www/html/bluebox
cd /var/www/html/bluebox
Запускаем скрипт preinstall.sh, в процессе соглашаемся со всем предложенным:
./preinstall.sh
Рестартуем Apache
service httpd restart
Настраиваем iptables:
iptables -A INPUT -p udp -m state --state NEW --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
service iptables save
Переходим на страницу http://ваш_ip/bluebox и, если вы настроили все правильно, то вы должны увидеть следующее:

Ставим галочку I Accept и нажимаем Continue

Ничего не меняем, нажимаем Continue
Если в процессе появляется следующая ошибка: Unable to write to config.php, please manualy replace it with this!, то делаем следующее:
chown -R freeswitch. /var/www/html/bluebox/bluebox/config/

Ничего не меняем, нажимаем Continue

Приступаем к установке:

После завершения установки Вы попадаете на веб-интерфейс BlueBox и на этом установку можно считать завершенной.

На этом наша установка завершена. В следующей статье мы подробно расскажем о том, как настроить BlueBox.