Instalando FreePBX 13 no Debian 8

FreePBX é uma GUI de código aberto baseada na web (interface gráfica do usuário) que controla e gerencia o Asterisk (PBX), um servidor de comunicação de código aberto. O FreePBX está licenciado sob a GNU General Public License (GPL), uma licença de código aberto. O FreePBX pode ser instalado manualmente ou como parte do FreePBX Distro pré-configurado que inclui sistema operacional OS, Asterisk, FreePBX GUI e dependências variadas.

Instalação

Pré-requisitos: Debian 8 64bits

Instale o servidor ssh e permita o acesso do usuário root pelo com o comando abaixo:

# apt-get install openssh-server
# sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# service sshd restart

Atualize o sistema.

# apt-get update && apt-get upgrade -y

Instale as dependências com o comando abaixo :

Importante: Como parte desta instalação, você será solicitado várias vezes por uma senha do mysql. Você pode deixar em branco (apenas digite enter), pois os próximos procedimentos gerarão uma senha segura. Se você definir uma senha agora, irá causar problemas mais a frente. Por favor, não configure uma senha do Mysql, a menos que saiba o que esta fazendo)

# apt-get install -y build-essential openssh-server apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev sudo libmyodbc subversion

Atualize a versão do Kernel com o comando abaixo:

# apt-get install -y linux-headers-`uname -r`

Instale a funcionalidade de console para o Pear.

# pear install Console_Getopt  

Instalação e configuração do Asterisk

Baixe os source files do Asterisk.

# cd /usr/src
# wget -c http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
# wget -c http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
# wget -c http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
# wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz
# wget -c http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2

Compile e instale o DAHDI e o LIBPRI.

# cd /usr/src
# tar xvfz dahdi-linux-complete-current.tar.gz
# rm -f dahdi-linux-complete-current.tar.gz
# cd dahdi-linux-complete-*
# make all
# make install
# make config
# cd /usr/src
# tar xvfz libpri-current.tar.gz
# rm -f libpri-current.tar.gz
# cd libpri-*
# make
# make install

Compile e instale o PJPROJECT.

# cd /usr/src
# tar -xjvf pjproject-2.4.tar.bz2
# rm -f pjproject-2.4.tar.bz2
# cd pjproject-2.4
# CFLAGS='-DPJ_HAS_IPV6=1' ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr
# make dep
# make
# make install

Compile e Instale JANSSON.

# cd /usr/src
# tar vxfz jansson.tar.gz
# rm -f jansson.tar.gz
# cd jansson-*
# autoreconf -i
# ./configure
# make && make install

Compile e instale o Asterisk.

# cd /usr/src
# tar xvfz asterisk-13-current.tar.gz
# rm -f asterisk-13-current.tar.gz
# cd asterisk-*
# contrib/scripts/get_mp3_source.sh
# contrib/scripts/install_prereq install
# ./configure

Saída do comando # ./configure

Você será solicitado a escolher os módulos a serem compilados. A maioria deles já estará habilitada, mas se você quiser ter suporte para MP3 (por exemplo, para Music on Hold), você precisa ativar manualmente ‘format_mp3’ na primeira página.

# make menuselect

Saída do comando # make menuselect

Depois de selecionar ‘Salve e Exit’, você pode continuar.

# make
# make install
# make config
# ldconfig
# update-rc.d -f asterisk remove

Por padrão os áudio instalado são de baixa qualidade, abaixo baixe os arquivos de áudio de alta qualidade para o Asterisk.

# cd /var/lib/asterisk/sounds
# wget -c http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-wav-current.tar.gz
# wget -c http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz
# tar xvf asterisk-core-sounds-en-wav-current.tar.gz
# rm -f asterisk-core-sounds-en-wav-current.tar.gz
# tar xfz asterisk-extra-sounds-en-wav-current.tar.gz
# rm -f asterisk-extra-sounds-en-wav-current.tar.gz
# wget -c http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-g722-current.tar.gz
# wget -c http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz
# tar xfz asterisk-extra-sounds-en-g722-current.tar.gz
# rm -f asterisk-extra-sounds-en-g722-current.tar.gz
# tar xfz asterisk-core-sounds-en-g722-current.tar.gz
# rm -f asterisk-core-sounds-en-g722-current.tar.gz

Instalação e configuração do FreePBX

Crie o usuário asterisk e defina as permissões conforme comandos abaixo.

# useradd -m asterisk
# chown asterisk. /var/run/asterisk
# chown -R asterisk. /etc/asterisk
# chown -R asterisk. /var/{lib,log,spool}/asterisk
# chown -R asterisk. /usr/lib/asterisk
# rm -rf /var/www/html

Algumas modificações no Apache.

# sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
# sed -i 's/^\(User\Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
# sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
# service apache2 restart

Agora configure o ODBC.

# cat >> /etc/odbcinst.ini << EOF
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
EOF
# cat >> /etc/odbc.ini << EOF
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3
EOF

Download e instalação do FreePBX.

# cd /usr/src
# wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
# tar vxfz freepbx-13.0-latest.tgz
# rm -f freepbx-13.0-latest.tgz
# cd freepbx
# ./start_asterisk start
# ./install -n

Saída do comando # ./start_asterisk start

Saída do comando # ./install -n

Precisamos agora configurar o FreePBX para iniciar o Asterisk durante a inicialização do Debian 8.

Crie o arquivo freepbx.service na pasta /etc/systemd/system/ e adicione o conteúdo abaixo:

[Unit]
Description=FreePBX VoIP Server
After=mysql.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/fwconsole start -q
ExecStop=/usr/sbin/fwconsole stop -q
[Install]
WantedBy=multi-user.target

Habilite o serviço e inicie o FreePBX:

# systemctl enable freepbx.service
# systemctl start freepbx

Para verificar o status do serviço execute o comando abaixo:

# systemctl status -l freepbx.service

Saída do comando # systemctl status -l freepbx.service

Habilite o mod_rewrite no Apache e reinicie-o com o comando abaixo:

# a2enmod rewrite
# service apache2 restart

Agora podemos acessar a pagina web e definir um usuário e senha. Digite na barra de endereço do seu navegador o ip do servidor.

Página de criação das credenciais de acesso

Após definido as credenciais o sistema redirecionará para a página de login, conforme imagem abaixo:

Página de login

Bom, chegamos ao fim de mais um tutorial e caso queira saber mais sobre o projeto FreePBX, acesse o site https://www.freepbx.org/.