sábado, 5 de maio de 2018

Tagged Under:

Instalando FreePBX 13 com Asterisk 13 no Debian 9 Stretch!

By: Angelo de Barros Delphini On: maio 05, 2018
  • Share The Gag
  • Quando acabarmos com este artigo usamos as seguintes tecnologias:
    - Debian 9.0;
    - Asterisco 13;
    - FreePBX 13;
    - MariaDB 10.1;
    - PHP 5.6.


    Por que essa solução é usando o MariaDB, e não o MySQL, é que para facilitar a vida dos iniciantes vamos fazer uso do MariaDB, abordando a maneira correta de preparar este SGBD para o projeto FreePBX. Para a instalação, vamos utilizar um o CD minimal install do sistema Debian 9.0 é os pacotes já instalados MariaDB, PHP 7.0, Servidor OpenSSH padrão para o Debian 9 Stretch. Vamos aproveitar e configurar o parâmetro "PermitRootLogin without-password", ele desabilita a autorização do root usar o SSH. Acho isso desconfortável para máquinas de teste em uma rede local, então eu ligo novamente. Todos os comandos são executados a partir do root.

    1 - Preparação do Sistema:

    1vim /etc/ssh/sshd_config

    2systemctl restart sshd.service

    Quando terminar de fazer toda a configuração, você deve vir novamente a este ponto e desabilitar está permissão. Pois seu servidor ficara permitindo que o root se conecte nele e isto é uma quebra de segurança.

    usando uma ferramenta de SSH (sugerimos o MobaXterm) faça:

    1ssh root@192.168.15.99

    Claro substitua o nosso ip pelo ip do seu servidor. 

    Atualize os pacotes do sistema e o sistema.


    1apt-get update && apt-get upgrade -y

    2 - Instale os pacotes necessários:

    1apt-get install -y build-essential linux-headers-`uname -r`

    apt-get install -y openssh-server apache2 bison flex libmariadb-dev
    apt-get install -y libmariadbclient-dev mariadb-server mariadb-client

    apt-get install -y php-pear curl sox php7.0 php7.0-mysql php7.0-mcrypt

    apt-get install -y php7.0-curl php7.0-gd libapache2-mod-php7.0 php7.0-mbstring

    apt-get install -y php7.0-xml libncurses5-dev libssl-dev mpg123 libpng-dev

    apt-get install -y libxml2-dev libxml2 libcurl3 libnewt-dev sqlite3 libsqlite3-dev
    apt-get install -y pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev
    apt-get install -y libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev
    apt-get install -y libical-dev libneon27-dev libsrtp0-dev libspandsp-dev
    apt-get install -y sudo vim subversion libgmime-2.6-0 libgmime-2.6-dev


    Durante a instalação, o sistema solicitará uma senha para o usuário root do MariaDB. Aconselhamos que você crie uma senha complexa e anote-a. Para uso meramente acadêmico vamos usar aqui myPass@2018.




    3 - Reinicie o sistema:


    1reboot

    4 - Substitua o PHP7.0 pelo PHP5.6:


    1vim /etc/apt/sources.list 

    Vamos adicionar os repositórios. Coloque no final do arquivo sources.list.


    1# Repositorios de Jessie
    2deb http://ftp.debian.org/debian/ jessie main contrib non-free
    3deb-src http://ftp.debian.org/debian/ jessie main contrib non-free
    4deb http://security.debian.org/ jessie/updates main contrib non-free

    5deb-src http://security.debian.org/ jessie/updates main contrib non-free

    Vamos configurar as preferências do apt e apt-get, para usar dois repositórios. Adicione o seguinte ao arquivo /etc/apt/preferences.d/jessie:



    1Package: *
    2Pin: release n=stretch
    3Pin-Priority: 900
    4
    5Package: *
    6Pin: release n=jessie

    7Pin-Priority: 100

    Atualize as novas configurações.

    1apt update

    Instalar o PHP5.6.


    1apt install php5 php5-pgsql php5-gd php5-curl php5-cli apache2


    5 - Defina as dependências necessárias para o Google Voice:


    1pear install Console_Getopt

    1cd /usr/src
    3cd iksemel
    4./configure
    5make
    6make install
    7ldconfig

    6 - Faça o download dos pacotes necessários Dahdi, Libpri, Asterisk 13, Jansson, PJproject:


    7 - Descompacte e instale o Dahdi, Libpri:


    01cd /usr/src/

    02tar xvfz dahdi-linux-complete-current.tar.gz

    03cd dahdi-linux-complete-*

    04make all

    05make install

    06make config

    07cd /usr/src/
    08tar xvfz libpri-current.tar.gz
    09cd libpri-*
    10make
    11make install

    8 - Descompacte e instale o Pjproject:


    1cd /usr/src

    2tar -xjvf pjproject-2.6.tar.bz2

    3cd pjproject-2.6

    4CFLAGS='-DPJ_HAS_IPV6=1' ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr

    5make dep

    6make

    7make install

    9 - Descompacte e instale o Jansson:


    1cd /usr/src

    2tar vxfz jansson.tar.gz

    3cd jansson-*

    4autoreconf -i

    5./configure

    6make

    7make install

    10 - Descompacte e instale o Asterisk 13:

    1cd /usr/src/
    2tar xvfz asterisk-13-current.tar.gz
    3cd asterisk-*
    4./contrib/scripts/get_mp3_source.sh
    5./contrib/scripts/install_prereq install

    Na janela que se abre, você deve fornecer o código do país, nosso caso, Brasil é 55.



    6./contrib/scripts/install_prereq install-unpackaged
    7./configure
    8make menuselect

    Também é necessário selecionar os módulos format_mp3 e aqueles que você pode precisar no futuro, as imagens é para que você tenha uma ideia do que julgamos necessários.

















    Depois que os módulos forem selecionados, clique em Salvar e Sair e continue a instalação:

    1make
    2make install
    3make config
    4ldconfig

    5update-rc.d -f asterisk remove


    11 - Baixe e instale arquivos de som para o Asterisk 13:


    1cd /var/lib/asterisk/sounds/

    2mkdir br

    3cd br

    4wget -O core.zip https://www.asterisksounds.org/pt-br/download/asterisk-sounds-core-pt-BR-sln16.zip

    5

    6789
    wget -O extra.zip https://www.asterisksounds.org/pt-br/download/asterisk-sounds-extra-pt-BR-sln16.zip

    unzip core.zip
    unzip extra.zip
    chown -R asterisk.asterisk /var/lib/asterisk/sounds/br
    find /var/lib/asterisk/sounds/br -type d -exec chmod 0775 {} \;


    12 - Convertendo arquivos de som para outros formatos:

    1cd /var/lib/asterisk/sounds/br/

    2vim astconvert.sh

    #!/bin/bash
    for a in $(find . -name '*.sln16'); do
      sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t gsm -r 8k `echo $a|sed "s/.sln16/.gsm/"`;\
      sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t raw -r 8k -e a-law `echo $a|sed "s/.sln16/.alaw/"`;\
      sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t raw -r 8k -e mu-law `echo $a|sed "s/.sln16/.ulaw/"`;\
    done
    1chmod a+x astconvert.sh

    2./astconvert.sh

    Para ativar os sons utilizando FreePBX, basta alterar o parâmetro da variável language dentro de Asterisk SIP Settings. Neste caso, colocando es. Se existirem ramais ou linhas IAX2, será necessário configurar no parâmetro language acessando o menu Asterisk IAX Settings.

    Cada canal de Asterisk tem sua configuração de língua. O valor inserido na configuração é dividido por cada underline para construir a rota onde Asterisk buscará os sons. Assim, Asterisk utilizará o primeiro arquivo que encontre.

    Isso quer dizer que se o valor do parâmetro language for es_AR_Maria, Asterisk buscará os arquivos em:


    .../sounds/pt_br_Maria
    .../sounds/pt_br 
    .../sounds/pt
    .../sounds
    
    Isso faz com que seja possível acrescentar novas variantes de uma língua baseadas em um esquema geral.

    13 - Vamos iniciar a instalação do FreePBX 13:

    Para fazer isso, crie um usuário e defina permissões nas pastas:

    1adduser --system --group --home /var/lib/asterisk --no-create-home --gecos "Asterisk PBX" asterisk
    2usermod -a -G dialout,audio asterisk

    01chown -R asterisk:asterisk /var/lib/asterisk &&
    02chown -R asterisk:asterisk /var/log/asterisk &&
    03chown -R asterisk:asterisk /var/run/asterisk &&
    04chown -R asterisk:asterisk /var/spool/asterisk &&
    05chown -R asterisk:asterisk /usr/lib/asterisk &&
    06chown -R asterisk:asterisk /etc/asterisk &&
    07chmod -R u=rwX,g=rX,o= /var/lib/asterisk &&
    08chmod -R u=rwX,g=rX,o= /var/log/asterisk &&
    09chmod -R u=rwX,g=rX,o= /var/run/asterisk &&
    10chmod -R u=rwX,g=rX,o= /var/spool/asterisk &&
    11chmod -R u=rwX,g=rX,o= /usr/lib/asterisk &&
    12chmod -R u=rwX,g=rX,o= /etc/asterisk

    14 - Vamos modificar o Apache 2 para trabalhos futuros com o FreePBX 13:


    1sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini

    2cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig

    3sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf

    4sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf

    5service apache2 restart

    15 - Configure o ODBC:


    1cat >> /etc/odbcinst.ini << EOF

    2[MySQL]

    3Description = ODBC for MySQL

    4Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so

    5Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so

    6FileUsage = 1

    7   

    8EOF

    Edite ou crie o arquivo /etc/odbc.ini e configure:


    01cat >> /etc/odbc.ini << EOF

    02[MySQL-asteriskcdrdb]

    03Description=MySQL connection to 'asteriskcdrdb' database

    04driver=MySQL

    05server=localhost

    06database=asteriskcdrdb

    07Port=3306

    08Socket=/var/run/mysqld/mysqld.sock

    09option=3
    10   
    11EOF


    16 - Configure o banco de dados MariaDB:


    Lembrando que a senha que informamos na instalação do MariaDB foi myPass@2018. Então iremos informar como usuário root e o password myPass@2018.



    1mysqladmin -uroot -pmyPass@2018 create asterisk

    2mysqladmin -uroot -pmyPass@2018 create asteriskcdrdb

    3mysql -uroot -pmyPass@2018 -e "GRANT ALL PRIVILEGES ON asterisk.* TO root@localhost IDENTIFIED BY 'myPass@2018';"

    4mysql -uroot -pmyPass@2018 -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO root@localhost IDENTIFIED BY 'myPass@2018';"

    5mysql -uroot -pmyPass@2018 -e "FLUSH PRIVILEGES;"



    17 - O estágio final. Baixe e instale o FreePBX 13:


    O motivo de estarmos utilizando o FreePBX 13 é para poder usar o AstSBC 13, para conseguir o pacote visite o site do projeto.




    Durante a fase de instalação, você deve especificar dbuser e dbpass, que você inseriu na etapa 16.

    1cd /usr/src
    3tar vxfz freepbx-13.0-latest.tgz
    4cd freepbx
    5./start_asterisk start
    6./install -n --dbuser=root --dbpass=myPass@2018

    A instalação está concluída e agora você precisa ir para o endereço http://YOUR_IP/admin e configurar o administrador, especificando o login e a senha.


    Isso conclui a instalação, você pode prosseguir com a configuração. Se houver erros ou inconsistências no artigo, ficaremos gratos se você nos escrever sobre eles nos comentários.



    O objetivo é criar um instalador automatizando assim este artigo.




    0 comentários:

    Enviar um comentário