Freeswitch

From SME Server
Jump to navigation Jump to search
Warning.png Work in Progress:
This page is a Work in Progress. The contents off this page may be in flux, please have a look at this page history the to see list of changes.


Freeswitch.png

About

"Freeswitch is a scalable open source cross-platform telephony platform designed to route and interconnect popular communication protocols using audio, video, text or any other form of media. It was created in 2006 to fill the void left by proprietary commercial solutions. FreeSWITCH also provides a stable telephony platform on which many applications can be developed using a wide range of free tools".

Please visit the http://freeswitch.org website for more detailed information.


Installation

The latest Freeswitch version available for CentOS 6 is the 1.4 branch which is EOL. There will be no Freeswitch RPM's available from the freeswitch repo, only for CentOS 7. Fortunately, the okay repo has the Freeswitch 1.6 branch RPM's available and up to date.


The okay, Epel and remi repositories have to be enabled. Please enable these repositories first. After enabling the above repositories, one can install Freeswitch and it's dependencies with yum:

yum install ffmpeg --enablerepo=okey,epel
yum install *1.6.14-1* freeswitch-sounds* --enablerepo=okey,epel,remi --exclude=*php*

This must be the above 2 commands, for otherwise there will be a strange dependency issue.


  Note:
If you have installed the SOGo contrib, you will encounter a dependency issue with libmemcached. There is no resolution yet and your input is welcomed.


Configuration

Adding Freeswitch as a service and open ports

To automatically start Freeswitch at boot and configure the ports:

ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/S99freeswitch
config set freeswitch service 
config setprop freeswitch status enabled
config setprop freeswitch access private
config setprop freeswitch UDPPorts "5060,5070,5080,3478,3479,16384:32768"
config setprop freeswitch TCPPorts "5066,7443"

You can toggle the access property to enable public/private access. Then to apply the new service:

signal-event remoteaccess-update

Freeswitch can now be started and stopped with

service freeswitch start
service freeswitch stop


FusionPBX freeswitch GUI

Like other PBX systems, FreeSWITCH has many options and can be managed from the command line interface (CLI) which for Freeswitch is 'fs_cli'. However a stable GUI for Freeswitch is freely available from FusionPBX and makes life much easier. FusionPBX is only the Graphical interface and relies on a correctly installed Freeswitch engine.


Installation

First we need to create a mysql database for FusionPBX where it keeps its configurations.

mysqladmin create fusionpbx

then we enter the mysql cli:

mysql
grant all privileges on fusionpbx.* to 'admin'@'localhost' identified by 'very_strong_password';
flush privileges;
exit
  • svn checkout of FusionPBX
  • setting permissions
  • Enable Mysql InnoDB (see wiki)
  • change install.php and replace 127.0.0.1 with localhost
  • set openbasedir of the Primary to /