Olá seja bem vindo a mais um tutorial de Asterisk, FreePBX e linux, que é disponibilizado para ajudar a comunidade, este foi feito com muito carinho, é sim, não estou exagerando, nas ultimas semanas em um projeto com os um de meus colegas de profissão, o
Rafael Tavares nos deparamos com um Debian 9.6 que nos deu um baita trabalho, mas nós como amamos o que fazemos, não deixamos barato, resolvemos e estamos disponibilizando o material homologado, ele assim como eu não deseja este sofrimento para o seu próximo. Bom vamos ao que interessa.
1-) Laboratório: 2-) Laboratório:
Essa documentação foi homologada em dois ambientes:
# Pré-requisitos apt -y update && apt -y upgrade && apt install lsb-release
# PHP, removendo a versão atual e instalando a compativel para a instalação do FreePBX apt -y purge php* apt -y install curl apt-transport-https curl https://packages.sury.org/php/apt.gpg | apt-key add - echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/deb.sury.org.list apt -y update && apt -y install php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-mbstring php5.6-gd php5.6-xml
Dependencias necessárias
apt -y install build-essential aptitude openssh-server apache2 mariadb-server mariadb-client \ bison doxygen flex php-pear curl sox libncurses5-dev libssl-dev libmariadbclient-dev mpg123 \ libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool-bin autoconf \ git subversion uuid uuid-dev libiksemel-dev libjansson-dev tftpd postfix mailutils nano \ ntp libspandsp-dev libcurl4-openssl-dev libical-dev libneon27-dev libasound2-dev libogg-dev \ libvorbis-dev libicu-dev libsrtp0-dev unixodbc unixodbc-dev python-dev xinetd e2fsprogs dbus \ sudo xmlstarlet mongodb lame ffmpeg dirmngr linux-headers*
Node.js
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - apt -y install nodejs
ODBC
cd /usr/src wget https://downloads.mariadb.com/Connectors/odbc/connector-odbc-2.0.15/\ mariadb-connector-odbc-2.0.15-ga-debian-x86_64.tar.gz tar -zxvf mariadb-connector-odbc-2.0.15*.tar.gz cp mariadb-connector-odbc-2.0.15*/lib/libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/
#Crie /etc/odbcinst.ini cat >> /etc/odbcinst.ini << EOF [MySQL] Description = ODBC for MariaDB Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so FileUsage = 1 EOF
# Crie /etc/odbc.ini cat >> /etc/odbc.ini << EOF [MySQL-asteriskcdrdb] Description = MariaDB connection to 'asteriskcdrdb' database driver = MySQL server = localhost database = asteriskcdrdb Port = 3306 Socket = /var/run/mysqld/mysqld.sock option = 3 EOF
TimeZone
# Configure o Timezone do server tzselect
Instalar DAHDI
Necessário somente se estiver usando um servidor físico e instalando hardware de telecom. Neste momento, as versões mais recentes que 2.10.2 (2.11.0 e 2.11.1) não são instaladas corretamente.
cd /usr/src wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-2.10.2+2.10.2.tar.gz tar zxvf dahdi-linux-complete-2.10* cd /usr/src/dahdi-linux-complete-2.10*/ make all && make install && make config systemctl restart dahdi
# Se caso make all falhar reinicie o servidor e execute apt -y install linux-headers*
Instalação do Asterisk
# Será instalado a versão 13 que é certificada, mas se caso quiser instalar a 14 sem problemas, basta definir VERSION=14
VERSION=13 cd /usr/src wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-${VERSION}-current.tar.gz tar zxvf asterisk-${VERSION}-current.tar.gz cd /usr/src/asterisk-13.23.1/ make distclean
Instalando dependencias adicionais
cd /usr/src/asterisk-13.23.1/ ./contrib/scripts/install_prereq install
Configurar
cd /usr/src/asterisk-13.23.1/ ./configure --with-pjproject-bundled
Definir opções de compilação
make menuselect
Selecione opções adicionais de compilação ou deixe no padrão e salve. Para adicionar mais opções de compilação, basta executar make menuselect novamente e compilar/instalar novamente.
Crie um usuário Asterisk, compile, instale e defina a propriedade preliminar.
adduser asterisk --disabled-password --gecos "Asterisk User" make && make install && chown -R asterisk. /var/lib/asterisk
Instalar FreePBX
cd /usr/src git clone -b release/14.0 --single-branch https://github.com/freepbx/framework.git freepbx cd /usr/src/freepbx ./start_asterisk start ./install -n
Obs. Se você receber um erro que a versão não foi possível determinar o Asterisk, modifique a seguinte linha:
vim +266 installlib/installcommand.class.php $lastline = exec("runuser" . $answers['user'] . ' -s /bin/bash -c "cd ~/ && asterisk -rx \'core show version\' | grep ^Asterisk 2>&1"', $tmpout, $ret);
Instalar os modulos básicos do FreePBX
fwconsole ma downloadinstall framework core voicemail sipsettings infoservices \ featurecodeadmin logfiles callrecording cdr dashboard music conferences fwconsole chown fwconsole reload
Opcionalmente, você pode instalar todos os módulos (não recomendado). Você provavelmente precisará executar os seguintes comandos duas vezes.
fwconsole ma installall fwconsole chown fwconsole reload
Habilitar Freepbx para iniciar no boot de servidor
cat >> /etc/systemd/system/freepbx.service << EOF [Unit] Description=Freepbx After=mariadb.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/sbin/fwconsole start ExecStop=/usr/sbin/fwconsole stop [Install] WantedBy=multi-user.target EOF systemctl enable freepbx
Configurar o Apache
Adicione AllowOverride All ao diretório da Web para que o .htaccess esteja ativo.
cat >> /etc/apache2/conf-available/allowoverride.conf << EOFAllowOverride All EOF a2enconf allowoverride
Alterar usuário/grupo padrão do apache, desabilitar index.html, habilitar o módulo rewrite.
sed -i 's/\(APACHE_RUN_USER=\)\(.*\)/\1asterisk/g' /etc/apache2/envvars sed -i 's/\(APACHE_RUN_GROUP=\)\(.*\)/\1asterisk/g' /etc/apache2/envvars chown asterisk. /run/lock/apache2 mv /var/www/html/index.html /var/www/html/index.html.disable a2enmod rewrite systemctl restart apache2
Reinicie o Servidor
Após o reboot, você deve conseguir acessa a interface do seu FreePBX http://IP_Do_Servidor,deve apresentar a seguinte tela abaixo:
Os processos a seguir são obrigatórios
Tarefas pós-instalação Configuração do banco de dados.
mysql_secure_installation
Responda 'N' para não alterar a senha do Root, as demais respostas, todas 'Y'
Rotação de Arquivo de Log
Se isso não for feito, os arquivos de log continuarão crescendo indefinidamente.
vim /etc/logrotate.d/asterisk /var/spool/mail/asterisk /var/log/asterisk/full /var/log/asterisk/dtmf /var/log/asterisk/fail2ban /var/log/asterisk/freepbx.log /var/log/asterisk/freepbx_security.log /var/log/asterisk/freepbx_debug { weekly missingok rotate 4 #compress notifempty sharedscripts create 0640 asterisk asterisk postrotate /usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null || true endscript su root root }
Bom, encerramos por aqui, agora você já tem um painel de administração funcionando para o seu PBX IP, não deixe de compartilhar e nos dar seu feedback. Participe dos nossos grupos no telegram: