Как установить FreeSwitch на Centos/Redhat/Fedora
Приведу пару примеров как можно установить и настроить FreeSwitch на Centos/Redhat/Fedora, 1-й способ более сложный чем второй т.к как во 2-м все оптимизировано ( используется только скрипт).
1. Способ установки.
Обязательно для установки требуется!
Эти обязательные предпосылки обеспечения для составления стандартную установку FreeSWITCH ™ и проверить прилагаемый конфигурации и образец IVR. Они достаточны для многих производственных систем.
- GIT или WGET
- AUTOCONF
- Automake
- GCC-C + +
- LIBJPEG-DEVEL Используется mod_spandsp для основных кодеков
- LIBTOOL
- MAKE
- NCurses-DEVEL
Установим на CentOS/Fedora все что нужно:
# sudo yum install git autoconf automake libtool ncurses-devel libjpeg-devel sqlite-devel libcurl-devel pcre-devel speex-devel libedit-devel
Необязательно для установки является:
Есть дополнительные модули, которые могут быть установлены если есть потребовать:
- curl-devel для mod_xml_curl
- expat-devel
- LibTIFF для поддержки факса
- libx11-devel для mod_skypopen
- ODBC или UNIX-ODBC и ODBC-devel см. на официальном сайте ODBC для получения информации
- OpenSSL (libssl-Dev / OpenSSL-развитых) для SIP SSL & TLS и Dingaling
- python-devel для интерфейса питона
- ZLIB и ZLIB-devel
- Поддержка шифрования libzrtp ZRTP см. на странице FreeSWITCH ™ ZRTP
Если Вы хотите использовать эти модули на CentOS/Fedora/Redhat выполните:
# sudo yum install expat-devel openssl-devel libtiff-devel libX11-devel unixODBC-devel libssl-devel python-devel \ zlib-devel libzrtpcpp-devel alsa-lib-devel libogg-devel libvorbis-devel perl-libs gdbm-devel \ libdb-devel uuid-devel @development-tools
Скачать FreeSwitch на Centos/Redhat/Fedora
Перейдите в каталог, чтобы потом скачать FreeSWITCH ™, я используем /usr/local/src по этому я выполню (если нет такой директории, то создайте ее : # mkdir /usr/local/src ):
# cd /usr/local/src
Git:
# git clone git://git.freeswitch.org/freeswitch.git # cd /usr/local/src/freeswitch # cp build/modules.conf.in modules.conf
Отредактируем файл с модулями:
# vim /usr/local/src/freeswitch/modules.conf # sed -i 's/#applications\/mod_curl/applications\/mod_curl/' modules.conf # sed -i 's/#asr_tts\/mod_flite/asr_tts\/mod_flite/' modules.conf
Файл modules.conf содержит список модулей, которые будут собранны, некоторые из них закомментированы, так как они не требуются. Если планируется протестировать пример с использованием IVR после установки, FLITE должны быть добавлены к компиляции следующим образом:
Нужно найти «flite» и снять «#» -раскомментируйте и после чего сохраните сам файл.
Компиляции исходного кода FreeSWITCH
# cd /usr/local/src/freeswitch
Установка FreeSwitch
#./bootstrap.sh && ./configure && make install && make cd-sounds-install # make cd-moh-install
Запуск FreeSwitch
Убедитесь в том что ни один другой экземпляр FreeSWITCH ™ или Asterisk не работает на том же компьютере после чего запустите команду:
# /usr/local/freeswitch/bin/freeswitch
Автоматический запуск при загрузке системы
Чтобы FreeSWITCH запускался автоматически при запуске системы, просто выполните следующую команду:
# chkconfig freeswitch on
Теперь напишем скрипт для автоматического запуска фрисвич в нашей системе, чтобы посмотреть скрипт нажмите тут, чтобы скачать его выполните команду:
# wget http://linux-notes.org/wp-content/uploads/scripts/freeswitch_autoload.sh # chmod +x /etc/init.d/freeswitch_autoload.sh
2. Способ установки (Более легкий и требует менее усилий).
Для начала скачаем готовый скрипт для простой установки для этого выполним всего 1 команду:
# cd /usr/local/src или # cd /usr/src # wget http://linux-notes.org/wp-content/uploads/scripts/git_FreeSwitch_avto-install.sh
Выставим право на использование:
# chmod +x git_FreeSwitch_avto-install.sh
Запустим скрипт для установки фрисвич:
# ./git_FreeSwitch_avto-install.sh
Установка начнется сама, а вы можете сделать себе кофе или чай ( довольно долго будет длится установка). После завершения добавим некоторый скрипт в автозапуск системы для того чтобы наш freeswitch стартовал автоматически, для этого выполним:
# cp /usr/src/freeswitch/build/freeswitch.init.redhat /etc/init.d/freeswitch
Подредактируем мы его теперь немного:
# vim /etc/init.d/freeswitch PROG_NAME=freeswitch 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}
После чего выставим права 755 на данный скрипт:
# chmod 755 /etc/init.d/freeswitch
Делаем автозапуск freeswitch при старте нашей системы, для этого выполним:
# chkconfig --level 345 freeswitch on
Поглядим что вышло, а сделать можно это так:
# chkconfig --list freeswitch
Осталось еще немного, добавим еще группу freeswitch, таким образом:
# groupadd freeswitch
Добавим юзера freeswitch в группу freeswitch:
# useradd -g freeswitch freeswitch
Изменим владельца файлов:
# chown -R freeswitch.freeswitch /usr/local/freeswitch
Теперь можно ребутнуть наш сервер и проверить работает ли фрисвич:
# shutdown –r now # ps auxw | grep freeswitch
После установки необходимо изменить стандартный пароль «1234» к sip логинам 1000-1019 для этого нужно отредактировать vars.xml:
# vim /usr/local/freeswitch/conf/vars.xml
Найдем строчку <X-PRE-PROCESS cmd=»set» data=»default_password=1234″/> и поменяем на любой другой пароль. Затем, перейдем в CLI freeswitch:
# cd /usr/local/freeswitch/bin/fs_cli
Сделаем перезагрузку
reloadxml
и
sofia profile restart all
После выйдем из нашей консоли:
/exit
Сейчас необходимо зарегистрировать sip login 1000 любым софтфоном и позвонить на тестовый номер IVR 5000.
Если необходимо то можно загрузить русские фразы для freeswitch для этого перейдем в /usr/src/ и скачаем архив с фразами:
# cd /usr/src/ wget http://linux-notes.org/wp-content/uploads/scripts/freeswitch-sounds-ru-RU-elena-16000-1.0.13.tar.gz
Распакуем архив в нужную паку:
# tar –xvf freeswitch-sounds-ru-RU-elena-16000-1.0.13.tar.gz –C /usr/local/freeswitch/sounds/
После этого в файл vars.xml добавляем строку:
<X-PRE-PROCESS cmd="set" data="default_language=ru"/>
Снова зайдем в CLI и сделаем перезагрузку XML
Reloadxml
Теперь когда позвоним на 5000 можно услышать русский IVR. Следующим шагом будет подключение провайдера sipnet.ru к freeswitch:
# vim /usr/local/freeswitch/conf/vars.xml <X-PRE-PROCESS cmd="set" data="default_provider=sipnet"/> <X-PRE-PROCESS cmd="set" data="default_provider_username=mylogin"/> <X-PRE-PROCESS cmd="set" data="default_provider_password=mypassword"/> <X-PRE-PROCESS cmd="set" data="default_provider_from_domain=sipnet.ru"/> <!-- true or false --> <X-PRE-PROCESS cmd="set" data="default_provider_register=true"/> <X-PRE-PROCESS cmd="set" data="default_provider_contact=5000"/>
Не забудьте сделать перезагрузку конфига в CLI. Теперь пробуем делать звонок на любой номер (но на вашем счету sipnet.ru должны быть деньги). Последним шагом будет настройка входящей маршрутизации, для этого выполним:
# vim /usr/local/freeswitch/conf/dialplan/public/00_inbound_did.xml
<include>
<extension name=»incoming_SIPNET_to_1000″>
<condition field=»destination_number» expression=mylogin>
<action application=»set» data=»domain_name=$${domain}»/>
<action application=»transfer» data=»1000 XML default»/>
</condition>
</extension>
<include>
Сделаем перезагрузку конфигов и попробуем принять звонок .
P.S: Я могу и ошибаться, если нашли ошибку, то буду благодарен если напишите мне в комментариях. На этом тема ‘Как установить FreeSwitch на Centos/Redhat/Fedora’ завершена.