В данной статье я хочу описать как связать веб браузер и Voip, чтобы можно было звонить и принимать звонки. Для того что бы позвонить из браузера в PSTN/VoIP (используя бесплатный OpenSource), мне известны, два более менее рабочих варианта – это WebRTC и Flash. Если вы знаете другие варианты, просьба написать об этом в комментариях, платные решения не рассматриваются.
Подготавливаем Centos 6 для сборки FreeSwitch
# yum install -y 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 sox lame
Подготавливаем директорию для сборки, качаем Freeswitch
# cd /usr/local/src/ # mkdir 0arch # cd 0arch # git clone git://git.freeswitch.org/freeswitch.git # cd freeswitch
Запускаем сборку зависимостей, чтобы можно было потом запустить привычный ./configure ))
# ./bootstrap.sh
Запускаем конфигуратор
# ./configure --without-libcurl
Без –without-libcurl, у меня не собирался Freeswitch. Где то на форумах вычитал, что для Шапочников, рекомендуется таким образом собирать.
После редактируем файл modules.conf. Находим там строчку
#endpoints/mod_rtmp
И меняем на
endpoints/mod_rtmp
Дальше запускаем сборку, установку, установку звуковых файлов и конфигурационных файлов.
#make && make install && moh-install && sounds-install && make samples
Если у вас не собирается, то смотрим какой библиотеки не хватает. Ставим используя пакетный манаджер – yum, и затем, повторяем make.
Создаем пользователя и стартовый скрипт
# 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 # chkconfig freeswitch --level 235 on # service freeswitch start
Проверяем что Freeswitch запустился
# ps aux | grep freeswitch 502 23820 0.5 4.0 45188 20664 ? SNl 13:42 0:11 /usr/local/freeswitch/bin/freeswitch -nc
Подключаемся к консоли набрав
# /usr/local/freeswitch/bin/fs_cli
Чтобы выйти нажимаем Ctrl+D
Переходим к конфигурации. Редактируем добавляем в загрузку модуль mod_rtmp
# cd /usr/local/freeswitch/conf/autoload_configs
Редактируем файл – modules.conf.xml. Находим строчку
<!-- <load module="mod_rtmp"/> -->
И меняем на
<load module="mod_rtmp"/>
После этого перезапускаем Freeswitch
# service freeswitch restart
С Freeswitch идет страничка flex.
Идем в папку где мы собирали из исходников Freeswitch, заходим в clients. Там должна быть папка flex. Вот ее нужно скопировать в директорию веб сервера. Если у вас Apache, то копируем в /var/www/html/. После этого у вас должно быть /var/www/html/flex.
Открываем файл – freeswitch.html. Находим строчку и меняем на ваш адрес сервера. Адрес должен быть белым, за натом у меня не работало, даже с пробросом.
var flashvars = { rtmp_url: 'rtmp://X.X.X.X/phone' };
где X.X.X.X – ваш IP.
Перезапускаем Apache
# service apache restart
Заходим на вашу только что созданную страничку по адресу http://X.X.X.X/flex/freeswitch.html
Вы должны увидеть страничку на подобие.