В данной статье я хочу описать как связать веб браузер и 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

Вы должны увидеть страничку  на подобие.

звонок с сайты